UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

41 lines 2.73 kB
import { Cron, Origin, type LiveRefable } from "@k8ts/instruments"; import { ConfigMap, DataMode, Deployment, HttpRoute, Namespace, PodTemplate, Pv, Pvc, Secret, Service } from "../resources"; import { K8tsCronJob, K8tsCronJobProps } from "../resources/cronjob"; import { AssemblyStage } from "../runner/exporter"; import type { FileOrigin } from "./origin"; export type Factory = Factory.Factory; export declare namespace Factory { type Factory = Cluster | Namespaced; type FromScope<FScope extends FileOrigin.Scope> = FScope extends "cluster" ? Cluster : Namespaced; class Base { readonly origin: Origin; constructor(origin: Origin); protected _metaWithName(name: string): import("@k8ts/metadata/.").Meta.Meta; } class Cluster extends Base { PersistentVolume<Name extends string, Mode extends DataMode = "Filesystem">(name: Name, props: Pv.Props<Mode>): LiveRefable<Pv.Pv<Mode>, Name>; Namespace<Name extends string>(name: Name, props?: Namespace.Props): LiveRefable<Namespace, Name>; } class Namespaced extends Base { Claim<Name extends string, Mode extends DataMode = "Filesystem">(name: Name, mode: Pvc.Props<Mode>): LiveRefable<Pvc.Pvc<Mode>, Name>; CronJob<Name extends string, Cr extends Cron.Record>(name: Name, props: K8tsCronJobProps<Cr>): LiveRefable<K8tsCronJob<Cr>, Name>; ConfigMap<Name extends string>(name: Name, props: ConfigMap.Props): LiveRefable<ConfigMap, Name>; HttpRoute<Name extends string, Ports extends string>(name: Name, props: HttpRoute.Props<Ports>): LiveRefable<HttpRoute<Ports>, Name>; Secret<Name extends string>(name: Name, props: Secret.Props): LiveRefable<Secret, Name>; Service<Name extends string, DeployPorts extends string, ExposedPorts extends DeployPorts>(name: Name, props: Service.Props<DeployPorts, ExposedPorts>): LiveRefable<Service<ExposedPorts>, Name>; Deployment<Name extends string>(name: Name, props: Deployment.NormalProps): { Template(templateProps?: PodTemplate.PodProps): { POD<Ports extends string>(producer: PodTemplate.PodContainerProducer<Ports>): LiveRefable<Deployment<Ports>, Name>; }; }; DomainRoute<Name extends string, Ports extends string>(name: Name, props: HttpRoute.Props<Ports>): LiveRefable<HttpRoute<Ports>, Name>; PodTemplate<Name extends string, Ports extends string>(name: Name, props: PodTemplate.Props<Ports> | PodTemplate.Props<Ports>["$POD"]): LiveRefable<PodTemplate<Ports>, Name>; } } export declare class Stage { private stage; text: string; constructor(stage: AssemblyStage); private get _emoji(); } //# sourceMappingURL=factory.d.ts.map