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,605 lines 190 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 { ACLAction, ACLAction$inboundSchema } from "./aclaction.js";
import { SDKValidationError } from "./sdkvalidationerror.js";

/**
 * Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed
 */
export const GitForkProtection = {
  One: "1",
  Zero: "0",
} as const;
/**
 * Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed
 */
export type GitForkProtection = ClosedEnum<typeof GitForkProtection>;

/**
 * Filter results by projects with elastic concurrency enabled
 */
export const ElasticConcurrencyEnabled = {
  One: "1",
  Zero: "0",
} as const;
/**
 * Filter results by projects with elastic concurrency enabled
 */
export type ElasticConcurrencyEnabled = ClosedEnum<
  typeof ElasticConcurrencyEnabled
>;

/**
 * Filter results by projects with Static IPs enabled
 */
export const StaticIpsEnabled = {
  Zero: "0",
  One: "1",
} as const;
/**
 * Filter results by projects with Static IPs enabled
 */
export type StaticIpsEnabled = ClosedEnum<typeof StaticIpsEnabled>;

/**
 * Filter results by build queue configuration. SKIP_NAMESPACE_QUEUE includes projects without a configuration set.
 */
export const QueryParamBuildQueueConfiguration = {
  SkipNamespaceQueue: "SKIP_NAMESPACE_QUEUE",
  WaitForNamespaceQueue: "WAIT_FOR_NAMESPACE_QUEUE",
} as const;
/**
 * Filter results by build queue configuration. SKIP_NAMESPACE_QUEUE includes projects without a configuration set.
 */
export type QueryParamBuildQueueConfiguration = ClosedEnum<
  typeof QueryParamBuildQueueConfiguration
>;

export type GetProjectsRequest = {
  /**
   * Query only projects updated after the given timestamp or continuation token.
   */
  from?: string | undefined;
  /**
   * Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed
   */
  gitForkProtection?: GitForkProtection | undefined;
  /**
   * Limit the number of projects returned
   */
  limit?: string | undefined;
  /**
   * Search projects by the name field
   */
  search?: string | undefined;
  /**
   * Filter results by repo. Also used for project count
   */
  repo?: string | undefined;
  /**
   * Filter results by Repository ID.
   */
  repoId?: string | undefined;
  /**
   * Filter results by Repository URL.
   */
  repoUrl?: string | undefined;
  /**
   * Filter results by excluding those projects that belong to a repo
   */
  excludeRepos?: string | undefined;
  /**
   * Filter results by connected Edge Config ID
   */
  edgeConfigId?: string | undefined;
  /**
   * Filter results by connected Edge Config Token ID
   */
  edgeConfigTokenId?: string | undefined;
  deprecated?: boolean | undefined;
  /**
   * Filter results by projects with elastic concurrency enabled
   */
  elasticConcurrencyEnabled?: ElasticConcurrencyEnabled | undefined;
  /**
   * Filter results by projects with Static IPs enabled
   */
  staticIpsEnabled?: StaticIpsEnabled | undefined;
  /**
   * Filter results by build machine types. Accepts comma-separated values. Use "default" for projects without a build machine type set.
   */
  buildMachineTypes?: string | undefined;
  /**
   * Filter results by build queue configuration. SKIP_NAMESPACE_QUEUE includes projects without a configuration set.
   */
  buildQueueConfiguration?: QueryParamBuildQueueConfiguration | undefined;
  /**
   * The Team identifier to perform the request on behalf of.
   */
  teamId?: string | undefined;
  /**
   * The Team slug to perform the request on behalf of.
   */
  slug?: string | undefined;
};

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

export type GetProjectsResponseBodyProjectsSpeedInsights = {
  id: string;
  enabledAt?: number | undefined;
  disabledAt?: number | undefined;
  canceledAt?: number | undefined;
  hasData?: boolean | undefined;
  paidAt?: number | undefined;
};

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

export type ResponseBodyEnvId = string | GetProjectsEnvId2;

export type ResponseBodyAws = {
  subnetIds: Array<string>;
  securityGroupId?: string | undefined;
};

export type ResponseBodyConnectConfigurations = {
  envId: string | GetProjectsEnvId2;
  connectConfigurationId: string;
  dc?: string | undefined;
  passive: boolean;
  buildsEnabled: boolean;
  aws?: ResponseBodyAws | undefined;
  createdAt: number;
  updatedAt: number;
};

/**
 * The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json).
 */
export const GetProjectsResponseBodySource = {
  Api: "api",
} as const;
/**
 * The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json).
 */
export type GetProjectsResponseBodySource = ClosedEnum<
  typeof GetProjectsResponseBodySource
>;

export type ResponseBodyDefinitions = {
  /**
   * The hostname that should be used.
   */
  host: string;
  /**
   * The path that should be called for the cronjob.
   */
  path: string;
  /**
   * The cron expression.
   */
  schedule: string;
  /**
   * The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json).
   */
  source?: GetProjectsResponseBodySource | undefined;
  /**
   * A human-readable description of what this cron job does.
   */
  description?: string | undefined;
  /**
   * Whether the host was inferred from the production deployment URL rather than explicitly provided.
   */
  hostInferred?: boolean | undefined;
};

export type GetProjectsResponseBodyCrons = {
  /**
   * The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.
   */
  enabledAt: number;
  /**
   * The time the feature was disabled for this project.
   */
  disabledAt: number | null;
  updatedAt: number;
  /**
   * The ID of the Deployment from which the definitions originated.
   */
  deploymentId: string | null;
  definitions: Array<ResponseBodyDefinitions>;
};

