Repository: StackExchange/dnscontrol
Pull request #2382 (2023-05-20 10:13:03)

Update version in go.mod
The recent major release breaks the usage of dnscontrol as a module:

```
go.mod:6:2: require github.com/StackExchange/dnscontrol/v3: version "v4.0.1" invalid: should be v3, not v4
```

or :

```
github.com/StackExchange/dnscontrol/v3/models: github.com/StackExchange/dnscontrol/v4@v4.0.1: go.mod has non-.../v4 module path "github.com/StackExchange/dnscontrol/v3" (and .../v4/go.mod does not exist) at revision v4.0.1
```

In this commit, I changed the module in `go.mod` to `github.com/StackExchange/dnscontrol/v4`, as stated [in the documentation](https://docs.dnscontrol.org/release/release-engineering#tip-how-to-bump-the-major-version).


Patch:
diff --git a/README.md b/README.md
index ac492b52..5dea5220 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 [![StackExchange/dnscontrol/build](https://github.com/StackExchange/dnscontrol/actions/workflows/build.yml/badge.svg)](https://github.com/StackExchange/dnscontrol/actions/workflows/build.yml)
 [![Gitter chat](https://badges.gitter.im/dnscontrol/Lobby.png)](https://gitter.im/dnscontrol/Lobby)
 [![Google Group](https://img.shields.io/badge/google%20group-chat-green.svg)](https://groups.google.com/forum/#!forum/dnscontrol-discuss)
-[![PkgGoDev](https://pkg.go.dev/badge/github.com/StackExchange/dnscontrol)](https://pkg.go.dev/github.com/StackExchange/dnscontrol/v3)
+[![PkgGoDev](https://pkg.go.dev/badge/github.com/StackExchange/dnscontrol)](https://pkg.go.dev/github.com/StackExchange/dnscontrol/v4)
 
 [DNSControl](https://docs.dnscontrol.org/) is a system
 for maintaining DNS zones.  It has two parts:
diff --git a/build/build.go b/build/build.go
index 59342067..5d5ea56c 100644
--- a/build/build.go
+++ b/build/build.go
@@ -17,7 +17,7 @@ var goos = flag.String("os", "", "OS to build (linux, windows, or darwin) Defaul
 func main() {
 	flag.Parse()
 	flags := fmt.Sprintf(`-s -w -X "main.SHA=%s" -X main.BuildTime=%d`, getVersion(), time.Now().Unix())
-	pkg := "github.com/StackExchange/dnscontrol/v3"
+	pkg := "github.com/StackExchange/dnscontrol/v4"
 
 	build := func(out, goos string) {
 		log.Printf("Building %s", out)
diff --git a/build/generate/featureMatrix.go b/build/generate/featureMatrix.go
index 35a74ada..06c0178f 100644
--- a/build/generate/featureMatrix.go
+++ b/build/generate/featureMatrix.go
@@ -5,8 +5,8 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/providers"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
+	"github.com/StackExchange/dnscontrol/v4/providers"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/_all"
 	"github.com/fbiville/markdown-table-formatter/pkg/markdown"
 )
 
diff --git a/commands/commands.go b/commands/commands.go
index 44d12c4b..1d5e4e57 100644
--- a/commands/commands.go
+++ b/commands/commands.go
@@ -7,10 +7,10 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/js"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/js"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/commands/createDomains.go b/commands/createDomains.go
index dda82cfd..46f6db8e 100644
--- a/commands/createDomains.go
+++ b/commands/createDomains.go
@@ -3,8 +3,8 @@ package commands
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/pkg/credsfile"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/commands/getCerts.go b/commands/getCerts.go
index 1f6bc200..8a70b10d 100644
--- a/commands/getCerts.go
+++ b/commands/getCerts.go
@@ -7,11 +7,11 @@ import (
 	"regexp"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/acme"
-	"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
-	"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/acme"
+	"github.com/StackExchange/dnscontrol/v4/pkg/credsfile"
+	"github.com/StackExchange/dnscontrol/v4/pkg/normalize"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/commands/getZones.go b/commands/getZones.go
index df70c860..6a09468e 100644
--- a/commands/getZones.go
+++ b/commands/getZones.go
@@ -6,10 +6,10 @@ import (
 	"os"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
-	"github.com/StackExchange/dnscontrol/v3/pkg/prettyzone"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/credsfile"
+	"github.com/StackExchange/dnscontrol/v4/pkg/prettyzone"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/commands/previewPush.go b/commands/previewPush.go
index db7e84a8..e40610d2 100644
--- a/commands/previewPush.go
+++ b/commands/previewPush.go
@@ -8,16 +8,16 @@ import (
 
 	"golang.org/x/net/idna"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/bindserial"
-	"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
-	"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
-	"github.com/StackExchange/dnscontrol/v3/pkg/notifications"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/zonerecs"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/bindserial"
+	"github.com/StackExchange/dnscontrol/v4/pkg/credsfile"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/nameservers"
+	"github.com/StackExchange/dnscontrol/v4/pkg/normalize"
+	"github.com/StackExchange/dnscontrol/v4/pkg/notifications"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/zonerecs"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/urfave/cli/v2"
 	"golang.org/x/exp/slices"
 )
diff --git a/commands/printIR.go b/commands/printIR.go
index 0faeb788..1241c031 100644
--- a/commands/printIR.go
+++ b/commands/printIR.go
@@ -7,9 +7,9 @@ import (
 	"os"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/js"
-	"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/js"
+	"github.com/StackExchange/dnscontrol/v4/pkg/normalize"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/commands/types/dnscontrol.d.ts b/commands/types/dnscontrol.d.ts
index 9c0410ad..79ca8d95 100644
--- a/commands/types/dnscontrol.d.ts
+++ b/commands/types/dnscontrol.d.ts
@@ -1303,19 +1303,19 @@ declare const PURGE: DomainModifier;
  * The Target can be any of:
  * 
  * * _CloudFront distribution_: in this case specify the domain name that CloudFront assigned when you created your distribution (note that your CloudFront distribution must include an alternate domain name that matches the record you're adding)
- * * _Elastic Beanstalk environment_: specify the `CNAME` attribute for the environment. The environment must have a regionalized domain name. To get the `CNAME`, you can use either the [AWS Console](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html), [AWS Elastic Beanstalk API](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html), or the [AWS CLI](http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html).
- * * _ELB load balancer_: specify the DNS name that is associated with the load balancer. To get the DNS name you can use either the AWS Console (on the EC2 page, choose Load Balancers, select the right one, choose the description tab), [ELB API](http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html), the [AWS ELB CLI](http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html), or the [AWS ELBv2 CLI](http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html).
- * * _S3 bucket_ (configured as website): specify the domain name of the Amazon S3 website endpoint in which you configured the bucket (for instance s3-website-us-east-2.amazonaws.com). For the available values refer to the [Amazon S3 Website Endpoints](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region).
+ * * _Elastic Beanstalk environment_: specify the `CNAME` attribute for the environment. The environment must have a regionalized domain name. To get the `CNAME`, you can use either the [AWS Console](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html), [AWS Elastic Beanstalk API](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html), or the [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html).
+ * * _ELB load balancer_: specify the DNS name that is associated with the load balancer. To get the DNS name you can use either the AWS Console (on the EC2 page, choose Load Balancers, select the right one, choose the description tab), [ELB API](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html), the [AWS ELB CLI](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html), or the [AWS ELBv2 CLI](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html).
+ * * _S3 bucket_ (configured as website): specify the domain name of the Amazon S3 website endpoint in which you configured the bucket (for instance s3-website-us-east-2.amazonaws.com). For the available values refer to the [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region).
  * * _Another Route53 record_: specify the value of the name of another record in the same hosted zone.
  * 
- * For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the `R53_ZONE` record modifier.
+ * For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the [`R53_ZONE`](../record/R53_ZONE.md) record modifier.
  * 
  * The zone id can be found depending on the target type:
  * 
  * * _CloudFront distribution_: specify `Z2FDTNDATAQYW2`
- * * _Elastic Beanstalk environment_: specify the hosted zone ID for the region in which the environment has been created. Refer to the [List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region).
- * * _ELB load balancer_: specify the value of the hosted zone ID for the load balancer. You can find it in [the List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region)
- * * _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
+ * * _Elastic Beanstalk environment_: specify the hosted zone ID for the region in which the environment has been created. Refer to the [List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region).
+ * * _ELB load balancer_: specify the value of the hosted zone ID for the load balancer. You can find it in [the List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region)
+ * * _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
  * * _Another Route 53 record_: you can either specify the correct zone id or do not specify anything and DNSControl will figure out the right zone id. (Note: Route53 alias can't reference a record in a different zone).
  * 
  * ```javascript
@@ -2458,11 +2458,11 @@ declare function LOC_BUILDER_STR(opts: { label?: string; str: string; alt?: numb
 declare function M365_BUILDER(opts: { label?: string; mx?: boolean; autodiscover?: boolean; dkim?: boolean; skypeForBusiness?: boolean; mdm?: boolean; domainGUID?: string; initialDomain?: string }): RecordModifier;
 
 /**
- * R53_ZONE lets you specify the AWS Zone ID for an entire domain (D()) or a specific R53_ALIAS() record.
+ * `R53_ZONE` lets you specify the AWS Zone ID for an entire domain ([`D()`](../global/D.md)) or a specific [`R53_ALIAS()`](../domain/R53_ALIAS.md) record.
  * 
- * When used with D(), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones.
+ * When used with [`D()`](../global/D.md), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones. See this [example](../../providers/route53.md#split-horizon) in the [Amazon Route 53 provider page](../../providers/route53.md).
  * 
- * When used with R53_ALIAS() it sets the required Route53 hosted zone id in a R53_ALIAS record. See [R53_ALIAS's documentation](../domain/R53_ALIAS.md) for details.
+ * When used with [`R53_ALIAS()`](../domain/R53_ALIAS.md) it sets the required Route53 hosted zone id in a R53_ALIAS record. See [R53_ALIAS's documentation](../domain/R53_ALIAS.md) for details.
  * 
  * @see https://docs.dnscontrol.org/language-reference/record-modifiers/service-provider-specific/amazon-route-53/r53_zone
  */
diff --git a/commands/writeTypes.go b/commands/writeTypes.go
index 828459c8..3a8adedc 100644
--- a/commands/writeTypes.go
+++ b/commands/writeTypes.go
@@ -4,7 +4,7 @@ import (
 	_ "embed" // Required by go:embed
 	"os"
 
-	versionInfo "github.com/StackExchange/dnscontrol/v3/pkg/version"
+	versionInfo "github.com/StackExchange/dnscontrol/v4/pkg/version"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/docs/flattener/flattener.js b/docs/flattener/flattener.js
index d1cb2ec0..fda93968 100644
--- a/docs/flattener/flattener.js
+++ b/docs/flattener/flattener.js
@@ -56467,7 +56467,7 @@ $packages["net"] = (function() {
 	$pkg.$init = $init;
 	return $pkg;
 })();
-$packages["github.com/StackExchange/dnscontrol/v3/pkg/spflib"] = (function() {
+$packages["github.com/StackExchange/dnscontrol/v4/pkg/spflib"] = (function() {
 	var $pkg = {}, $init, bytes, json, fmt, io, ioutil, net, os, strings, SPFRecord, SPFPart, sliceType, sliceType$1, ptrType$2, ptrType$3, sliceType$3, sliceType$4, sliceType$5, mapType$1, qualifiers, Parse, dump, Chunks, matchesFlatSpec;
 	bytes = $packages["bytes"];
 	json = $packages["encoding/json"];
@@ -56477,7 +56477,7 @@ $packages["github.com/StackExchange/dnscontrol/v3/pkg/spflib"] = (function() {
 	net = $packages["net"];
 	os = $packages["os"];
 	strings = $packages["strings"];
-	SPFRecord = $pkg.SPFRecord = $newType(0, $kindStruct, "spflib.SPFRecord", true, "github.com/StackExchange/dnscontrol/v3/pkg/spflib", true, function(Parts_) {
+	SPFRecord = $pkg.SPFRecord = $newType(0, $kindStruct, "spflib.SPFRecord", true, "github.com/StackExchange/dnscontrol/v4/pkg/spflib", true, function(Parts_) {
 		this.$val = this;
 		if (arguments.length === 0) {
 			this.Parts = sliceType$3.nil;
@@ -56485,7 +56485,7 @@ $packages["github.com/StackExchange/dnscontrol/v3/pkg/spflib"] = (function() {
 		}
 		this.Parts = Parts_;
 	});
-	SPFPart = $pkg.SPFPart = $newType(0, $kindStruct, "spflib.SPFPart", true, "github.com/StackExchange/dnscontrol/v3/pkg/spflib", true, function(Text_, IsLookup_, IncludeRecord_, IncludeDomain_) {
+	SPFPart = $pkg.SPFPart = $newType(0, $kindStruct, "spflib.SPFPart", true, "github.com/StackExchange/dnscontrol/v4/pkg/spflib", true, function(Text_, IsLookup_, IncludeRecord_, IncludeDomain_) {
 		this.$val = this;
 		if (arguments.length === 0) {
 			this.Text = "";
@@ -56815,7 +56815,7 @@ $packages["github.com/StackExchange/dnscontrol/v3/pkg/spflib"] = (function() {
 		}
 		return false;
 	};
-	ptrType$2.methods = [{prop: "Lookups", name: "Lookups", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TXT", name: "TXT", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TXTSplit", name: "TXTSplit", pkg: "", typ: $funcType([$String, $Int, $Int], [mapType$1], false)}, {prop: "split", name: "split", pkg: "github.com/StackExchange/dnscontrol/v3/pkg/spflib", typ: $funcType([$String, $String, $Int, mapType$1, $Int, $Int], [], false)}, {prop: "Flatten", name: "Flatten", pkg: "", typ: $funcType([$String], [ptrType$2], false)}];
+	ptrType$2.methods = [{prop: "Lookups", name: "Lookups", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TXT", name: "TXT", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TXTSplit", name: "TXTSplit", pkg: "", typ: $funcType([$String, $Int, $Int], [mapType$1], false)}, {prop: "split", name: "split", pkg: "github.com/StackExchange/dnscontrol/v4/pkg/spflib", typ: $funcType([$String, $String, $Int, mapType$1, $Int, $Int], [], false)}, {prop: "Flatten", name: "Flatten", pkg: "", typ: $funcType([$String], [ptrType$2], false)}];
 	SPFRecord.init("", [{prop: "Parts", name: "Parts", embedded: false, exported: true, typ: sliceType$3, tag: ""}]);
 	SPFPart.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IsLookup", name: "IsLookup", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IncludeRecord", name: "IncludeRecord", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "IncludeDomain", name: "IncludeDomain", embedded: false, exported: true, typ: $String, tag: ""}]);
 	$init = function() {
@@ -142801,21 +142801,21 @@ $packages["net/http"] = (function() {
 	$pkg.$init = $init;
 	return $pkg;
 })();
-$packages["github.com/StackExchange/dnscontrol/v3/docs/flattener"] = (function() {
+$packages["github.com/StackExchange/dnscontrol/v4/docs/flattener"] = (function() {
 	var $pkg = {}, $init, json, fmt, spflib, jquery, http, strings, gResolver, gResp, ptrType, structType, sliceType, sliceType$1, funcType, funcType$1, sliceType$2, jq, parsed, domain, resolver, main, updateDisabledChecks, renderResults, buildHTML, genRoot, genPart;
 	json = $packages["encoding/json"];
 	fmt = $packages["fmt"];
-	spflib = $packages["github.com/StackExchange/dnscontrol/v3/pkg/spflib"];
+	spflib = $packages["github.com/StackExchange/dnscontrol/v4/pkg/spflib"];
 	jquery = $packages["github.com/gopherjs/jquery"];
 	http = $packages["net/http"];
 	strings = $packages["strings"];
-	gResolver = $pkg.gResolver = $newType(0, $kindStruct, "main.gResolver", true, "github.com/StackExchange/dnscontrol/v3/docs/flattener", false, function() {
+	gResolver = $pkg.gResolver = $newType(0, $kindStruct, "main.gResolver", true, "github.com/StackExchange/dnscontrol/v4/docs/flattener", false, function() {
 		this.$val = this;
 		if (arguments.length === 0) {
 			return;
 		}
 	});
-	gResp = $pkg.gResp = $newType(0, $kindStruct, "main.gResp", true, "github.com/StackExchange/dnscontrol/v3/docs/flattener", false, function(Status_, Answer_) {
+	gResp = $pkg.gResp = $newType(0, $kindStruct, "main.gResp", true, "github.com/StackExchange/dnscontrol/v4/docs/flattener", false, function(Status_, Answer_) {
 		this.$val = this;
 		if (arguments.length === 0) {
 			this.Status = 0;
@@ -143147,7 +143147,7 @@ $packages["github.com/StackExchange/dnscontrol/v3/docs/flattener"] = (function()
 })();
 $synthesizeMethods();
 $initAllLinknames();
-var $mainPkg = $packages["github.com/StackExchange/dnscontrol/v3/docs/flattener"];
+var $mainPkg = $packages["github.com/StackExchange/dnscontrol/v4/docs/flattener"];
 $packages["runtime"].$init();
 $go($mainPkg.$init, []);
 $flushConsole();
diff --git a/docs/flattener/js.go b/docs/flattener/js.go
index a3b93fbe..416701e6 100644
--- a/docs/flattener/js.go
+++ b/docs/flattener/js.go
@@ -9,7 +9,7 @@ import (
 	"net/http"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/spflib"
+	"github.com/StackExchange/dnscontrol/v4/pkg/spflib"
 	"github.com/gopherjs/jquery"
 )
 
diff --git a/documentation/debugging-with-dlv.md b/documentation/debugging-with-dlv.md
index 35d87e1c..750cd5b8 100644
--- a/documentation/debugging-with-dlv.md
+++ b/documentation/debugging-with-dlv.md
@@ -3,7 +3,7 @@
 Test a particular function:
 
 ```shell
-dlv test github.com/StackExchange/dnscontrol/v3/pkg/diff2 -- -test.run Test_analyzeByRecordSet
+dlv test github.com/StackExchange/dnscontrol/v4/pkg/diff2 -- -test.run Test_analyzeByRecordSet
                                                 ^^^^^^^^^
                                                 Assumes you are in the pkg/diff2 directory.
 ```
@@ -11,5 +11,5 @@ dlv test github.com/StackExchange/dnscontrol/v3/pkg/diff2 -- -test.run Test_anal
 Debug the integration tests:
 
 ```shell
-dlv test github.com/StackExchange/dnscontrol/v3/integrationTest -- -test.v -test.run ^TestDNSProviders -verbose -provider NAMEDOTCOM -start 1 -end 1 -diff2
+dlv test github.com/StackExchange/dnscontrol/v4/integrationTest -- -test.v -test.run ^TestDNSProviders -verbose -provider NAMEDOTCOM -start 1 -end 1 -diff2
 ```
diff --git a/documentation/functions/domain/R53_ALIAS.md b/documentation/functions/domain/R53_ALIAS.md
index 28f628c5..e52eedca 100644
--- a/documentation/functions/domain/R53_ALIAS.md
+++ b/documentation/functions/domain/R53_ALIAS.md
@@ -22,19 +22,19 @@ Target should be a string representing the target. If it is a single label we wi
 The Target can be any of:
 
 * _CloudFront distribution_: in this case specify the domain name that CloudFront assigned when you created your distribution (note that your CloudFront distribution must include an alternate domain name that matches the record you're adding)
-* _Elastic Beanstalk environment_: specify the `CNAME` attribute for the environment. The environment must have a regionalized domain name. To get the `CNAME`, you can use either the [AWS Console](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html), [AWS Elastic Beanstalk API](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html), or the [AWS CLI](http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html).
-* _ELB load balancer_: specify the DNS name that is associated with the load balancer. To get the DNS name you can use either the AWS Console (on the EC2 page, choose Load Balancers, select the right one, choose the description tab), [ELB API](http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html), the [AWS ELB CLI](http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html), or the [AWS ELBv2 CLI](http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html).
-* _S3 bucket_ (configured as website): specify the domain name of the Amazon S3 website endpoint in which you configured the bucket (for instance s3-website-us-east-2.amazonaws.com). For the available values refer to the [Amazon S3 Website Endpoints](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region).
+* _Elastic Beanstalk environment_: specify the `CNAME` attribute for the environment. The environment must have a regionalized domain name. To get the `CNAME`, you can use either the [AWS Console](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html), [AWS Elastic Beanstalk API](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html), or the [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html).
+* _ELB load balancer_: specify the DNS name that is associated with the load balancer. To get the DNS name you can use either the AWS Console (on the EC2 page, choose Load Balancers, select the right one, choose the description tab), [ELB API](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html), the [AWS ELB CLI](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html), or the [AWS ELBv2 CLI](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html).
+* _S3 bucket_ (configured as website): specify the domain name of the Amazon S3 website endpoint in which you configured the bucket (for instance s3-website-us-east-2.amazonaws.com). For the available values refer to the [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region).
 * _Another Route53 record_: specify the value of the name of another record in the same hosted zone.
 
-For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the `R53_ZONE` record modifier.
+For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the [`R53_ZONE`](../record/R53_ZONE.md) record modifier.
 
 The zone id can be found depending on the target type:
 
 * _CloudFront distribution_: specify `Z2FDTNDATAQYW2`
-* _Elastic Beanstalk environment_: specify the hosted zone ID for the region in which the environment has been created. Refer to the [List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region).
-* _ELB load balancer_: specify the value of the hosted zone ID for the load balancer. You can find it in [the List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region)
-* _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
+* _Elastic Beanstalk environment_: specify the hosted zone ID for the region in which the environment has been created. Refer to the [List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region).
+* _ELB load balancer_: specify the value of the hosted zone ID for the load balancer. You can find it in [the List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region)
+* _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
 * _Another Route 53 record_: you can either specify the correct zone id or do not specify anything and DNSControl will figure out the right zone id. (Note: Route53 alias can't reference a record in a different zone).
 
 {% code title="dnsconfig.js" %}
diff --git a/documentation/functions/record/R53_ZONE.md b/documentation/functions/record/R53_ZONE.md
index 02fb9dd9..8fa6a09a 100644
--- a/documentation/functions/record/R53_ZONE.md
+++ b/documentation/functions/record/R53_ZONE.md
@@ -8,8 +8,8 @@ ts_return: DomainModifier & RecordModifier
 provider: ROUTE53
 ---
 
-R53_ZONE lets you specify the AWS Zone ID for an entire domain (D()) or a specific R53_ALIAS() record.
+`R53_ZONE` lets you specify the AWS Zone ID for an entire domain ([`D()`](../global/D.md)) or a specific [`R53_ALIAS()`](../domain/R53_ALIAS.md) record.
 
-When used with D(), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones.
+When used with [`D()`](../global/D.md), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones. See this [example](../../providers/route53.md#split-horizon) in the [Amazon Route 53 provider page](../../providers/route53.md).
 
-When used with R53_ALIAS() it sets the required Route53 hosted zone id in a R53_ALIAS record. See [R53_ALIAS's documentation](../domain/R53_ALIAS.md) for details.
+When used with [`R53_ALIAS()`](../domain/R53_ALIAS.md) it sets the required Route53 hosted zone id in a R53_ALIAS record. See [`R53_ALIAS()`](../domain/R53_ALIAS.md) documentation for details.
diff --git a/documentation/getting-started.md b/documentation/getting-started.md
index d93c69aa..4295c369 100644
--- a/documentation/getting-started.md
+++ b/documentation/getting-started.md
@@ -52,7 +52,7 @@ install `dnscontrol` in your `$GOBIN` directory.
 To install, simply run
 
 ```shell
-go install github.com/StackExchange/dnscontrol/v3@latest
+go install github.com/StackExchange/dnscontrol/v4@latest
 ```
 
 To download the source
diff --git a/documentation/providers/route53.md b/documentation/providers/route53.md
index ac0a3730..6f8c4817 100644
--- a/documentation/providers/route53.md
+++ b/documentation/providers/route53.md
@@ -80,27 +80,29 @@ D("example.tld", REG_NONE, DnsProvider(DSP_R53),
 
 ## Split horizon
 
-This provider supports spilt horizons using the `R53_ZONE()` domain function.
+This provider supports spilt horizons using the [`R53_ZONE()`](../functions/record/R53_ZONE.md) domain function.
 
 In this example the domain `testzone.net` appears in the same account twice,
-each with different zone IDs specified using `R53_ZONE()`.
+each with different zone IDs specified using [`R53_ZONE()`](../functions/record/R53_ZONE.md).
 
-```
+{% code title="dnsconfig.js" %}
+```javascript
 var DSP_R53 = NewDnsProvider("r53_main");
 var REG_NONE = NewRegistrar("none");
 
 D('testzone.net!private', REG_NONE,
     DnsProvider(DSP_R53),
     R53_ZONE('Z111111111JCCCP1V7UW'),
-    TXT('me',	'private testzone.net'),
+    TXT('me', 'private testzone.net'),
 );
 
 D('testzone.net!public', REG_NONE,
     DnsProvider(DSP_R53),
     R53_ZONE('Z222222222INNG98SHJQ2'),
-    TXT('me',	'public testzone.net'),
+    TXT('me', 'public testzone.net'),
 );
 ```
+{% endcode %}
 
 ## Activation
 DNSControl depends on a standard [AWS access key](https://aws.amazon.com/developers/access-keys/) with permission to list, create and update hosted zones. If you do not have the permissions required you will receive the following error message `Check your credentials, your not authorized to perform actions on Route 53 AWS Service`.
diff --git a/documentation/release-engineering.md b/documentation/release-engineering.md
index 50b34726..dd4b6caf 100644
--- a/documentation/release-engineering.md
+++ b/documentation/release-engineering.md
@@ -123,7 +123,7 @@ were used. They're included her for reference.
 
 ```shell
 #  Make all the changes:
-sed -i.bak -e 's@github.com.StackExchange.dnscontrol.v2@github.com/StackExchange/dnscontrol/v3@g' go.* $(fgrep -lri --include '*.go' github.com/StackExchange/dnscontrol/v2 *)
+sed -i.bak -e 's@github.com.StackExchange.dnscontrol.v2@github.com/StackExchange/dnscontrol/v4@g' go.* $(fgrep -lri --include '*.go' github.com/StackExchange/dnscontrol/v2 *)
 # Delete the backup files:
 find * -name \*.bak -delete
 ```
diff --git a/documentation/writing-providers.md b/documentation/writing-providers.md
index 6ce353fb..a1742967 100644
--- a/documentation/writing-providers.md
+++ b/documentation/writing-providers.md
@@ -146,7 +146,7 @@ Add the provider list so DNSControl knows it exists.
 **If you are implementing a DNS Service Provider:**
 
 Implement all the calls in the
-[providers.DNSServiceProvider interface](https://pkg.go.dev/github.com/StackExchange/dnscontrol/v3/providers#DNSServiceProvider).
+[providers.DNSServiceProvider interface](https://pkg.go.dev/github.com/StackExchange/dnscontrol/v4/providers#DNSServiceProvider).
 
 The function `GetDomainCorrections()` is a bit interesting. It returns
 a list of corrections to be made. These are in the form of functions
@@ -155,7 +155,7 @@ that DNSControl can call to actually make the corrections.
 **If you are implementing a DNS Registrar:**
 
 Implement all the calls in the
-[providers.Registrar interface](https://pkg.go.dev/github.com/StackExchange/dnscontrol/v3/providers#Registrar).
+[providers.Registrar interface](https://pkg.go.dev/github.com/StackExchange/dnscontrol/v4/providers#Registrar).
 
 The function `GetRegistrarCorrections()` returns
 a list of corrections to be made. These are in the form of functions
diff --git a/go.mod b/go.mod
index e14c2cfa..afa2fcd9 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/StackExchange/dnscontrol/v3
+module github.com/StackExchange/dnscontrol/v4
 
 go 1.18
 
diff --git a/main.go b/main.go
index 758f5404..c86971cb 100644
--- a/main.go
+++ b/main.go
@@ -6,9 +6,9 @@ import (
 	"os"
 	"runtime/debug"
 
-	"github.com/StackExchange/dnscontrol/v3/commands"
-	"github.com/StackExchange/dnscontrol/v3/pkg/version"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
+	"github.com/StackExchange/dnscontrol/v4/commands"
+	"github.com/StackExchange/dnscontrol/v4/pkg/version"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/_all"
 	"github.com/fatih/color"
 )
 
diff --git a/pkg/acme/acme.go b/pkg/acme/acme.go
index 2b961d10..2c0823e9 100644
--- a/pkg/acme/acme.go
+++ b/pkg/acme/acme.go
@@ -12,10 +12,10 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
-	"github.com/StackExchange/dnscontrol/v3/pkg/notifications"
-	"github.com/StackExchange/dnscontrol/v3/pkg/zonerecs"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/nameservers"
+	"github.com/StackExchange/dnscontrol/v4/pkg/notifications"
+	"github.com/StackExchange/dnscontrol/v4/pkg/zonerecs"
 	"github.com/go-acme/lego/certcrypto"
 	"github.com/go-acme/lego/certificate"
 	"github.com/go-acme/lego/challenge"
diff --git a/pkg/diff/diff.go b/pkg/diff/diff.go
index 6620cecb..b946b9ac 100644
--- a/pkg/diff/diff.go
+++ b/pkg/diff/diff.go
@@ -5,8 +5,8 @@ import (
 	"regexp"
 	"sort"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/fatih/color"
 	"github.com/gobwas/glob"
 )
diff --git a/pkg/diff/diff2compat.go b/pkg/diff/diff2compat.go
index 434d5648..f848ebf2 100644
--- a/pkg/diff/diff2compat.go
+++ b/pkg/diff/diff2compat.go
@@ -3,8 +3,8 @@ package diff
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
 )
 
 // NewCompat is a constructor that uses the new pkg/diff2 system
diff --git a/pkg/diff2/analyze.go b/pkg/diff2/analyze.go
index f0d8034d..ccb17d5f 100644
--- a/pkg/diff2/analyze.go
+++ b/pkg/diff2/analyze.go
@@ -5,7 +5,7 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/fatih/color"
 )
 
diff --git a/pkg/diff2/compareconfig.go b/pkg/diff2/compareconfig.go
index c22089ae..0b75d32a 100644
--- a/pkg/diff2/compareconfig.go
+++ b/pkg/diff2/compareconfig.go
@@ -5,8 +5,8 @@ import (
 	"fmt"
 	"sort"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/prettyzone"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/prettyzone"
 )
 
 /*
diff --git a/pkg/diff2/diff2.go b/pkg/diff2/diff2.go
index 0fb304be..f6ec4b34 100644
--- a/pkg/diff2/diff2.go
+++ b/pkg/diff2/diff2.go
@@ -10,7 +10,7 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Verb indicates the Change's type (create, delete, etc.)
diff --git a/pkg/diff2/groupsort.go b/pkg/diff2/groupsort.go
index ba9b1ed0..ea282ef7 100644
--- a/pkg/diff2/groupsort.go
+++ b/pkg/diff2/groupsort.go
@@ -1,8 +1,8 @@
 package diff2
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/prettyzone"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/prettyzone"
 )
 
 type recset struct {
diff --git a/pkg/diff2/handsoff.go b/pkg/diff2/handsoff.go
index fdc9c451..1027c8f9 100644
--- a/pkg/diff2/handsoff.go
+++ b/pkg/diff2/handsoff.go
@@ -8,8 +8,8 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/gobwas/glob"
 )
 
diff --git a/pkg/js/js.go b/pkg/js/js.go
index b88ca5f6..8a45dace 100644
--- a/pkg/js/js.go
+++ b/pkg/js/js.go
@@ -9,9 +9,9 @@ import (
 	"path/filepath"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/transform"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/transform"
 	"github.com/robertkrimen/otto"              // load underscore js into vm by default
 	_ "github.com/robertkrimen/otto/underscore" // required by otto
 	"github.com/xddxdd/ottoext/fetch"
diff --git a/pkg/nameservers/nameservers.go b/pkg/nameservers/nameservers.go
index f3b524e8..6df91f8e 100644
--- a/pkg/nameservers/nameservers.go
+++ b/pkg/nameservers/nameservers.go
@@ -6,8 +6,8 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 // DetermineNameservers will find all nameservers we should use for a domain. It follows the following rules:
diff --git a/pkg/normalize/flatten.go b/pkg/normalize/flatten.go
index 60b1f8f5..eef90aac 100644
--- a/pkg/normalize/flatten.go
+++ b/pkg/normalize/flatten.go
@@ -6,8 +6,8 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/spflib"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/spflib"
 	"golang.org/x/exp/constraints"
 )
 
diff --git a/pkg/normalize/validate.go b/pkg/normalize/validate.go
index 9d8398d9..fb9afe79 100644
--- a/pkg/normalize/validate.go
+++ b/pkg/normalize/validate.go
@@ -6,9 +6,9 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/transform"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/transform"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns"
 	"github.com/miekg/dns/dnsutil"
 	"golang.org/x/exp/slices"
diff --git a/pkg/prettyzone/prettyzone.go b/pkg/prettyzone/prettyzone.go
index 37203dee..ae8a485b 100644
--- a/pkg/prettyzone/prettyzone.go
+++ b/pkg/prettyzone/prettyzone.go
@@ -9,7 +9,7 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/miekg/dns"
 )
 
diff --git a/pkg/prettyzone/sorting.go b/pkg/prettyzone/sorting.go
index b178d1de..c5c373cb 100644
--- a/pkg/prettyzone/sorting.go
+++ b/pkg/prettyzone/sorting.go
@@ -9,7 +9,7 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // ZoneGenData is the configuration description for the zone generator.
diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go
index f75935c0..f2ef7ce5 100644
--- a/pkg/printer/printer.go
+++ b/pkg/printer/printer.go
@@ -7,7 +7,7 @@ import (
 	"os"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // CLI is an abstraction around the CLI.
diff --git a/pkg/recorddb/recorddb.go b/pkg/recorddb/recorddb.go
index d9b4ddbd..7e9665a0 100644
--- a/pkg/recorddb/recorddb.go
+++ b/pkg/recorddb/recorddb.go
@@ -1,6 +1,6 @@
 package recorddb
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // Functions that make it easier to deal with
 // a group of records.
diff --git a/pkg/rejectif/audit.go b/pkg/rejectif/audit.go
index 659db509..a92eaee1 100644
--- a/pkg/rejectif/audit.go
+++ b/pkg/rejectif/audit.go
@@ -1,6 +1,6 @@
 package rejectif
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // Auditor stores a list of checks to be executed during Audit().
 type Auditor struct {
diff --git a/pkg/rejectif/caa.go b/pkg/rejectif/caa.go
index 40d1ef90..c538e48b 100644
--- a/pkg/rejectif/caa.go
+++ b/pkg/rejectif/caa.go
@@ -4,7 +4,7 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Keep these in alphabetical order.
diff --git a/pkg/rejectif/label.go b/pkg/rejectif/label.go
index 2e9c3bae..f82d0257 100644
--- a/pkg/rejectif/label.go
+++ b/pkg/rejectif/label.go
@@ -3,7 +3,7 @@ package rejectif
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Keep these in alphabetical order.
diff --git a/pkg/rejectif/mx.go b/pkg/rejectif/mx.go
index 04baa86e..61b96aba 100644
--- a/pkg/rejectif/mx.go
+++ b/pkg/rejectif/mx.go
@@ -3,7 +3,7 @@ package rejectif
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Keep these in alphabetical order.
diff --git a/pkg/rejectif/srv.go b/pkg/rejectif/srv.go
index b7101bce..822b9ac1 100644
--- a/pkg/rejectif/srv.go
+++ b/pkg/rejectif/srv.go
@@ -3,7 +3,7 @@ package rejectif
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Keep these in alphabetical order.
diff --git a/pkg/rejectif/txt.go b/pkg/rejectif/txt.go
index 9c1d2dcc..8a0883b8 100644
--- a/pkg/rejectif/txt.go
+++ b/pkg/rejectif/txt.go
@@ -4,7 +4,7 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Keep these in alphabetical order.
diff --git a/pkg/txtutil/txtutil.go b/pkg/txtutil/txtutil.go
index cec100e1..5aa6b1d4 100644
--- a/pkg/txtutil/txtutil.go
+++ b/pkg/txtutil/txtutil.go
@@ -1,6 +1,6 @@
 package txtutil
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // SplitSingleLongTxt finds TXT records with a single long string and splits it
 // into 255-octet chunks. This is used by providers that, when a user specifies
diff --git a/pkg/zonerecs/zonerecords.go b/pkg/zonerecs/zonerecords.go
index cb067da0..bee00d74 100644
--- a/pkg/zonerecs/zonerecords.go
+++ b/pkg/zonerecs/zonerecords.go
@@ -1,7 +1,7 @@
 package zonerecs
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // CorrectZoneRecords calls both GetZoneRecords, does any
diff --git a/providers/_all/all.go b/providers/_all/all.go
index d3211770..9fcbaa7f 100644
--- a/providers/_all/all.go
+++ b/providers/_all/all.go
@@ -3,49 +3,49 @@ package all
 
 import (
 	// Define all known providers here. They should each register themselves with the providers package via init function.
-	_ "github.com/StackExchange/dnscontrol/v3/providers/akamaiedgedns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/autodns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/axfrddns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/azuredns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/bind"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/cloudflare"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/cloudns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/cscglobal"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/desec"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/digitalocean"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/dnsimple"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/dnsmadeeasy"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/doh"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/domainnameshop"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/easyname"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/exoscale"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/gandiv5"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/gcloud"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/gcore"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/hedns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/hetzner"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/hexonet"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/hostingde"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/internetbs"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/inwx"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/linode"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/loopia"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/luadns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/msdns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/namecheap"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/namedotcom"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/netcup"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/netlify"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/ns1"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/opensrs"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/oracle"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/ovh"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/packetframe"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/porkbun"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/powerdns"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/route53"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/rwth"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/softlayer"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/transip"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/vultr"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/akamaiedgedns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/autodns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/axfrddns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/azuredns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/bind"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/cloudflare"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/cloudns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/cscglobal"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/desec"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/digitalocean"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/dnsimple"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/dnsmadeeasy"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/doh"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/domainnameshop"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/easyname"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/exoscale"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/gandiv5"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/gcloud"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/gcore"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/hedns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/hetzner"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/hexonet"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/hostingde"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/internetbs"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/inwx"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/linode"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/loopia"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/luadns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/msdns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/namecheap"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/namedotcom"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/netcup"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/netlify"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/ns1"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/opensrs"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/oracle"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/ovh"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/packetframe"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/porkbun"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/powerdns"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/route53"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/rwth"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/softlayer"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/transip"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/vultr"
 )
diff --git a/providers/akamaiedgedns/akamaiEdgeDnsProvider.go b/providers/akamaiedgedns/akamaiEdgeDnsProvider.go
index b197e32e..fc225775 100644
--- a/providers/akamaiedgedns/akamaiEdgeDnsProvider.go
+++ b/providers/akamaiedgedns/akamaiEdgeDnsProvider.go
@@ -14,12 +14,12 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 var features = providers.DocumentationNotes{
diff --git a/providers/akamaiedgedns/akamaiEdgeDnsService.go b/providers/akamaiedgedns/akamaiEdgeDnsService.go
index 16093ec1..b62c898a 100644
--- a/providers/akamaiedgedns/akamaiEdgeDnsService.go
+++ b/providers/akamaiedgedns/akamaiEdgeDnsService.go
@@ -11,8 +11,8 @@ https://github.com/akamai/AkamaiOPEN-edgegrid-golang
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	dnsv2 "github.com/akamai/AkamaiOPEN-edgegrid-golang/configdns-v2"
 	"github.com/akamai/AkamaiOPEN-edgegrid-golang/edgegrid"
 )
diff --git a/providers/akamaiedgedns/auditrecords.go b/providers/akamaiedgedns/auditrecords.go
index 5db57330..255dafd5 100644
--- a/providers/akamaiedgedns/auditrecords.go
+++ b/providers/akamaiedgedns/auditrecords.go
@@ -1,6 +1,6 @@
 package akamaiedgedns
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/autodns/api.go b/providers/autodns/api.go
index a7467c2e..076a8866 100644
--- a/providers/autodns/api.go
+++ b/providers/autodns/api.go
@@ -8,7 +8,7 @@ import (
 	"net/http"
 	"sort"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // ZoneListFilter describes a JSON list filter.
diff --git a/providers/autodns/auditrecords.go b/providers/autodns/auditrecords.go
index ee0edc77..3f6cc114 100644
--- a/providers/autodns/auditrecords.go
+++ b/providers/autodns/auditrecords.go
@@ -1,8 +1,8 @@
 package autodns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/autodns/autoDnsProvider.go b/providers/autodns/autoDnsProvider.go
index af21496d..cb371a2f 100644
--- a/providers/autodns/autoDnsProvider.go
+++ b/providers/autodns/autoDnsProvider.go
@@ -9,12 +9,12 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 var features = providers.DocumentationNotes{
diff --git a/providers/autodns/types.go b/providers/autodns/types.go
index 87039c2f..4ba1f5f7 100644
--- a/providers/autodns/types.go
+++ b/providers/autodns/types.go
@@ -1,8 +1,8 @@
 package autodns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers/bind"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers/bind"
 )
 
 // ResourceRecord represents DNS records in API calls.
diff --git a/providers/axfrddns/auditrecords.go b/providers/axfrddns/auditrecords.go
index 8b8b23a6..9dd7f90b 100644
--- a/providers/axfrddns/auditrecords.go
+++ b/providers/axfrddns/auditrecords.go
@@ -1,6 +1,6 @@
 package axfrddns
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/axfrddns/axfrddnsProvider.go b/providers/axfrddns/axfrddnsProvider.go
index f5690937..d455fc20 100644
--- a/providers/axfrddns/axfrddnsProvider.go
+++ b/providers/axfrddns/axfrddnsProvider.go
@@ -23,12 +23,12 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/fatih/color"
 	"github.com/miekg/dns"
 )
diff --git a/providers/azuredns/auditrecords.go b/providers/azuredns/auditrecords.go
index 294a682f..13d73026 100644
--- a/providers/azuredns/auditrecords.go
+++ b/providers/azuredns/auditrecords.go
@@ -1,8 +1,8 @@
 package azuredns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/azuredns/azureDnsProvider.go b/providers/azuredns/azureDnsProvider.go
index ca37fa9a..484f1c57 100644
--- a/providers/azuredns/azureDnsProvider.go
+++ b/providers/azuredns/azureDnsProvider.go
@@ -11,12 +11,12 @@ import (
 	aauth "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
 	adns "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns"
 	"github.com/Azure/go-autorest/autorest/to"
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 type azurednsProvider struct {
diff --git a/providers/bind/auditrecords.go b/providers/bind/auditrecords.go
index 1bbf3930..318a5654 100644
--- a/providers/bind/auditrecords.go
+++ b/providers/bind/auditrecords.go
@@ -1,6 +1,6 @@
 package bind
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/bind/bindProvider.go b/providers/bind/bindProvider.go
index 2ba99d15..673ba317 100644
--- a/providers/bind/bindProvider.go
+++ b/providers/bind/bindProvider.go
@@ -22,12 +22,12 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/prettyzone"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/prettyzone"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns"
 )
 
diff --git a/providers/bind/serial.go b/providers/bind/serial.go
index b2109357..0a6cf625 100644
--- a/providers/bind/serial.go
+++ b/providers/bind/serial.go
@@ -5,7 +5,7 @@ import (
 	"strconv"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/bindserial"
+	"github.com/StackExchange/dnscontrol/v4/pkg/bindserial"
 )
 
 var nowFunc = time.Now
diff --git a/providers/bind/soa.go b/providers/bind/soa.go
index ecec7ada..be6302df 100644
--- a/providers/bind/soa.go
+++ b/providers/bind/soa.go
@@ -3,8 +3,8 @@ package bind
 import (
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/soautil"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/soautil"
 )
 
 func makeSoa(origin string, defSoa *SoaDefaults, existing, desired *models.RecordConfig) (*models.RecordConfig, uint32) {
diff --git a/providers/cloudflare/auditrecords.go b/providers/cloudflare/auditrecords.go
index 8feae230..71a66a06 100644
--- a/providers/cloudflare/auditrecords.go
+++ b/providers/cloudflare/auditrecords.go
@@ -1,8 +1,8 @@
 package cloudflare
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/cloudflare/cloudflareProvider.go b/providers/cloudflare/cloudflareProvider.go
index 6e688645..7f337832 100644
--- a/providers/cloudflare/cloudflareProvider.go
+++ b/providers/cloudflare/cloudflareProvider.go
@@ -6,12 +6,12 @@ import (
 	"net"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/transform"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/transform"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/cloudflare/cloudflare-go"
 	"github.com/fatih/color"
 )
diff --git a/providers/cloudflare/rest.go b/providers/cloudflare/rest.go
index f6703d7a..4032af92 100644
--- a/providers/cloudflare/rest.go
+++ b/providers/cloudflare/rest.go
@@ -6,7 +6,7 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/cloudflare/cloudflare-go"
 )
 
diff --git a/providers/cloudns/auditrecords.go b/providers/cloudns/auditrecords.go
index 32e67ad8..20d7b1d1 100644
--- a/providers/cloudns/auditrecords.go
+++ b/providers/cloudns/auditrecords.go
@@ -1,8 +1,8 @@
 package cloudns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/cloudns/cloudnsProvider.go b/providers/cloudns/cloudnsProvider.go
index 69bb04c2..e24685a1 100644
--- a/providers/cloudns/cloudnsProvider.go
+++ b/providers/cloudns/cloudnsProvider.go
@@ -6,10 +6,10 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns/dnsutil"
 )
 
diff --git a/providers/cscglobal/api.go b/providers/cscglobal/api.go
index f48e962f..69a2bc10 100644
--- a/providers/cscglobal/api.go
+++ b/providers/cscglobal/api.go
@@ -11,7 +11,7 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/mattn/go-isatty"
 )
 
diff --git a/providers/cscglobal/auditrecords.go b/providers/cscglobal/auditrecords.go
index 1aa92352..1ee9faf8 100644
--- a/providers/cscglobal/auditrecords.go
+++ b/providers/cscglobal/auditrecords.go
@@ -1,8 +1,8 @@
 package cscglobal
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/cscglobal/convert.go b/providers/cscglobal/convert.go
index 7503855c..4ffab7c1 100644
--- a/providers/cscglobal/convert.go
+++ b/providers/cscglobal/convert.go
@@ -5,7 +5,7 @@ package cscglobal
 import (
 	"net"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // nativeToRecordA takes an A record from DNS and returns a native RecordConfig struct.
diff --git a/providers/cscglobal/cscglobalProvider.go b/providers/cscglobal/cscglobalProvider.go
index d50d07e5..4515a84c 100644
--- a/providers/cscglobal/cscglobalProvider.go
+++ b/providers/cscglobal/cscglobalProvider.go
@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 /*
diff --git a/providers/cscglobal/dns.go b/providers/cscglobal/dns.go
index f2a66e6f..e00f1b3d 100644
--- a/providers/cscglobal/dns.go
+++ b/providers/cscglobal/dns.go
@@ -3,9 +3,9 @@ package cscglobal
 import (
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
 )
 
 // GetZoneRecords gets the records of a zone and returns them in RecordConfig format.
diff --git a/providers/cscglobal/registrar.go b/providers/cscglobal/registrar.go
index c79fe42d..47ead972 100644
--- a/providers/cscglobal/registrar.go
+++ b/providers/cscglobal/registrar.go
@@ -5,7 +5,7 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // GetRegistrarCorrections gathers corrections that would being n to match dc.
diff --git a/providers/desec/auditrecords.go b/providers/desec/auditrecords.go
index 6355323c..aa4f52b8 100644
--- a/providers/desec/auditrecords.go
+++ b/providers/desec/auditrecords.go
@@ -1,6 +1,6 @@
 package desec
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/desec/convert.go b/providers/desec/convert.go
index 760b803d..3b71b731 100644
--- a/providers/desec/convert.go
+++ b/providers/desec/convert.go
@@ -5,8 +5,8 @@ package desec
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 // nativeToRecord takes a DNS record from deSEC and returns a native RecordConfig struct.
diff --git a/providers/desec/desecProvider.go b/providers/desec/desecProvider.go
index f22606e4..275a9a45 100644
--- a/providers/desec/desecProvider.go
+++ b/providers/desec/desecProvider.go
@@ -6,12 +6,12 @@ import (
 	"fmt"
 	"sort"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns/dnsutil"
 )
 
@@ -248,3 +248,12 @@ func (c *desecProvider) GetZoneRecordsCorrections(dc *models.DomainConfig, exist
 
 	return corrections, nil
 }
+
+// ListZones return all the zones in the account
+func (c *desecProvider) ListZones() ([]string, error) {
+	var domains []string
+	for domain := range c.domainIndex {
+		domains = append(domains, domain)
+	}
+	return domains, nil
+}
diff --git a/providers/desec/protocol.go b/providers/desec/protocol.go
index 4f69d5d3..c7c1c4aa 100644
--- a/providers/desec/protocol.go
+++ b/providers/desec/protocol.go
@@ -12,7 +12,7 @@ import (
 	"sync"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 const apiBase = "https://desec.io/api/v1"
diff --git a/providers/digitalocean/auditrecords.go b/providers/digitalocean/auditrecords.go
index 4dbba586..49263f45 100644
--- a/providers/digitalocean/auditrecords.go
+++ b/providers/digitalocean/auditrecords.go
@@ -3,8 +3,8 @@ package digitalocean
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/digitalocean/digitaloceanProvider.go b/providers/digitalocean/digitaloceanProvider.go
index 4ce70e66..1eb6ff5d 100644
--- a/providers/digitalocean/digitaloceanProvider.go
+++ b/providers/digitalocean/digitaloceanProvider.go
@@ -8,11 +8,11 @@ import (
 	"net/http"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/digitalocean/godo"
 	"github.com/miekg/dns/dnsutil"
 	"golang.org/x/oauth2"
diff --git a/providers/dnsimple/auditrecords.go b/providers/dnsimple/auditrecords.go
index 966241ca..0354a63e 100644
--- a/providers/dnsimple/auditrecords.go
+++ b/providers/dnsimple/auditrecords.go
@@ -1,8 +1,8 @@
 package dnsimple
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/dnsimple/dnsimpleProvider.go b/providers/dnsimple/dnsimpleProvider.go
index 93fa5206..fb5d2692 100644
--- a/providers/dnsimple/dnsimpleProvider.go
+++ b/providers/dnsimple/dnsimpleProvider.go
@@ -9,11 +9,11 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	dnsimpleapi "github.com/dnsimple/dnsimple-go/dnsimple"
 	"golang.org/x/oauth2"
 )
diff --git a/providers/dnsmadeeasy/api.go b/providers/dnsmadeeasy/api.go
index d184dc9b..879f9b43 100644
--- a/providers/dnsmadeeasy/api.go
+++ b/providers/dnsmadeeasy/api.go
@@ -5,7 +5,7 @@ import (
 	"net/http"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 type dnsMadeEasyProvider struct {
diff --git a/providers/dnsmadeeasy/auditrecords.go b/providers/dnsmadeeasy/auditrecords.go
index dafd1ad6..8e8f61b7 100644
--- a/providers/dnsmadeeasy/auditrecords.go
+++ b/providers/dnsmadeeasy/auditrecords.go
@@ -1,8 +1,8 @@
 package dnsmadeeasy
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/dnsmadeeasy/dnsMadeEasyProvider.go b/providers/dnsmadeeasy/dnsMadeEasyProvider.go
index 27f3c137..d6942b16 100644
--- a/providers/dnsmadeeasy/dnsMadeEasyProvider.go
+++ b/providers/dnsmadeeasy/dnsMadeEasyProvider.go
@@ -6,11 +6,11 @@ import (
 	"os"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 var features = providers.DocumentationNotes{
diff --git a/providers/dnsmadeeasy/restApi.go b/providers/dnsmadeeasy/restApi.go
index 55a8371c..02b570c5 100644
--- a/providers/dnsmadeeasy/restApi.go
+++ b/providers/dnsmadeeasy/restApi.go
@@ -7,7 +7,7 @@ import (
 	"encoding/hex"
 	"encoding/json"
 	"fmt"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"net/http"
 	"net/http/httputil"
 	"strings"
diff --git a/providers/dnsmadeeasy/types.go b/providers/dnsmadeeasy/types.go
index 3ceaca16..1a4010d3 100644
--- a/providers/dnsmadeeasy/types.go
+++ b/providers/dnsmadeeasy/types.go
@@ -3,7 +3,7 @@ package dnsmadeeasy
 import (
 	"strconv"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // DNS Made Easy does not allow the system name servers to be edited, and said records appear to always have a fixed TTL of 86400.
diff --git a/providers/doh/auditrecords.go b/providers/doh/auditrecords.go
index 12503c85..59011405 100644
--- a/providers/doh/auditrecords.go
+++ b/providers/doh/auditrecords.go
@@ -1,6 +1,6 @@
 package doh
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/doh/dohProvider.go b/providers/doh/dohProvider.go
index 55ef71cf..ad9ccd51 100644
--- a/providers/doh/dohProvider.go
+++ b/providers/doh/dohProvider.go
@@ -5,8 +5,8 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 /*
diff --git a/providers/domainnameshop/auditrecords.go b/providers/domainnameshop/auditrecords.go
index e3a9400e..87eae60c 100644
--- a/providers/domainnameshop/auditrecords.go
+++ b/providers/domainnameshop/auditrecords.go
@@ -1,6 +1,6 @@
 package domainnameshop
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/domainnameshop/convert.go b/providers/domainnameshop/convert.go
index cae6dc4f..0a2cedf5 100644
--- a/providers/domainnameshop/convert.go
+++ b/providers/domainnameshop/convert.go
@@ -3,7 +3,7 @@ package domainnameshop
 import (
 	"strconv"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/miekg/dns/dnsutil"
 )
 
diff --git a/providers/domainnameshop/dns.go b/providers/domainnameshop/dns.go
index a00978b0..27acee61 100644
--- a/providers/domainnameshop/dns.go
+++ b/providers/domainnameshop/dns.go
@@ -5,9 +5,9 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
 )
 
 func (api *domainNameShopProvider) GetZoneRecords(domain string, meta map[string]string) (models.Records, error) {
diff --git a/providers/domainnameshop/domainnameshopProvider.go b/providers/domainnameshop/domainnameshopProvider.go
index e84cc634..a3b9e167 100644
--- a/providers/domainnameshop/domainnameshopProvider.go
+++ b/providers/domainnameshop/domainnameshopProvider.go
@@ -4,7 +4,7 @@ import (
 	"encoding/json"
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 /**
diff --git a/providers/easyname/easynameProvider.go b/providers/easyname/easynameProvider.go
index f9adcc01..4fc9b848 100644
--- a/providers/easyname/easynameProvider.go
+++ b/providers/easyname/easynameProvider.go
@@ -5,8 +5,8 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 type easynameProvider struct {
diff --git a/providers/exoscale/auditrecords.go b/providers/exoscale/auditrecords.go
index 4cfdc1a3..33fc0966 100644
--- a/providers/exoscale/auditrecords.go
+++ b/providers/exoscale/auditrecords.go
@@ -1,8 +1,8 @@
 package exoscale
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/exoscale/exoscaleProvider.go b/providers/exoscale/exoscaleProvider.go
index 2e73823d..ec303aa2 100644
--- a/providers/exoscale/exoscaleProvider.go
+++ b/providers/exoscale/exoscaleProvider.go
@@ -10,11 +10,11 @@ import (
 
 	egoscale "github.com/exoscale/egoscale/v2"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 const (
diff --git a/providers/gandiv5/auditrecords.go b/providers/gandiv5/auditrecords.go
index 4bd97f0c..58adc3bd 100644
--- a/providers/gandiv5/auditrecords.go
+++ b/providers/gandiv5/auditrecords.go
@@ -1,7 +1,7 @@
 package gandiv5
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/gandiv5/convert.go b/providers/gandiv5/convert.go
index ec005998..229ac0c3 100644
--- a/providers/gandiv5/convert.go
+++ b/providers/gandiv5/convert.go
@@ -5,8 +5,8 @@ package gandiv5
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/go-gandi/go-gandi/livedns"
 )
 
diff --git a/providers/gandiv5/gandi_v5Provider.go b/providers/gandiv5/gandi_v5Provider.go
index 4b197e08..6a069bd7 100644
--- a/providers/gandiv5/gandi_v5Provider.go
+++ b/providers/gandiv5/gandi_v5Provider.go
@@ -21,12 +21,12 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/go-gandi/go-gandi"
 	"github.com/go-gandi/go-gandi/config"
 	"github.com/miekg/dns/dnsutil"
diff --git a/providers/gcloud/auditrecords.go b/providers/gcloud/auditrecords.go
index aadc8a3a..8a477669 100644
--- a/providers/gcloud/auditrecords.go
+++ b/providers/gcloud/auditrecords.go
@@ -1,8 +1,8 @@
 package gcloud
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/gcloud/gcloudProvider.go b/providers/gcloud/gcloudProvider.go
index f880e92f..fd083737 100644
--- a/providers/gcloud/gcloudProvider.go
+++ b/providers/gcloud/gcloudProvider.go
@@ -9,12 +9,12 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	gauth "golang.org/x/oauth2/google"
 	gdns "google.golang.org/api/dns/v1"
 	"google.golang.org/api/googleapi"
diff --git a/providers/gcore/auditrecords.go b/providers/gcore/auditrecords.go
index de207ccc..8bfddf7a 100644
--- a/providers/gcore/auditrecords.go
+++ b/providers/gcore/auditrecords.go
@@ -1,8 +1,8 @@
 package gcore
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/gcore/convert.go b/providers/gcore/convert.go
index e40a94d8..938caf9d 100644
--- a/providers/gcore/convert.go
+++ b/providers/gcore/convert.go
@@ -7,8 +7,8 @@ import (
 	"fmt"
 
 	dnssdk "github.com/G-Core/gcore-dns-sdk-go"
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 // nativeToRecord takes a DNS record from G-Core and returns a native RecordConfig struct.
diff --git a/providers/gcore/gcoreProvider.go b/providers/gcore/gcoreProvider.go
index ab69f853..f5ff49ad 100644
--- a/providers/gcore/gcoreProvider.go
+++ b/providers/gcore/gcoreProvider.go
@@ -6,10 +6,10 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 
 	dnssdk "github.com/G-Core/gcore-dns-sdk-go"
 )
diff --git a/providers/hedns/auditrecords.go b/providers/hedns/auditrecords.go
index d09c30a0..e7dbcd93 100644
--- a/providers/hedns/auditrecords.go
+++ b/providers/hedns/auditrecords.go
@@ -1,8 +1,8 @@
 package hedns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/hedns/hednsProvider.go b/providers/hedns/hednsProvider.go
index 8602376a..83711f2f 100644
--- a/providers/hedns/hednsProvider.go
+++ b/providers/hedns/hednsProvider.go
@@ -15,11 +15,11 @@ import (
 	"time"
 
 	"github.com/PuerkitoBio/goquery"
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/pquerna/otp/totp"
 )
 
diff --git a/providers/hetzner/api.go b/providers/hetzner/api.go
index 351d2be8..52e3dc7f 100644
--- a/providers/hetzner/api.go
+++ b/providers/hetzner/api.go
@@ -9,7 +9,7 @@ import (
 	"strconv"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 const (
diff --git a/providers/hetzner/auditrecords.go b/providers/hetzner/auditrecords.go
index 54e2192b..d55dd3e4 100644
--- a/providers/hetzner/auditrecords.go
+++ b/providers/hetzner/auditrecords.go
@@ -1,8 +1,8 @@
 package hetzner
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/hetzner/hetznerProvider.go b/providers/hetzner/hetznerProvider.go
index 34742056..a04515cd 100644
--- a/providers/hetzner/hetznerProvider.go
+++ b/providers/hetzner/hetznerProvider.go
@@ -5,11 +5,11 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 var features = providers.DocumentationNotes{
diff --git a/providers/hetzner/types.go b/providers/hetzner/types.go
index 6d68f2e7..80ad3c8e 100644
--- a/providers/hetzner/types.go
+++ b/providers/hetzner/types.go
@@ -3,7 +3,7 @@ package hetzner
 import (
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 type bulkCreateRecordsRequest struct {
diff --git a/providers/hexonet/auditrecords.go b/providers/hexonet/auditrecords.go
index d725a26d..371bd493 100644
--- a/providers/hexonet/auditrecords.go
+++ b/providers/hexonet/auditrecords.go
@@ -1,8 +1,8 @@
 package hexonet
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/hexonet/hexonetProvider.go b/providers/hexonet/hexonetProvider.go
index add8ec93..a826c5ea 100644
--- a/providers/hexonet/hexonetProvider.go
+++ b/providers/hexonet/hexonetProvider.go
@@ -5,8 +5,8 @@ import (
 	"encoding/json"
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/version"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/pkg/version"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	hxcl "github.com/hexonet/go-sdk/v3/apiclient"
 )
 
diff --git a/providers/hexonet/nameservers.go b/providers/hexonet/nameservers.go
index 057b7a27..687d299b 100644
--- a/providers/hexonet/nameservers.go
+++ b/providers/hexonet/nameservers.go
@@ -6,7 +6,7 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 var defaultNameservers = []*models.Nameserver{
diff --git a/providers/hexonet/records.go b/providers/hexonet/records.go
index f66f4f05..9102f399 100644
--- a/providers/hexonet/records.go
+++ b/providers/hexonet/records.go
@@ -7,10 +7,10 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
 )
 
 // HXRecord covers an individual DNS resource record.
diff --git a/providers/hostingde/api.go b/providers/hostingde/api.go
index ec4d20ad..0dba4283 100644
--- a/providers/hostingde/api.go
+++ b/providers/hostingde/api.go
@@ -7,7 +7,7 @@ import (
 	"io"
 	"net/http"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
 	"golang.org/x/net/idna"
 )
 
diff --git a/providers/hostingde/auditrecords.go b/providers/hostingde/auditrecords.go
index 1d5baba0..eb8cae84 100644
--- a/providers/hostingde/auditrecords.go
+++ b/providers/hostingde/auditrecords.go
@@ -1,8 +1,8 @@
 package hostingde
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/hostingde/hostingdeProvider.go b/providers/hostingde/hostingdeProvider.go
index af38a9d0..be91b241 100644
--- a/providers/hostingde/hostingdeProvider.go
+++ b/providers/hostingde/hostingdeProvider.go
@@ -8,10 +8,10 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 var defaultNameservers = []string{"ns1.hosting.de", "ns2.hosting.de", "ns3.hosting.de"}
diff --git a/providers/hostingde/types.go b/providers/hostingde/types.go
index b562c69b..0a1f924a 100644
--- a/providers/hostingde/types.go
+++ b/providers/hostingde/types.go
@@ -7,7 +7,7 @@ import (
 	"net"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/pkg/errors"
 )
 
diff --git a/providers/internetbs/auditrecords.go b/providers/internetbs/auditrecords.go
index ab205a4b..b9376c58 100644
--- a/providers/internetbs/auditrecords.go
+++ b/providers/internetbs/auditrecords.go
@@ -1,6 +1,6 @@
 package internetbs
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/internetbs/internetbsProvider.go b/providers/internetbs/internetbsProvider.go
index 17e3bbac..84ba4335 100644
--- a/providers/internetbs/internetbsProvider.go
+++ b/providers/internetbs/internetbsProvider.go
@@ -5,8 +5,8 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 /*
diff --git a/providers/inwx/auditrecords.go b/providers/inwx/auditrecords.go
index a5389d1b..fb15d2e7 100644
--- a/providers/inwx/auditrecords.go
+++ b/providers/inwx/auditrecords.go
@@ -1,8 +1,8 @@
 package inwx
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
@@ -21,7 +21,5 @@ func AuditRecords(records []*models.RecordConfig) []error {
 
 	a.Add("TXT", rejectif.TxtIsEmpty) // Last verified 2021-03-01
 
-	a.Add("TXT", rejectif.TxtIsExactlyLen255) // Last verified 2021-03-01
-
 	return a.Audit(records)
 }
diff --git a/providers/inwx/inwxProvider.go b/providers/inwx/inwxProvider.go
index dc54267f..1e5e546c 100644
--- a/providers/inwx/inwxProvider.go
+++ b/providers/inwx/inwxProvider.go
@@ -7,12 +7,12 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/nrdcg/goinwx"
 	"github.com/pquerna/otp/totp"
 )
diff --git a/providers/linode/auditrecords.go b/providers/linode/auditrecords.go
index 87414507..0cce247c 100644
--- a/providers/linode/auditrecords.go
+++ b/providers/linode/auditrecords.go
@@ -1,8 +1,8 @@
 package linode
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/linode/linodeProvider.go b/providers/linode/linodeProvider.go
index 16305211..bc4451b3 100644
--- a/providers/linode/linodeProvider.go
+++ b/providers/linode/linodeProvider.go
@@ -9,10 +9,10 @@ import (
 	"regexp"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns/dnsutil"
 	"golang.org/x/oauth2"
 )
diff --git a/providers/loopia/auditrecords.go b/providers/loopia/auditrecords.go
index 59140c41..0accc622 100644
--- a/providers/loopia/auditrecords.go
+++ b/providers/loopia/auditrecords.go
@@ -2,8 +2,8 @@ package loopia
 
 import (
 	"fmt"
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/loopia/convert.go b/providers/loopia/convert.go
index ec4b590e..737820df 100644
--- a/providers/loopia/convert.go
+++ b/providers/loopia/convert.go
@@ -5,7 +5,7 @@ package loopia
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/miekg/dns/dnsutil"
 )
 
diff --git a/providers/loopia/loopiaProvider.go b/providers/loopia/loopiaProvider.go
index 55601648..3e0740b3 100644
--- a/providers/loopia/loopiaProvider.go
+++ b/providers/loopia/loopiaProvider.go
@@ -22,12 +22,12 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns/dnsutil"
 )
 
diff --git a/providers/luadns/api.go b/providers/luadns/api.go
index 3e8d4d67..0ca8afab 100644
--- a/providers/luadns/api.go
+++ b/providers/luadns/api.go
@@ -9,7 +9,7 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Api layer for LuaDNS
diff --git a/providers/luadns/auditrecords.go b/providers/luadns/auditrecords.go
index aec3059e..67e20729 100644
--- a/providers/luadns/auditrecords.go
+++ b/providers/luadns/auditrecords.go
@@ -1,8 +1,8 @@
 package luadns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/luadns/luadnsProvider.go b/providers/luadns/luadnsProvider.go
index 90da43d6..7aed0276 100644
--- a/providers/luadns/luadnsProvider.go
+++ b/providers/luadns/luadnsProvider.go
@@ -4,10 +4,10 @@ import (
 	"encoding/json"
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 /*
diff --git a/providers/msdns/auditrecords.go b/providers/msdns/auditrecords.go
index dab036be..f031369f 100644
--- a/providers/msdns/auditrecords.go
+++ b/providers/msdns/auditrecords.go
@@ -1,8 +1,8 @@
 package msdns
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/msdns/convert.go b/providers/msdns/convert.go
index c4bc655e..d27372a1 100644
--- a/providers/msdns/convert.go
+++ b/providers/msdns/convert.go
@@ -7,7 +7,7 @@ import (
 	"fmt"
 	"net"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // extractProps and collects Name/Value pairs into maps for easier access.
diff --git a/providers/msdns/corrections.go b/providers/msdns/corrections.go
index b95ab93f..dc9ed5ff 100644
--- a/providers/msdns/corrections.go
+++ b/providers/msdns/corrections.go
@@ -3,10 +3,10 @@ package msdns
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
 )
 
 // GetZoneRecordsCorrections returns a list of corrections that will turn existing records into dc.Records.
diff --git a/providers/msdns/domains.go b/providers/msdns/domains.go
index 88e64333..6f69b626 100644
--- a/providers/msdns/domains.go
+++ b/providers/msdns/domains.go
@@ -1,6 +1,6 @@
 package msdns
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 func (client *msdnsProvider) GetNameservers(string) ([]*models.Nameserver, error) {
 	// TODO: If using AD for publicly hosted zones, probably pull these from config.
diff --git a/providers/msdns/msdnsProvider.go b/providers/msdns/msdnsProvider.go
index 544ef053..b8fffc57 100644
--- a/providers/msdns/msdnsProvider.go
+++ b/providers/msdns/msdnsProvider.go
@@ -4,9 +4,9 @@ import (
 	"encoding/json"
 	"runtime"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 // This is the struct that matches either (or both) of the Registrar and/or DNSProvider interfaces:
diff --git a/providers/msdns/naptr.go b/providers/msdns/naptr.go
index 99fc5a5a..e27ed574 100644
--- a/providers/msdns/naptr.go
+++ b/providers/msdns/naptr.go
@@ -10,8 +10,8 @@ import (
 	"log"
 	"strconv"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 func generatePSCreateNaptr(dnsServerName, domain string, rec *models.RecordConfig) string {
diff --git a/providers/msdns/powershell.go b/providers/msdns/powershell.go
index 4b81aa21..2022367b 100644
--- a/providers/msdns/powershell.go
+++ b/providers/msdns/powershell.go
@@ -7,8 +7,8 @@ import (
 	"log"
 	"os"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 	"github.com/TomOnTime/utfutil"
 	ps "github.com/bhendo/go-powershell"
 	"github.com/bhendo/go-powershell/backend"
diff --git a/providers/msdns/types.go b/providers/msdns/types.go
index c2d50c62..315aa267 100644
--- a/providers/msdns/types.go
+++ b/providers/msdns/types.go
@@ -3,7 +3,7 @@ package msdns
 import (
 	"encoding/json"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // DNSAccessor describes a system that can access Microsoft DNS.
diff --git a/providers/namecheap/auditrecords.go b/providers/namecheap/auditrecords.go
index 928afef6..45f71116 100644
--- a/providers/namecheap/auditrecords.go
+++ b/providers/namecheap/auditrecords.go
@@ -1,8 +1,8 @@
 package namecheap
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/namecheap/namecheapProvider.go b/providers/namecheap/namecheapProvider.go
index a7d74b32..31af80c9 100644
--- a/providers/namecheap/namecheapProvider.go
+++ b/providers/namecheap/namecheapProvider.go
@@ -7,11 +7,11 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	nc "github.com/billputer/go-namecheap"
 	"golang.org/x/net/publicsuffix"
 )
diff --git a/providers/namedotcom/auditrecords.go b/providers/namedotcom/auditrecords.go
index 14105482..7db65ad5 100644
--- a/providers/namedotcom/auditrecords.go
+++ b/providers/namedotcom/auditrecords.go
@@ -4,8 +4,8 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/namedotcom/namedotcomProvider.go b/providers/namedotcom/namedotcomProvider.go
index fdc6e202..9e10f5e1 100644
--- a/providers/namedotcom/namedotcomProvider.go
+++ b/providers/namedotcom/namedotcomProvider.go
@@ -6,7 +6,7 @@ import (
 	"fmt"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/namedotcom/go/namecom"
 )
 
diff --git a/providers/namedotcom/nameservers.go b/providers/namedotcom/nameservers.go
index e907c6d2..f3701434 100644
--- a/providers/namedotcom/nameservers.go
+++ b/providers/namedotcom/nameservers.go
@@ -6,7 +6,7 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/namedotcom/go/namecom"
 )
 
diff --git a/providers/namedotcom/records.go b/providers/namedotcom/records.go
index 7b45c33e..0dba6abb 100644
--- a/providers/namedotcom/records.go
+++ b/providers/namedotcom/records.go
@@ -6,9 +6,9 @@ import (
 	"regexp"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
 	"github.com/namedotcom/go/namecom"
 )
 
diff --git a/providers/netcup/auditrecords.go b/providers/netcup/auditrecords.go
index 8942c1af..418abf91 100644
--- a/providers/netcup/auditrecords.go
+++ b/providers/netcup/auditrecords.go
@@ -1,8 +1,8 @@
 package netcup
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/netcup/netcupProvider.go b/providers/netcup/netcupProvider.go
index c441894a..a2d51581 100644
--- a/providers/netcup/netcupProvider.go
+++ b/providers/netcup/netcupProvider.go
@@ -4,10 +4,10 @@ import (
 	"encoding/json"
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 var features = providers.DocumentationNotes{
diff --git a/providers/netcup/types.go b/providers/netcup/types.go
index 71064323..ae7279fa 100644
--- a/providers/netcup/types.go
+++ b/providers/netcup/types.go
@@ -6,7 +6,7 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/miekg/dns/dnsutil"
 )
 
diff --git a/providers/netlify/auditrecords.go b/providers/netlify/auditrecords.go
index 3b420202..3c89992a 100644
--- a/providers/netlify/auditrecords.go
+++ b/providers/netlify/auditrecords.go
@@ -1,8 +1,8 @@
 package netlify
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/netlify/netlifyProvider.go b/providers/netlify/netlifyProvider.go
index 9522e809..42f474d0 100644
--- a/providers/netlify/netlifyProvider.go
+++ b/providers/netlify/netlifyProvider.go
@@ -5,11 +5,11 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/miekg/dns"
 )
 
diff --git a/providers/ns1/auditrecords.go b/providers/ns1/auditrecords.go
index d302017f..d30fc861 100644
--- a/providers/ns1/auditrecords.go
+++ b/providers/ns1/auditrecords.go
@@ -1,8 +1,8 @@
 package ns1
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/ns1/ns1Provider.go b/providers/ns1/ns1Provider.go
index 85b4b5b0..5eb30dde 100644
--- a/providers/ns1/ns1Provider.go
+++ b/providers/ns1/ns1Provider.go
@@ -7,10 +7,10 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"gopkg.in/ns1/ns1-go.v2/rest"
 	"gopkg.in/ns1/ns1-go.v2/rest/model/dns"
 	"gopkg.in/ns1/ns1-go.v2/rest/model/filter"
diff --git a/providers/opensrs/auditrecords.go b/providers/opensrs/auditrecords.go
index e26fd046..792b39a7 100644
--- a/providers/opensrs/auditrecords.go
+++ b/providers/opensrs/auditrecords.go
@@ -1,6 +1,6 @@
 package opensrs
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/opensrs/opensrsProvider.go b/providers/opensrs/opensrsProvider.go
index 2ce685c6..08aebf76 100644
--- a/providers/opensrs/opensrsProvider.go
+++ b/providers/opensrs/opensrsProvider.go
@@ -7,8 +7,8 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	opensrs "github.com/philhug/opensrs-go/opensrs"
 )
 
diff --git a/providers/oracle/auditrecords.go b/providers/oracle/auditrecords.go
index 3ad3e998..629ff55e 100644
--- a/providers/oracle/auditrecords.go
+++ b/providers/oracle/auditrecords.go
@@ -1,6 +1,6 @@
 package oracle
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/oracle/oracleProvider.go b/providers/oracle/oracleProvider.go
index b60077d4..8b269b71 100644
--- a/providers/oracle/oracleProvider.go
+++ b/providers/oracle/oracleProvider.go
@@ -6,12 +6,12 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/oracle/oci-go-sdk/v32/common"
 	"github.com/oracle/oci-go-sdk/v32/dns"
 	"github.com/oracle/oci-go-sdk/v32/example/helpers"
diff --git a/providers/ovh/auditrecords.go b/providers/ovh/auditrecords.go
index c0829143..bd112153 100644
--- a/providers/ovh/auditrecords.go
+++ b/providers/ovh/auditrecords.go
@@ -1,8 +1,8 @@
 package ovh
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/ovh/ovhProvider.go b/providers/ovh/ovhProvider.go
index cf4db7ce..a5d74f8e 100644
--- a/providers/ovh/ovhProvider.go
+++ b/providers/ovh/ovhProvider.go
@@ -6,10 +6,10 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/ovh/go-ovh/ovh"
 )
 
diff --git a/providers/ovh/protocol.go b/providers/ovh/protocol.go
index daea5f87..71691bcf 100644
--- a/providers/ovh/protocol.go
+++ b/providers/ovh/protocol.go
@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/miekg/dns/dnsutil"
 	"github.com/ovh/go-ovh/ovh"
 )
diff --git a/providers/packetframe/auditrecords.go b/providers/packetframe/auditrecords.go
index 7d092f96..5a860f0e 100644
--- a/providers/packetframe/auditrecords.go
+++ b/providers/packetframe/auditrecords.go
@@ -1,6 +1,6 @@
 package packetframe
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/packetframe/packetframeProvider.go b/providers/packetframe/packetframeProvider.go
index e3cc7dfb..2c1fff87 100644
--- a/providers/packetframe/packetframeProvider.go
+++ b/providers/packetframe/packetframeProvider.go
@@ -8,10 +8,10 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 // packetframeProvider is the handle for this provider.
diff --git a/providers/porkbun/auditrecords.go b/providers/porkbun/auditrecords.go
index 6b66bc42..6b575d67 100644
--- a/providers/porkbun/auditrecords.go
+++ b/providers/porkbun/auditrecords.go
@@ -1,8 +1,8 @@
 package porkbun
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/porkbun/porkbunProvider.go b/providers/porkbun/porkbunProvider.go
index 6778229c..1825a755 100644
--- a/providers/porkbun/porkbunProvider.go
+++ b/providers/porkbun/porkbunProvider.go
@@ -6,11 +6,11 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 const (
diff --git a/providers/powerdns/auditrecords.go b/providers/powerdns/auditrecords.go
index fc3b2fae..7b22a7d1 100644
--- a/providers/powerdns/auditrecords.go
+++ b/providers/powerdns/auditrecords.go
@@ -1,6 +1,6 @@
 package powerdns
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/powerdns/convert.go b/providers/powerdns/convert.go
index 5aefc6f0..30795555 100644
--- a/providers/powerdns/convert.go
+++ b/providers/powerdns/convert.go
@@ -3,7 +3,7 @@ package powerdns
 import (
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/mittwald/go-powerdns/apis/zones"
 )
 
diff --git a/providers/powerdns/diff.go b/providers/powerdns/diff.go
index c533ba27..1d246251 100644
--- a/providers/powerdns/diff.go
+++ b/providers/powerdns/diff.go
@@ -3,9 +3,9 @@ package powerdns
 import (
 	"context"
 	"fmt"
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
 	"github.com/mittwald/go-powerdns/apis/zones"
 	"strings"
 )
diff --git a/providers/powerdns/dns.go b/providers/powerdns/dns.go
index 58014409..c9df0935 100644
--- a/providers/powerdns/dns.go
+++ b/providers/powerdns/dns.go
@@ -4,8 +4,8 @@ import (
 	"context"
 	"net/http"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
 	"github.com/mittwald/go-powerdns/apis/zones"
 	"github.com/mittwald/go-powerdns/pdnshttp"
 )
diff --git a/providers/powerdns/dnssec.go b/providers/powerdns/dnssec.go
index cfeeff8a..45dcab5d 100644
--- a/providers/powerdns/dnssec.go
+++ b/providers/powerdns/dnssec.go
@@ -3,7 +3,7 @@ package powerdns
 import (
 	"context"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/mittwald/go-powerdns/apis/cryptokeys"
 )
 
diff --git a/providers/powerdns/powerdnsProvider.go b/providers/powerdns/powerdnsProvider.go
index 38d08463..8b299500 100644
--- a/providers/powerdns/powerdnsProvider.go
+++ b/providers/powerdns/powerdnsProvider.go
@@ -5,8 +5,8 @@ import (
 	"fmt"
 	"github.com/mittwald/go-powerdns/apis/zones"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	pdns "github.com/mittwald/go-powerdns"
 )
 
diff --git a/providers/providers.go b/providers/providers.go
index ae1fb5f7..e04ab35c 100644
--- a/providers/providers.go
+++ b/providers/providers.go
@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"log"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 // Registrar is an interface for a domain registrar. It can return a list of needed corrections to be applied in the future. Implement this only if the provider is a "registrar" (i.e. can update the NS records of the parent to a domain).
diff --git a/providers/route53/auditrecords.go b/providers/route53/auditrecords.go
index 90fd30ff..76534b99 100644
--- a/providers/route53/auditrecords.go
+++ b/providers/route53/auditrecords.go
@@ -3,8 +3,8 @@ package route53
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/route53/route53Provider.go b/providers/route53/route53Provider.go
index 5d9bd1ef..c5165734 100644
--- a/providers/route53/route53Provider.go
+++ b/providers/route53/route53Provider.go
@@ -11,12 +11,12 @@ import (
 	"time"
 	"unicode/utf8"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/aws/aws-sdk-go-v2/aws"
 	"github.com/aws/aws-sdk-go-v2/config"
 	"github.com/aws/aws-sdk-go-v2/credentials"
@@ -47,7 +47,7 @@ func newRoute53(m map[string]string, metadata json.RawMessage) (*route53Provider
 	optFns := []func(*config.LoadOptions) error{
 		// Route53 uses a global endpoint and route53domains
 		// currently only has a single regional endpoint in us-east-1
-		// http://docs.aws.amazon.com/general/latest/gr/rande.html#r53_region
+		// https://docs.aws.amazon.com/general/latest/gr/rande.html#r53_region
 		config.WithRegion("us-east-1"),
 	}
 
diff --git a/providers/rwth/api.go b/providers/rwth/api.go
index 88df6d86..34230c29 100644
--- a/providers/rwth/api.go
+++ b/providers/rwth/api.go
@@ -13,8 +13,8 @@ import (
 	"strings"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
 )
 
 const (
diff --git a/providers/rwth/auditrecords.go b/providers/rwth/auditrecords.go
index 0ab2db05..fee9c390 100644
--- a/providers/rwth/auditrecords.go
+++ b/providers/rwth/auditrecords.go
@@ -1,8 +1,8 @@
 package rwth
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/rwth/convert.go b/providers/rwth/convert.go
index 93f63452..cac252f3 100644
--- a/providers/rwth/convert.go
+++ b/providers/rwth/convert.go
@@ -5,8 +5,8 @@ import (
 	"io"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/prettyzone"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/prettyzone"
 	"github.com/miekg/dns"
 )
 
diff --git a/providers/rwth/dns.go b/providers/rwth/dns.go
index dd3d6700..45809f3f 100644
--- a/providers/rwth/dns.go
+++ b/providers/rwth/dns.go
@@ -3,10 +3,10 @@ package rwth
 import (
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/txtutil"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
 )
 
 // RWTHDefaultNs is the default DNS NS for this provider.
diff --git a/providers/rwth/rwthProvider.go b/providers/rwth/rwthProvider.go
index 37964a37..9ba1a4f6 100644
--- a/providers/rwth/rwthProvider.go
+++ b/providers/rwth/rwthProvider.go
@@ -4,7 +4,7 @@ import (
 	"encoding/json"
 	"fmt"
 
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 type rwthProvider struct {
diff --git a/providers/softlayer/auditrecords.go b/providers/softlayer/auditrecords.go
index 8acbabb8..5a8e8c8e 100644
--- a/providers/softlayer/auditrecords.go
+++ b/providers/softlayer/auditrecords.go
@@ -1,6 +1,6 @@
 package softlayer
 
-import "github.com/StackExchange/dnscontrol/v3/models"
+import "github.com/StackExchange/dnscontrol/v4/models"
 
 // AuditRecords returns a list of errors corresponding to the records
 // that aren't supported by this provider.  If all records are
diff --git a/providers/softlayer/softlayerProvider.go b/providers/softlayer/softlayerProvider.go
index cf4a4bdf..3269d626 100644
--- a/providers/softlayer/softlayerProvider.go
+++ b/providers/softlayer/softlayerProvider.go
@@ -6,11 +6,11 @@ import (
 	"regexp"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/printer"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/printer"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/softlayer/softlayer-go/datatypes"
 	"github.com/softlayer/softlayer-go/filter"
 	"github.com/softlayer/softlayer-go/services"
diff --git a/providers/transip/auditrecords.go b/providers/transip/auditrecords.go
index 58fa0f12..814e1c79 100644
--- a/providers/transip/auditrecords.go
+++ b/providers/transip/auditrecords.go
@@ -1,8 +1,8 @@
 package transip
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/transip/transipProvider.go b/providers/transip/transipProvider.go
index 807abeec..e5dcead8 100644
--- a/providers/transip/transipProvider.go
+++ b/providers/transip/transipProvider.go
@@ -6,10 +6,10 @@ import (
 	"sort"
 	"strings"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/transip/gotransip/v6"
 	"github.com/transip/gotransip/v6/domain"
 	"github.com/transip/gotransip/v6/repository"
diff --git a/providers/vultr/auditrecords.go b/providers/vultr/auditrecords.go
index 962d21e4..e6aed475 100644
--- a/providers/vultr/auditrecords.go
+++ b/providers/vultr/auditrecords.go
@@ -1,8 +1,8 @@
 package vultr
 
 import (
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/rejectif"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/rejectif"
 )
 
 // AuditRecords returns a list of errors corresponding to the records
diff --git a/providers/vultr/vultrProvider.go b/providers/vultr/vultrProvider.go
index bf74a84f..c493e41c 100644
--- a/providers/vultr/vultrProvider.go
+++ b/providers/vultr/vultrProvider.go
@@ -10,10 +10,10 @@ import (
 	"golang.org/x/net/idna"
 	"golang.org/x/oauth2"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 	"github.com/vultr/govultr/v2"
 )
 


Test patch:
diff --git a/commands/gz_test.go b/commands/gz_test.go
index 574ac27e..c7c56bec 100644
--- a/commands/gz_test.go
+++ b/commands/gz_test.go
@@ -6,7 +6,7 @@ import (
 	"os"
 	"testing"
 
-	_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/_all"
 	"github.com/andreyvit/diff"
 )
 
diff --git a/commands/r53_test.go b/commands/r53_test.go
index 93e8cd36..a856b949 100644
--- a/commands/r53_test.go
+++ b/commands/r53_test.go
@@ -3,8 +3,8 @@ package commands
 import (
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/_all"
 )
 
 func TestR53Test_1(t *testing.T) {
diff --git a/integrationTest/integration_test.go b/integrationTest/integration_test.go
index a3db18e2..33bf8906 100644
--- a/integrationTest/integration_test.go
+++ b/integrationTest/integration_test.go
@@ -10,14 +10,14 @@ import (
 	"testing"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/credsfile"
-	"github.com/StackExchange/dnscontrol/v3/pkg/diff2"
-	"github.com/StackExchange/dnscontrol/v3/pkg/nameservers"
-	"github.com/StackExchange/dnscontrol/v3/pkg/zonerecs"
-	"github.com/StackExchange/dnscontrol/v3/providers"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
-	"github.com/StackExchange/dnscontrol/v3/providers/cloudflare"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/credsfile"
+	"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
+	"github.com/StackExchange/dnscontrol/v4/pkg/nameservers"
+	"github.com/StackExchange/dnscontrol/v4/pkg/zonerecs"
+	"github.com/StackExchange/dnscontrol/v4/providers"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/_all"
+	"github.com/StackExchange/dnscontrol/v4/providers/cloudflare"
 	"github.com/miekg/dns/dnsutil"
 )
 
diff --git a/pkg/diff/diff_test.go b/pkg/diff/diff_test.go
index eb2502c0..6ea18324 100644
--- a/pkg/diff/diff_test.go
+++ b/pkg/diff/diff_test.go
@@ -6,7 +6,7 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func myRecord(s string) *models.RecordConfig {
diff --git a/pkg/diff2/analyze_test.go b/pkg/diff2/analyze_test.go
index c7a9cd01..80939044 100644
--- a/pkg/diff2/analyze_test.go
+++ b/pkg/diff2/analyze_test.go
@@ -5,7 +5,7 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/fatih/color"
 	"github.com/kylelemons/godebug/diff"
 )
diff --git a/pkg/diff2/compareconfig_test.go b/pkg/diff2/compareconfig_test.go
index e1e6645d..9f576d00 100644
--- a/pkg/diff2/compareconfig_test.go
+++ b/pkg/diff2/compareconfig_test.go
@@ -4,7 +4,7 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/kylelemons/godebug/diff"
 )
 
diff --git a/pkg/diff2/groupsort_test.go b/pkg/diff2/groupsort_test.go
index bd8617e6..cca1e416 100644
--- a/pkg/diff2/groupsort_test.go
+++ b/pkg/diff2/groupsort_test.go
@@ -4,7 +4,7 @@ import (
 	"reflect"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func makeRec(label, rtype, content string) *models.RecordConfig {
diff --git a/pkg/diff2/handsoff_test.go b/pkg/diff2/handsoff_test.go
index b0856851..94e31529 100644
--- a/pkg/diff2/handsoff_test.go
+++ b/pkg/diff2/handsoff_test.go
@@ -5,8 +5,8 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/js"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/js"
 	"github.com/miekg/dns"
 	testifyrequire "github.com/stretchr/testify/require"
 )
diff --git a/pkg/js/js_test.go b/pkg/js/js_test.go
index 1a19ea5f..b4526847 100644
--- a/pkg/js/js_test.go
+++ b/pkg/js/js_test.go
@@ -9,10 +9,10 @@ import (
 	"testing"
 	"unicode"
 
-	"github.com/StackExchange/dnscontrol/v3/pkg/normalize"
-	"github.com/StackExchange/dnscontrol/v3/pkg/prettyzone"
-	"github.com/StackExchange/dnscontrol/v3/providers"
-	_ "github.com/StackExchange/dnscontrol/v3/providers/_all"
+	"github.com/StackExchange/dnscontrol/v4/pkg/normalize"
+	"github.com/StackExchange/dnscontrol/v4/pkg/prettyzone"
+	"github.com/StackExchange/dnscontrol/v4/providers"
+	_ "github.com/StackExchange/dnscontrol/v4/providers/_all"
 	testifyrequire "github.com/stretchr/testify/require"
 )
 
diff --git a/pkg/normalize/importTransform_test.go b/pkg/normalize/importTransform_test.go
index f199f058..089e137c 100644
--- a/pkg/normalize/importTransform_test.go
+++ b/pkg/normalize/importTransform_test.go
@@ -3,7 +3,7 @@ package normalize
 import (
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func makeRC(label, domain, target string, rc models.RecordConfig) *models.RecordConfig {
diff --git a/pkg/normalize/validate_test.go b/pkg/normalize/validate_test.go
index b0f16aba..528827f6 100644
--- a/pkg/normalize/validate_test.go
+++ b/pkg/normalize/validate_test.go
@@ -4,8 +4,8 @@ import (
 	"fmt"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/providers"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/providers"
 )
 
 func TestSoaLabelAndTarget(t *testing.T) {
diff --git a/pkg/prettyzone/prettyzone_test.go b/pkg/prettyzone/prettyzone_test.go
index c02789db..85e2f3c9 100644
--- a/pkg/prettyzone/prettyzone_test.go
+++ b/pkg/prettyzone/prettyzone_test.go
@@ -7,7 +7,7 @@ import (
 	"math/rand"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/miekg/dns"
 	"github.com/miekg/dns/dnsutil"
 )
diff --git a/providers/bind/soa_test.go b/providers/bind/soa_test.go
index 40b1fb92..447670c7 100644
--- a/providers/bind/soa_test.go
+++ b/providers/bind/soa_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 	"time"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func mkRC(target string, rec *models.RecordConfig) *models.RecordConfig {
diff --git a/providers/cloudflare/preprocess_test.go b/providers/cloudflare/preprocess_test.go
index c6a0454e..d0d93314 100644
--- a/providers/cloudflare/preprocess_test.go
+++ b/providers/cloudflare/preprocess_test.go
@@ -4,8 +4,8 @@ import (
 	"net"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
-	"github.com/StackExchange/dnscontrol/v3/pkg/transform"
+	"github.com/StackExchange/dnscontrol/v4/models"
+	"github.com/StackExchange/dnscontrol/v4/pkg/transform"
 )
 
 func newDomainConfig() *models.DomainConfig {
diff --git a/providers/gandiv5/convert_test.go b/providers/gandiv5/convert_test.go
index aec090ea..1d3a8b13 100644
--- a/providers/gandiv5/convert_test.go
+++ b/providers/gandiv5/convert_test.go
@@ -3,7 +3,7 @@ package gandiv5
 import (
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func TestRecordsToNative_1(t *testing.T) {
diff --git a/providers/loopia/convert_test.go b/providers/loopia/convert_test.go
index bc2d635a..5c19bcd0 100644
--- a/providers/loopia/convert_test.go
+++ b/providers/loopia/convert_test.go
@@ -4,7 +4,7 @@ import (
 	"reflect"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func TestRecordToNative_1(t *testing.T) {
diff --git a/providers/msdns/naptr_test.go b/providers/msdns/naptr_test.go
index 66dfea86..c7ab6442 100644
--- a/providers/msdns/naptr_test.go
+++ b/providers/msdns/naptr_test.go
@@ -4,7 +4,7 @@ import (
 	"reflect"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func Test_decodeRecordDataNaptr(t *testing.T) {
diff --git a/providers/msdns/powershell_test.go b/providers/msdns/powershell_test.go
index 9e89aed8..31a92c9d 100644
--- a/providers/msdns/powershell_test.go
+++ b/providers/msdns/powershell_test.go
@@ -4,7 +4,7 @@ import (
 	"strings"
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 )
 
 func Test_generatePSZoneAll(t *testing.T) {
diff --git a/providers/vultr/convert_test.go b/providers/vultr/convert_test.go
index d9f5a8b0..f4d1802c 100644
--- a/providers/vultr/convert_test.go
+++ b/providers/vultr/convert_test.go
@@ -3,7 +3,7 @@ package vultr
 import (
 	"testing"
 
-	"github.com/StackExchange/dnscontrol/v3/models"
+	"github.com/StackExchange/dnscontrol/v4/models"
 	"github.com/vultr/govultr/v2"
 )