k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
56 lines • 2.79 kB
TypeScript
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