chore: Update schemas to version all types (#383)
This commit is contained in:
parent
91fb8da525
commit
d343201724
16 changed files with 279 additions and 248 deletions
|
|
@ -1,27 +1,36 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/akmods.json")
|
@jsonSchema("/modules/akmods-v1.json")
|
||||||
|
@jsonSchema("/modules/akmods-latest.json")
|
||||||
model AkmodsModule {
|
model AkmodsModule {
|
||||||
/** The akmods module is a tool used for managing and installing kernel modules built by Universal Blue.
|
/** The akmods module is a tool used for managing and installing kernel modules built by Universal Blue.
|
||||||
* https://blue-build.org/reference/modules/akmods/
|
* https://blue-build.org/reference/modules/akmods/
|
||||||
*/
|
*/
|
||||||
type: "akmods";
|
type: "akmods" | "akmods@v1" | "akmods@latest";
|
||||||
|
|
||||||
/** The kernel your images uses.
|
/** The kernel your images uses.
|
||||||
* - main: stock Fedora kernel / main and nvidia images
|
* - main: stock Fedora kernel / main and nvidia images
|
||||||
* - asus: asus kernel / asus images
|
* - asus: asus kernel / asus images
|
||||||
* - fsync: fsync kernel / not used in any Universal Blue images
|
* - fsync: fsync kernel / not used in any Universal Blue images
|
||||||
* - fsync-ba: fsync kernel, stable version / not used in any Universal Blue images
|
* - fsync-ba: fsync kernel, stable version / not used in any Universal Blue images
|
||||||
* - surface: surface kernel / surface images
|
* - surface: surface kernel / surface images
|
||||||
* - coreos-stable: stock CoreOS kernel / uCore stable images
|
* - coreos-stable: stock CoreOS kernel / uCore stable images
|
||||||
* - coreos-testing: stock CoreOS Testing kernel / uCore testing images
|
* - coreos-testing: stock CoreOS Testing kernel / uCore testing images
|
||||||
* - bazzite: Bazzite's kernel / bazzite images
|
* - bazzite: Bazzite's kernel / bazzite images
|
||||||
*/
|
*/
|
||||||
base?: "main" | "asus" | "fsync" | "fsync-ba" | "surface" | "coreos-stable" | "coreos-testing" | "bazzite" = "main";
|
base?:
|
||||||
|
| "main"
|
||||||
|
| "asus"
|
||||||
|
| "fsync"
|
||||||
|
| "fsync-ba"
|
||||||
|
| "surface"
|
||||||
|
| "coreos-stable"
|
||||||
|
| "coreos-testing"
|
||||||
|
| "bazzite" = "main";
|
||||||
|
|
||||||
/** List of akmods to install.
|
/** List of akmods to install.
|
||||||
* See all available akmods here: https://github.com/ublue-os/akmods#kmod-packages
|
* See all available akmods here: https://github.com/ublue-os/akmods#kmod-packages
|
||||||
*/
|
*/
|
||||||
install: Array<string>;
|
install: Array<string>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,20 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/bling.json")
|
@jsonSchema("/modules/bling-v1.json")
|
||||||
|
@jsonSchema("/modules/bling-latest.json")
|
||||||
model BlingModule {
|
model BlingModule {
|
||||||
/** The bling module can be used to pull in small "bling" into your image.
|
/** The bling module can be used to pull in small "bling" into your image.
|
||||||
* https://blue-build.org/reference/modules/bling/
|
* https://blue-build.org/reference/modules/bling/
|
||||||
*/
|
*/
|
||||||
type: "bling";
|
type: "bling" | "bling@v1" | "bling@latest";
|
||||||
|
|
||||||
/** List of bling submodules to run / things to install onto your system. */
|
/** List of bling submodules to run / things to install onto your system. */
|
||||||
install: Array<"rpmfusion" | "negativo17" | "ublue-update" | "1password" | "dconf-update-service" | "gnome-vrr">;
|
install: Array<
|
||||||
|
| "rpmfusion"
|
||||||
|
| "negativo17"
|
||||||
|
| "ublue-update"
|
||||||
|
| "1password"
|
||||||
|
| "dconf-update-service"
|
||||||
|
| "gnome-vrr">;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,43 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/brew.json")
|
@jsonSchema("/modules/brew-v1.json")
|
||||||
|
@jsonSchema("/modules/brew-latest.json")
|
||||||
model BrewModule {
|
model BrewModule {
|
||||||
/** The brew module installs Homebrew / Linuxbrew at build time and ensures the package manager remains up-to-date.
|
/** 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/
|
* https://blue-build.org/reference/modules/brew/
|
||||||
*/
|
*/
|
||||||
type: "brew";
|
type: "brew" | "brew@v1" | "brew@latest";
|
||||||
|
|
||||||
/** Whether to auto-update the Brew binary using a systemd service. */
|
/** Whether to auto-update the Brew binary using a systemd service. */
|
||||||
"auto-update"?: boolean = true;
|
`auto-update`?: boolean = true;
|
||||||
|
|
||||||
/** Defines how often the Brew update service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
/** Defines how often the Brew update service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
||||||
"update-interval"?: string = "6h";
|
`update-interval`?: string = "6h";
|
||||||
|
|
||||||
/** Time delay after system boot before the first Brew update runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
/** Time delay after system boot before the first Brew update runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
||||||
"update-wait-after-boot"?: string = "10min";
|
`update-wait-after-boot`?: string = "10min";
|
||||||
|
|
||||||
/** Whether to auto-upgrade all installed Brew packages using a systemd service. */
|
/** Whether to auto-upgrade all installed Brew packages using a systemd service. */
|
||||||
"auto-upgrade"?: boolean = true;
|
`auto-upgrade`?: boolean = true;
|
||||||
|
|
||||||
/** Defines how often the Brew upgrade service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
/** Defines how often the Brew upgrade service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
||||||
"upgrade-interval"?: string = "8h";
|
`upgrade-interval`?: string = "8h";
|
||||||
|
|
||||||
/** Time delay after system boot before the first Brew package upgrade runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
/** Time delay after system boot before the first Brew package upgrade runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
|
||||||
"upgrade-wait-after-boot"?: string = "30min";
|
`upgrade-wait-after-boot`?: string = "30min";
|
||||||
|
|
||||||
/** Whether to increase nofile limits (limits for number of open files) for Brew installations.
|
/** Whether to increase nofile limits (limits for number of open files) for Brew installations.
|
||||||
* When set to true, it increases the nofile limits to prevent certain "I/O heavy" Brew packages from failing due to "too many open files" error.
|
* When set to true, it increases the nofile limits to prevent certain "I/O heavy" Brew packages from failing due to "too many open files" error.
|
||||||
* However, it's important to note that increasing nofile limits can have potential security implications for malicious applications which would try to abuse storage I/O.
|
* However, it's important to note that increasing nofile limits can have potential security implications for malicious applications which would try to abuse storage I/O.
|
||||||
* Defaults to false for security purposes.
|
* Defaults to false for security purposes.
|
||||||
*
|
*
|
||||||
* https://serverfault.com/questions/577437/what-is-the-impact-of-increasing-nofile-limits-in-etc-security-limits-conf
|
* https://serverfault.com/questions/577437/what-is-the-impact-of-increasing-nofile-limits-in-etc-security-limits-conf
|
||||||
*/
|
*/
|
||||||
"nofile-limits"?: boolean = false;
|
`nofile-limits`?: boolean = false;
|
||||||
|
|
||||||
/** Whether to enable Brew analytics.
|
/** Whether to enable Brew analytics.
|
||||||
* The Homebrew project uses analytics to anonymously collect the information about Brew usage & your system in order to improve the experience of Brew users.
|
* The Homebrew project uses analytics to anonymously collect the information about Brew usage & your system in order to improve the experience of Brew users.
|
||||||
*/
|
*/
|
||||||
"brew-analytics"?: boolean = true;
|
`brew-analytics`?: boolean = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,35 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/chezmoi.json")
|
@jsonSchema("/modules/chezmoi-v1.json")
|
||||||
|
@jsonSchema("/modules/chezmoi-latest.json")
|
||||||
model ChezmoiModule {
|
model ChezmoiModule {
|
||||||
/** 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.
|
/** 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/
|
* https://blue-build.org/reference/modules/chezmoi/
|
||||||
*/
|
*/
|
||||||
type: "chezmoi";
|
type: "chezmoi" | "chezmoi@v1" | "chezmoi@latest";
|
||||||
|
|
||||||
/** Git repository to initialize. */
|
/** Git repository to initialize. */
|
||||||
repository: string;
|
repository: string;
|
||||||
|
|
||||||
/** Git branch of the chezmoi repository. */
|
/** Git branch of the chezmoi repository. */
|
||||||
branch?: string = "";
|
branch?: string = "";
|
||||||
|
|
||||||
/** Whether to enable the modules services globally for all users, if false users need to enable services manually. */
|
/** Whether to enable the modules services globally for all users, if false users need to enable services manually. */
|
||||||
"all-users"?: boolean = true;
|
`all-users`?: boolean = true;
|
||||||
|
|
||||||
/** Dotfiles will be updated with this interval. */
|
/** Dotfiles will be updated with this interval. */
|
||||||
"run-every"?: string = "1d";
|
`run-every`?: string = "1d";
|
||||||
|
|
||||||
/** Dotfile updates will wait this long after a boot before running. */
|
/** Dotfile updates will wait this long after a boot before running. */
|
||||||
"wait-after-boot"?: string = "5m";
|
`wait-after-boot`?: string = "5m";
|
||||||
|
|
||||||
/** Disable the service that initializes `repository` on users that are logged in or have linger enabled UI. */
|
/** Disable the service that initializes `repository` on users that are logged in or have linger enabled UI. */
|
||||||
"disable-init"?: boolean = false;
|
`disable-init`?: boolean = false;
|
||||||
|
|
||||||
/** Disable the timer that updates chezmoi with the set interval. */
|
/** Disable the timer that updates chezmoi with the set interval. */
|
||||||
"disable-update"?: boolean = false;
|
`disable-update`?: boolean = false;
|
||||||
|
|
||||||
/** What to do when file different that exists on your repo is has been changed or exists locally. Accepts "skip" or "replace". */
|
/** What to do when file different that exists on your repo is has been changed or exists locally. Accepts "skip" or "replace". */
|
||||||
"file-conflict-policy"?: "skip" | "replace" = "skip";
|
`file-conflict-policy`?: "skip" | "replace" = "skip";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,49 +1,50 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/default-flatpaks.json")
|
@jsonSchema("/modules/default-flatpaks-v1.json")
|
||||||
|
@jsonSchema("/modules/default-flatpaks-latest.json")
|
||||||
model DefaultFlatpaksModule {
|
model DefaultFlatpaksModule {
|
||||||
/** The default-flatpaks module can be used to install or uninstall flatpaks from a configurable remote on every boot.
|
/** 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/
|
* https://blue-build.org/reference/modules/default-flatpaks/
|
||||||
*/
|
*/
|
||||||
type: "default-flatpaks";
|
type: "default-flatpaks" | "default-flatpaks@v1" | "default-flatpaks@latest";
|
||||||
|
|
||||||
/** Whether to send a notification after the install/uninstall is finished. */
|
/** Whether to send a notification after the install/uninstall is finished. */
|
||||||
notify?: boolean = false;
|
notify?: boolean = false;
|
||||||
|
|
||||||
/** Configuration for system flatpaks. */
|
/** Configuration for system flatpaks. */
|
||||||
system?: {
|
system?: {
|
||||||
/** URL of the repo to add. Defaults to Flathub's URL. */
|
/** URL of the repo to add. Defaults to Flathub's URL. */
|
||||||
"repo-url"?: string = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
`repo-url`?: string = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||||
|
|
||||||
/** Name for the repo to add. */
|
/** Name for the repo to add. */
|
||||||
"repo-name"?: string = "flathub";
|
`repo-name`?: string = "flathub";
|
||||||
|
|
||||||
/** Pretty title for the repo to add. Not set by default. */
|
/** Pretty title for the repo to add. Not set by default. */
|
||||||
"repo-title"?: string;
|
`repo-title`?: string;
|
||||||
|
|
||||||
/** List of Flatpak IDs to install from the repo. */
|
/** List of Flatpak IDs to install from the repo. */
|
||||||
install?: Array<string>;
|
install?: Array<string>;
|
||||||
|
|
||||||
/** List of Flatpak IDs to remove. */
|
/** List of Flatpak IDs to remove. */
|
||||||
remove?: Array<string>;
|
remove?: Array<string>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Configuration for user flatpaks. */
|
/** Configuration for user flatpaks. */
|
||||||
user?: {
|
user?: {
|
||||||
/** URL of the repo to add. Defaults to Flathub's URL. */
|
/** URL of the repo to add. Defaults to Flathub's URL. */
|
||||||
"repo-url"?: string = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
`repo-url`?: string = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||||
|
|
||||||
/** Name for the repo to add. */
|
/** Name for the repo to add. */
|
||||||
"repo-name"?: string = "flathub";
|
`repo-name`?: string = "flathub";
|
||||||
|
|
||||||
/** Pretty title for the repo to add. Not set by default. */
|
/** Pretty title for the repo to add. Not set by default. */
|
||||||
"repo-title"?: string;
|
`repo-title`?: string;
|
||||||
|
|
||||||
/** List of Flatpak IDs to install from the repo. */
|
/** List of Flatpak IDs to install from the repo. */
|
||||||
install?: Array<string>;
|
install?: Array<string>;
|
||||||
|
|
||||||
/** List of Flatpak IDs to remove. */
|
/** List of Flatpak IDs to remove. */
|
||||||
remove?: Array<string>;
|
remove?: Array<string>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/files.json")
|
@jsonSchema("/modules/files-v1.json")
|
||||||
|
@jsonSchema("/modules/files-latest.json")
|
||||||
model FilesModule {
|
model FilesModule {
|
||||||
/** Copy files to your image at build time
|
/** Copy files to your image at build time
|
||||||
* https://blue-build.org/reference/modules/files/
|
* https://blue-build.org/reference/modules/files/
|
||||||
*/
|
*/
|
||||||
type: "files";
|
type: "files" | "files@v1" | "files@latest";
|
||||||
|
|
||||||
/** List of files / folders to copy. */
|
/** List of files / folders to copy. */
|
||||||
files: Array<Record<string>> | Array<{
|
files: Array<Record<string>> | Array<{
|
||||||
source: string;
|
source: string;
|
||||||
destination: string;
|
destination: string;
|
||||||
}>;
|
}>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/fonts.json")
|
@jsonSchema("/modules/fonts-v1.json")
|
||||||
|
@jsonSchema("/modules/fonts-latest.json")
|
||||||
model FontsModule {
|
model FontsModule {
|
||||||
/** The fonts module can be used to install fonts from Nerd Fonts or Google Fonts.
|
/** The fonts module can be used to install fonts from Nerd Fonts or Google Fonts.
|
||||||
* https://blue-build.org/reference/modules/fonts/
|
* https://blue-build.org/reference/modules/fonts/
|
||||||
*/
|
*/
|
||||||
type: "fonts";
|
type: "fonts" | "fonts@v1" | "fonts@latest";
|
||||||
|
|
||||||
fonts: {
|
|
||||||
/** List of Nerd Fonts to install (without the "Nerd Font" suffix). */
|
|
||||||
"nerd-fonts"?: Array<string>;
|
|
||||||
|
|
||||||
/** List of Google Fonts to install. */
|
fonts: {
|
||||||
"google-fonts"?: Array<string>;
|
/** List of Nerd Fonts to install (without the "Nerd Font" suffix). */
|
||||||
};
|
`nerd-fonts`?: Array<string>;
|
||||||
}
|
|
||||||
|
/** List of Google Fonts to install. */
|
||||||
|
`google-fonts`?: Array<string>;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/gnome-extensions.json")
|
@jsonSchema("/modules/gnome-extensions-v1.json")
|
||||||
|
@jsonSchema("/modules/gnome-extensions-latest.json")
|
||||||
model GnomeExtensionsModule {
|
model GnomeExtensionsModule {
|
||||||
/** The gnome-extensions module can be used to install GNOME extensions inside system directory.
|
/** The gnome-extensions module can be used to install GNOME extensions inside system directory.
|
||||||
* https://blue-build.org/reference/modules/gnome-extensions/
|
* https://blue-build.org/reference/modules/gnome-extensions/
|
||||||
*/
|
*/
|
||||||
type: "gnome-extensions";
|
type: "gnome-extensions" | "gnome-extensions@v1" | "gnome-extensions@latest";
|
||||||
|
|
||||||
/** List of GNOME extensions to install.
|
/** List of GNOME extensions to install.
|
||||||
* (case sensitive extension names or extension IDs from https://extensions.gnome.org/)
|
* (case sensitive extension names or extension IDs from https://extensions.gnome.org/)
|
||||||
*/
|
*/
|
||||||
install?: Array<string | integer>;
|
install?: Array<string | integer>;
|
||||||
|
|
||||||
/** List of system GNOME extensions to uninstall.
|
/** List of system GNOME extensions to uninstall.
|
||||||
* Only use this to remove extensions not installed by your package manager. Those extensions should be uninstalled using the package manager instead.
|
* Only use this to remove extensions not installed by your package manager. Those extensions should be uninstalled using the package manager instead.
|
||||||
*/
|
*/
|
||||||
uninstall?: Array<string>;
|
uninstall?: Array<string>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/gschema-overrides.json")
|
@jsonSchema("/modules/gschema-overrides-v1.json")
|
||||||
|
@jsonSchema("/modules/gschema-overrides-latest.json")
|
||||||
model GschemaOverridesModule {
|
model GschemaOverridesModule {
|
||||||
/** The gschema-overrides module can be used for including system-setting overrides for GTK-based desktop environments.
|
/** 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/
|
* https://blue-build.org/reference/modules/gschema-overrides/
|
||||||
*/
|
*/
|
||||||
type: "gschema-overrides";
|
type: "gschema-overrides" | "gschema-overrides@v1" | "gschema-overrides@latest";
|
||||||
|
|
||||||
/** Gschema override files to test and copy to the correct place. */
|
/** Gschema override files to test and copy to the correct place. */
|
||||||
include?: Array<string>;
|
include?: Array<string>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/initramfs.json")
|
@jsonSchema("/modules/initramfs-v1.json")
|
||||||
|
@jsonSchema("/modules/initramfs-latest.json")
|
||||||
model InitramfsModule {
|
model InitramfsModule {
|
||||||
/** The initramfs module is used to regenerate initramfs, needed to apply some modifications early in the Linux startup process.
|
/** 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/
|
* https://blue-build.org/reference/modules/initramfs/
|
||||||
*/
|
*/
|
||||||
type: "initramfs";
|
type: "initramfs" | "initramfs@v1" | "initramfs@latest";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/justfiles.json")
|
@jsonSchema("/modules/justfiles-v1.json")
|
||||||
|
@jsonSchema("/modules/justfiles-latest.json")
|
||||||
model JustfilesModule {
|
model JustfilesModule {
|
||||||
/** The justfiles module makes it easy to include just recipes from multiple files in Universal Blue -based images.
|
/** 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/
|
* https://blue-build.org/reference/modules/justfiles/
|
||||||
*/
|
*/
|
||||||
type: "justfiles";
|
type: "justfiles" | "justfiles@v1" | "justfiles@latest";
|
||||||
|
|
||||||
/** Whether to validate the syntax of the justfiles against `just --fmt`. (warning: can be very unforgiving) */
|
/** Whether to validate the syntax of the justfiles against `just --fmt`. (warning: can be very unforgiving) */
|
||||||
validate?: boolean = false;
|
validate?: boolean = false;
|
||||||
|
|
||||||
/** List of files or subfolders to include into this image. If omitted, all justfiles will be included. */
|
/** List of files or subfolders to include into this image. If omitted, all justfiles will be included. */
|
||||||
include?: Array<string>;
|
include?: Array<string>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,35 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/rpm-ostree.json")
|
@jsonSchema("/modules/rpm-ostree-v1.json")
|
||||||
|
@jsonSchema("/modules/rpm-ostree-latest.json")
|
||||||
model RpmOstreeModule {
|
model RpmOstreeModule {
|
||||||
/** The rpm-ostree module offers pseudo-declarative package and repository management using rpm-ostree.
|
/** The rpm-ostree module offers pseudo-declarative package and repository management using rpm-ostree.
|
||||||
* https://blue-build.org/reference/modules/rpm-ostree/
|
* https://blue-build.org/reference/modules/rpm-ostree/
|
||||||
*/
|
*/
|
||||||
type: "rpm-ostree";
|
type: "rpm-ostree" | "rpm-ostree@v1" | "rpm-ostree@latest";
|
||||||
|
|
||||||
/** List of links to .repo files to download into /etc/yum.repos.d/. */
|
/** List of links to .repo files to download into /etc/yum.repos.d/. */
|
||||||
repos?: Array<string>;
|
repos?: Array<string>;
|
||||||
|
|
||||||
/** List of links to key files to import for installing from custom repositories. */
|
/** List of links to key files to import for installing from custom repositories. */
|
||||||
keys?: Array<string>;
|
keys?: Array<string>;
|
||||||
|
|
||||||
/** List of folder names under /opt/ to enable for installing into. */
|
/** List of folder names under /opt/ to enable for installing into. */
|
||||||
optfix?: Array<string>;
|
optfix?: Array<string>;
|
||||||
|
|
||||||
/** List of RPM packages to install. */
|
/** List of RPM packages to install. */
|
||||||
install?: Array<string>;
|
install?: Array<string>;
|
||||||
|
|
||||||
/** List of RPM packages to remove. */
|
/** List of RPM packages to remove. */
|
||||||
remove?: Array<string>;
|
remove?: Array<string>;
|
||||||
|
|
||||||
/** List of configurations for `rpm-ostree override replace`ing packages. */
|
/** List of configurations for `rpm-ostree override replace`ing packages. */
|
||||||
replace?: Array<{
|
replace?: Array<{
|
||||||
/** URL to the source COPR repo for the new packages. */
|
/** URL to the source COPR repo for the new packages. */
|
||||||
"from-repo": string,
|
`from-repo`: string;
|
||||||
/** List of packages to replace using packages from the defined repo. */
|
|
||||||
packages: Array<string>,
|
/** List of packages to replace using packages from the defined repo. */
|
||||||
}>;
|
packages: Array<string>;
|
||||||
}
|
}>;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/script.json")
|
@jsonSchema("/modules/script-v1.json")
|
||||||
|
@jsonSchema("/modules/script-latest.json")
|
||||||
model ScriptModule {
|
model ScriptModule {
|
||||||
/** The script module can be used to run arbitrary bash snippets and scripts at image build time.
|
/** The script module can be used to run arbitrary bash snippets and scripts at image build time.
|
||||||
* https://blue-build.org/reference/modules/script/
|
* https://blue-build.org/reference/modules/script/
|
||||||
*/
|
*/
|
||||||
type: "script";
|
type: "script" | "script@v1" | "script@latest";
|
||||||
|
|
||||||
/** List of bash one-liners to run. */
|
/** List of bash one-liners to run. */
|
||||||
snippets?: Array<string>;
|
snippets?: Array<string>;
|
||||||
|
|
||||||
/** List of script files to run. */
|
/** List of script files to run. */
|
||||||
scripts?: Array<string>;
|
scripts?: Array<string>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/signing.json")
|
@jsonSchema("/modules/signing-v1.json")
|
||||||
|
@jsonSchema("/modules/signing-latest.json")
|
||||||
model SigningModule {
|
model SigningModule {
|
||||||
/** The signing module is used to install the required signing policies for cosign image verification with rpm-ostree and bootc.
|
/** 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/
|
* https://blue-build.org/reference/modules/signing/
|
||||||
*/
|
*/
|
||||||
type: "signing";
|
type: "signing" | "signing@v1" | "signing@latest";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,41 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/systemd.json")
|
@jsonSchema("/modules/systemd-v1.json")
|
||||||
|
@jsonSchema("/modules/systemd-latest.json")
|
||||||
model SystemdModule {
|
model SystemdModule {
|
||||||
/** The systemd module streamlines the management of systemd units during image building.
|
/** The systemd module streamlines the management of systemd units during image building.
|
||||||
* https://blue-build.org/reference/modules/systemd/
|
* https://blue-build.org/reference/modules/systemd/
|
||||||
*/
|
*/
|
||||||
type: "systemd";
|
type: "systemd" | "systemd@v1" | "systemd@latest";
|
||||||
|
|
||||||
/** System unit configuration. */
|
/** System unit configuration. */
|
||||||
system?: {
|
system?: {
|
||||||
/** List of systemd units to enable. (runs on system boot) */
|
/** List of systemd units to enable. (runs on system boot) */
|
||||||
enabled?: Array<string>;
|
enabled?: Array<string>;
|
||||||
|
|
||||||
/** List of systemd units to disable. (does not run on system boot, unless another unit strictly requires it) */
|
/** List of systemd units to disable. (does not run on system boot, unless another unit strictly requires it) */
|
||||||
disabled?: Array<string>;
|
disabled?: Array<string>;
|
||||||
|
|
||||||
/** List of systemd units to mask. (does not run on system boot, under any circumstances) */
|
/** List of systemd units to mask. (does not run on system boot, under any circumstances) */
|
||||||
masked?: Array<string>;
|
masked?: Array<string>;
|
||||||
|
|
||||||
/** List of systemd units to unmask. (runs on system boot, even if previously masked) */
|
/** List of systemd units to unmask. (runs on system boot, even if previously masked) */
|
||||||
unmasked?: Array<string>;
|
unmasked?: Array<string>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** User unit configuration (with --global to make changes for all users). */
|
/** User unit configuration (with --global to make changes for all users). */
|
||||||
user?: {
|
user?: {
|
||||||
/** List of systemd units to enable. (runs for the users) */
|
/** List of systemd units to enable. (runs for the users) */
|
||||||
enabled?: Array<string>;
|
enabled?: Array<string>;
|
||||||
|
|
||||||
/** List of systemd units to disable. (does not run for the users, unless another unit strictly requires it) */
|
/** List of systemd units to disable. (does not run for the users, unless another unit strictly requires it) */
|
||||||
disabled?: Array<string>;
|
disabled?: Array<string>;
|
||||||
|
|
||||||
/** List of systemd units to mask. (does not run for the users, under any circumstances) */
|
/** List of systemd units to mask. (does not run for the users, under any circumstances) */
|
||||||
masked?: Array<string>;
|
masked?: Array<string>;
|
||||||
|
|
||||||
/** List of systemd units to unmask. (runs for the users, even if previously masked) */
|
/** List of systemd units to unmask. (runs for the users, even if previously masked) */
|
||||||
unmasked?: Array<string>;
|
unmasked?: Array<string>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
import "@typespec/json-schema";
|
import "@typespec/json-schema";
|
||||||
using TypeSpec.JsonSchema;
|
using TypeSpec.JsonSchema;
|
||||||
|
|
||||||
@jsonSchema("/modules/yafti.json")
|
@jsonSchema("/modules/yafti-v1.json")
|
||||||
|
@jsonSchema("/modules/yafti-latest.json")
|
||||||
model YaftiModule {
|
model YaftiModule {
|
||||||
/** The yafti module can be used to install yafti and set it up to run on first boot.
|
/** 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/
|
* https://blue-build.org/reference/modules/yafti/
|
||||||
*/
|
*/
|
||||||
type: "yafti";
|
type: "yafti" | "yafti@v1" | "yafti@latest";
|
||||||
|
|
||||||
/** List of custom Flatpaks to inject to the default yafti.yml. Format is: `PrettyName: org.example.flatpak_id` */
|
/** List of custom Flatpaks to inject to the default yafti.yml. Format is: `PrettyName: org.example.flatpak_id` */
|
||||||
"custom-flatpaks"?: Array<Record<string>>;
|
`custom-flatpaks`?: Array<Record<string>>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue