anchor.diff:        };
   
         storageBackend = mkOption {
  -        type = types.enum ["inmem" "inmem_transactional" "inmem_ha" "inmem_transactional_ha" "file_transactional" "consul" "zookeeper" "file" "s3" "azure" "dynamodb" "etcd" "mssql" "mysql" "postgresql" "swift" "gcs"];
  +        type = types.enum [ "inmem" "file" "consul" "zookeeper" "s3" "azure" "dynamodb" "etcd" "mssql" "mysql" "postgresql" "swift" "gcs" ];
           default = "inmem";
           description = "The name of the type of storage backend";
         };
   
  +      storagePath = mkOption {
  +        type = types.nullOr types.path;
  +        default = if cfg.storageBackend == "file" then "/var/lib/vault" else null;
  +        description = "Data directory for file backend";
  +      };
  +
         storageConfig = mkOption {
  -        type = types.lines;
  +        type = types.nullOr types.lines;
  +        default = null;
           description = "Storage configuration";
  -        default = if (cfg.storageBackend == "file" || cfg.storageBackend == "file_transactional") then ''
  -                    path = "/var/lib/vault"
  -                  '' else ''
  -                  '';
         };
   
         telemetryConfig = mkOption {
  
positive.code:       after = [ "network.target" ]
             ++ optional (config.services.consul.enable && cfg.storageBackend == "consul") "consul.service";
  
        preStart = optionalString (localDir != null) ''
          install -d -m0700 -o vault -g vault "${localDir}"
        '';
  
        serviceConfig = {
  
negative.code:         StartLimitBurst = 3;
        };
  
        unitConfig.RequiresMountsFor = optional (cfg.storagePath != null) cfg.storagePath;
      };
    };
  
  