UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

56 lines 2.79 kB
import type { CDK } from "@k8ts/sample-interfaces"; import type { Ref2_Of, Resource_Entity, Resource_Ref_Keys_Of, Resource_Ref_Min } from "@k8ts/instruments"; import { Resource_Child } from "@k8ts/instruments"; import { v1 } from "../../../kinds/default"; import { Container_Mount_Volume, type Container_Mount_Props } from "../container/mounts"; export interface Pod_Volume_Backend_Pvc<A extends Ref2_Of<v1.PersistentVolumeClaim._> = Ref2_Of<v1.PersistentVolumeClaim._>> { $backend: A; readOnly?: boolean; } declare const allowedVolumeResourceKinds: readonly [import("@k8ts/instruments").Kind.Kind<"", "v1", "ConfigMap">, import("@k8ts/instruments").Kind.Kind<"", "v1", "Secret">]; type VolumeResourceKind = (typeof allowedVolumeResourceKinds)[number]; export type AllowedResources = Resource_Ref_Min<VolumeResourceKind>; export interface Pod_Volume_Backend_ConfigMap<A extends Ref2_Of<v1.ConfigMap._> = Ref2_Of<v1.ConfigMap._>> { $backend: A; optional?: boolean; mappings?: { [K in Resource_Ref_Keys_Of<A>]?: string; }; } export interface Pod_Volume_Backend_Secret<A extends Ref2_Of<v1.Secret._> = Ref2_Of<v1.Secret._>> { $backend: A; optional?: boolean; mappings?: { [K in Resource_Ref_Keys_Of<A>]?: string; }; } export type Pod_Volume_Backend = Pod_Volume_Backend_Pvc | Pod_Volume_Backend_ConfigMap | Pod_Volume_Backend_Secret; type _KeysOf<T> = T extends { $backend: { keys: infer Ks extends string[]; }; } ? Ks[number] : never; type _Mapped<T> = T extends { mappings: infer M; } ? { [K in _KeysOf<T>]: K extends keyof M ? M[K] : K; }[_KeysOf<T>] : _KeysOf<T>; export type Pod_Volume_Backend_Known_Paths<T extends Pod_Volume_Backend> = string & _Mapped<T>; export declare abstract class Pod_Volume<P extends Pod_Volume_Backend = Pod_Volume_Backend> extends Resource_Child<P> { get kind(): import("@k8ts/instruments").Kind.SubKind<"Volume", import("@k8ts/instruments").Kind.Kind<"", "v1", "Pod">>; get sourceNamespace(): string | undefined; protected __needs__(): Record<string, Resource_Entity | Resource_Entity[] | undefined>; Mount(options?: Omit<Container_Mount_Props<Pod_Volume_Backend_Known_Paths<P>>, "volume">): Container_Mount_Volume; protected abstract __submanifest__(): CDK.Volume; } export declare class Pod_Volume_Pvc extends Pod_Volume<Pod_Volume_Backend_Pvc> { protected __submanifest__(): CDK.Volume; } export declare class Pod_Volume_ConfigMap extends Pod_Volume<Pod_Volume_Backend_ConfigMap> { protected __submanifest__(): CDK.Volume; } export declare class Pod_Volume_Secret<Source extends Ref2_Of<v1.Secret._>> extends Pod_Volume<Pod_Volume_Backend_Secret> { protected __submanifest__(): CDK.Volume; } export {}; //# sourceMappingURL=volumes.d.ts.map