# CAA\_BUILDER

DNSControl contains a `CAA_BUILDER` which can be used to simply create [`CAA()`](https://docs.dnscontrol.org/~/revisions/T4Wre387kGCjR4Bh4mfN/language-reference/domain-modifiers/caa) records for your domains. Instead of creating each [`CAA()`](https://docs.dnscontrol.org/~/revisions/T4Wre387kGCjR4Bh4mfN/language-reference/domain-modifiers/caa) record individually, you can simply configure your report mail address, the authorized certificate authorities and the builder cares about the rest.

### Example

For example you can use:

{% code title="dnsconfig.js" %}

```javascript
CAA_BUILDER({
  label: "@",
  iodef: "mailto:test@example.com",
  iodef_critical: true,
  issue: [
    "letsencrypt.org",
    "comodoca.com",
  ],
  issuewild: "none",
})
```

{% endcode %}

The parameters are:

* `label:` The label of the CAA record. (Optional. Default: `"@"`)
* `iodef:` Report all violation to configured mail address.
* `iodef_critical:` This can be `true` or `false`. If enabled and CA does not support this record, then certificate issue will be refused. (Optional. Default: `false`)
* `issue:` An array of CAs which are allowed to issue certificates. (Use `"none"` to refuse all CAs)
* `issuewild:` An array of CAs which are allowed to issue wildcard certificates. (Can be simply `"none"` to refuse issuing wildcard certificates for all CAs)

`CAA_BUILDER()` returns multiple records (when configured as example above):

{% code title="dnsconfig.js" %}

```javascript
CAA("@", "iodef", "mailto:test@example.com", CAA_CRITICAL)
CAA("@", "issue", "letsencrypt.org")
CAA("@", "issue", "comodoca.com")
CAA("@", "issuewild", ";")
```

{% endcode %}
