Scaleway logo
Commands

Documentation for `scw dns`

The CLI documentation pages are currently under construction

The content is up to date. We're making improvements to the site over the next few weeks for a better experience.

This API allows you to manage your domains, DNS zones and records.

TLS certificate management

TLS certificate management.

Create or get the DNS zone's TLS certificate

Create a new TLS certificate or retrieve information about an existing TLS certificate.

Usage:

TerminalCode
scw dns certificate create <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired
alternative-dns-zones.{index}

Delete a TLS certificate

Delete an existing TLS certificate specified by its DNS zone. Deleting a TLS certificate is permanent and cannot be undone.

Usage:

TerminalCode
scw dns certificate delete <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired

Get a DNS zone's TLS certificate

Get the DNS zone's TLS certificate. If you do not have a certificate, the output returns no certificate found.

Usage:

TerminalCode
scw dns certificate get <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired

List a user's TLS certificates

List all the TLS certificates a user has created, specified by the user's Project ID and the DNS zone.

Usage:

TerminalCode
scw dns certificate list <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired
project-id

DNS records management

DNS records management.

Add a new DNS record

Usage:

TerminalCode
scw dns record add <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone in which to add the recordRequired
dataRequired
name
priority
ttlRequired
Default: 3600
typeRequired
One of: A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR
comment
geo-ip-config.matches.{index}.countries.{index}
geo-ip-config.matches.{index}.continents.{index}
geo-ip-config.matches.{index}.data
geo-ip-config.default
http-service-config.ips.{index}
http-service-config.must-contain
http-service-config.url
http-service-config.user-agent
http-service-config.strategyOne of: random, hashed
weighted-config.weighted-ips.{index}.ip
weighted-config.weighted-ips.{index}.weight
view-config.views.{index}.subnet
view-config.views.{index}.data

Examples:

Add a CNAME

TerminalCode
scw dns record add my-domain.tld data=www name=www2 type=CNAME

Add an IP

TerminalCode
scw dns record add my-domain.tld data=1.2.3.4 name=vpn type=A

Update records within a DNS zone

Update records within a DNS zone that has default name servers and perform several actions on your records.

Actions include:

  • add: allows you to add a new record or add a new IP to an existing A record, for example
  • set: allows you to edit a record or edit an IP from an existing A record, for example
  • delete: allows you to delete a record or delete an IP from an existing A record, for example
  • clear: allows you to delete all records from a DNS zone

All edits will be versioned.

Usage:

TerminalCode
scw dns record bulk-update <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone in which to update the DNS zone recordsRequired
changes.{index}.add.records.{index}.data
changes.{index}.add.records.{index}.name
changes.{index}.add.records.{index}.priority
changes.{index}.add.records.{index}.ttl
changes.{index}.add.records.{index}.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.add.records.{index}.comment
changes.{index}.add.records.{index}.geo-ip-config.matches.{index}.countries.{index}
changes.{index}.add.records.{index}.geo-ip-config.matches.{index}.continents.{index}
changes.{index}.add.records.{index}.geo-ip-config.matches.{index}.data
changes.{index}.add.records.{index}.geo-ip-config.default
changes.{index}.add.records.{index}.http-service-config.ips.{index}
changes.{index}.add.records.{index}.http-service-config.must-contain
changes.{index}.add.records.{index}.http-service-config.url
changes.{index}.add.records.{index}.http-service-config.user-agent
changes.{index}.add.records.{index}.http-service-config.strategyOne of: random, hashed, all
changes.{index}.add.records.{index}.weighted-config.weighted-ips.{index}.ip
changes.{index}.add.records.{index}.weighted-config.weighted-ips.{index}.weight
changes.{index}.add.records.{index}.view-config.views.{index}.subnet
changes.{index}.add.records.{index}.view-config.views.{index}.data
changes.{index}.add.records.{index}.id
changes.{index}.add.records.{index}.updated-at
changes.{index}.set.id
changes.{index}.set.id-fields.name
changes.{index}.set.id-fields.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.set.id-fields.data
changes.{index}.set.id-fields.ttl
changes.{index}.set.records.{index}.data
changes.{index}.set.records.{index}.name
changes.{index}.set.records.{index}.priority
changes.{index}.set.records.{index}.ttl
changes.{index}.set.records.{index}.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.set.records.{index}.comment
changes.{index}.set.records.{index}.geo-ip-config.matches.{index}.countries.{index}
changes.{index}.set.records.{index}.geo-ip-config.matches.{index}.continents.{index}
changes.{index}.set.records.{index}.geo-ip-config.matches.{index}.data
changes.{index}.set.records.{index}.geo-ip-config.default
changes.{index}.set.records.{index}.http-service-config.ips.{index}
changes.{index}.set.records.{index}.http-service-config.must-contain
changes.{index}.set.records.{index}.http-service-config.url
changes.{index}.set.records.{index}.http-service-config.user-agent
changes.{index}.set.records.{index}.http-service-config.strategyOne of: random, hashed, all
changes.{index}.set.records.{index}.weighted-config.weighted-ips.{index}.ip
changes.{index}.set.records.{index}.weighted-config.weighted-ips.{index}.weight
changes.{index}.set.records.{index}.view-config.views.{index}.subnet
changes.{index}.set.records.{index}.view-config.views.{index}.data
changes.{index}.set.records.{index}.id
changes.{index}.set.records.{index}.updated-at
changes.{index}.delete.id
changes.{index}.delete.id-fields.name
changes.{index}.delete.id-fields.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.delete.id-fields.data
changes.{index}.delete.id-fields.ttl
changes.{index}.clear
return-all-recordsSpecifies whether or not to return all the records
disallow-new-zone-creationDisable the creation of the target zone if it does not exist. Target zone creation is disabled by default
serialUse the provided serial (0) instead of the auto-increment serial