export type ResponseBodyDataCache = {
  userDisabled: boolean;
  storageSizeBytes?: number | null | undefined;
  unlimited?: boolean | 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 GetProjectsResponseBodyProjectsDeploymentExpiration = {
  /**
   * 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 GetProjectsExpiration2 = {
  /**
   * Unix ms timestamp when the project was locked.
   */
  lockedAt: number;
  /**
   * userId of the actor that triggered the lock (system or admin).
   */
  lockedBy: string;
};

export type GetProjectsExpiration1 = {
  /**
   * Unix ms timestamp when the project is scheduled to expire.
   */
  expiresAt: number;
};

export type ResponseBodyExpiration =
  | GetProjectsExpiration2
  | GetProjectsExpiration1;

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

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

export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONTarget =
  | Array<GetProjectsTargetProjectsResponse1>
  | GetProjectsTargetProjectsResponse2;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

export type GetProjectsResponseBodyProjectsContentHint =
  | GetProjectsContentHintProjectsResponse1
  | GetProjectsContentHintProjectsResponse2
  | GetProjectsContentHintProjectsResponse3
  | GetProjectsContentHintProjectsResponse4
  | GetProjectsContentHintProjectsResponse5
  | GetProjectsContentHintProjectsResponse6
  | GetProjectsContentHintProjectsResponse7
  | GetProjectsContentHintProjectsResponse8
  | GetProjectsContentHintProjectsResponse9
  | GetProjectsContentHintProjectsResponse10
  | GetProjectsContentHintProjectsResponse11
  | GetProjectsContentHintProjectsResponse12
  | GetProjectsContentHintProjectsResponse13
  | GetProjectsContentHintProjectsResponse14
  | GetProjectsContentHintProjectsResponse15
  | GetProjectsContentHintProjectsResponse16
  | GetProjectsContentHintProjectsResponse17;

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

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

export type GetProjectsResponseBodyProjectsEnv = {
  target?:
    | Array<GetProjectsTargetProjectsResponse1>
    | GetProjectsTargetProjectsResponse2
    | undefined;
  type: GetProjectsResponseBodyProjectsResponse200Type;
  /**
   * 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;
  edgeConfigId?: string | null | undefined;
  edgeConfigTokenId?: string | null | undefined;
  contentHint?:
    | GetProjectsContentHintProjectsResponse1
    | GetProjectsContentHintProjectsResponse2
    | GetProjectsContentHintProjectsResponse3
    | GetProjectsContentHintProjectsResponse4
    | GetProjectsContentHintProjectsResponse5
    | GetProjectsContentHintProjectsResponse6
    | GetProjectsContentHintProjectsResponse7
    | GetProjectsContentHintProjectsResponse8
    | GetProjectsContentHintProjectsResponse9
    | GetProjectsContentHintProjectsResponse10
    | GetProjectsContentHintProjectsResponse11
    | GetProjectsContentHintProjectsResponse12
    | GetProjectsContentHintProjectsResponse13
    | GetProjectsContentHintProjectsResponse14
    | GetProjectsContentHintProjectsResponse15
    | GetProjectsContentHintProjectsResponse16
    | GetProjectsContentHintProjectsResponse17
    | null
    | undefined;
  /**
   * Similar to `contentHints`, but should not be exposed to the user.
   */
  internalContentHint?:
    | GetProjectsResponseBodyProjectsInternalContentHint
    | null
    | undefined;
  comment?: string | undefined;
  customEnvironmentIds?: Array<string> | undefined;
};

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

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

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

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

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

/**
 * Internal representation of a custom environment with all required properties
 */
export type ResponseBodyCustomEnvironments = {
  /**
   * Unique identifier for the custom environment (format: env_*)
   */
  id: string;
  /**
   * URL-friendly name of the environment
   */
  slug: string;
  /**
   * The type of environment (production, preview, or development)
   */
  type: GetProjectsResponseBodyProjectsResponse200ApplicationJSONType;
  /**
   * Optional description of the environment's purpose
   */
  description?: string | undefined;
  /**
   * Configuration for matching git branches to this environment
   */
  branchMatcher?: ResponseBodyBranchMatcher | undefined;
  /**
   * List of domains associated with this environment
   */
  domains?: Array<GetProjectsResponseBodyDomains> | undefined;
  /**
   * List of aliases for the current deployment
   */
  currentDeploymentAliases?: Array<string> | undefined;
  /**
   * Timestamp when the environment was created
   */
  createdAt: number;
  /**
   * Timestamp when the environment was last updated
   */
  updatedAt: number;
};

export const GetProjectsResponseBodyProjectsFramework = {
  ActixWeb: "actix-web",
  Angular: "angular",
  Ash: "ash",
  Astro: "astro",
  Axum: "axum",
  Blitzjs: "blitzjs",
  Brunch: "brunch",
  Bun: "bun",
  CreateReactApp: "create-react-app",
  Django: "django",
  Docusaurus: "docusaurus",
  Docusaurus2: "docusaurus-2",
  Dojo: "dojo",
  Eleventy: "eleventy",
  Elysia: "elysia",
  Ember: "ember",
  Eve: "eve",
  Express: "express",
  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",
  Umijs: "umijs",
  Vite: "vite",
  Vitepress: "vitepress",
  Vue: "vue",
  Vuepress: "vuepress",
  Xmcp: "xmcp",
  Zola: "zola",
} as const;
export type GetProjectsResponseBodyProjectsFramework = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsFramework
>;

/**
 * Service kind (Service.type). Omitted for schemas that do not define one.
 */
export const ResponseBodyServiceType = {
  Cron: "cron",
  Job: "job",
  Web: "web",
  Worker: "worker",
} as const;
/**
 * Service kind (Service.type). Omitted for schemas that do not define one.
 */
export type ResponseBodyServiceType = ClosedEnum<
  typeof ResponseBodyServiceType
>;

/**
 * Framework slug, when the service has one (omitted otherwise).
 */
export const GetProjectsResponseBodyProjectsResponseFramework = {
  ActixWeb: "actix-web",
  Angular: "angular",
  Ash: "ash",
  Astro: "astro",
  Axum: "axum",
  Blitzjs: "blitzjs",
  Brunch: "brunch",
  Bun: "bun",
  CreateReactApp: "create-react-app",
  Django: "django",
  Docusaurus: "docusaurus",
  Docusaurus2: "docusaurus-2",
  Dojo: "dojo",
  Eleventy: "eleventy",
  Elysia: "elysia",
  Ember: "ember",
  Eve: "eve",
  Express: "express",
  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",
  Umijs: "umijs",
  Vite: "vite",
  Vitepress: "vitepress",
  Vue: "vue",
  Vuepress: "vuepress",
  Xmcp: "xmcp",
  Zola: "zola",
} as const;
/**
 * Framework slug, when the service has one (omitted otherwise).
 */
export type GetProjectsResponseBodyProjectsResponseFramework = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponseFramework
>;

export type ResponseBodyServices = {
  /**
   * Service name from the deployment (Service.name).
   */
  serviceName: string;
  /**
   * Service kind (Service.type). Omitted for schemas that do not define one.
   */
  serviceType?: ResponseBodyServiceType | undefined;
  /**
   * Framework slug, when the service has one (omitted otherwise).
   */
  framework?: GetProjectsResponseBodyProjectsResponseFramework | undefined;
  /**
   * Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds.
   */
  runtime?: string | undefined;
};

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

export type ResponseBodyLint = {
  targets: Array<string>;
};

export type ResponseBodyTypecheck = {
  targets: Array<string>;
};

export type ResponseBodyMfeConfigPresent = {
  targets: Array<string>;
};

export type ResponseBodyJobs = {
  lint?: ResponseBodyLint | undefined;
  typecheck?: ResponseBodyTypecheck | undefined;
  mfeConfigPresent?: ResponseBodyMfeConfigPresent | undefined;
};

export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONAliasAssigned =
  | number
  | boolean;

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

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

export type GetProjectsResponseBodyProjectsLatestDeployments = {
  alias?: Array<string> | undefined;
  aliasAssigned?: number | boolean | null | undefined;
  builds?:
    | Array<GetProjectsResponseBodyProjectsResponse200ApplicationJson3Builds>
    | undefined;
  createdAt: number;
  createdIn: string;
  creator:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson3Creator
    | null;
  deploymentHostname: string;
  name: string;
  forced?: boolean | undefined;
  id: string;
  meta?: { [k: string]: string } | undefined;
  plan: string;
  private: boolean;
  readyState: string;
  requestedAt?: number | undefined;
  target?: string | null | undefined;
  teamId?: string | null | undefined;
  type: string;
  url: string;
  userId: string;
  withCache?: boolean | undefined;
};

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

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

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

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

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

export type GetProjectsLinkProjectsResponse4 = {
  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<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3Projects4DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

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

export type GetProjectsLinkProjectsResponse3 = {
  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<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3Projects3DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

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

export type GetProjectsLinkProjectsResponse2 = {
  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<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3ProjectsDeployHooks
  >;
  gitCredentialId: string;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

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

export type GetProjectsLinkProjectsResponse1 = {
  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<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsResponseBodyProjectsLink =
  | GetProjectsLinkProjectsResponse1
  | GetProjectsLinkProjectsResponse2
  | GetProjectsLinkProjectsResponse3
  | GetProjectsLinkProjectsResponse4
  | GetProjectsLinkProjectsResponse5
  | GetProjectsLinkProjectsResponse6;

export type GetProjectsMicrofrontends3 = {
  updatedAt: number;
  groupIds: Array<any>;
  enabled: false;
  freeProjectForLegacyLimits?: boolean | undefined;
};

export type GetProjectsMicrofrontends2 = {
  isDefaultApp?: false | undefined;
  /**
   * Whether observability data should be routed to this microfrontend project or a root project.
   */
  routeObservabilityToThisProject?: boolean | undefined;
  /**
   * Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend.
   */
  doNotRouteWithMicrofrontendsRouting?: boolean | undefined;
  /**
   * Timestamp when the microfrontends settings were last updated.
   */
  updatedAt: number;
  /**
   * The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together.
   */
  groupIds: Array<string>;
  /**
   * Whether microfrontends are enabled for this project.
   */
  enabled: true;
  /**
   * A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs`
   */
  defaultRoute?: string | undefined;
  /**
   * Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project.
   */
  freeProjectForLegacyLimits?: boolean | undefined;
};

export type GetProjectsMicrofrontends1 = {
  isDefaultApp: true;
  /**
   * Timestamp when the microfrontends settings were last updated.
   */
  updatedAt: number;
  /**
   * The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together.
   */
  groupIds: Array<string>;
  /**
   * Whether microfrontends are enabled for this project.
   */
  enabled: true;
  /**
   * A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs`
   */
  defaultRoute?: string | undefined;
  /**
   * Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project.
   */
  freeProjectForLegacyLimits?: boolean | undefined;
};

export type GetProjectsResponseBodyMicrofrontends =
  | GetProjectsMicrofrontends1
  | GetProjectsMicrofrontends2
  | GetProjectsMicrofrontends3;

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

export type ResponseBodyPaths = {
  value: string;
};

export type ResponseBodyOptionsAllowlist = {
  paths: Array<ResponseBodyPaths>;
};

export type GetProjectsResponseBodyProjectsPasswordProtection = {};

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

export type GetProjectsResponseBodyProjectsPassport = {
  deploymentType: GetProjectsResponseBodyProjectsResponse200DeploymentType;
  connectorId: string;
};

export type ResponseBodySandboxUrls = {
  inheritDeploymentProtection?: boolean | undefined;
};

export type ResponseBodyProtectionConfig = {
  sandboxUrls?: ResponseBodySandboxUrls | undefined;
};

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

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

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

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

export type GetProjectsResponseBodyProjectsBuildQueue = {
  configuration?:
    | GetProjectsResponseBodyProjectsResponseConfiguration
    | undefined;
};

export type GetProjectsResponseBodyProjectsResourceConfig = {
  elasticConcurrencyEnabled?: boolean | undefined;
  fluid?: boolean | undefined;
  functionDefaultRegions: Array<string>;
  functionDefaultTimeout?: number | undefined;
  functionDefaultMemoryType?:
    | GetProjectsResponseBodyProjectsFunctionDefaultMemoryType
    | undefined;
  functionZeroConfigFailover?: boolean | undefined;
  buildMachineType?:
    | GetProjectsResponseBodyProjectsBuildMachineType
    | undefined;
  buildMachineSelection?:
    | GetProjectsResponseBodyProjectsBuildMachineSelection
    | undefined;
  buildMachineElasticLastUpdated?: number | undefined;
  isNSNBDisabled?: boolean | undefined;
  buildQueue?: GetProjectsResponseBodyProjectsBuildQueue | undefined;
  enableFunctionsBeta?: boolean | undefined;
};

/**
 * Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback.
 */
export type ResponseBodyRollbackDescription = {
  /**
   * The user who rolled back the project.
   */
  userId: string;
  /**
   * The username of the user who rolled back the project.
   */
  username: string;
  /**
   * User-supplied explanation of why they rolled back the project. Limited to 250 characters.
   */
  description: string;
  /**
   * Timestamp of when the rollback was requested.
   */
  createdAt: number;
};

/**
 * 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 GetProjectsResponseBodyProjectsStages = {
  /**
   * 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;
};

/**
 * Project-level rolling release configuration that defines how deployments should be gradually rolled out
 */
export type GetProjectsResponseBodyProjectsRollingRelease = {
  /**
   * 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<GetProjectsResponseBodyProjectsStages> | 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;
};

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

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

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

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

export type GetProjectsResponseBodyProjectsResponseBuildQueue = {
  configuration?:
    | GetProjectsResponseBodyProjectsResponse200Configuration
    | undefined;
};

export type ResponseBodyDefaultResourceConfig = {
  elasticConcurrencyEnabled?: boolean | undefined;
  fluid?: boolean | undefined;
  functionDefaultRegions: Array<string>;
  functionDefaultTimeout?: number | undefined;
  functionDefaultMemoryType?:
    | GetProjectsResponseBodyProjectsResponseFunctionDefaultMemoryType
    | undefined;
  functionZeroConfigFailover?: boolean | undefined;
  buildMachineType?:
    | GetProjectsResponseBodyProjectsResponseBuildMachineType
    | undefined;
  buildMachineSelection?:
    | GetProjectsResponseBodyProjectsResponseBuildMachineSelection
    | undefined;
  buildMachineElasticLastUpdated?: number | undefined;
  isNSNBDisabled?: boolean | undefined;
  buildQueue?: GetProjectsResponseBodyProjectsResponseBuildQueue | undefined;
  enableFunctionsBeta?: boolean | undefined;
};

export type ResponseBodyStaticIps = {
  builds: boolean;
  enabled: boolean;
  regions: Array<string>;
};

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

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

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

export type GetProjectsResponseBodyProjectsSsoProtection = {
  deploymentType:
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONDeploymentType;
  cve55182MigrationAppliedFrom?:
    | GetProjectsResponseBodyProjectsCve55182MigrationAppliedFrom
    | null
    | undefined;
  april2026SecurityIncidentMigrationAppliedFrom?:
    | GetProjectsResponseBodyProjectsApril2026SecurityIncidentMigrationAppliedFrom
    | null
    | undefined;
};

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson3AliasAssigned =
  | number
  | boolean;

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

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

export type GetProjectsResponseBodyProjectsTargets = {
  alias?: Array<string> | undefined;
  aliasAssigned?: number | boolean | null | undefined;
  builds?:
    | Array<
      GetProjectsResponseBodyProjectsResponse200ApplicationJson3ProjectsBuilds
    >
    | undefined;
  createdAt: number;
  createdIn: string;
  creator:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson3ProjectsCreator
    | null;
  deploymentHostname: string;
  name: string;
  forced?: boolean | undefined;
  id: string;
  meta?: { [k: string]: string } | undefined;
  plan: string;
  private: boolean;
  readyState: string;
  requestedAt?: number | undefined;
  target?: string | null | undefined;
  teamId?: string | null | undefined;
  type: string;
  url: string;
  userId: string;
  withCache?: boolean | undefined;
};

export type ResponseBodyPermissions = {
  oauth2Connection?: Array<ACLAction> | undefined;
  user?: Array<ACLAction> | undefined;
  userConnection?: Array<ACLAction> | undefined;
  userMfaConfiguration?: Array<ACLAction> | undefined;
  userPreference?: Array<ACLAction> | undefined;
  userSudo?: Array<ACLAction> | undefined;
  webAuthn?: Array<ACLAction> | undefined;
  accessGroup?: Array<ACLAction> | undefined;
  agent?: Array<ACLAction> | undefined;
  aiGatewayRules?: Array<ACLAction> | undefined;
  aiGatewayUsage?: Array<ACLAction> | undefined;
  alerts?: Array<ACLAction> | undefined;
  alertRules?: Array<ACLAction> | undefined;
  aliasGlobal?: Array<ACLAction> | undefined;
  analyticsSampling?: Array<ACLAction> | undefined;
  analyticsUsage?: Array<ACLAction> | undefined;
  apiKey?: Array<ACLAction> | undefined;
  apiKeyAiGateway?: Array<ACLAction> | undefined;
  apiKeyOwnedBySelf?: Array<ACLAction> | undefined;
  oauth2Application?: Array<ACLAction> | undefined;
  vercelAppInstallation?: Array<ACLAction> | undefined;
  vercelAppInstallationRequest?: Array<ACLAction> | undefined;
  auditLog?: Array<ACLAction> | undefined;
  billingAddress?: Array<ACLAction> | undefined;
  billingInformation?: Array<ACLAction> | undefined;
  billingInvoice?: Array<ACLAction> | undefined;
  billingInvoiceEmailRecipient?: Array<ACLAction> | undefined;
  billingInvoiceLanguage?: Array<ACLAction> | undefined;
  billingPlan?: Array<ACLAction> | undefined;
  billingPurchaseOrder?: Array<ACLAction> | undefined;
  billingRefund?: Array<ACLAction> | undefined;
  billingTaxId?: Array<ACLAction> | undefined;
  blob?: Array<ACLAction> | undefined;
  blobStoreTokenSet?: Array<ACLAction> | undefined;
  budget?: Array<ACLAction> | undefined;
  cacheArtifact?: Array<ACLAction> | undefined;
  cacheArtifactUsageEvent?: Array<ACLAction> | undefined;
  codeChecks?: Array<ACLAction> | undefined;
  ciInvocations?: Array<ACLAction> | undefined;
  ciLogs?: Array<ACLAction> | undefined;
  concurrentBuilds?: Array<ACLAction> | undefined;
  connect?: Array<ACLAction> | undefined;
  connectConfiguration?: Array<ACLAction> | undefined;
  connexClient?: Array<ACLAction> | undefined;
  connexClientProject?: Array<ACLAction> | undefined;
  connexToken?: Array<ACLAction> | undefined;
  buildMachineDefault?: Array<ACLAction> | undefined;
  dataCacheBillingSettings?: Array<ACLAction> | undefined;
  defaultDeploymentProtection?: Array<ACLAction> | undefined;
  deploymentPolicy?: Array<ACLAction> | undefined;
  domain?: Array<ACLAction> | undefined;
  domainAcceptDelegation?: Array<ACLAction> | undefined;
  domainAuthCodes?: Array<ACLAction> | undefined;
  domainCertificate?: Array<ACLAction> | undefined;
  domainCheckConfig?: Array<ACLAction> | undefined;
  domainMove?: Array<ACLAction> | undefined;
  domainPurchase?: Array<ACLAction> | undefined;
  domainRecord?: Array<ACLAction> | undefined;
  domainTransferIn?: Array<ACLAction> | undefined;
  drain?: Array<ACLAction> | undefined;
  edgeConfig?: Array<ACLAction> | undefined;
  edgeConfigItem?: Array<ACLAction> | undefined;
  edgeConfigSchema?: Array<ACLAction> | undefined;
  edgeConfigToken?: Array<ACLAction> | undefined;
  endpointVerification?: Array<ACLAction> | undefined;
  event?: Array<ACLAction> | undefined;
  fileUpload?: Array<ACLAction> | undefined;
  flagsExplorerSubscription?: Array<ACLAction> | undefined;
  gitRepository?: Array<ACLAction> | undefined;
  imageOptimizationNewPrice?: Array<ACLAction> | undefined;
  integration?: Array<ACLAction> | undefined;
  integrationAccount?: Array<ACLAction> | undefined;
  integrationConfiguration?: Array<ACLAction> | undefined;
  integrationConfigurationProjects?: Array<ACLAction> | undefined;
  integrationConfigurationRole?: Array<ACLAction> | undefined;
  integrationConfigurationTransfer?: Array<ACLAction> | undefined;
  integrationDeploymentAction?: Array<ACLAction> | undefined;
  integrationEvent?: Array<ACLAction> | undefined;
  integrationLog?: Array<ACLAction> | undefined;
  integrationResource?: Array<ACLAction> | undefined;
  integrationResourceData?: Array<ACLAction> | undefined;
  integrationResourceReplCommand?: Array<ACLAction> | undefined;
  integrationResourceSecrets?: Array<ACLAction> | undefined;
  integrationSSOSession?: Array<ACLAction> | undefined;
  integrationStrict?: Array<ACLAction> | undefined;
  integrationStoreTokenSet?: Array<ACLAction> | undefined;
  integrationVercelConfigurationOverride?: Array<ACLAction> | undefined;
  integrationPullRequest?: Array<ACLAction> | undefined;
  ipBlocking?: Array<ACLAction> | undefined;
  jobGlobal?: Array<ACLAction> | undefined;
  kmsIssuer?: Array<ACLAction> | undefined;
  kmsProjectGrant?: Array<ACLAction> | undefined;
  logDrain?: Array<ACLAction> | undefined;
  marketplaceBillingData?: Array<ACLAction> | undefined;
  marketplaceExperimentationEdgeConfigData?: Array<ACLAction> | undefined;
  marketplaceExperimentationItem?: Array<ACLAction> | undefined;
  marketplaceInstallationMember?: Array<ACLAction> | undefined;
  marketplaceInvoice?: Array<ACLAction> | undefined;
  marketplaceSettings?: Array<ACLAction> | undefined;
  monitoring?: Array<ACLAction> | undefined;
  monitoringAlert?: Array<ACLAction> | undefined;
  monitoringChart?: Array<ACLAction> | undefined;
  monitoringQuery?: Array<ACLAction> | undefined;
  monitoringSettings?: Array<ACLAction> | undefined;
  notificationCustomerBudget?: Array<ACLAction> | undefined;
  notificationDeploymentFailed?: Array<ACLAction> | undefined;
  notificationDomainConfiguration?: Array<ACLAction> | undefined;
  notificationDomainExpire?: Array<ACLAction> | undefined;
  notificationDomainMoved?: Array<ACLAction> | undefined;
  notificationDomainPurchase?: Array<ACLAction> | undefined;
  notificationDomainRenewal?: Array<ACLAction> | undefined;
  notificationDomainTransfer?: Array<ACLAction> | undefined;
  notificationDomainUnverified?: Array<ACLAction> | undefined;
  notificationMonitoringAlert?: Array<ACLAction> | undefined;
  notificationPaymentFailed?: Array<ACLAction> | undefined;
  notificationPreferences?: Array<ACLAction> | undefined;
  notificationStatementOfReasons?: Array<ACLAction> | undefined;
  notificationUsageAlert?: Array<ACLAction> | undefined;
  oidcFederationPolicy?: Array<ACLAction> | undefined;
  observabilityConfiguration?: Array<ACLAction> | undefined;
  observabilityFunnel?: Array<ACLAction> | undefined;
  observabilityNotebook?: Array<ACLAction> | undefined;
  openTelemetryEndpoint?: Array<ACLAction> | undefined;
  ownEvent?: Array<ACLAction> | undefined;
  organization?: Array<ACLAction> | undefined;
  organizationDomain?: Array<ACLAction> | undefined;
  organizationTeam?: Array<ACLAction> | undefined;
  passwordProtectionInvoiceItem?: Array<ACLAction> | undefined;
  paymentMethod?: Array<ACLAction> | undefined;
  permissions?: Array<ACLAction> | undefined;
  postgres?: Array<ACLAction> | undefined;
  postgresStoreTokenSet?: Array<ACLAction> | undefined;
  previewDeploymentSuffix?: Array<ACLAction> | undefined;
  privateCloudAccount?: Array<ACLAction> | undefined;
  projectTransferIn?: Array<ACLAction> | undefined;
  proTrialOnboarding?: Array<ACLAction> | undefined;
  rateLimit?: Array<ACLAction> | undefined;
  redis?: Array<ACLAction> | undefined;
  redisStoreTokenSet?: Array<ACLAction> | undefined;
  remoteCaching?: Array<ACLAction> | undefined;
  repository?: Array<ACLAction> | undefined;
  samlConfig?: Array<ACLAction> | undefined;
  secret?: Array<ACLAction> | undefined;
  sensitiveEnvironmentVariablePolicy?: Array<ACLAction> | undefined;
  sharedEnvVars?: Array<ACLAction> | undefined;
  sharedEnvVarsProduction?: Array<ACLAction> | undefined;
  space?: Array<ACLAction> | undefined;
  spaceRun?: Array<ACLAction> | undefined;
  storeIsLocked?: Array<ACLAction> | undefined;
  storeTokenSetSensitive?: Array<ACLAction> | undefined;
  storeTransfer?: Array<ACLAction> | undefined;
  supportCase?: Array<ACLAction> | undefined;
  supportCaseComment?: Array<ACLAction> | undefined;
  team?: Array<ACLAction> | undefined;
  teamAccessRequest?: Array<ACLAction> | undefined;
  teamFellowMembership?: Array<ACLAction> | undefined;
  teamGitExclusivity?: Array<ACLAction> | undefined;
  teamInvite?: Array<ACLAction> | undefined;
  teamInviteCode?: Array<ACLAction> | undefined;
  teamInviteLink?: Array<ACLAction> | undefined;
  teamJoin?: Array<ACLAction> | undefined;
  teamMemberMfaStatus?: Array<ACLAction> | undefined;
  teamMicrofrontends?: Array<ACLAction> | undefined;
  teamOwnMembership?: Array<ACLAction> | undefined;
  teamOwnMembershipDisconnectSAML?: Array<ACLAction> | undefined;
  teamSudo?: Array<ACLAction> | undefined;
  teamTokenInvalidation?: Array<ACLAction> | undefined;
  token?: Array<ACLAction> | undefined;
  toolbarComment?: Array<ACLAction> | undefined;
  usage?: Array<ACLAction> | undefined;
  usageCycle?: Array<ACLAction> | undefined;
  vcrRepository?: Array<ACLAction> | undefined;
  vercelRun?: Array<ACLAction> | undefined;
  vpcPeeringConnection?: Array<ACLAction> | undefined;
  webAnalyticsPlan?: Array<ACLAction> | undefined;
  webhook?: Array<ACLAction> | undefined;
  webhookEvent?: Array<ACLAction> | undefined;
  aliasProject?: Array<ACLAction> | undefined;
  aliasProtectionBypass?: Array<ACLAction> | undefined;
  bulkRedirects?: Array<ACLAction> | undefined;
  buildMachine?: Array<ACLAction> | undefined;
  connectConfigurationLink?: Array<ACLAction> | undefined;
  dataCacheNamespace?: Array<ACLAction> | undefined;
  deployment?: Array<ACLAction> | undefined;
  deploymentBuildLogs?: Array<ACLAction> | undefined;
  deploymentCheck?: Array<ACLAction> | undefined;
  deploymentCheckPreview?: Array<ACLAction> | undefined;
  deploymentCheckReRunFromProductionBranch?: Array<ACLAction> | undefined;
  deploymentProductionGit?: Array<ACLAction> | undefined;
  deploymentV0?: Array<ACLAction> | undefined;
  deploymentPreview?: Array<ACLAction> | undefined;
  deploymentPrivate?: Array<ACLAction> | undefined;
  deploymentPromote?: Array<ACLAction> | undefined;
  deploymentRollback?: Array<ACLAction> | undefined;
  edgeCacheNamespace?: Array<ACLAction> | undefined;
  environments?: Array<ACLAction> | undefined;
  job?: Array<ACLAction> | undefined;
  logs?: Array<ACLAction> | undefined;
  logsPreset?: Array<ACLAction> | undefined;
  observabilityData?: Array<ACLAction> | undefined;
  onDemandBuild?: Array<ACLAction> | undefined;
  onDemandConcurrency?: Array<ACLAction> | undefined;
  optionsAllowlist?: Array<ACLAction> | undefined;
  passwordProtection?: Array<ACLAction> | undefined;
  privateLinkEndpoint?: Array<ACLAction> | undefined;
  productionAliasProtectionBypass?: Array<ACLAction> | undefined;
  project?: Array<ACLAction> | undefined;
  projectAccessGroup?: Array<ACLAction> | undefined;
  projectAnalyticsSampling?: Array<ACLAction> | undefined;
  projectAnalyticsUsage?: Array<ACLAction> | undefined;
  projectCheck?: Array<ACLAction> | undefined;
  projectCheckRun?: Array<ACLAction> | undefined;
  projectDeploymentExpiration?: Array<ACLAction> | undefined;
  projectDeploymentHook?: Array<ACLAction> | undefined;
  projectDeploymentProtectionStrict?: Array<ACLAction> | undefined;
  projectDomain?: Array<ACLAction> | undefined;
  projectDomainCheckConfig?: Array<ACLAction> | undefined;
  projectDomainMove?: Array<ACLAction> | undefined;
  projectEvent?: Array<ACLAction> | undefined;
  projectEnvVars?: Array<ACLAction> | undefined;
  projectEnvVarsProduction?: Array<ACLAction> | undefined;
  projectEnvVarsUnownedByIntegration?: Array<ACLAction> | undefined;
  projectFlags?: Array<ACLAction> | undefined;
  projectFlagsProduction?: Array<ACLAction> | undefined;
  projectFlagsSDKKey?: Array<ACLAction> | undefined;
  projectFromV0?: Array<ACLAction> | undefined;
  projectId?: Array<ACLAction> | undefined;
  projectIntegrationConfiguration?: Array<ACLAction> | undefined;
  projectLink?: Array<ACLAction> | undefined;
  projectMember?: Array<ACLAction> | undefined;
  projectMonitoring?: Array<ACLAction> | undefined;
  projectOIDCToken?: Array<ACLAction> | undefined;
  projectPermissions?: Array<ACLAction> | undefined;
  projectProductionBranch?: Array<ACLAction> | undefined;
  projectProtectionBypass?: Array<ACLAction> | undefined;
  projectRollingRelease?: Array<ACLAction> | undefined;
  projectRoutes?: Array<ACLAction> | undefined;
  projectSupportCase?: Array<ACLAction> | undefined;
  projectSupportCaseComment?: Array<ACLAction> | undefined;
  projectTier?: Array<ACLAction> | undefined;
  projectTransfer?: Array<ACLAction> | undefined;
  projectTransferOut?: Array<ACLAction> | undefined;
  projectUsage?: Array<ACLAction> | undefined;
  pageIntegrity?: Array<ACLAction> | undefined;
  seawallConfig?: Array<ACLAction> | undefined;
  securityPlusConfiguration?: Array<ACLAction> | undefined;
  shareableLinkStrict?: Array<ACLAction> | undefined;
  sharedEnvVarConnection?: Array<ACLAction> | undefined;
  skewProtection?: Array<ACLAction> | undefined;
  analytics?: Array<ACLAction> | undefined;
  trustedIps?: Array<ACLAction> | undefined;
  trustedSources?: Array<ACLAction> | undefined;
  v0Chat?: Array<ACLAction> | undefined;
  webAnalytics?: Array<ACLAction> | undefined;
};

export type ResponseBodyLastRollbackTarget = {};

export const ResponseBodyJobStatus = {
  Failed: "failed",
  InProgress: "in-progress",
  Pending: "pending",
  Skipped: "skipped",
  Succeeded: "succeeded",
} as const;
export type ResponseBodyJobStatus = ClosedEnum<typeof ResponseBodyJobStatus>;

export const GetProjectsResponseBodyProjectsResponse200ApplicationJson3Type = {
  Promote: "promote",
  Rollback: "rollback",
} as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson3Type =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson3Type
  >;

export type ResponseBodyLastAliasRequest = {
  fromDeploymentId: string | null;
  toDeploymentId: string;
  /**
   * If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release.
   */
  fromRollingReleaseId?: string | undefined;
  jobStatus: ResponseBodyJobStatus;
  requestedAt: number;
  type: GetProjectsResponseBodyProjectsResponse200ApplicationJson3Type;
};

export type GetProjectsProtectionBypass2 = {
  createdAt: number;
  createdBy: string;
  scope: "automation-bypass";
  /**
   * When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var.
   */
  isEnvVar?: boolean | undefined;
  /**
   * Optional note about the bypass to be displayed in the UI
   */
  note?: string | undefined;
};

export type GetProjectsProtectionBypass1 = {
  createdAt: number;
  createdBy: string;
  scope: "integration-automation-bypass";
  integrationId: string;
  configurationId: string;
};

export type ResponseBodyProtectionBypass =
  | GetProjectsProtectionBypass1
  | GetProjectsProtectionBypass2;

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

export type GetProjectsTrustedIps2 = {
  deploymentType: GetProjectsTrustedIpsProjectsDeploymentType;
};

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

export type GetProjectsTrustedIpsAddresses = {
  value: string;
  note?: string | undefined;
};

export const GetProjectsTrustedIpsProtectionMode = {
  Additional: "additional",
  Exclusive: "exclusive",
} as const;
export type GetProjectsTrustedIpsProtectionMode = ClosedEnum<
  typeof GetProjectsTrustedIpsProtectionMode
>;

export type GetProjectsTrustedIps1 = {
  deploymentType: GetProjectsTrustedIpsDeploymentType;
  addresses: Array<GetProjectsTrustedIpsAddresses>;
  protectionMode: GetProjectsTrustedIpsProtectionMode;
};

export type ResponseBodyTrustedIps =
  | GetProjectsTrustedIps1
  | GetProjectsTrustedIps2;

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

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

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

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

export type GetProjectsResponseBodyProjectsFrom =
  | GetProjectsFromProjectsResponse1
  | GetProjectsFromProjectsResponse2;

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

/**
 * The target envs on the current project that may be accessed.
 */
export type GetProjectsToProjectsResponse200ApplicationJson2 = {
  /**
   * System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project.
   */
  slugs?: Array<string> | undefined;
  preset:
    GetProjectsToProjectsResponse200ApplicationJSONResponseBody3ProjectsTrustedSourcesProjectsPreset;
};

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

/**
 * The target envs on the current project that may be accessed.
 */
export type GetProjectsToProjectsResponse200ApplicationJson1 = {
  /**
   * System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project.
   */
  slugs: Array<string>;
  preset?:
    | GetProjectsToProjectsResponse200ApplicationJSONResponseBody3ProjectsTrustedSourcesPreset
    | undefined;
};

export type GetProjectsResponseBodyProjectsResponse200To =
  | GetProjectsToProjectsResponse200ApplicationJson1
  | GetProjectsToProjectsResponse200ApplicationJson2;

/**
 * Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets.
 */
export type GetProjectsResponseBodyProjectsCustomAllow = {
  from: GetProjectsFromProjectsResponse1 | GetProjectsFromProjectsResponse2;
  to:
    | GetProjectsToProjectsResponse200ApplicationJson1
    | GetProjectsToProjectsResponse200ApplicationJson2;
};

export type GetProjectsResponseBodyProjectsResponseProjects = {
  label?: string | undefined;
  /**
   * Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets.
   */
  customAllow?: Array<GetProjectsResponseBodyProjectsCustomAllow> | undefined;
};

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

/**
 * The target envs on the current project that may be accessed.
 */
export type GetProjectsToProjectsResponse2002 = {
  /**
   * System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project.
   */
  slugs?: Array<string> | undefined;
  preset:
    GetProjectsToProjectsResponse200ApplicationJSONResponseBody3ProjectsPreset;
};

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

/**
 * The target envs on the current project that may be accessed.
 */
export type GetProjectsToProjectsResponse2001 = {
  /**
   * System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project.
   */
  slugs: Array<string>;
  preset?:
    | GetProjectsToProjectsResponse200ApplicationJSONResponseBody3Preset
    | undefined;
};

export type GetProjectsResponseBodyProjectsResponseTo =
  | GetProjectsToProjectsResponse2001
  | GetProjectsToProjectsResponse2002;

export type GetProjectsResponseBodyProjectsOidcProviders = {
  to: GetProjectsToProjectsResponse2001 | GetProjectsToProjectsResponse2002;
  label?: string | undefined;
  claims: { [k: string]: Array<string> };
};

export type GetProjectsResponseBodyProjectsTrustedSources = {
  projects?:
    | { [k: string]: GetProjectsResponseBodyProjectsResponseProjects }
    | undefined;
  oidcProviders?: {
    [k: string]: Array<GetProjectsResponseBodyProjectsOidcProviders>;
  } | undefined;
};

export type GetProjectsResponseBodyProjectsGitComments = {
  /**
   * Whether the Vercel bot should comment on PRs
   */
  onPullRequest: boolean;
  /**
   * Whether the Vercel bot should comment on commits
   */
  onCommit: boolean;
};

/**
 * Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead
 */
export const GetProjectsResponseBodyProjectsCreateDeployments = {
  Disabled: "disabled",
  Enabled: "enabled",
} as const;
/**
 * Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead
 */
export type GetProjectsResponseBodyProjectsCreateDeployments = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsCreateDeployments
>;

/**
 * Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment.
 */
export type GetProjectsResponseBodyProjectsConsolidatedGitCommitStatus = {
  /**
   * Whether consolidated commit status is enabled.
   */
  enabled: boolean;
  /**
   * Whether to propagate individual deployment failures to the consolidated status.
   */
  propagateFailures: boolean;
};

export type GetProjectsResponseBodyProjectsGitProviderOptions = {
  /**
   * Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead
   */
  createDeployments: GetProjectsResponseBodyProjectsCreateDeployments;
  /**
   * Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.
   */
  disableRepositoryDispatchEvents?: boolean | undefined;
  /**
   * Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.
   */
  requireVerifiedCommits?: boolean | undefined;
  /**
   * Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled.
   */
  gitCommitStatus?: boolean | undefined;
  /**
   * Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment.
   */
  consolidatedGitCommitStatus?:
    | GetProjectsResponseBodyProjectsConsolidatedGitCommitStatus
    | undefined;
};

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

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

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

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

/** @internal */
export type GetProjectsRequest$Outbound = {
  from?: string | undefined;
  gitForkProtection?: string | undefined;
  limit?: string | undefined;
  search?: string | undefined;
  repo?: string | undefined;
  repoId?: string | undefined;
  repoUrl?: string | undefined;
  excludeRepos?: string | undefined;
  edgeConfigId?: string | undefined;
  edgeConfigTokenId?: string | undefined;
  deprecated?: boolean | undefined;
  elasticConcurrencyEnabled?: string | undefined;
  staticIpsEnabled?: string | undefined;
  buildMachineTypes?: string | undefined;
  buildQueueConfiguration?: string | undefined;
  teamId?: string | undefined;
  slug?: string | undefined;
};

/** @internal */
export const GetProjectsRequest$outboundSchema: z.ZodType<
  GetProjectsRequest$Outbound,
  z.ZodTypeDef,
  GetProjectsRequest
> = z.object({
  from: z.string().optional(),
  gitForkProtection: GitForkProtection$outboundSchema.optional(),
  limit: z.string().optional(),
  search: z.string().optional(),
  repo: z.string().optional(),
  repoId: z.string().optional(),
  repoUrl: z.string().optional(),
  excludeRepos: z.string().optional(),
  edgeConfigId: z.string().optional(),
  edgeConfigTokenId: z.string().optional(),
  deprecated: z.boolean().optional(),
  elasticConcurrencyEnabled: ElasticConcurrencyEnabled$outboundSchema
    .optional(),
  staticIpsEnabled: StaticIpsEnabled$outboundSchema.optional(),
  buildMachineTypes: z.string().optional(),
  buildQueueConfiguration: QueryParamBuildQueueConfiguration$outboundSchema
    .optional(),
  teamId: z.string().optional(),
  slug: z.string().optional(),
});

export function getProjectsRequestToJSON(
  getProjectsRequest: GetProjectsRequest,
): string {
  return JSON.stringify(
    GetProjectsRequest$outboundSchema.parse(getProjectsRequest),
  );
}

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

/** @internal */
export const GetProjectsResponseBodyProjectsSpeedInsights$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsSpeedInsights,
    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()),
    paidAt: types.optional(types.number()),
  });

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

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

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

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

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

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

/** @internal */
export const ResponseBodyConnectConfigurations$inboundSchema: z.ZodType<
  ResponseBodyConnectConfigurations,
  z.ZodTypeDef,
  unknown
> = z.object({
  envId: smartUnion([types.string(), GetProjectsEnvId2$inboundSchema]),
  connectConfigurationId: types.string(),
  dc: types.optional(types.string()),
  passive: types.boolean(),
  buildsEnabled: types.boolean(),
  aws: types.optional(z.lazy(() => ResponseBodyAws$inboundSchema)),
  createdAt: types.number(),
  updatedAt: types.number(),
});

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

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

/** @internal */
export const ResponseBodyDefinitions$inboundSchema: z.ZodType<
  ResponseBodyDefinitions,
  z.ZodTypeDef,
  unknown
> = z.object({
  host: types.string(),
  path: types.string(),
  schedule: types.string(),
  source: types.optional(GetProjectsResponseBodySource$inboundSchema),
  description: types.optional(types.string()),
  hostInferred: types.optional(types.boolean()),
});

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

/** @internal */
export const GetProjectsResponseBodyCrons$inboundSchema: z.ZodType<
  GetProjectsResponseBodyCrons,
  z.ZodTypeDef,
  unknown
> = z.object({
  enabledAt: types.number(),
  disabledAt: types.nullable(types.number()),
  updatedAt: types.number(),
  deploymentId: types.nullable(types.string()),
  definitions: z.array(z.lazy(() => ResponseBodyDefinitions$inboundSchema)),
});

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

/** @internal */
export const ResponseBodyDataCache$inboundSchema: z.ZodType<
  ResponseBodyDataCache,
  z.ZodTypeDef,
  unknown
> = z.object({
  userDisabled: types.boolean(),
  storageSizeBytes: z.nullable(types.number()).optional(),
  unlimited: types.optional(types.boolean()),
});

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsContentHint$inboundSchema:
  z.ZodType<GetProjectsResponseBodyProjectsContentHint, z.ZodTypeDef, unknown> =
    z.union([
      z.lazy(() => GetProjectsContentHintProjectsResponse1$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse2$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse3$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse4$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse5$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse6$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse7$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse8$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse9$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse10$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse11$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse12$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse13$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse14$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse15$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse16$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse17$inboundSchema),
    ]);

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsEnv$inboundSchema: z.ZodType<
  GetProjectsResponseBodyProjectsEnv,
  z.ZodTypeDef,
  unknown
> = z.object({
  target: types.optional(
    smartUnion([
      z.array(GetProjectsTargetProjectsResponse1$inboundSchema),
      GetProjectsTargetProjectsResponse2$inboundSchema,
    ]),
  ),
  type: GetProjectsResponseBodyProjectsResponse200Type$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()),
  edgeConfigId: z.nullable(types.string()).optional(),
  edgeConfigTokenId: z.nullable(types.string()).optional(),
  contentHint: z.nullable(
    z.union([
      z.lazy(() => GetProjectsContentHintProjectsResponse1$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse2$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse3$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse4$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse5$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse6$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse7$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse8$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse9$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse10$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse11$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse12$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse13$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse14$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse15$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse16$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjectsResponse17$inboundSchema),
    ]),
  ).optional(),
  internalContentHint: z.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsInternalContentHint$inboundSchema
    ),
  ).optional(),
  comment: types.optional(types.string()),
  customEnvironmentIds: types.optional(z.array(types.string())),
});

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const ResponseBodyServices$inboundSchema: z.ZodType<
  ResponseBodyServices,
  z.ZodTypeDef,
  unknown
