{ config, system, sources ? import ../../../npins, ... }@args: let # inherit (args) sources; self = "deployment/check/data-model-tf-proxmox/data-model.nix"; inherit (sources) nixpkgs; pkgs = import nixpkgs { inherit system; }; inherit (pkgs) lib; inherit (pkgs.callPackage ../common/utils.nix { inherit sources; }) mkNixosConfiguration; inherit (config) nodeName pathToRoot targetSystem sshOpts httpBackend key-file node-name bridge vlanId 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 = mkNixosConfiguration environment required-resources; system = targetSystem; ssh = { username = "root"; host = nodeName; inherit key-file sshOpts; }; module = self; inherit args deployment-name httpBackend node-name bridge vlanId 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"; }; }; } )