# DNS

> Configure and use the OneFuse DNS module with the Python module

---

Site [llms.txt](/llms.txt)

---

To learn more about this OneFuse module, refer to [DNS](/docs/onefuse/configure/modules/dns/).

## Prerequisites

1. [Configure OneFuse Manager](/docs/onefuse/consume/python-module/getting-started/#configure-onefuse-manager)
1. Review an overview on [OneFuse Modules](/docs/onefuse/consume/python-module/modules/) with OneFuse Python Module

## Provision

Register DNS Record(s) for a resource.

### Method

```python
#Run the following in the Python Console
#Assumes OneFuse Manager is instantiated to 'ofm' variable

ofm.provision_dns('<policy_name>', <template_properties>, '<name>', '<value>', '["<zones>"]', '<tracking_id>')
```

### Parameter references

The following defines the function of each DNS specific Parameters.

| Parameter Name | Required? | Notes |
| --- | --- | --- |
| `policy_name` | Required | OneFuse Module Policy Name (string). |
| `template_properties` | *Optional* | Additional properties that are referenced within the Policy. Python [dict](https://www.w3schools.com/python/python_dictionaries.asp) format. |
| `tracking_id` | *Optional* | Tracking ID (string) to link multiple OneFuse Policy Executions and resulting OneFuse Managed Objects together. If none is passed, one gets generated by OneFuse for that specific Policy Execution. See [Tracking ID methods](#tracking-id-methods) below. |

#### Tracking ID methods

| Method Name | Notes |
| --- | --- |
| `create_tracking_id()` | Generate a unique Tracking ID to link OneFuse Policy Executions and the resulting Managed Objects together. |
| `get_tracking_id_from_mo('<Path to OneFuse Managed Object>')` | Get the Tracking ID from a OneFuse Managed Object. |
| `add_tracking_id_to_headers('<Tracking ID>')` | Add Tracking ID into request headers. When making custom requests to OneFuse instead of using OneFuse Python Module methods provided. |

Learn more about OneFuse [Tracking ID](/docs/onefuse/concepts/tracking-id/).

**DNS specific parameters:**

| Parameter Name | Required? | Notes |
| --- | --- | --- |
| `name` | **Required** | Hostname |
| `value` | **Required** | IP Address |
| `zones` | **Required** | Array of DNS Zones. Comma separated. *(for example: `["example.com", "example2.com"]`)* |

---

## Deprovision

Unregister DNS Record(s) for a resource.

### Method

```python
#Run the following in the Python Console
#Assumes OneFuse Manager is instantiated to 'ofm' variable

ofm.deprovision_dns('<dns_id>')
```

### Parameter references

The following defines the function of the method Parameter.

| Parameter Name | Required? | Notes |
| --- | --- | --- |
| `dns_id` | Required | ID of the OneFuse DNS Record Managed Object |
