priv/docs/dns_firewall.md

# DNS Firewall

## Create DNS Firewall Cluster

**POST** `/accounts/{account_id}/dns_firewall`

Create a DNS Firewall cluster

### Responses

#### 200 Create DNS Firewall Cluster response

> Data is at `body["result"]`

```json
{
  "attack_mitigation": {
    "enabled": "*boolean*",
    "only_when_upstream_unhealthy": "*boolean*"
  },
  "deprecate_any_requests": "*boolean*",
  "dns_firewall_ips": [
    "*string*"
  ],
  "ecs_fallback": "*boolean*",
  "id": "*string*",
  "maximum_cache_ttl": "*number*",
  "minimum_cache_ttl": "*number*",
  "modified_on": "*string*",
  "name": "*string*",
  "negative_cache_ttl": "*number*",
  "ratelimit": "*number*",
  "retries": "*number*",
  "upstream_ips": [
    "*string*"
  ]
}
```

#### 4XX Create DNS Firewall Cluster response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## List DNS Firewall Clusters

**GET** `/accounts/{account_id}/dns_firewall`

List DNS Firewall clusters for an account

### Responses

#### 200 List DNS Firewall Clusters response

> Data is at `body["result"]`

```json
[
  {
    "attack_mitigation": {
      "enabled": "*boolean*",
      "only_when_upstream_unhealthy": "*boolean*"
    },
    "deprecate_any_requests": "*boolean*",
    "dns_firewall_ips": [
      "*string*"
    ],
    "ecs_fallback": "*boolean*",
    "id": "*string*",
    "maximum_cache_ttl": "*number*",
    "minimum_cache_ttl": "*number*",
    "modified_on": "*string*",
    "name": "*string*",
    "negative_cache_ttl": "*number*",
    "ratelimit": "*number*",
    "retries": "*number*",
    "upstream_ips": [
      "*string*"
    ]
  }
]
```

#### 4XX List DNS Firewall Clusters response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "result_info": {
    "count": "*number*",
    "page": "*number*",
    "per_page": "*number*",
    "total_count": "*number*"
  },
  "success": "*boolean*"
}
```



## Update DNS Firewall Cluster

**PATCH** `/accounts/{account_id}/dns_firewall/{dns_firewall_id}`

Modify the configuration of a DNS Firewall cluster

### Responses

#### 200 Update DNS Firewall Cluster response

> Data is at `body["result"]`

```json
{
  "attack_mitigation": {
    "enabled": "*boolean*",
    "only_when_upstream_unhealthy": "*boolean*"
  },
  "deprecate_any_requests": "*boolean*",
  "dns_firewall_ips": [
    "*string*"
  ],
  "ecs_fallback": "*boolean*",
  "id": "*string*",
  "maximum_cache_ttl": "*number*",
  "minimum_cache_ttl": "*number*",
  "modified_on": "*string*",
  "name": "*string*",
  "negative_cache_ttl": "*number*",
  "ratelimit": "*number*",
  "retries": "*number*",
  "upstream_ips": [
    "*string*"
  ]
}
```

#### 4XX Update DNS Firewall Cluster response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## DNS Firewall Cluster Details

**GET** `/accounts/{account_id}/dns_firewall/{dns_firewall_id}`

Show a single DNS Firewall cluster for an account

### Responses

#### 200 DNS Firewall Cluster Details response

> Data is at `body["result"]`

```json
{
  "attack_mitigation": {
    "enabled": "*boolean*",
    "only_when_upstream_unhealthy": "*boolean*"
  },
  "deprecate_any_requests": "*boolean*",
  "dns_firewall_ips": [
    "*string*"
  ],
  "ecs_fallback": "*boolean*",
  "id": "*string*",
  "maximum_cache_ttl": "*number*",
  "minimum_cache_ttl": "*number*",
  "modified_on": "*string*",
  "name": "*string*",
  "negative_cache_ttl": "*number*",
  "ratelimit": "*number*",
  "retries": "*number*",
  "upstream_ips": [
    "*string*"
  ]
}
```

#### 4XX DNS Firewall Cluster Details response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Delete DNS Firewall Cluster

**DELETE** `/accounts/{account_id}/dns_firewall/{dns_firewall_id}`

Delete a DNS Firewall cluster

### Responses

#### 200 Delete DNS Firewall Cluster response

> Data is at `body["result"]`

```json
{
  "id": "*string*"
}
```

#### 4XX Delete DNS Firewall Cluster response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Update DNS Firewall Cluster Reverse DNS

**PATCH** `/accounts/{account_id}/dns_firewall/{dns_firewall_id}/reverse_dns`

Update reverse DNS configuration (PTR records) for a DNS Firewall cluster

### Responses

#### 200 Update DNS Firewall Cluster Reverse DNS response

> Data is at `body["result"]`

```json
{
  "ptr": {}
}
```

#### 4XX Update DNS Firewall Cluster Reverse DNS response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Show DNS Firewall Cluster Reverse DNS

**GET** `/accounts/{account_id}/dns_firewall/{dns_firewall_id}/reverse_dns`

Show reverse DNS configuration (PTR records) for a DNS Firewall cluster

### Responses

#### 200 Show DNS Firewall Cluster Reverse DNS response

> Data is at `body["result"]`

```json
{
  "ptr": {}
}
```

#### 4XX Show DNS Firewall Cluster Reverse DNS response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```