anchor.diff:        };
   
         requestEncryptionCredentials = mkOption {
  -        type = types.bool;
  +        type = types.either types.bool (types.listOf types.str);
           default = true;
  -        description = ''
  -          Request encryption keys or passwords for all encrypted datasets on import.
  -          For root pools the encryption key can be supplied via both an
  -          interactive prompt (keylocation=prompt) and from a file
  -          (keylocation=file://).
  +        example = [ "tank" "data" ];
  +        description = ''
  +          If true on import encryption keys or passwords for all encrypted datasets
  +          are requested. To only decrypt selected datasets supply a list of dataset
  +          names instead. For root pools the encryption key can be supplied via both
  +          an interactive prompt (keylocation=prompt) and from a file (keylocation=file://).
           '';
         };
   
  
positive.code:               done
                poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
                if poolImported "${pool}"; then
                  ${optionalString cfgZfs.requestEncryptionCredentials ''
                    ${packages.zfsUser}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do
                      (case "$kl" in
                        none )
                          ;;
                        prompt )
  
negative.code:               fi
                poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
              fi
              ${if isBool cfgZfs.requestEncryptionCredentials
                then optionalString cfgZfs.requestEncryptionCredentials ''
                  zfs load-key -a
                ''
                else concatMapStrings (fs: ''
                  zfs load-key ${fs}
                '') cfgZfs.requestEncryptionCredentials}
          '') rootPools));
        };
  
  