anchor.diff:    #
     # Config types: service discovery
     #
  +
  +  # For this one, the docs actually define all types needed to use mkSdConfigModule, but a bunch
  +  # of them are marked with 'currently not support by Azure' so we don't bother adding them in
  +  # here.
  +  promTypes.azure_sd_config = types.submodule {
  +    options = {
  +      environment = mkDefOpt types.str "AzurePublicCloud" ''
  +        The Azure environment.
  +      '';
  +
  +      authentication_method = mkDefOpt (types.enum [ "OAuth" "ManagedIdentity" ]) "OAuth" ''
  +        The authentication method, either OAuth or ManagedIdentity.
  +        See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview
  +      '';
  +
  +      subscription_id = mkOption {
  +        type = types.str;
  +        description = ''
  +          The subscription ID.
  +        '';
  +      };
  +
  +      tenant_id = mkOpt types.str ''
  +        Optional tenant ID. Only required with authentication_method OAuth.
  +      '';
  +
  +      client_id = mkOpt types.str ''
  +        Optional client ID. Only required with authentication_method OAuth.
  +      '';
  +
  +      client_secret = mkOpt types.str ''
  +        Optional client secret. Only required with authentication_method OAuth.
  +      '';
  +
  +      refresh_interval = mkDefOpt types.str "300s" ''
  +        Refresh interval to re-read the instance list.
  +      '';
  +
  +      port = mkDefOpt types.int "80" ''
  +        The port to scrape metrics from. If using the public IP
  +        address, this must instead be specified in the relabeling
  +        rule.
  +      '';
  +
  +      proxy_url = mkOpt types.str ''
  +        Optional proxy URL.
  +      '';
  +
  +      follow_redirects = mkDefOpt types.bool "true" ''
  +        Configure whether HTTP requests follow HTTP 3xx redirects.
  +      '';
  +
  +      tls_config = mkOpt promTypes.tls_config ''
  +        TLS configuration.
  +      '';
  +    };
  +  };
   
     promTypes.consul_sd_config = mkSdConfigModule {
       server = mkDefOpt types.str "localhost:8500" ''
  
positive.code:             concatStringsSep " \\\n  " cmdlineArgs);
          ExecReload = mkIf cfg.enableReload "+${reload}/bin/reload-prometheus";
          User = "prometheus";
          Restart  = "always";
          EnvironmentFile = mkIf (cfg.environmentFile != null && !cfg.enableReload) [ cfg.environmentFile ];
          RuntimeDirectory = "prometheus";
          RuntimeDirectoryMode = "0700";
  
negative.code:         Optional proxy URL.
        '';
  
        azure_sd_configs = mkOpt (types.listOf promTypes.azure_sd_config) ''
          List of Azure service discovery configurations.
        '';
  
        consul_sd_configs = mkOpt (types.listOf promTypes.consul_sd_config) ''
          List of Consul service discovery configurations.
  