Clear records within a DNS zone

Delete all records within a DNS zone that has default name servers.
All edits will be versioned.

Usage:

TerminalCode
scw dns record clear <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone to clearRequired

Delete a DNS record

Usage:

TerminalCode
scw dns record delete <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone in which to delete the recordRequired
data
name
ttl
typeRequired
One of: A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR

Examples:

Delete a CNAME

TerminalCode
scw dns record delete my-domain.tld name=www type=CNAME

Delete a single IP from a record with more than one

TerminalCode
scw dns record delete my-domain.tld data=1.2.3.4 name=vpn type=A

List records within a DNS zone

Retrieve a list of DNS records within a DNS zone that has default name servers. You can filter records by type and name.

Usage:

TerminalCode
scw dns record list <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
project-idProject ID on which to filter the returned DNS zone records
order-bySort order of the returned DNS zone recordsOne of: name_asc, name_desc
dns-zoneDNS zone on which to filter the returned DNS zone recordsRequired
nameName on which to filter the returned DNS zone records
typeRecord type on which to filter the returned DNS zone recordsOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
idRecord ID on which to filter the returned DNS zone records

List name servers within a DNS zone

Retrieve a list of name servers within a DNS zone and their optional glue records.

Usage:

TerminalCode
scw dns record list-nameservers <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
project-idProject ID on which to filter the returned DNS zone name servers
dns-zoneDNS zone on which to filter the returned DNS zone name serversRequired

Update a DNS record

This command will replace all the data for this record with the given values.

Usage:

TerminalCode
scw dns record set <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone in which to set the recordRequired
values.{index}A list of values for replacing the record data. (multiple values cannot be used for all type)Required
nameRequired
priority
ttlRequired
Default: 3600
typeRequired
One of: A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR
comment
geo-ip-config.matches.{index}.countries.{index}
geo-ip-config.matches.{index}.continents.{index}
geo-ip-config.matches.{index}.data
geo-ip-config.default
http-service-config.ips.{index}
http-service-config.must-contain
http-service-config.url
http-service-config.user-agent
http-service-config.strategyOne of: random, hashed
weighted-config.weighted-ips.{index}.ip
weighted-config.weighted-ips.{index}.weight
view-config.views.{index}.subnet
view-config.views.{index}.data

Examples:

Add or replace a CNAME

TerminalCode
scw dns record set my-domain.tld values.0=www name=www2 type=CNAME

Add or replace a list of IP

TerminalCode
scw dns record set my-domain.tld values.0=1.2.3.4 values.1=1.2.3.5 name=vpn type=A

Update name servers within a DNS zone

Update name servers within a DNS zone and set optional glue records.

Usage:

TerminalCode
scw dns record update-nameservers <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone in which to update the DNS zone name serversRequired
ns.{index}.name
ns.{index}.ip.{index}

Transaction SIGnature key management

Transaction SIGnature key management.

Delete the DNS zone's TSIG key

Delete an existing TSIG key specified by its DNS zone. Deleting a TSIG key is permanent and cannot be undone.

Usage:

TerminalCode
scw dns tsig-key delete <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired

Get the DNS zone's TSIG key

Retrieve information about the TSIG key of a given DNS zone to allow AXFR requests.

Usage:

TerminalCode
scw dns tsig-key get <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired

DNS zones version management

DNS zones version management.

Access differences from a specific DNS zone version

Access a previous DNS zone version to see the differences from another specific version.

Usage:

TerminalCode
scw dns version diff <dns-zone-version-id ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zone-version-idRequired

List versions of a DNS zone

Retrieve a list of a DNS zone's versions.
The maximum version count is 100. If the count reaches this limit, the oldest version will be deleted after each new modification.

Usage:

TerminalCode
scw dns version list <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneRequired

Restore a DNS zone version

Restore and activate a version of a specific DNS zone.

Usage:

TerminalCode
scw dns version restore <dns-zone-version-id ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zone-version-idRequired

List records from a given version of a specific DNS zone

Retrieve a list of records from a specific DNS zone version.

Usage:

TerminalCode
scw dns version show <dns-zone-version-id ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zone-version-idRequired

DNS Zones management

DNS Zones management.

Clone a DNS zone

Clone an existing DNS zone with all its records into a new DNS zone.

Usage:

TerminalCode
scw dns zone clone [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone to cloneRequired
dest-dns-zoneDestination DNS zone in which to clone the chosen DNS zoneRequired
overwriteSpecifies whether or not the destination DNS zone will be overwritten
project-idProject ID of the destination DNS zone

Create a DNS zone

Create a new DNS zone specified by the domain name, the subdomain and the Project ID.

Usage:

TerminalCode
scw dns zone create [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
domainDomain in which to create the DNS zoneRequired
subdomainSubdomain of the DNS zone to createRequired
project-idProject ID to use. If none is passed the default project ID will be used

Delete a DNS zone

Delete a DNS zone and all its records.

Usage:

TerminalCode
scw dns zone delete <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone to deleteRequired
project-idProject ID to use. If none is passed the default project ID will be used

Export a raw DNS zone

Export a DNS zone with default name servers, in a specific format.

Usage:

TerminalCode
scw dns zone export <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone to exportRequired
formatDNS zone formatDefault: bind
One of: unknown_raw_format, bind

Import a raw DNS zone

Import and replace the format of records from a given provider, with default name servers.

Usage:

TerminalCode
scw dns zone import <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone to importRequired
contentDeprecated
project-idProject ID to use. If none is passed the default project ID will be used
formatDeprecated
One of: unknown_raw_format, bind
bind-source.content
axfr-source.name-server
axfr-source.tsig-key.name
axfr-source.tsig-key.key
axfr-source.tsig-key.algorithm

List DNS zones

Retrieve the list of DNS zones you can manage and filter DNS zones associated with specific domain names.

Usage:

TerminalCode
scw dns zone list [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
project-idProject ID on which to filter the returned DNS zones
order-bySort order of the returned DNS zonesOne of: domain_asc, domain_desc, subdomain_asc, subdomain_desc, created_at_asc, created_at_desc, updated_at_asc, updated_at_desc
domainDomain on which to filter the returned DNS zones
dns-zoneDNS zone on which to filter the returned DNS zonesDeprecated
dns-zones.{index}DNS zones on which to filter the returned DNS zones
created-afterOnly list DNS zones created after this date
created-beforeOnly list DNS zones created before this date
updated-afterOnly list DNS zones updated after this date
updated-beforeOnly list DNS zones updated before this date
organization-idOrganization ID on which to filter the returned DNS zones

Refresh a DNS zone

Refresh an SOA DNS zone to reload the records in the DNS zone and update the SOA serial. You can recreate the given DNS zone and its sub DNS zone if needed.

Usage:

TerminalCode
scw dns zone refresh <dns-zone ...> [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneDNS zone to refreshRequired
recreate-dns-zoneSpecifies whether or not to recreate the DNS zone
recreate-sub-dns-zoneSpecifies whether or not to recreate the sub DNS zone

Update a DNS zone

Update the name and/or the Organizations for a DNS zone.

Usage:

TerminalCode
scw dns zone update [arg=value ...]

Arguments:

NameDescriptionArgument Specifications
dns-zoneThe full name of the DNS zone to modify. For a root zone (e.g., example.com), enter example.com. For a specific sub-zone (e.g., prod.example.com), enter prod.example.com.Required
new-dns-zoneName of the new DNS zone to createRequired
project-idProject ID to use. If none is passed the default project ID will be used