/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 7c55fd669d92 */ import * as z from "zod/v4"; import { ClosedEnum } from "../types/enums.js"; import { DeploymentPortalAccentColor, DeploymentPortalAccentColor$outboundSchema, } from "./deploymentportalaccentcolor.js"; import { DeploymentPortalAppearancePreset, DeploymentPortalAppearancePreset$outboundSchema, } from "./deploymentportalappearancepreset.js"; import { DeploymentPortalDensity, DeploymentPortalDensity$outboundSchema, } from "./deploymentportaldensity.js"; /** * The Git Provider of the repository */ export const UpdateProjectType = { Github: "github", } as const; /** * The Git Provider of the repository */ export type UpdateProjectType = ClosedEnum; /** * Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`. */ export type UpdateProjectGitRepository = { /** * The Git Provider of the repository */ type: UpdateProjectType; /** * The name of the git repository */ repo: string; }; /** * Customer-facing deployment portal appearance settings. */ export type UpdateProjectDeploymentPortalAppearance = { /** * Optional project-specific avatar override for the deployment portal. */ avatarUrl?: string | null | undefined; /** * Curated visual style for the deployment portal. */ preset?: DeploymentPortalAppearancePreset | undefined; /** * Accent color used for highlights and primary actions. */ accentColor?: DeploymentPortalAccentColor | undefined; /** * Optional portal title. Defaults to the project name. */ title?: string | null | undefined; /** * Optional customer-facing subtitle. */ subtitle?: string | null | undefined; /** * Optional support or contact URL. */ supportUrl?: string | null | undefined; /** * Optional documentation URL. */ docsUrl?: string | null | undefined; /** * Layout density for portal content. */ density?: DeploymentPortalDensity | undefined; }; /** * Target OS and architecture for compiled binaries. * * @remarks * * Used as keys in package output maps (CLI binaries, Terraform providers, etc.) * and for cross-compilation target selection during builds. */ export const UpdateProjectBinaryTarget = { WindowsX64: "windows-x64", LinuxX64: "linux-x64", LinuxArm64: "linux-arm64", DarwinArm64: "darwin-arm64", } as const; /** * Target OS and architecture for compiled binaries. * * @remarks * * Used as keys in package output maps (CLI binaries, Terraform providers, etc.) * and for cross-compilation target selection during builds. */ export type UpdateProjectBinaryTarget = ClosedEnum< typeof UpdateProjectBinaryTarget >; /** * CLI package configuration. If null, CLI packages will not be generated. */ export type UpdateProjectCli = { /** * Binary targets required by this package's setup consumer. * * @remarks * * Older package rows omit this field and retain the historical all-target * behavior. Callers creating new packages should state their target set. */ binaryTargets?: Array | undefined; /** * Human-friendly display name for help banners and about text */ displayName: string; /** * Binary name displayed in help and usage (e.g., "acmectl") */ name: string; /** * Whether CLI package generation is enabled */ enabled: boolean; }; /** * CloudFormation package configuration. If null, CloudFormation packages will not be generated. */ export type UpdateProjectCloudformation = { /** * Whether CloudFormation package generation is enabled */ enabled: boolean; /** * Human-friendly application name shown in generated install artifacts */ displayName?: string | null | undefined; }; /** * Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated. */ export type UpdateProjectOperatorImage = { /** * Short brand slug used for generated resource names. */ brand?: string | null | undefined; /** * Human-friendly display name for logs and startup messages */ displayName: string; /** * Branded environment variable prefix (e.g., "ACME"). */ envPrefix?: string | null | undefined; /** * Branded Kubernetes/cloud label domain (e.g., "acme.dev"). */ labelDomain?: string | null | undefined; /** * Image name (e.g., "acme-operator") */ name: string; /** * Whether Operator image package generation is enabled */ enabled: boolean; }; /** * Helm chart package configuration. If null, Helm packages will not be generated. */ export type UpdateProjectHelm = { /** * Chart name (e.g., "acme-operator") */ chartName: string; /** * Human-friendly description of the chart */ description: string; /** * Whether Helm chart package generation is enabled */ enabled: boolean; }; /** * Terraform package configuration. If null, Terraform packages will not be generated. */ export type UpdateProjectTerraform = { /** * Whether Terraform package generation is enabled */ enabled: boolean; /** * Human-friendly application name shown in generated install artifacts */ displayName?: string | null | undefined; }; /** * Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform) */ export type UpdateProjectPackagesConfig = { /** * CLI package configuration. If null, CLI packages will not be generated. */ cli?: UpdateProjectCli | null | undefined; /** * CloudFormation package configuration. If null, CloudFormation packages will not be generated. */ cloudformation?: UpdateProjectCloudformation | null | undefined; /** * Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated. */ operatorImage?: UpdateProjectOperatorImage | null | undefined; /** * Helm chart package configuration. If null, Helm packages will not be generated. */ helm?: UpdateProjectHelm | null | undefined; /** * Terraform package configuration. If null, Terraform packages will not be generated. */ terraform?: UpdateProjectTerraform | null | undefined; }; /** * Project default private managers for new push deployments. */ export type UpdateProjectDefaultManagers = { /** * Unique identifier for a default private manager. */ aws?: string | null | undefined; /** * Unique identifier for a default private manager. */ gcp?: string | null | undefined; /** * Unique identifier for a default private manager. */ azure?: string | null | undefined; /** * Unique identifier for a default private manager. */ kubernetes?: string | null | undefined; /** * Unique identifier for a default private manager. */ machines?: string | null | undefined; /** * Unique identifier for a default private manager. */ local?: string | null | undefined; }; export type UpdateProject = { /** * Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`. */ gitRepository?: UpdateProjectGitRepository | null | undefined; /** * The name of a directory or relative path to the source code of your project. When null is used it will default to the project root */ rootDirectory?: string | null | undefined; /** * Customer-facing deployment portal appearance settings. */ deploymentPortalAppearance?: | UpdateProjectDeploymentPortalAppearance | null | undefined; /** * Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform) */ packagesConfig?: UpdateProjectPackagesConfig | null | undefined; /** * Selected domain for this project (null = default system domain) */ domainId?: string | null | undefined; /** * Project default private managers for new push deployments. */ defaultManagers?: UpdateProjectDefaultManagers | null | undefined; }; /** @internal */ export const UpdateProjectType$outboundSchema: z.ZodEnum< typeof UpdateProjectType > = z.enum(UpdateProjectType); /** @internal */ export type UpdateProjectGitRepository$Outbound = { type: string; repo: string; }; /** @internal */ export const UpdateProjectGitRepository$outboundSchema: z.ZodType< UpdateProjectGitRepository$Outbound, UpdateProjectGitRepository > = z.object({ type: UpdateProjectType$outboundSchema, repo: z.string(), }); export function updateProjectGitRepositoryToJSON( updateProjectGitRepository: UpdateProjectGitRepository, ): string { return JSON.stringify( UpdateProjectGitRepository$outboundSchema.parse(updateProjectGitRepository), ); } /** @internal */ export type UpdateProjectDeploymentPortalAppearance$Outbound = { avatarUrl?: string | null | undefined; preset: string; accentColor: string; title?: string | null | undefined; subtitle?: string | null | undefined; supportUrl?: string | null | undefined; docsUrl?: string | null | undefined; density: string; }; /** @internal */ export const UpdateProjectDeploymentPortalAppearance$outboundSchema: z.ZodType< UpdateProjectDeploymentPortalAppearance$Outbound, UpdateProjectDeploymentPortalAppearance > = z.object({ avatarUrl: z.nullable(z.string()).optional(), preset: DeploymentPortalAppearancePreset$outboundSchema.default("clean"), accentColor: DeploymentPortalAccentColor$outboundSchema.default("blue"), title: z.nullable(z.string()).optional(), subtitle: z.nullable(z.string()).optional(), supportUrl: z.nullable(z.string()).optional(), docsUrl: z.nullable(z.string()).optional(), density: DeploymentPortalDensity$outboundSchema.default("comfortable"), }); export function updateProjectDeploymentPortalAppearanceToJSON( updateProjectDeploymentPortalAppearance: UpdateProjectDeploymentPortalAppearance, ): string { return JSON.stringify( UpdateProjectDeploymentPortalAppearance$outboundSchema.parse( updateProjectDeploymentPortalAppearance, ), ); } /** @internal */ export const UpdateProjectBinaryTarget$outboundSchema: z.ZodEnum< typeof UpdateProjectBinaryTarget > = z.enum(UpdateProjectBinaryTarget); /** @internal */ export type UpdateProjectCli$Outbound = { binaryTargets?: Array | undefined; displayName: string; name: string; enabled: boolean; }; /** @internal */ export const UpdateProjectCli$outboundSchema: z.ZodType< UpdateProjectCli$Outbound, UpdateProjectCli > = z.object({ binaryTargets: z.array(UpdateProjectBinaryTarget$outboundSchema).optional(), displayName: z.string(), name: z.string(), enabled: z.boolean(), }); export function updateProjectCliToJSON( updateProjectCli: UpdateProjectCli, ): string { return JSON.stringify( UpdateProjectCli$outboundSchema.parse(updateProjectCli), ); } /** @internal */ export type UpdateProjectCloudformation$Outbound = { enabled: boolean; displayName?: string | null | undefined; }; /** @internal */ export const UpdateProjectCloudformation$outboundSchema: z.ZodType< UpdateProjectCloudformation$Outbound, UpdateProjectCloudformation > = z.object({ enabled: z.boolean(), displayName: z.nullable(z.string()).optional(), }); export function updateProjectCloudformationToJSON( updateProjectCloudformation: UpdateProjectCloudformation, ): string { return JSON.stringify( UpdateProjectCloudformation$outboundSchema.parse( updateProjectCloudformation, ), ); } /** @internal */ export type UpdateProjectOperatorImage$Outbound = { brand?: string | null | undefined; displayName: string; envPrefix?: string | null | undefined; labelDomain?: string | null | undefined; name: string; enabled: boolean; }; /** @internal */ export const UpdateProjectOperatorImage$outboundSchema: z.ZodType< UpdateProjectOperatorImage$Outbound, UpdateProjectOperatorImage > = z.object({ brand: z.nullable(z.string()).optional(), displayName: z.string(), envPrefix: z.nullable(z.string()).optional(), labelDomain: z.nullable(z.string()).optional(), name: z.string(), enabled: z.boolean(), }); export function updateProjectOperatorImageToJSON( updateProjectOperatorImage: UpdateProjectOperatorImage, ): string { return JSON.stringify( UpdateProjectOperatorImage$outboundSchema.parse(updateProjectOperatorImage), ); } /** @internal */ export type UpdateProjectHelm$Outbound = { chartName: string; description: string; enabled: boolean; }; /** @internal */ export const UpdateProjectHelm$outboundSchema: z.ZodType< UpdateProjectHelm$Outbound, UpdateProjectHelm > = z.object({ chartName: z.string(), description: z.string(), enabled: z.boolean(), }); export function updateProjectHelmToJSON( updateProjectHelm: UpdateProjectHelm, ): string { return JSON.stringify( UpdateProjectHelm$outboundSchema.parse(updateProjectHelm), ); } /** @internal */ export type UpdateProjectTerraform$Outbound = { enabled: boolean; displayName?: string | null | undefined; }; /** @internal */ export const UpdateProjectTerraform$outboundSchema: z.ZodType< UpdateProjectTerraform$Outbound, UpdateProjectTerraform > = z.object({ enabled: z.boolean(), displayName: z.nullable(z.string()).optional(), }); export function updateProjectTerraformToJSON( updateProjectTerraform: UpdateProjectTerraform, ): string { return JSON.stringify( UpdateProjectTerraform$outboundSchema.parse(updateProjectTerraform), ); } /** @internal */ export type UpdateProjectPackagesConfig$Outbound = { cli?: UpdateProjectCli$Outbound | null | undefined; cloudformation?: UpdateProjectCloudformation$Outbound | null | undefined; operatorImage?: UpdateProjectOperatorImage$Outbound | null | undefined; helm?: UpdateProjectHelm$Outbound | null | undefined; terraform?: UpdateProjectTerraform$Outbound | null | undefined; }; /** @internal */ export const UpdateProjectPackagesConfig$outboundSchema: z.ZodType< UpdateProjectPackagesConfig$Outbound, UpdateProjectPackagesConfig > = z.object({ cli: z.nullable(z.lazy(() => UpdateProjectCli$outboundSchema)).optional(), cloudformation: z.nullable( z.lazy(() => UpdateProjectCloudformation$outboundSchema), ).optional(), operatorImage: z.nullable( z.lazy(() => UpdateProjectOperatorImage$outboundSchema), ).optional(), helm: z.nullable(z.lazy(() => UpdateProjectHelm$outboundSchema)).optional(), terraform: z.nullable(z.lazy(() => UpdateProjectTerraform$outboundSchema)) .optional(), }); export function updateProjectPackagesConfigToJSON( updateProjectPackagesConfig: UpdateProjectPackagesConfig, ): string { return JSON.stringify( UpdateProjectPackagesConfig$outboundSchema.parse( updateProjectPackagesConfig, ), ); } /** @internal */ export type UpdateProjectDefaultManagers$Outbound = { aws?: string | null | undefined; gcp?: string | null | undefined; azure?: string | null | undefined; kubernetes?: string | null | undefined; machines?: string | null | undefined; local?: string | null | undefined; }; /** @internal */ export const UpdateProjectDefaultManagers$outboundSchema: z.ZodType< UpdateProjectDefaultManagers$Outbound, UpdateProjectDefaultManagers > = z.object({ aws: z.nullable(z.string()).optional(), gcp: z.nullable(z.string()).optional(), azure: z.nullable(z.string()).optional(), kubernetes: z.nullable(z.string()).optional(), machines: z.nullable(z.string()).optional(), local: z.nullable(z.string()).optional(), }); export function updateProjectDefaultManagersToJSON( updateProjectDefaultManagers: UpdateProjectDefaultManagers, ): string { return JSON.stringify( UpdateProjectDefaultManagers$outboundSchema.parse( updateProjectDefaultManagers, ), ); } /** @internal */ export type UpdateProject$Outbound = { gitRepository?: UpdateProjectGitRepository$Outbound | null | undefined; rootDirectory?: string | null | undefined; deploymentPortalAppearance?: | UpdateProjectDeploymentPortalAppearance$Outbound | null | undefined; packagesConfig?: UpdateProjectPackagesConfig$Outbound | null | undefined; domainId?: string | null | undefined; defaultManagers?: UpdateProjectDefaultManagers$Outbound | null | undefined; }; /** @internal */ export const UpdateProject$outboundSchema: z.ZodType< UpdateProject$Outbound, UpdateProject > = z.object({ gitRepository: z.nullable( z.lazy(() => UpdateProjectGitRepository$outboundSchema), ).optional(), rootDirectory: z.nullable(z.string()).optional(), deploymentPortalAppearance: z.nullable( z.lazy(() => UpdateProjectDeploymentPortalAppearance$outboundSchema), ).optional(), packagesConfig: z.nullable( z.lazy(() => UpdateProjectPackagesConfig$outboundSchema), ).optional(), domainId: z.nullable(z.string()).optional(), defaultManagers: z.nullable( z.lazy(() => UpdateProjectDefaultManagers$outboundSchema), ).optional(), }); export function updateProjectToJSON(updateProject: UpdateProject): string { return JSON.stringify(UpdateProject$outboundSchema.parse(updateProject)); }