---
title: "infoblox_dtc_pool Resource"
canonical: "https://docs.infoblox.com/space/ipamdriverterraform/1170604395/infoblox_dtc_pool%20Resource"
format: markdown
---
The `infoblox_dtc_pool` resource enables you to perform create, update, and delete operations on a DNS Traffic Control (DTC) pool in a NIOS appliance. The resource represents the ‘dtc:pool’ WAPI object in NIOS. For more information related to the DTC pool object, see *Managing DNS Traffic Control Pools* in the *[Infoblox NIOS Documentation](https://docs.infoblox.com)*.

The following table describes the parameters you can define in the `infoblox_dtc_pool` resource block:

| **Parameter** | **Required/Optional** | **Description** |
| --- | --- | --- |
| `name` | Required | Specifies the desired name of the DTC pool as shown in the NIOS appliance. The name has the same requirements as the corresponding parameter in WAPI. |
| `auto_consolidated_monitors` | Optional | Determines whether the automatic management of DTC consolidated monitors is enabled in the DTC pool.  
The default value is `false`. |
| `availability` | Optional | Specifies the criteria to consider a pool as available. You can set one of the following values:<br>- ANY: Any number of active monitors can report the available status for the pool to be determined as available.
- QUORUM: The minimum number of active monitors that must report the available status for the pool to be determined as available
- ALL: All active monitors must report the available status for the pool to be determined as available.<br>The default value is ALL. |
| `quorum` | Optional | Specifies the minimum number of monitors that must report the pool as up for it to be available when `availability` is set to `QUORUM`. |
| `disable` | Optional | Determines whether the DTC pool object is enabled or disabled.  
The default value is `false`. |
| `consolidated_monitors` | Optional | Specifies the List of monitors and associated member statuses that are shared across members and consolidated in server availability determination.  
To use this parameter, configure the following fields:<br>- `monitor_name` (required): The name of the monitor.
- `monitor_type` (required): The type of the monitor.
- `members` (required): Members whose monitor statuses are shared across other members in a pool
- `availability`: Servers assigned to a pool with monitors defined are healthy if ANY or ALL members report healthy status.
- `full_health_communication`: Flag for **switching** the health performing and sharing behavior to perform health checks on each DTC Grid member that serves related LBDN(s) and send them across all DTC Grid members from both selected and non-selected lists<span style="color: #ff5630">.</span><br>Note:<br>- To configure `consolidated_monitors` when creating a DTC pool object, you must set `disable` to `true`.
- This parameter is not required if `auto_consolidated_monitors` is configured. |
| `lb_preferred_method` | Required | Specifies the preferred Load Balancing method of the DTC pool. You can set it to any of the following methods:<br>- `ALL_AVAILABLE`
- `DYNAMIC_RATIO`
- `GLOBAL_AVAILABILITY`
- `RATIO`
- `ROUND_ROBIN`
- `SOURCE_IP_HASH`
- `TOPOLOGY` |
| `lb_dynamic_ratio_preferred` | Optional | Specifies the DTC pool settings for dynamic ratio when `DYNAMIC_RATIO` is selected for `lb_preferred_method`.  
You can define the following sub parameters:<br>- `invert_monitor_metric`: Determines whether the inverted values of the DTC SNMP monitor metric will be used. The default value is `false`.
- `method`: Specifies the method of the DTC dynamic ratio load balancing.   
Valid values are `MONITOR` and `ROUND_TRIP_DELAY`.
- `monitor_weighing`: Specifies the DTC monitor weight.   
You can configure one of the following values:
  - `PRIORITY`: It means that all clients will be forwarded to the least loaded server.
  - `RATIO`: It means that distribution will be calculated based on dynamic weights.  
The default value is `RATIO`.
- `monitor_name`: Specifies the name of the monitor.
- `monitor_type`: Specifies the type of the monitor.
- `monitor_metric`: Specifies the metric of the DTC SNMP monitor that will be used for dynamic weighing. |
| `lb_preferred_topology` | Optional | Specifies the preferred topology that must be used when the load balancing method is set to `TOPOLOGY`. |
| `lb_alternate_method` | Optional | Specifies the alternate load balancing method.  
Use this parameter to select a method type from the pool if the preferred method does not return any results. The default value is `NONE`. |
| `lb_dynamic_ratio_alternate` | Optional | Specifies the DTC Pool settings for dynamic ratio when `DYNAMIC_RATIO` is selected as an alternate load balancing method.   
For the sub parameters that you can define for this parameter, see the description of the `lb_dynamic_ratio_preferred` parameter. |
| `lb_alternate_topology` | Optional | Specifies the alternate topology for load balancing when the alternate load balancing method is set to `TOPOLOGY`. |
| `monitors` | Optional | Specifies the list of monitors associated with the pool.  
To use this parameter, you must configure the following fields:<br>- `monitor_name`: The name of the monitor.
- `monitor_type`: The type of the monitor. |
| `servers` | Optional | Specifies the list of servers related to the DTC pool.  
To use this parameter, you must configure the following fields:<br>- `server`: The name of the server for the pool.
- `ratio`: The weight of the server. |
| `ttl` | Optional | Specifies the Time to Live value for the pool. There is no default value for this parameter.  
If a value is not specified, then in NIOS, the TTL value is inherited from the parent object for this resource. A TTL value of 0 (zero) means caching should be disabled for this pool. |
| `comment` | Optional | Describes the DTC pool. |
| `ext_attrs` | Optional | Specifies the set of NIOS extensible attributes that will be attached to the DTC pool. |

## Example of DTC Pool Resource

`//creating DTC pool`  
`resource "infoblox_dtc_pool" "rec1" {`  
`   name     = "Pool1"`  
`   lb_preferred_method = "DYNAMIC_RATIO"`  
`   lb_dynamic_ratio_preferred = jsonencode({`  
`    "invert_monitor_metric" = true`  
`     "method" = "MONITOR"`  
`     "monitor_weighing" = "RATIO"`  
`     "monitor_metric" = ".0"`  
`     "monitor_name"="snmp"`  
`     "monitor_type"="snmp"`  
`   })`  
`  servers {`  
`     server  = "SERVER"`  
`     ratio = 100`  
`  }`  
`monitors{`  
`      monitor_name = "snmp"`  
`      monitor_type="snmp"`  
` }`  
`}`  
  
`resource "infoblox_dtc_pool" "pool_lb_preferred_method_topology" {`  
`  name = "terraform_pool.com"`  
`  comment = "testing pool terraform"`  
`  lb_preferred_method = "TOPOLOGY"`  
`  lb_preferred_topology = "topology_ruleset"`  
`  ext_attrs = jsonencode({`  
`    "Site" = "Blr"`  
`  })`  
`  servers{`  
`    server = "server.com"`  
`    ratio = 3`  
`  }`  
`  servers{`  
`    server = "terraform_server.com"`  
`    ratio = 3`  
`  }`  
`  servers{`  
`    server = "terraform_server1.com"`  
`    ratio = 4`  
`  }`  
`  monitors{`  
`    monitor_name = "http"`  
`    monitor_type="http"`  
`  }`  
`  monitors{`  
`    monitor_name = "snmp"`  
`    monitor_type="snmp"`  
`  }`  
`  lb_alternate_method= "DYNAMIC_RATIO"`  
`  lb_dynamic_ratio_alternate = jsonencode({`  
`    "monitor_name" = "snmp"`  
`    "monitor_type" = "snmp"`  
`    "method" = "MONITOR"`  
`    "monitor_metric" = ".1.2"`  
`    "monitor_weighing" = "PRIORITY"`  
`    "invert_monitor_metric" = "true"`  
`  })`  
`  auto_consolidated_monitors = true`  
`  availability = "QUORUM"`  
`  quorum = 2`  
`  ttl = 120`  
`  disable = true`  
`}`


`//Pool creation with maximal parameters`  
`//parameters for DTC pool when preferred load balancing is TOPOLOGY and alternate load balancing is DYNAMIC_RATIO`  
`resource "infoblox_dtc_pool" "pool" {`  
`  name = "terraform_pool.com"`  
`  comment = "testing pool terraform"`  
`  lb_preferred_method = "TOPOLOGY"`  
`  lb_preferred_topology = "topology_ruleset"`  
`  ext_attrs = jsonencode({`  
`  "Site" = "Blr"`  
`  })`  
`  servers {`  
`    server = "server.com"`  
`    ratio  = 3`  
`  }`  
`  servers {`  
`    server = "terraform_server.com"`  
`    ratio  = 3`  
`  }`  
`  servers {`  
`    server = "terraform_server1.com"`  
`    ratio  = 4`  
`  }`  
`  monitors {`  
`    monitor_name = "http"`  
`    monitor_type = "http"`  
`  }`  
`  monitors {`  
`    monitor_name = "snmp"`  
`    monitor_type = "snmp"`  
`  }`  
`  lb_alternate_method = "DYNAMIC_RATIO"`  
`  lb_dynamic_ratio_alternate = jsonencode({`  
`    "monitor_name" = "snmp"`  
`    "monitor_type" = "snmp"`  
`    "method" = "MONITOR"`  
`    "monitor_metric" = ".1.2"`  
`    "monitor_weighing" = "PRIORITY"`  
`    "invert_monitor_metric" = true`  
`  })`  
`  availability = "QUORUM"`  
`  quorum = 2`  
`  ttl = 120`  
`  consolidated_monitors{`  
`    monitor_name = "http"`  
`    monitor_type = "http"`  
`    members = ["infoblox.localdomain"]`  
`    availability= "ALL"`  
`    full_health_communication= true`  
`  }`  
`  disable = true`  
`}`