anchor.diff:  let
     cfg = config.services.prometheus.alertmanager;
     mkConfigFile = pkgs.writeText "alertmanager.yml" (builtins.toJSON cfg.configuration);
  +  alertmanagerYml =
  +    if cfg.configText != null then
  +      pkgs.writeText "alertmanager.yml" cfg.configText
  +    else mkConfigFile;
   in {
     options = {
       services.prometheus.alertmanager = {
  
positive.code:       after    = [ "network.target" ];
        script = ''
          ${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \
          -config.file ${mkConfigFile} \
          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
          -log.level ${cfg.logLevel} \
          ${optionalString (cfg.webExternalUrl != null) ''-web.external-url ${cfg.webExternalUrl} \''}
  
negative.code:         default = {};
          description = ''
            Alertmanager configuration as nix attribute set.
          '';
        };
  
        configText = mkOption {
          type = types.nullOr types.lines;
          default = null;
          description = ''
            Alertmanager configuration as YAML text. If non-null, this option
            defines the text that is written to alertmanager.yml. If null, the
            contents of alertmanager.yml is generated from the structured config
            options.
          '';
        };
  
  