> = z.object({
  serviceName: types.string(),
  serviceType: types.optional(ResponseBodyServiceType$inboundSchema),
  framework: types.optional(
    GetProjectsResponseBodyProjectsResponseFramework$inboundSchema,
  ),
  runtime: types.optional(types.string()),
});

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

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

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

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

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

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

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

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

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

/** @internal */
export const ResponseBodyJobs$inboundSchema: z.ZodType<
  ResponseBodyJobs,
  z.ZodTypeDef,
  unknown
> = z.object({
  lint: types.optional(z.lazy(() => ResponseBodyLint$inboundSchema)),
  typecheck: types.optional(z.lazy(() => ResponseBodyTypecheck$inboundSchema)),
  "mfe-config-present": types.optional(
    z.lazy(() => ResponseBodyMfeConfigPresent$inboundSchema),
  ),
}).transform((v) => {
  return remap$(v, {
    "mfe-config-present": "mfeConfigPresent",
  });
});

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsLatestDeployments$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsLatestDeployments,
    z.ZodTypeDef,
    unknown
  > = z.object({
    alias: types.optional(z.array(types.string())),
    aliasAssigned: z.nullable(smartUnion([types.number(), types.boolean()]))
      .optional(),
    builds: types.optional(
      z.array(z.lazy(() =>
        GetProjectsResponseBodyProjectsResponse200ApplicationJson3Builds$inboundSchema
      )),
    ),
    createdAt: types.number(),
    createdIn: types.string(),
    creator: types.nullable(
      z.lazy(() =>
        GetProjectsResponseBodyProjectsResponse200ApplicationJson3Creator$inboundSchema
      ),
    ),
    deploymentHostname: types.string(),
    name: types.string(),
    forced: types.optional(types.boolean()),
    id: types.string(),
    meta: types.optional(z.record(types.string())),
    plan: types.string(),
    private: types.boolean(),
    readyState: types.string(),
    requestedAt: types.optional(types.number()),
    target: z.nullable(types.string()).optional(),
    teamId: z.nullable(types.string()).optional(),
    type: types.string(),
    url: types.string(),
    userId: types.string(),
    withCache: types.optional(types.boolean()),
  });

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsLinkProjectsResponse5$inboundSchema: z.ZodType<
  GetProjectsLinkProjectsResponse5,
  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(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3Projects5DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

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

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

/** @internal */
export const GetProjectsLinkProjectsResponse4$inboundSchema: z.ZodType<
  GetProjectsLinkProjectsResponse4,
  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(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3Projects4DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

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

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

/** @internal */
export const GetProjectsLinkProjectsResponse3$inboundSchema: z.ZodType<
  GetProjectsLinkProjectsResponse3,
  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(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3Projects3DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

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

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

/** @internal */
export const GetProjectsLinkProjectsResponse2$inboundSchema: z.ZodType<
  GetProjectsLinkProjectsResponse2,
  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(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3ProjectsDeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

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

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

/** @internal */
export const GetProjectsLinkProjectsResponse1$inboundSchema: z.ZodType<
  GetProjectsLinkProjectsResponse1,
  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(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody3DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsResponseBodyProjectsLink$inboundSchema: z.ZodType<
  GetProjectsResponseBodyProjectsLink,
  z.ZodTypeDef,
  unknown
> = z.union([
  z.lazy(() => GetProjectsLinkProjectsResponse1$inboundSchema),
  z.lazy(() => GetProjectsLinkProjectsResponse2$inboundSchema),
  z.lazy(() => GetProjectsLinkProjectsResponse3$inboundSchema),
  z.lazy(() => GetProjectsLinkProjectsResponse4$inboundSchema),
  z.lazy(() => GetProjectsLinkProjectsResponse5$inboundSchema),
  z.lazy(() => GetProjectsLinkProjectsResponse6$inboundSchema),
]);

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

/** @internal */
export const GetProjectsMicrofrontends3$inboundSchema: z.ZodType<
  GetProjectsMicrofrontends3,
  z.ZodTypeDef,
  unknown
> = z.object({
  updatedAt: types.number(),
  groupIds: z.array(z.any()),
  enabled: types.literal(false),
  freeProjectForLegacyLimits: types.optional(types.boolean()),
});

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

/** @internal */
export const GetProjectsMicrofrontends2$inboundSchema: z.ZodType<
  GetProjectsMicrofrontends2,
  z.ZodTypeDef,
  unknown
> = z.object({
  isDefaultApp: types.optional(types.literal(false)),
  routeObservabilityToThisProject: types.optional(types.boolean()),
  doNotRouteWithMicrofrontendsRouting: types.optional(types.boolean()),
  updatedAt: types.number(),
  groupIds: z.array(types.string()),
  enabled: types.literal(true),
  defaultRoute: types.optional(types.string()),
  freeProjectForLegacyLimits: types.optional(types.boolean()),
});

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

/** @internal */
export const GetProjectsMicrofrontends1$inboundSchema: z.ZodType<
  GetProjectsMicrofrontends1,
  z.ZodTypeDef,
  unknown
> = z.object({
  isDefaultApp: types.literal(true),
  updatedAt: types.number(),
  groupIds: z.array(types.string()),
  enabled: types.literal(true),
  defaultRoute: types.optional(types.string()),
  freeProjectForLegacyLimits: types.optional(types.boolean()),
});

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

/** @internal */
export const GetProjectsResponseBodyMicrofrontends$inboundSchema: z.ZodType<
  GetProjectsResponseBodyMicrofrontends,
  z.ZodTypeDef,
  unknown
> = smartUnion([
  z.lazy(() => GetProjectsMicrofrontends1$inboundSchema),
  z.lazy(() => GetProjectsMicrofrontends2$inboundSchema),
  z.lazy(() => GetProjectsMicrofrontends3$inboundSchema),
]);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

export function getProjectsResponseBodyProjectsBuildQueueFromJSON(
  jsonString: string,
): SafeParseResult<
  GetProjectsResponseBodyProjectsBuildQueue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      GetProjectsResponseBodyProjectsBuildQueue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'GetProjectsResponseBodyProjectsBuildQueue' 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(
      GetProjectsResponseBodyProjectsFunctionDefaultMemoryType$inboundSchema,
    ),
    functionZeroConfigFailover: types.optional(types.boolean()),
    buildMachineType: types.optional(
      GetProjectsResponseBodyProjectsBuildMachineType$inboundSchema,
    ),
    buildMachineSelection: types.optional(
      GetProjectsResponseBodyProjectsBuildMachineSelection$inboundSchema,
    ),
    buildMachineElasticLastUpdated: types.optional(types.number()),
    isNSNBDisabled: types.optional(types.boolean()),
    buildQueue: types.optional(
      z.lazy(() => GetProjectsResponseBodyProjectsBuildQueue$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 ResponseBodyRollbackDescription$inboundSchema: z.ZodType<
  ResponseBodyRollbackDescription,
  z.ZodTypeDef,
  unknown
> = z.object({
  userId: types.string(),
  username: types.string(),
  description: types.string(),
  createdAt: types.number(),
});

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const ResponseBodyDefaultResourceConfig$inboundSchema: z.ZodType<
  ResponseBodyDefaultResourceConfig,
  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(
    GetProjectsResponseBodyProjectsResponseFunctionDefaultMemoryType$inboundSchema,
  ),
  functionZeroConfigFailover: types.optional(types.boolean()),
  buildMachineType: types.optional(
    GetProjectsResponseBodyProjectsResponseBuildMachineType$inboundSchema,
  ),
  buildMachineSelection: types.optional(
    GetProjectsResponseBodyProjectsResponseBuildMachineSelection$inboundSchema,
  ),
  buildMachineElasticLastUpdated: types.optional(types.number()),
  isNSNBDisabled: types.optional(types.boolean()),
  buildQueue: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponseBuildQueue$inboundSchema
    ),
  ),
  enableFunctionsBeta: types.optional(types.boolean()),
});

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

/** @internal */
export const ResponseBodyStaticIps$inboundSchema: z.ZodType<
  ResponseBodyStaticIps,
  z.ZodTypeDef,
  unknown
> = z.object({
  builds: types.boolean(),
  enabled: types.boolean(),
  regions: z.array(types.string()),
});

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsSsoProtection$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsSsoProtection,
    z.ZodTypeDef,
    unknown
  > = z.object({
    deploymentType:
      GetProjectsResponseBodyProjectsResponse200ApplicationJSONDeploymentType$inboundSchema,
    cve55182MigrationAppliedFrom: z.nullable(
      GetProjectsResponseBodyProjectsCve55182MigrationAppliedFrom$inboundSchema,
    ).optional(),
    april2026SecurityIncidentMigrationAppliedFrom: z.nullable(
      GetProjectsResponseBodyProjectsApril2026SecurityIncidentMigrationAppliedFrom$inboundSchema,
    ).optional(),
  });

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsTargets$inboundSchema: z.ZodType<
  GetProjectsResponseBodyProjectsTargets,
  z.ZodTypeDef,
  unknown
> = z.object({
  alias: types.optional(z.array(types.string())),
  aliasAssigned: z.nullable(smartUnion([types.number(), types.boolean()]))
    .optional(),
  builds: types.optional(
    z.array(z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson3ProjectsBuilds$inboundSchema
    )),
  ),
  createdAt: types.number(),
  createdIn: types.string(),
  creator: types.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson3ProjectsCreator$inboundSchema
    ),
  ),
  deploymentHostname: types.string(),
  name: types.string(),
  forced: types.optional(types.boolean()),
  id: types.string(),
  meta: types.optional(z.record(types.string())),
  plan: types.string(),
  private: types.boolean(),
  readyState: types.string(),
  requestedAt: types.optional(types.number()),
  target: z.nullable(types.string()).optional(),
  teamId: z.nullable(types.string()).optional(),
  type: types.string(),
  url: types.string(),
  userId: types.string(),
  withCache: types.optional(types.boolean()),
});

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

