anchor.diff:          default = "no";
           example = "yes";
           description = ''
  -           If Monitor is set to no (default), this director will have full 
  +          If Monitor is set to <literal>no</literal>, this director will have
  +          full access to this Storage daemon. If Monitor is set to
  +          <literal>yes</literal>, this director will only be able to fetch the
  +          current status of this Storage daemon.
  +
  +          Please note that if this director is being used by a Monitor, we
  +          highly recommend to set this directive to yes to avoid serious
  +          security problems. 
           '';
         };
       };
     };
  +
  +  autochangerOptions = {...}:
  +  {
  +    options = {
  +      changerDevice = mkOption {
  +        description = ''
  +          The specified name-string must be the generic SCSI device name of the
  +          autochanger that corresponds to the normal read/write Archive Device
  +          specified in the Device resource. This generic SCSI device name
  +          should be specified if you have an autochanger or if you have a
  +          standard tape drive and want to use the Alert Command (see below).
  +          For example, on Linux systems, for an Archive Device name of
  +          <literal>/dev/nst0</literal>, you would specify
  +          <literal>/dev/sg0</literal> for the Changer Device name.  Depending
  +          on your exact configuration, and the number of autochangers or the
  +          type of autochanger, what you specify here can vary. This directive
  +          is optional. See the Using AutochangersAutochangersChapter chapter of
  +          this manual for more details of using this and the following
  +          autochanger directives.         
  +          '';
  +      };
  +
  +      changerCommand = mkOption {
  +        description = ''
  +          The name-string specifies an external program to be called that will
  +          automatically change volumes as required by Bacula. Normally, this
  +          directive will be specified only in the AutoChanger resource, which
  +          is then used for all devices. However, you may also specify the
  +          different Changer Command in each Device resource. Most frequently,
  +          you will specify the Bacula supplied mtx-changer script as follows:
  +
  +          <literal>"/path/mtx-changer %c %o %S %a %d"</literal>
  +
  +          and you will install the mtx on your system (found in the depkgs
  +          release). An example of this command is in the default bacula-sd.conf
  +          file. For more details on the substitution characters that may be
  +          specified to configure your autochanger please see the
  +          AutochangersAutochangersChapter chapter of this manual. For FreeBSD
  +          users, you might want to see one of the several chio scripts in
  +          examples/autochangers.
  +          '';
  +        default = "/etc/bacula/mtx-changer %c %o %S %a %d";
  +      };
  +
  +      devices = mkOption {
  +        description = ''
  +        '';
  +      };
  +
  +      extraAutochangerConfig = mkOption {
  +        default = "";
  +        description = ''
  +          Extra configuration to be passed in Autochanger directive.
  +        '';
  +        example = ''
  +   
  +        '';
  +      };
  +    };
  +  };
  +
   
     deviceOptions = {...}:
     {
  
positive.code:         '';
          type = with types; attrsOf (submodule deviceOptions);
        };
   
        extraStorageConfig = mkOption {
          default = "";
          description = ''
  
negative.code:       archiveDevice = mkOption {
          # TODO: required?
          description = ''
            The specified name-string gives the system file name of the storage
            device managed by this storage daemon. This will usually be the
            device file name of a removable storage device (tape drive), for
            example <literal>/dev/nst0</literal> or
            <literal>/dev/rmt/0mbn</literal>. For a DVD-writer, it will be for
            example <literal>/dev/hdc</literal>. It may also be a directory name
            if you are archiving to disk storage. In this case, you must supply
            the full absolute path to the directory. When specifying a tape
            device, it is preferable that the "non-rewind" variant of the device
            file name be given. 
          '';
        };
  
        mediaType = mkOption {
          # TODO: required?
          description = ''
            The specified name-string names the type of media supported by this
            device, for example, <literal>DLT7000</literal>. Media type names are
            arbitrary in that you set them to anything you want, but they must be
            known to the volume database to keep track of which storage daemons
            can read which volumes. In general, each different storage type
            should have a unique Media Type associated with it. The same
            name-string must appear in the appropriate Storage resource
            definition in the Director's configuration file.
  
            Even though the names you assign are arbitrary (i.e. you choose the
            name you want), you should take care in specifying them because the
            Media Type is used to determine which storage device Bacula will
            select during restore. Thus you should probably use the same Media
            Type specification for all drives where the Media can be freely
            interchanged. This is not generally an issue if you have a single
            Storage daemon, but it is with multiple Storage daemons, especially
            if they have incompatible media.
  
            For example, if you specify a Media Type of <literal>DDS-4</literal>
            then during the restore, Bacula will be able to choose any Storage
            Daemon that handles <literal>DDS-4</literal>. If you have an
            autochanger, you might want to name the Media Type in a way that is
            unique to the autochanger, unless you wish to possibly use the
            Volumes in other drives. You should also ensure to have unique Media
            Type names if the Media is not compatible between drives. This
            specification is required for all devices.
  
            In addition, if you are using disk storage, each Device resource will
            generally have a different mount point or directory. In order for
            Bacula to select the correct Device resource, each one must have a
            unique Media Type.
          '';
        };
  
  