---
title: "import zone export · RUAL Documentation"
description: "Read a Route53 export and hand back the records, the SOA timers and the delegation, ready to store."
canonical: https://docs.rual.nl/block-types/dns/dnszone_import
language: en
---

[Cluster](https://docs.rual.nl/cluster)

[Blocks](https://docs.rual.nl/block-types)

[Interfaces](https://docs.rual.nl/interfaces)

[Blueprints](https://docs.rual.nl/blueprints)

[Tutorials](https://docs.rual.nl/tutorials)

[Home automation](https://docs.rual.nl/home-automation)

[Examples](https://docs.rual.nl/examples)

[Reference](https://docs.rual.nl/reference)

[Architecture](https://docs.rual.nl/architecture)

[Troubleshooting](https://docs.rual.nl/troubleshooting)

Other

# import zone export

This block is part of the [`dns`](https://docs.rual.nl/block-types/dns) group and was last modified in core [`v15.0.0`](https://docs.rual.nl/core-versions/150000).

Read a Route53 export and hand back the records, the SOA timers and the delegation, ready to store.

- flow `flow`

- Zone required `value` The zone this export belongs to, for example deverence.com.

- Export required `object` The Route53 export: the AWS document, a bare array of record sets, or either as JSON text. Entries may also carry lowercase policy/slot/note to seed a zone group in one call.

- Allow routing policies `condition` Import weighted, latency, geolocation and failover records as one flat answer instead of refusing. Off by default, because a zone file cannot express the policy.

- flow `flow`

- Success `condition` True when the export was imported.

- Zone `value` The zone name, without its trailing dot.

- Records `array` The records, each with owner, type, ttl, values and : for an ALIAS : alias_target.

- Count `number` How many record sets were imported.

- SOA `object` The SOA timers: mname, rname, refresh, retry, expire, minimum. No serial: that is stamped at render time.

- Nameservers `array` The zone's existing apex NS set, fully qualified.

- Warnings `array` Records that survived import but need a decision: ALIAS targets and, when allowed, routing policies.

- Error `value` Why the export was refused.

Parses a Route53 list-resource-record-sets export into the DNS zone store's own record shape. Accepts the AWS document ({"ResourceRecordSets": [...]}), a bare array, or either as JSON text. Owners come back RELATIVE to the origin ('@' for the apex, 'www', '*'), with Route53's octal escapes expanded, which is what lets one record set render under several apexes. The apex SOA and NS are NOT records: they come back on the soa and nameservers pins, because every rendered zone carries its own delegation and a serial stamped at render time. The SOA serial is discarded deliberately. ALIAS records are kept with their target on alias_target and no values; BIND has no ALIAS, so they are resolved at render time. Records carrying a Route53 routing policy (SetIdentifier: weighted, latency, geolocation, failover) make the block REFUSE with success=false, because a zone file would have to flatten them into one arbitrary answer; allow_routing_policies imports them flat and reports each one on the warnings pin. Record order is preserved as the export gave it, which is the order the store keeps and the renderer emits. SEEDING A GROUP: a record set may also carry lowercase policy, slot and note keys, which are passed through to the record. A real AWS export never has them (its keys are TitleCase), but a caller seeding a zone group can, which makes seeding one call instead of an import followed by a PATCH per record. policy is verbatim, rewrite, per-apex or note; anything else is REFUSED rather than ignored, because ignoring it would leave the record rendering verbatim : copied to every apex, the opposite of what was asked. per-apex without a slot is refused too: a slot nobody can fill is a gap, not a decision.

| `route53 import` |
| --- |
| `import from aws` |
| `import zone` |

A typical wiring for [import zone export](https://docs.rual.nl/block-types/dns/dnszone_import): a [function trigger](https://docs.rual.nl/block-types/globals/trigger_custom_function) starts the flow; [value](https://docs.rual.nl/block-types/value/value_default) feeds the `zone` pin; [new object](https://docs.rual.nl/block-types/object/object_new_fields) feeds the `export` pin; the `flow` out pin feeds [debug](https://docs.rual.nl/block-types/state%2520ui/state_debug).

[![Studio canvas example for the import zone export block: typical wiring for import zone export.](https://docs.rual.nl/canvas-examples/dnszone_import.png)](https://docs.rual.nl/canvas-examples/dnszone_import.png?v=3)

## Used in these guides

These documentation pages use or explain this block:

- [DNS Zone Blocks](https://docs.rual.nl/reference/dns-blocks)

## Version history

Introduced in [`v15.0.0`](https://docs.rual.nl/core-versions/150000).

- [Back to `dns`](https://docs.rual.nl/block-types/dns): Return to the main group to view all sub-groups

- [Back to `DNS zones`](https://docs.rual.nl/block-types/dns?group=DNS%20zones): Return to the group to view all blocks within this group

Was this page helpful? [Tell us what to improve](https://docs.rual.nl/support) · RUAL Docs is an integral component of the [RUAL ecosystem](https://rual.nl)