/** @internal */
export const ResponseBodyPermissions$inboundSchema: z.ZodType<
  ResponseBodyPermissions,
  z.ZodTypeDef,
  unknown
> = z.object({
  oauth2Connection: types.optional(z.array(ACLAction$inboundSchema)),
  user: types.optional(z.array(ACLAction$inboundSchema)),
  userConnection: types.optional(z.array(ACLAction$inboundSchema)),
  userMfaConfiguration: types.optional(z.array(ACLAction$inboundSchema)),
  userPreference: types.optional(z.array(ACLAction$inboundSchema)),
  userSudo: types.optional(z.array(ACLAction$inboundSchema)),
  webAuthn: types.optional(z.array(ACLAction$inboundSchema)),
  accessGroup: types.optional(z.array(ACLAction$inboundSchema)),
  agent: types.optional(z.array(ACLAction$inboundSchema)),
  aiGatewayRules: types.optional(z.array(ACLAction$inboundSchema)),
  aiGatewayUsage: types.optional(z.array(ACLAction$inboundSchema)),
  alerts: types.optional(z.array(ACLAction$inboundSchema)),
  alertRules: types.optional(z.array(ACLAction$inboundSchema)),
  aliasGlobal: types.optional(z.array(ACLAction$inboundSchema)),
  analyticsSampling: types.optional(z.array(ACLAction$inboundSchema)),
  analyticsUsage: types.optional(z.array(ACLAction$inboundSchema)),
  apiKey: types.optional(z.array(ACLAction$inboundSchema)),
  apiKeyAiGateway: types.optional(z.array(ACLAction$inboundSchema)),
  apiKeyOwnedBySelf: types.optional(z.array(ACLAction$inboundSchema)),
  oauth2Application: types.optional(z.array(ACLAction$inboundSchema)),
  vercelAppInstallation: types.optional(z.array(ACLAction$inboundSchema)),
  vercelAppInstallationRequest: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  auditLog: types.optional(z.array(ACLAction$inboundSchema)),
  billingAddress: types.optional(z.array(ACLAction$inboundSchema)),
  billingInformation: types.optional(z.array(ACLAction$inboundSchema)),
  billingInvoice: types.optional(z.array(ACLAction$inboundSchema)),
  billingInvoiceEmailRecipient: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  billingInvoiceLanguage: types.optional(z.array(ACLAction$inboundSchema)),
  billingPlan: types.optional(z.array(ACLAction$inboundSchema)),
  billingPurchaseOrder: types.optional(z.array(ACLAction$inboundSchema)),
  billingRefund: types.optional(z.array(ACLAction$inboundSchema)),
  billingTaxId: types.optional(z.array(ACLAction$inboundSchema)),
  blob: types.optional(z.array(ACLAction$inboundSchema)),
  blobStoreTokenSet: types.optional(z.array(ACLAction$inboundSchema)),
  budget: types.optional(z.array(ACLAction$inboundSchema)),
  cacheArtifact: types.optional(z.array(ACLAction$inboundSchema)),
  cacheArtifactUsageEvent: types.optional(z.array(ACLAction$inboundSchema)),
  codeChecks: types.optional(z.array(ACLAction$inboundSchema)),
  ciInvocations: types.optional(z.array(ACLAction$inboundSchema)),
  ciLogs: types.optional(z.array(ACLAction$inboundSchema)),
  concurrentBuilds: types.optional(z.array(ACLAction$inboundSchema)),
  connect: types.optional(z.array(ACLAction$inboundSchema)),
  connectConfiguration: types.optional(z.array(ACLAction$inboundSchema)),
  connexClient: types.optional(z.array(ACLAction$inboundSchema)),
  connexClientProject: types.optional(z.array(ACLAction$inboundSchema)),
  connexToken: types.optional(z.array(ACLAction$inboundSchema)),
  buildMachineDefault: types.optional(z.array(ACLAction$inboundSchema)),
  dataCacheBillingSettings: types.optional(z.array(ACLAction$inboundSchema)),
  defaultDeploymentProtection: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentPolicy: types.optional(z.array(ACLAction$inboundSchema)),
  domain: types.optional(z.array(ACLAction$inboundSchema)),
  domainAcceptDelegation: types.optional(z.array(ACLAction$inboundSchema)),
  domainAuthCodes: types.optional(z.array(ACLAction$inboundSchema)),
  domainCertificate: types.optional(z.array(ACLAction$inboundSchema)),
  domainCheckConfig: types.optional(z.array(ACLAction$inboundSchema)),
  domainMove: types.optional(z.array(ACLAction$inboundSchema)),
  domainPurchase: types.optional(z.array(ACLAction$inboundSchema)),
  domainRecord: types.optional(z.array(ACLAction$inboundSchema)),
  domainTransferIn: types.optional(z.array(ACLAction$inboundSchema)),
  drain: types.optional(z.array(ACLAction$inboundSchema)),
  edgeConfig: types.optional(z.array(ACLAction$inboundSchema)),
  edgeConfigItem: types.optional(z.array(ACLAction$inboundSchema)),
  edgeConfigSchema: types.optional(z.array(ACLAction$inboundSchema)),
  edgeConfigToken: types.optional(z.array(ACLAction$inboundSchema)),
  endpointVerification: types.optional(z.array(ACLAction$inboundSchema)),
  event: types.optional(z.array(ACLAction$inboundSchema)),
  fileUpload: types.optional(z.array(ACLAction$inboundSchema)),
  flagsExplorerSubscription: types.optional(z.array(ACLAction$inboundSchema)),
  gitRepository: types.optional(z.array(ACLAction$inboundSchema)),
  imageOptimizationNewPrice: types.optional(z.array(ACLAction$inboundSchema)),
  integration: types.optional(z.array(ACLAction$inboundSchema)),
  integrationAccount: types.optional(z.array(ACLAction$inboundSchema)),
  integrationConfiguration: types.optional(z.array(ACLAction$inboundSchema)),
  integrationConfigurationProjects: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  integrationConfigurationRole: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  integrationConfigurationTransfer: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  integrationDeploymentAction: types.optional(z.array(ACLAction$inboundSchema)),
  integrationEvent: types.optional(z.array(ACLAction$inboundSchema)),
  integrationLog: types.optional(z.array(ACLAction$inboundSchema)),
  integrationResource: types.optional(z.array(ACLAction$inboundSchema)),
  integrationResourceData: types.optional(z.array(ACLAction$inboundSchema)),
  integrationResourceReplCommand: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  integrationResourceSecrets: types.optional(z.array(ACLAction$inboundSchema)),
  integrationSSOSession: types.optional(z.array(ACLAction$inboundSchema)),
  integrationStrict: types.optional(z.array(ACLAction$inboundSchema)),
  integrationStoreTokenSet: types.optional(z.array(ACLAction$inboundSchema)),
  integrationVercelConfigurationOverride: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  integrationPullRequest: types.optional(z.array(ACLAction$inboundSchema)),
  ipBlocking: types.optional(z.array(ACLAction$inboundSchema)),
  jobGlobal: types.optional(z.array(ACLAction$inboundSchema)),
  kmsIssuer: types.optional(z.array(ACLAction$inboundSchema)),
  kmsProjectGrant: types.optional(z.array(ACLAction$inboundSchema)),
  logDrain: types.optional(z.array(ACLAction$inboundSchema)),
  marketplaceBillingData: types.optional(z.array(ACLAction$inboundSchema)),
  marketplaceExperimentationEdgeConfigData: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  marketplaceExperimentationItem: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  marketplaceInstallationMember: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  marketplaceInvoice: types.optional(z.array(ACLAction$inboundSchema)),
  marketplaceSettings: types.optional(z.array(ACLAction$inboundSchema)),
  Monitoring: types.optional(z.array(ACLAction$inboundSchema)),
  monitoringAlert: types.optional(z.array(ACLAction$inboundSchema)),
  monitoringChart: types.optional(z.array(ACLAction$inboundSchema)),
  monitoringQuery: types.optional(z.array(ACLAction$inboundSchema)),
  monitoringSettings: types.optional(z.array(ACLAction$inboundSchema)),
  notificationCustomerBudget: types.optional(z.array(ACLAction$inboundSchema)),
  notificationDeploymentFailed: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  notificationDomainConfiguration: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  notificationDomainExpire: types.optional(z.array(ACLAction$inboundSchema)),
  notificationDomainMoved: types.optional(z.array(ACLAction$inboundSchema)),
  notificationDomainPurchase: types.optional(z.array(ACLAction$inboundSchema)),
  notificationDomainRenewal: types.optional(z.array(ACLAction$inboundSchema)),
  notificationDomainTransfer: types.optional(z.array(ACLAction$inboundSchema)),
  notificationDomainUnverified: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  NotificationMonitoringAlert: types.optional(z.array(ACLAction$inboundSchema)),
  notificationPaymentFailed: types.optional(z.array(ACLAction$inboundSchema)),
  notificationPreferences: types.optional(z.array(ACLAction$inboundSchema)),
  notificationStatementOfReasons: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  notificationUsageAlert: types.optional(z.array(ACLAction$inboundSchema)),
  oidcFederationPolicy: types.optional(z.array(ACLAction$inboundSchema)),
  observabilityConfiguration: types.optional(z.array(ACLAction$inboundSchema)),
  observabilityFunnel: types.optional(z.array(ACLAction$inboundSchema)),
  observabilityNotebook: types.optional(z.array(ACLAction$inboundSchema)),
  openTelemetryEndpoint: types.optional(z.array(ACLAction$inboundSchema)),
  ownEvent: types.optional(z.array(ACLAction$inboundSchema)),
  organization: types.optional(z.array(ACLAction$inboundSchema)),
  organizationDomain: types.optional(z.array(ACLAction$inboundSchema)),
  organizationTeam: types.optional(z.array(ACLAction$inboundSchema)),
  passwordProtectionInvoiceItem: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  paymentMethod: types.optional(z.array(ACLAction$inboundSchema)),
  permissions: types.optional(z.array(ACLAction$inboundSchema)),
  postgres: types.optional(z.array(ACLAction$inboundSchema)),
  postgresStoreTokenSet: types.optional(z.array(ACLAction$inboundSchema)),
  previewDeploymentSuffix: types.optional(z.array(ACLAction$inboundSchema)),
  privateCloudAccount: types.optional(z.array(ACLAction$inboundSchema)),
  projectTransferIn: types.optional(z.array(ACLAction$inboundSchema)),
  proTrialOnboarding: types.optional(z.array(ACLAction$inboundSchema)),
  rateLimit: types.optional(z.array(ACLAction$inboundSchema)),
  redis: types.optional(z.array(ACLAction$inboundSchema)),
  redisStoreTokenSet: types.optional(z.array(ACLAction$inboundSchema)),
  remoteCaching: types.optional(z.array(ACLAction$inboundSchema)),
  repository: types.optional(z.array(ACLAction$inboundSchema)),
  samlConfig: types.optional(z.array(ACLAction$inboundSchema)),
  secret: types.optional(z.array(ACLAction$inboundSchema)),
  sensitiveEnvironmentVariablePolicy: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  sharedEnvVars: types.optional(z.array(ACLAction$inboundSchema)),
  sharedEnvVarsProduction: types.optional(z.array(ACLAction$inboundSchema)),
  space: types.optional(z.array(ACLAction$inboundSchema)),
  spaceRun: types.optional(z.array(ACLAction$inboundSchema)),
  storeIsLocked: types.optional(z.array(ACLAction$inboundSchema)),
  storeTokenSetSensitive: types.optional(z.array(ACLAction$inboundSchema)),
  storeTransfer: types.optional(z.array(ACLAction$inboundSchema)),
  supportCase: types.optional(z.array(ACLAction$inboundSchema)),
  supportCaseComment: types.optional(z.array(ACLAction$inboundSchema)),
  team: types.optional(z.array(ACLAction$inboundSchema)),
  teamAccessRequest: types.optional(z.array(ACLAction$inboundSchema)),
  teamFellowMembership: types.optional(z.array(ACLAction$inboundSchema)),
  teamGitExclusivity: types.optional(z.array(ACLAction$inboundSchema)),
  teamInvite: types.optional(z.array(ACLAction$inboundSchema)),
  teamInviteCode: types.optional(z.array(ACLAction$inboundSchema)),
  teamInviteLink: types.optional(z.array(ACLAction$inboundSchema)),
  teamJoin: types.optional(z.array(ACLAction$inboundSchema)),
  teamMemberMfaStatus: types.optional(z.array(ACLAction$inboundSchema)),
  teamMicrofrontends: types.optional(z.array(ACLAction$inboundSchema)),
  teamOwnMembership: types.optional(z.array(ACLAction$inboundSchema)),
  teamOwnMembershipDisconnectSAML: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  teamSudo: types.optional(z.array(ACLAction$inboundSchema)),
  teamTokenInvalidation: types.optional(z.array(ACLAction$inboundSchema)),
  token: types.optional(z.array(ACLAction$inboundSchema)),
  toolbarComment: types.optional(z.array(ACLAction$inboundSchema)),
  usage: types.optional(z.array(ACLAction$inboundSchema)),
  usageCycle: types.optional(z.array(ACLAction$inboundSchema)),
  vcrRepository: types.optional(z.array(ACLAction$inboundSchema)),
  vercelRun: types.optional(z.array(ACLAction$inboundSchema)),
  vpcPeeringConnection: types.optional(z.array(ACLAction$inboundSchema)),
  webAnalyticsPlan: types.optional(z.array(ACLAction$inboundSchema)),
  webhook: types.optional(z.array(ACLAction$inboundSchema)),
  "webhook-event": types.optional(z.array(ACLAction$inboundSchema)),
  aliasProject: types.optional(z.array(ACLAction$inboundSchema)),
  aliasProtectionBypass: types.optional(z.array(ACLAction$inboundSchema)),
  bulkRedirects: types.optional(z.array(ACLAction$inboundSchema)),
  buildMachine: types.optional(z.array(ACLAction$inboundSchema)),
  connectConfigurationLink: types.optional(z.array(ACLAction$inboundSchema)),
  dataCacheNamespace: types.optional(z.array(ACLAction$inboundSchema)),
  deployment: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentBuildLogs: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentCheck: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentCheckPreview: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentCheckReRunFromProductionBranch: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  deploymentProductionGit: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentV0: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentPreview: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentPrivate: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentPromote: types.optional(z.array(ACLAction$inboundSchema)),
  deploymentRollback: types.optional(z.array(ACLAction$inboundSchema)),
  edgeCacheNamespace: types.optional(z.array(ACLAction$inboundSchema)),
  environments: types.optional(z.array(ACLAction$inboundSchema)),
  job: types.optional(z.array(ACLAction$inboundSchema)),
  logs: types.optional(z.array(ACLAction$inboundSchema)),
  logsPreset: types.optional(z.array(ACLAction$inboundSchema)),
  observabilityData: types.optional(z.array(ACLAction$inboundSchema)),
  onDemandBuild: types.optional(z.array(ACLAction$inboundSchema)),
  onDemandConcurrency: types.optional(z.array(ACLAction$inboundSchema)),
  optionsAllowlist: types.optional(z.array(ACLAction$inboundSchema)),
  passwordProtection: types.optional(z.array(ACLAction$inboundSchema)),
  privateLinkEndpoint: types.optional(z.array(ACLAction$inboundSchema)),
  productionAliasProtectionBypass: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  project: types.optional(z.array(ACLAction$inboundSchema)),
  projectAccessGroup: types.optional(z.array(ACLAction$inboundSchema)),
  projectAnalyticsSampling: types.optional(z.array(ACLAction$inboundSchema)),
  projectAnalyticsUsage: types.optional(z.array(ACLAction$inboundSchema)),
  projectCheck: types.optional(z.array(ACLAction$inboundSchema)),
  projectCheckRun: types.optional(z.array(ACLAction$inboundSchema)),
  projectDeploymentExpiration: types.optional(z.array(ACLAction$inboundSchema)),
  projectDeploymentHook: types.optional(z.array(ACLAction$inboundSchema)),
  projectDeploymentProtectionStrict: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  projectDomain: types.optional(z.array(ACLAction$inboundSchema)),
  projectDomainCheckConfig: types.optional(z.array(ACLAction$inboundSchema)),
  projectDomainMove: types.optional(z.array(ACLAction$inboundSchema)),
  projectEvent: types.optional(z.array(ACLAction$inboundSchema)),
  projectEnvVars: types.optional(z.array(ACLAction$inboundSchema)),
  projectEnvVarsProduction: types.optional(z.array(ACLAction$inboundSchema)),
  projectEnvVarsUnownedByIntegration: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  projectFlags: types.optional(z.array(ACLAction$inboundSchema)),
  projectFlagsProduction: types.optional(z.array(ACLAction$inboundSchema)),
  projectFlagsSdkKey: types.optional(z.array(ACLAction$inboundSchema)),
  projectFromV0: types.optional(z.array(ACLAction$inboundSchema)),
  projectId: types.optional(z.array(ACLAction$inboundSchema)),
  projectIntegrationConfiguration: types.optional(
    z.array(ACLAction$inboundSchema),
  ),
  projectLink: types.optional(z.array(ACLAction$inboundSchema)),
  projectMember: types.optional(z.array(ACLAction$inboundSchema)),
  projectMonitoring: types.optional(z.array(ACLAction$inboundSchema)),
  projectOIDCToken: types.optional(z.array(ACLAction$inboundSchema)),
  projectPermissions: types.optional(z.array(ACLAction$inboundSchema)),
  projectProductionBranch: types.optional(z.array(ACLAction$inboundSchema)),
  projectProtectionBypass: types.optional(z.array(ACLAction$inboundSchema)),
  projectRollingRelease: types.optional(z.array(ACLAction$inboundSchema)),
  projectRoutes: types.optional(z.array(ACLAction$inboundSchema)),
  projectSupportCase: types.optional(z.array(ACLAction$inboundSchema)),
  projectSupportCaseComment: types.optional(z.array(ACLAction$inboundSchema)),
  projectTier: types.optional(z.array(ACLAction$inboundSchema)),
  projectTransfer: types.optional(z.array(ACLAction$inboundSchema)),
  projectTransferOut: types.optional(z.array(ACLAction$inboundSchema)),
  projectUsage: types.optional(z.array(ACLAction$inboundSchema)),
  pageIntegrity: types.optional(z.array(ACLAction$inboundSchema)),
  seawallConfig: types.optional(z.array(ACLAction$inboundSchema)),
  securityPlusConfiguration: types.optional(z.array(ACLAction$inboundSchema)),
  shareableLinkStrict: types.optional(z.array(ACLAction$inboundSchema)),
  sharedEnvVarConnection: types.optional(z.array(ACLAction$inboundSchema)),
  skewProtection: types.optional(z.array(ACLAction$inboundSchema)),
  analytics: types.optional(z.array(ACLAction$inboundSchema)),
  trustedIps: types.optional(z.array(ACLAction$inboundSchema)),
  trustedSources: types.optional(z.array(ACLAction$inboundSchema)),
  v0Chat: types.optional(z.array(ACLAction$inboundSchema)),
  webAnalytics: types.optional(z.array(ACLAction$inboundSchema)),
}).transform((v) => {
  return remap$(v, {
    "Monitoring": "monitoring",
    "NotificationMonitoringAlert": "notificationMonitoringAlert",
    "webhook-event": "webhookEvent",
    "projectFlagsSdkKey": "projectFlagsSDKKey",
  });
});

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

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

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

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

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

