Krikri::Lint::ArgSpecs
Upstream parity: ansible-lint's args[module] (severity VERY_LOW, tags core/warning in practice; reports as warning). Validates task params against per-module argument specs, mirroring Ansible's argspec validation messages. Only core (ansible.builtin) modules get specs here - community modules are outside krikri's coverage bar (see AGENTS.md), and upstream's choices ordering is unstable between runs anyway (Python hash randomization).
Constants
DB = {"apt" => spec(params: ["allow_change_held_packages", "allow_downgrade", "allow_unauthenticated", "auto_install_module_deps", "autoclean", "autoremove", "cache_valid_time", "clean", "deb", "default_release", "dpkg_options", "fail_on_autoremove", "force", "force_apt_get", "install_recommends", "lock_timeout", "only_upgrade", "package", "policy_rc_d", "purge", "state", "update_cache", "update_cache_retries", "update_cache_retry_max_delay", "upgrade"] of ::String, aliases: {"package" => ["name", "pkg"], "default_release" => ["default-release"], "install_recommends" => ["install-recommends"], "allow_downgrade" => ["allow-downgrade", "allow_downgrades", "allow-downgrades"], "allow_unauthenticated" => ["allow-unauthenticated"], "update_cache" => ["update-cache"]}, choices: {"state" => ["absent", "build-dep", "fixed", "latest", "present"] of ::String, "upgrade" => ["dist", "full", "no", "safe", "yes"] of ::String}, booleans: ["allow_change_held_packages", "allow_downgrade", "allow_unauthenticated", "auto_install_module_deps", "autoclean", "autoremove", "clean", "fail_on_autoremove", "force", "force_apt_get", "install_recommends", "only_upgrade", "purge", "update_cache"] of ::String), "apt_key" => spec(params: ["data", "file", "id", "key", "keyring", "keyserver", "state", "url", "validate_certs"] of ::String, choices: {"state" => ["absent", "present"] of ::String}, booleans: ["validate_certs"] of ::String), "cron" => spec(params: ["backup", "cron_file", "day", "disabled", "env", "hour", "insertafter", "insertbefore", "job", "minute", "month", "name", "special_time", "state", "user", "weekday"] of ::String, required: ["name"] of ::String, choices: {"special_time" => ["annually", "daily", "hourly", "monthly", "reboot", "weekly", "yearly"] of ::String, "state" => ["present", "absent"] of ::String}, booleans: ["backup", "disabled", "env"] of ::String, aliases: {"day" => ["dom"], "job" => ["value"], "weekday" => ["dow"]}), "cronvar" => spec(params: ["backup", "cron_file", "insertafter", "insertbefore", "name", "state", "user", "value"] of ::String, required: ["name"] of ::String, choices: {"state" => ["absent", "present"] of ::String}, booleans: ["backup"] of ::String), "deb822_repository" => spec(params: ["allow_downgrade_to_insecure", "allow_insecure", "allow_weak", "architectures", "by_hash", "check_date", "check_valid_until", "components", "date_max_future", "enabled", "inrelease_path", "languages", "mode", "name", "pdiffs", "signed_by", "state", "suites", "targets", "trusted", "types", "uris"] of ::String, required: ["name"] of ::String, choices: {"state" => ["absent", "present"] of ::String}, list_choices: {"types" => ["deb", "deb-src"] of ::String}, booleans: ["allow_downgrade_to_insecure", "allow_insecure", "allow_weak", "by_hash", "check_date", "check_valid_until", "enabled", "pdiffs", "trusted"] of ::String), "debconf" => spec(params: ["name", "question", "unseen", "value", "vtype"] of ::String, required: ["name"] of ::String, required_together: [["question", "vtype", "value"] of ::String], choices: {"vtype" => ["boolean", "error", "multiselect", "note", "password", "seen", "select", "string", "text", "title"] of ::String}, booleans: ["unseen"] of ::String, aliases: {"name" => ["pkg"], "question" => ["selection", "setting"], "value" => ["answer"]}), "dpkg_selections" => spec(params: ["name", "selection"] of ::String, required: ["name", "selection"] of ::String, choices: {"selection" => ["install", "hold", "deinstall", "purge"] of ::String}), "expect" => spec(params: ["chdir", "command", "creates", "echo", "removes", "responses", "timeout"] of ::String, required: ["command", "responses"] of ::String, booleans: ["echo"] of ::String), "getent" => spec(params: ["database", "fail_key", "key", "service", "split"] of ::String, required: ["database"] of ::String, booleans: ["fail_key"] of ::String), "git" => spec(params: ["accept_hostkey", "accept_newhostkey", "archive", "archive_prefix", "bare", "clone", "depth", "dest", "executable", "force", "gpg_allowlist", "key_file", "recursive", "reference", "refspec", "remote", "repo", "separate_git_dir", "single_branch", "ssh_opts", "track_submodules", "umask", "update", "verify_commit", "version"] of ::String, aliases: {"gpg_allowlist" => ["gpg_whitelist"], "repo" => ["name"]}, required: ["dest", "repo"] of ::String, booleans: ["accept_hostkey", "accept_newhostkey", "bare", "clone", "force", "recursive", "single_branch", "track_submodules", "update", "verify_commit"] of ::String), "known_hosts" => spec(params: ["hash_host", "key", "name", "path", "state"] of ::String, required: ["name"] of ::String, choices: {"state" => ["absent", "present"] of ::String}, booleans: ["hash_host"] of ::String, aliases: {"name" => ["host"]}), "package_facts" => spec(params: ["manager", "strategy"] of ::String, choices: {"strategy" => ["first", "all"] of ::String}), "pip" => spec(params: ["break_system_packages", "chdir", "editable", "executable", "extra_args", "name", "requirements", "state", "umask", "version", "virtualenv", "virtualenv_command", "virtualenv_python", "virtualenv_site_packages"] of ::String, required_one_of: [["name", "requirements"] of ::String], choices: {"state" => ["absent", "forcereinstall", "latest", "present"] of ::String}, booleans: ["break_system_packages", "editable", "virtualenv_site_packages"] of ::String), "replace" => spec(params: ["after", "attributes", "backup", "before", "encoding", "group", "mode", "owner", "path", "regexp", "replace", "selevel", "serole", "setype", "seuser", "unsafe_writes", "validate"] of ::String, aliases: {"path" => ["dest", "destfile", "name"], "attributes" => ["attr"]}, required: ["path", "regexp"] of ::String, booleans: ["backup", "unsafe_writes"] of ::String), "rpm_key" => spec(params: ["fingerprint", "key", "state", "validate_certs"] of ::String, required: ["key"] of ::String, choices: {"state" => ["absent", "present"] of ::String}, booleans: ["validate_certs"] of ::String), "subversion" => spec(params: ["checkout", "dest", "executable", "export", "force", "in_place", "password", "repo", "revision", "switch", "update", "username", "validate_certs"] of ::String, aliases: {"repo" => ["name", "repository"], "revision" => ["rev", "version"]}, required: ["repo"] of ::String, booleans: ["checkout", "export", "force", "in_place", "switch", "update", "validate_certs"] of ::String), "systemd" => spec(params: ["daemon_reexec", "daemon_reload", "enabled", "force", "masked", "name", "no_block", "scope", "state"] of ::String, required_by: {"state" => ["name"] of ::String, "enabled" => ["name"] of ::String, "masked" => ["name"] of ::String}, choices: {"scope" => ["system", "user", "global"] of ::String, "state" => ["reloaded", "restarted", "started", "stopped"] of ::String}, booleans: ["daemon_reexec", "daemon_reload", "enabled", "force", "masked", "no_block"] of ::String, aliases: {"daemon_reexec" => ["daemon-reexec"], "daemon_reload" => ["daemon-reload"], "name" => ["service", "unit"]}), "tempfile" => spec(params: ["path", "prefix", "state", "suffix"] of ::String, choices: {"state" => ["file", "directory"] of ::String}), "yum_repository" => spec(params: ["async", "attributes", "bandwidth", "baseurl", "cost", "countme", "deltarpm_metadata_percentage", "deltarpm_percentage", "description", "enabled", "enablegroups", "exclude", "failovermethod", "file", "gpgcakey", "gpgcheck", "gpgkey", "group", "http_caching", "include", "includepkgs", "ip_resolve", "keepalive", "metadata_expire", "metadata_expire_filter", "metalink", "mirrorlist", "mirrorlist_expire", "mode", "module_hotfixes", "name", "owner", "password", "priority", "protect", "proxy", "proxy_password", "proxy_username", "repo_gpgcheck", "reposdir", "retries", "s3_enabled", "selevel", "serole", "setype", "seuser", "skip_if_unavailable", "ssl_check_cert_permissions", "sslcacert", "sslclientcert", "sslclientkey", "sslverify", "state", "throttle", "timeout", "ui_repoid_vars", "unsafe_writes", "username"] of ::String, aliases: {"attributes" => ["attr"], "sslcacert" => ["ca_cert"], "sslclientcert" => ["client_cert"], "sslclientkey" => ["client_key"], "exclude" => ["excludepkgs"], "sslverify" => ["validate_certs"]}, required: ["name"] of ::String, required_if: [RequiredIf.new("state", "present", ["baseurl", "mirrorlist", "metalink"] of ::String, true), RequiredIf.new("state", "present", ["description"] of ::String, false)], defaults: {"state" => "present"}, choices: {"failovermethod" => ["roundrobin", "priority"] of ::String, "http_caching" => ["all", "packages", "none"] of ::String, "ip_resolve" => ["4", "6", "IPv4", "IPv6", "whatever"] of ::String, "metadata_expire_filter" => ["never", "read-only:past", "read-only:present", "read-only:future"] of ::String, "state" => ["present", "absent"] of ::String}, booleans: ["async", "countme", "enabled", "enablegroups", "gpgcheck", "keepalive", "module_hotfixes", "protect", "repo_gpgcheck", "s3_enabled", "skip_if_unavailable", "ssl_check_cert_permissions", "sslverify", "unsafe_writes"] of ::String)}