TypeScript types for KubeVirt, Kubernetes, CDI, NMState, and related OpenShift Console models.
Auto generated API reference: KubeVirt API Docs
| Export | Source |
|---|---|
@kubevirt-ui/kubevirt-api/kubevirt |
kubevirt OpenAPI swagger |
@kubevirt-ui/kubevirt-api/kubernetes |
kubernetes OpenAPI swagger |
@kubevirt-ui/kubevirt-api/containerized-data-importer |
CDI OpenAPI swagger |
@kubevirt-ui/kubevirt-api/nmstate |
kubernetes-nmstate CRDs |
@kubevirt-ui/kubevirt-api/virt-template |
virt-template CRDs |
@kubevirt-ui/kubevirt-api/console |
OpenShift Console models |
KubeVirt API reference: http://kubevirt.io/api-reference/master/index.html
yarn add @kubevirt-ui/kubevirt-apiimport { IoK8sApiCoreV1Pod } from '@kubevirt-ui/kubevirt-api/kubernetes';
import { V1VirtualMachine } from '@kubevirt-ui/kubevirt-api/kubevirt';
import { V1beta1DataVolume } from '@kubevirt-ui/kubevirt-api/containerized-data-importer';
import { VirtualMachineModelGroupVersionKind } from '@kubevirt-ui/kubevirt-api/console/models';
import VirtualMachineModel from '@kubevirt-ui/kubevirt-api/console/models/VirtualMachineModel';Each package exports TypeScript interfaces only. There is no runtime, no serializers, and no generated API client.
- Install dependencies:
yarn-
Pin upstream versions in
scripts/versions.jsonif needed. -
Remove previously generated output (preserves
kubevirt/test/andnmstate/custom-models/):
yarn clean:all- Generate types:
yarn generate- Validate and build:
yarn test
yarn build- Generate docs (optional):
yarn generate:docsAll generation is handled by a single script:
yarn generate # runs scripts/generate-types.shUsed for kubevirt, kubernetes, and containerized-data-importer:
- Download upstream swagger JSON
- Generate types with
swagger-typescript-api(--no-client --modular --patch, plusscripts/swagger-type-names.config.cjsfor K8s naming) - Split the output into one file per interface via
scripts/split-data-contracts.mjs
Used for nmstate and virt-template:
- Download upstream CRD YAML into
<package>/.crds/ - Convert CRDs to OpenAPI with
crdtoapi→<package>/.openapi.yaml - Generate interfaces with
crdtotypes→<package>/models/
OpenShift Console model definitions are fetched from upstream and written to console/core/index.ts. Models that already exist under console/models/ are deduplicated automatically.
| File | Purpose |
|---|---|
scripts/generate-types.sh |
Main generation entrypoint |
scripts/versions.json |
Pinned upstream source versions |
scripts/swagger-type-names.config.cjs |
K8s type naming and format: byte → string for swagger-typescript-api |
scripts/split-data-contracts.mjs |
Split swagger output into one type per file |
Intermediate artifacts (.crds/, .openapi.yaml, swagger-*.json) are written next to each package and ignored by git.
KubeVirt type tests live in kubevirt/test/. Each file exports a testObject literal that must satisfy the corresponding generated interface.
yarn test # tsc --noEmitTests without a matching upstream type are kept under kubevirt/test/orphaned/ and excluded from compilation.
This generation refactor removes runtime exports that were previously produced by openapi-generator:
- No
runtime.ts - No
apis/clients - No
*FromJSON/*ToJSONhelpers
