{ config, system, modulesPath, sources ? import ../../../../npins, ... }@args: let inherit (sources) nixpkgs; pkgs = import nixpkgs { inherit system; }; inherit (pkgs) lib; inherit (pkgs.callPackage ../../common/utils.nix { inherit modulesPath; }) mkNixosConfiguration; inherit (config) nodeName pathToRoot targetSystem sshOpts httpBackend key-file node-name bridge vlanId templateId imageDatastoreId vmDatastoreId cdDatastoreId ipv4Gateway ipv4Address ipv6Gateway ipv6Address ; in (pkgs.callPackage ../../../utils.nix { }).evalModel ( { config, ... }: { imports = [ ../../common/model.nix ]; config = { environments.default = environment: { resources."operator-environment".login-shell = { wheel = true; username = "operator"; }; implementation = { required-resources, deployment-name, }: { tf-proxmox-vm = { nixos-configuration = { imports = [ (mkNixosConfiguration environment required-resources) ./shared.nix ]; }; system = targetSystem; ssh = { username = "root"; host = nodeName; inherit key-file sshOpts; }; caller = "deployment/check/data-model-tf-proxmox/setups/vm.nix"; inherit args deployment-name httpBackend node-name bridge vlanId templateId imageDatastoreId vmDatastoreId cdDatastoreId ipv4Gateway ipv4Address ipv6Gateway ipv6Address ; root-path = pathToRoot; }; }; }; }; options.default = let env = config.environments.default; in lib.mkOption { type = env.resource-mapping.output-type; default = env.deployment { deployment-name = "default"; configuration = config."example-configuration"; }; }; } )