/** @internal */
export const ResponseBodyLastAliasRequest$inboundSchema: z.ZodType<
  ResponseBodyLastAliasRequest,
  z.ZodTypeDef,
  unknown
> = z.object({
  fromDeploymentId: types.nullable(types.string()),
  toDeploymentId: types.string(),
  fromRollingReleaseId: types.optional(types.string()),
  jobStatus: ResponseBodyJobStatus$inboundSchema,
  requestedAt: types.number(),
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson3Type$inboundSchema,
});

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

/** @internal */
export const GetProjectsProtectionBypass2$inboundSchema: z.ZodType<
  GetProjectsProtectionBypass2,
  z.ZodTypeDef,
  unknown
> = z.object({
  createdAt: types.number(),
  createdBy: types.string(),
  scope: types.literal("automation-bypass"),
  isEnvVar: types.optional(types.boolean()),
  note: types.optional(types.string()),
});

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

/** @internal */
export const GetProjectsProtectionBypass1$inboundSchema: z.ZodType<
  GetProjectsProtectionBypass1,
  z.ZodTypeDef,
  unknown
> = z.object({
  createdAt: types.number(),
  createdBy: types.string(),
  scope: types.literal("integration-automation-bypass"),
  integrationId: types.string(),
  configurationId: types.string(),
});

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsTrustedIps1$inboundSchema: z.ZodType<
  GetProjectsTrustedIps1,
  z.ZodTypeDef,
  unknown
> = z.object({
  deploymentType: GetProjectsTrustedIpsDeploymentType$inboundSchema,
  addresses: z.array(
    z.lazy(() => GetProjectsTrustedIpsAddresses$inboundSchema),
  ),
  protectionMode: GetProjectsTrustedIpsProtectionMode$inboundSchema,
});

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsCustomAllow$inboundSchema:
  z.ZodType<GetProjectsResponseBodyProjectsCustomAllow, z.ZodTypeDef, unknown> =
    z.object({
      from: smartUnion([
        z.lazy(() => GetProjectsFromProjectsResponse1$inboundSchema),
        z.lazy(() => GetProjectsFromProjectsResponse2$inboundSchema),
      ]),
      to: smartUnion([
        z.lazy(() =>
          GetProjectsToProjectsResponse200ApplicationJson1$inboundSchema
        ),
        z.lazy(() =>
          GetProjectsToProjectsResponse200ApplicationJson2$inboundSchema
        ),
      ]),
    });

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponseProjects$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponseProjects,
    z.ZodTypeDef,
    unknown
  > = z.object({
    label: types.optional(types.string()),
    customAllow: types.optional(
      z.array(z.lazy(() =>
        GetProjectsResponseBodyProjectsCustomAllow$inboundSchema
      )),
    ),
  });

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsOidcProviders$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsOidcProviders,
    z.ZodTypeDef,
    unknown
  > = z.object({
    to: smartUnion([
      z.lazy(() => GetProjectsToProjectsResponse2001$inboundSchema),
      z.lazy(() => GetProjectsToProjectsResponse2002$inboundSchema),
    ]),
    label: types.optional(types.string()),
    claims: z.record(z.array(types.string())),
  });

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

/** @internal */
export const GetProjectsResponseBodyProjectsTrustedSources$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsTrustedSources,
    z.ZodTypeDef,
    unknown
  > = z.object({
    projects: types.optional(
      z.record(z.lazy(() =>
        GetProjectsResponseBodyProjectsResponseProjects$inboundSchema
      )),
    ),
    oidcProviders: types.optional(
      z.record(z.array(z.lazy(() =>
        GetProjectsResponseBodyProjectsOidcProviders$inboundSchema
      ))),
    ),
  });

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsGitProviderOptions$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsGitProviderOptions,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createDeployments:
      GetProjectsResponseBodyProjectsCreateDeployments$inboundSchema,
    disableRepositoryDispatchEvents: types.optional(types.boolean()),
    requireVerifiedCommits: types.optional(types.boolean()),
    gitCommitStatus: types.optional(types.boolean()),
    consolidatedGitCommitStatus: types.optional(
      z.lazy(() =>
        GetProjectsResponseBodyProjectsConsolidatedGitCommitStatus$inboundSchema
      ),
    ),
  });

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