diff --git a/modules/akmods/akmods.tsp b/modules/akmods/akmods.tsp index a7a4c58..494aed4 100644 --- a/modules/akmods/akmods.tsp +++ b/modules/akmods/akmods.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/akmods-v1.json") @jsonSchema("/modules/akmods-latest.json") -model AkmodsModule { +model AkmodsModuleLatest { + ...AkmodsModuleV1; +} + +@jsonSchema("/modules/akmods-v1.json") +model AkmodsModuleV1 { /** The akmods module is a tool used for managing and installing kernel modules built by Universal Blue. * https://blue-build.org/reference/modules/akmods/ */ diff --git a/modules/bling/bling.tsp b/modules/bling/bling.tsp index 103ae68..024325e 100644 --- a/modules/bling/bling.tsp +++ b/modules/bling/bling.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/bling-v1.json") @jsonSchema("/modules/bling-latest.json") -model BlingModule { +model BlingModuleLatest { + ...BlingModuleV1; +} + +@jsonSchema("/modules/bling-v1.json") +model BlingModuleV1 { /** The bling module can be used to pull in small "bling" into your image. * https://blue-build.org/reference/modules/bling/ */ diff --git a/modules/brew/brew.tsp b/modules/brew/brew.tsp index bbfa7eb..3877812 100644 --- a/modules/brew/brew.tsp +++ b/modules/brew/brew.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/brew-v1.json") @jsonSchema("/modules/brew-latest.json") -model BrewModule { +model BrewModuleLatest { + ...BrewModuleV1; +} + +@jsonSchema("/modules/brew-v1.json") +model BrewModuleV1 { /** The brew module installs Homebrew / Linuxbrew at build time and ensures the package manager remains up-to-date. * https://blue-build.org/reference/modules/brew/ */ diff --git a/modules/chezmoi/chezmoi.tsp b/modules/chezmoi/chezmoi.tsp index 2ad5a0f..84b3a46 100644 --- a/modules/chezmoi/chezmoi.tsp +++ b/modules/chezmoi/chezmoi.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/chezmoi-v1.json") @jsonSchema("/modules/chezmoi-latest.json") -model ChezmoiModule { +model ChezmoiModuleLatest { + ...ChezmoiModuleV1; +} + +@jsonSchema("/modules/chezmoi-v1.json") +model ChezmoiModuleV1 { /** The chezmoi module installs the latest chezmoi release at build time, along with services to clone a dotfile repository and keep it up-to-date. * https://blue-build.org/reference/modules/chezmoi/ */ diff --git a/modules/default-flatpaks/default-flatpaks.tsp b/modules/default-flatpaks/default-flatpaks.tsp index 9c6af8b..b8d067f 100644 --- a/modules/default-flatpaks/default-flatpaks.tsp +++ b/modules/default-flatpaks/default-flatpaks.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/default-flatpaks-v1.json") @jsonSchema("/modules/default-flatpaks-latest.json") -model DefaultFlatpaksModule { +model DefaultFlatpaksModuleLatest { + ...DefaultFlatpaksModuleV1; +} + +@jsonSchema("/modules/default-flatpaks-v1.json") +model DefaultFlatpaksModuleV1 { /** The default-flatpaks module can be used to install or uninstall flatpaks from a configurable remote on every boot. * https://blue-build.org/reference/modules/default-flatpaks/ */ diff --git a/modules/files/files.tsp b/modules/files/files.tsp index ce1a9fe..ae62278 100644 --- a/modules/files/files.tsp +++ b/modules/files/files.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/files-v1.json") @jsonSchema("/modules/files-latest.json") -model FilesModule { +model FilesModuleLatest { + ...FilesModuleV1; +} + +@jsonSchema("/modules/files-v1.json") +model FilesModuleV1 { /** Copy files to your image at build time * https://blue-build.org/reference/modules/files/ */ diff --git a/modules/fonts/fonts.tsp b/modules/fonts/fonts.tsp index 27159e4..d60ac83 100644 --- a/modules/fonts/fonts.tsp +++ b/modules/fonts/fonts.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/fonts-v1.json") @jsonSchema("/modules/fonts-latest.json") -model FontsModule { +model FontsModuleLatest { + ...FontsModuleV1; +} + +@jsonSchema("/modules/fonts-v1.json") +model FontsModuleV1 { /** The fonts module can be used to install fonts from Nerd Fonts or Google Fonts. * https://blue-build.org/reference/modules/fonts/ */ diff --git a/modules/gnome-extensions/gnome-extensions.tsp b/modules/gnome-extensions/gnome-extensions.tsp index 0e799f8..98d0cbe 100644 --- a/modules/gnome-extensions/gnome-extensions.tsp +++ b/modules/gnome-extensions/gnome-extensions.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/gnome-extensions-v1.json") @jsonSchema("/modules/gnome-extensions-latest.json") -model GnomeExtensionsModule { +model GnomeExtensionsModuleLatest { + ...GnomeExtensionsModuleV1; +} + +@jsonSchema("/modules/gnome-extensions-v1.json") +model GnomeExtensionsModuleV1 { /** The gnome-extensions module can be used to install GNOME extensions inside system directory. * https://blue-build.org/reference/modules/gnome-extensions/ */ diff --git a/modules/gschema-overrides/gschema-overrides.tsp b/modules/gschema-overrides/gschema-overrides.tsp index bf4de47..cf7aeed 100644 --- a/modules/gschema-overrides/gschema-overrides.tsp +++ b/modules/gschema-overrides/gschema-overrides.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/gschema-overrides-v1.json") @jsonSchema("/modules/gschema-overrides-latest.json") -model GschemaOverridesModule { +model GschemaOverridesModuleLatest { + ...GschemaOverridesModuleV1; +} + +@jsonSchema("/modules/gschema-overrides-v1.json") +model GschemaOverridesModuleV1 { /** The gschema-overrides module can be used for including system-setting overrides for GTK-based desktop environments. * https://blue-build.org/reference/modules/gschema-overrides/ */ diff --git a/modules/initramfs/initramfs.tsp b/modules/initramfs/initramfs.tsp index 89f0714..de31c73 100644 --- a/modules/initramfs/initramfs.tsp +++ b/modules/initramfs/initramfs.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/initramfs-v1.json") @jsonSchema("/modules/initramfs-latest.json") -model InitramfsModule { +model InitramfsModuleLatest { + ...InitramfsModuleV1; +} + +@jsonSchema("/modules/initramfs-v1.json") +model InitramfsModuleV1 { /** The initramfs module is used to regenerate initramfs, needed to apply some modifications early in the Linux startup process. * https://blue-build.org/reference/modules/initramfs/ */ diff --git a/modules/justfiles/justfiles.tsp b/modules/justfiles/justfiles.tsp index 6067275..d611d65 100644 --- a/modules/justfiles/justfiles.tsp +++ b/modules/justfiles/justfiles.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/justfiles-v1.json") @jsonSchema("/modules/justfiles-latest.json") -model JustfilesModule { +model JustfilesModuleLatest { + ...JustfilesModuleV1; +} + +@jsonSchema("/modules/justfiles-v1.json") +model JustfilesModuleV1 { /** The justfiles module makes it easy to include just recipes from multiple files in Universal Blue -based images. * https://blue-build.org/reference/modules/justfiles/ */ diff --git a/modules/rpm-ostree/rpm-ostree.tsp b/modules/rpm-ostree/rpm-ostree.tsp index 718833f..7fcd800 100644 --- a/modules/rpm-ostree/rpm-ostree.tsp +++ b/modules/rpm-ostree/rpm-ostree.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/rpm-ostree-v1.json") @jsonSchema("/modules/rpm-ostree-latest.json") -model RpmOstreeModule { +model RpmOstreeModuleLatest { + ...RpmOstreeModuleV1; +} + +@jsonSchema("/modules/rpm-ostree-v1.json") +model RpmOstreeModuleV1 { /** The rpm-ostree module offers pseudo-declarative package and repository management using rpm-ostree. * https://blue-build.org/reference/modules/rpm-ostree/ */ diff --git a/modules/script/script.tsp b/modules/script/script.tsp index 62d0552..fe65994 100644 --- a/modules/script/script.tsp +++ b/modules/script/script.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/script-v1.json") @jsonSchema("/modules/script-latest.json") -model ScriptModule { +model ScriptModuleLatest { + ...ScriptModuleV1; +} + +@jsonSchema("/modules/script-v1.json") +model ScriptModuleV1 { /** The script module can be used to run arbitrary bash snippets and scripts at image build time. * https://blue-build.org/reference/modules/script/ */ diff --git a/modules/signing/signing.tsp b/modules/signing/signing.tsp index 2a723dc..847ef4a 100644 --- a/modules/signing/signing.tsp +++ b/modules/signing/signing.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/signing-v1.json") @jsonSchema("/modules/signing-latest.json") -model SigningModule { +model SigningModuleLatest { + ...SigningModuleV1; +} + +@jsonSchema("/modules/signing-v1.json") +model SigningModuleV1 { /** The signing module is used to install the required signing policies for cosign image verification with rpm-ostree and bootc. * https://blue-build.org/reference/modules/signing/ */ diff --git a/modules/systemd/systemd.tsp b/modules/systemd/systemd.tsp index 5537b43..3540903 100644 --- a/modules/systemd/systemd.tsp +++ b/modules/systemd/systemd.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/systemd-v1.json") @jsonSchema("/modules/systemd-latest.json") -model SystemdModule { +model SystemdModuleLatest { + ...SystemdModuleV1; +} + +@jsonSchema("/modules/systemd-v1.json") +model SystemdModuleV1 { /** The systemd module streamlines the management of systemd units during image building. * https://blue-build.org/reference/modules/systemd/ */ diff --git a/modules/yafti/yafti.tsp b/modules/yafti/yafti.tsp index 172d95c..4a0b630 100644 --- a/modules/yafti/yafti.tsp +++ b/modules/yafti/yafti.tsp @@ -1,9 +1,13 @@ import "@typespec/json-schema"; using TypeSpec.JsonSchema; -@jsonSchema("/modules/yafti-v1.json") @jsonSchema("/modules/yafti-latest.json") -model YaftiModule { +model YaftiModuleLatest { + ...YaftiModuleV1; +} + +@jsonSchema("/modules/yafti-v1.json") +model YaftiModuleV1 { /** The yafti module can be used to install yafti and set it up to run on first boot. * https://blue-build.org/reference/modules/yafti/ */