import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Use this resource to manage Directional (DIR) pool records in UltraDNS. * * ## Example Usage * ### Create DIR pool record of type A (1) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ultradns from "@pulumi/ultradns"; * * const dirPool = new ultradns.DirPool("a", { * conflictResolve: "IP", * ignoreEcs: true, * noResponse: { * geoCodes: ["AG"], * geoGroupName: "geo_response_group", * ips: [{ * address: "2.2.2.2", * }], * ipGroupName: "ip_response_group", * }, * ownerName: "a", * rdataInfos: [ * { * allNonConfigured: true, * rdata: "192.168.1.5", * ttl: 800, * }, * { * geoCodes: [ * "NAM", * "EUR", * ], * geoGroupName: "geo_group", * ips: [ * { * address: "200.1.1.1", * }, * { * end: "200.1.1.5", * start: "200.1.1.2", * }, * { * cidr: "200.20.20.0/24", * }, * ], * ipGroupName: "ip_group", * rdata: "192.168.1.2", * }, * ], * recordType: "A", * zoneName: "example.com.", * }); * ``` * ### Create DIR pool record of type PTR (12) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ultradns from "@pulumi/ultradns"; * * const ptr = new ultradns.DirPool("ptr", { * noResponse: { * allNonConfigured: true, * }, * ownerName: "1", * rdataInfos: [{ * geoCodes: [ * "NAM", * "EUR", * ], * geoGroupName: "geo_group", * rdata: "ns1.example.com.", * }], * recordType: "PTR", * zoneName: "example.com.", * }); * ``` * ### Create DIR pool record of type MX (15) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ultradns from "@pulumi/ultradns"; * * const mx = new ultradns.DirPool("mx", { * noResponse: { * allNonConfigured: true, * }, * ownerName: "mx", * rdataInfos: [{ * geoCodes: [ * "NAM", * "EUR", * ], * geoGroupName: "geo_group", * rdata: "2 example.com.", * }], * recordType: "MX", * zoneName: "example.com.", * }); * ``` * ### Create DIR pool record of type TXT (16) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ultradns from "@pulumi/ultradns"; * * const txt = new ultradns.DirPool("txt", { * noResponse: { * allNonConfigured: true, * }, * ownerName: "txt.example.com.", * rdataInfos: [{ * geoCodes: [ * "NAM", * "EUR", * ], * geoGroupName: "geo_group", * rdata: "text data", * }], * recordType: "TXT", * zoneName: "example.com.", * }); * ``` * ### Create DIR pool record of type AAAA (28) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ultradns from "@pulumi/ultradns"; * * const aaaa = new ultradns.DirPool("aaaa", { * conflictResolve: "IP", * ignoreEcs: true, * noResponse: { * geoCodes: ["AI"], * geoGroupName: "geo_response_group", * ips: [{ * address: "aaaa:bbbb:cccc:dddd:eeee:ffff:3333:5555", * }], * ipGroupName: "ip_response_group", * }, * ownerName: "aaaa", * poolDescription: "DIR Pool Resource of type AAAA", * rdataInfos: [{ * geoCodes: ["EUR"], * geoGroupName: "geo_group", * ips: [{ * end: "aaaa:bbbb:cccc:dddd:eeee:ffff:1111:6666", * start: "aaaa:bbbb:cccc:dddd:eeee:ffff:1111:4444", * }], * ipGroupName: "ip_group", * rdata: "aaaa:bbbb:cccc:dddd:eeee:ffff:1111:3333", * }], * recordType: "AAAA", * zoneName: "example.com.", * }); * ``` * ### Create DIR pool record of type SRV (33) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ultradns from "@pulumi/ultradns"; * * const srv = new ultradns.DirPool("srv", { * noResponse: { * allNonConfigured: true, * }, * ownerName: "srv", * rdataInfos: [{ * geoCodes: [ * "NAM", * "EUR", * ], * geoGroupName: "geo_group", * rdata: "5 6 7 example.com.", * }], * recordType: "SRV", * zoneName: "example.com.", * }); * ``` * ## Valid GEO Codes: * * | Code | Meaning | Equivalent ISO codes | * | :--- | :----: | :--- | * |_________________________|__________________________________________________|__________________________________________________| * | `A1` | Anonymous Proxy | None | * |_________________________|__________________________________________________|__________________________________________________| * | `A2` | Satellite Provider | None | * |_________________________|__________________________________________________|__________________________________________________| * | `A3` | Unknown / Uncategorized IPs | None | * |_________________________|__________________________________________________|__________________________________________________| * | `NAM` | North America (including Central America and the Caribbean) | `AG`,`AI`,`AN`,`AW`,`BB`,`BL`,`BM`,
`BQ`,`BS`,`BZ`,`CA`,`CR`,`CU`,`CW`,
`DM`,`DO`,`GD`,`GL`,`GP`,`GT`,`HN`,
`HT`,`JM`,`KN`,`KY`,`LC`,`MF`,`MQ`,
`MS`,`MX`,`NI`,`PA`,`PM`,`PR`,`SV`,
`SX`,`TC`,`TT`,`U3`,`US`,`VC`,`VG`,
`VI` | * |_________________________|__________________________________________________|__________________________________________________| * | `SAM` | South America | `AR`,`BO`,`BR`,`CL`,`CO`,`EC`,`FK`,
`GF`,`GS`,`GY`,`PE`,`PY`,`SR`,`U4`,
`UY`,`VE` | * |_________________________|__________________________________________________|__________________________________________________| * | `EUR` | Europe | `AD`,`AL`,`AM`,`AT`,`AX`,`AZ`,`BA`,
`BE`,`BG`,`BY`,`CH`,`CZ`,`DE`,`DK`,
`EE`,`ES`,`FI`,`FO`,`FR`,`GB`,`GE`,
`GG`,`GI`,`GR`,`HR`,`HU`,`IE`,`IM`,
`IS`,`IT`,`JE`,`LI`,`LT`,`LU`,`LV`,
`MC`,`MD`,`ME`,`MK`,`MT`,`NL`,`NO`,
`PL`,`PT`,`RO`,`RS`,`SE`,`SI`,`SJ`,
`SK`,`SM`,`U5`,`UA`,`VA` | * |_________________________|__________________________________________________|__________________________________________________| * | `AFR` | Africa | `AO`,`BF`,`BI`,`BJ`,`BW`,`CD`,`CF`,
`CG`,`CI`,`CM`,`CV`,`DJ`,`DZ`,`EG`,
`EH`,`ER`,`ET`,`GA`,`GH`,`GM`,`GN`,
`GQ`,`GW`,`KE`,`KM`,`LR`,`LS`,`LY`,
`MA`,`MG`,`ML`,`MR`,`MU`,`MW`,`MZ`,
`NA`,`NE`,`NG`,`RE`,`RW`,`SC`,`SD`,
`SH`,`SL`,`SN`,`SO`,`SS`,`ST`,`SZ`,
`TD`,`TG`,`TN`,`TZ`,`U7`,`UG`,`YT`,
`ZA`,`ZM`,`ZW` | * |_________________________|__________________________________________________|__________________________________________________| * | `ASI` | Asia (including Middle East and the Russian Federation) | `AE`,`AF`,`BD`,`BH`,`BN`,`BT`,`CN`,
`CY`,`HK`,`ID`,`IL`,`IN`,`IO`,`IQ`,
`IR`,`JO`,`JP`,`KG`,`KH`,`KP`,`KR`,
`KW`,`KZ`,`LA`,`LB`,`LK`,`MM`,`MN`,
`MO`,`MV`,`MY`,`NP`,`OM`,`PH`,`PK`,
`PS`,`QA`,`RU`,`SA`,`SG`,`SY`,`TH`,
`TJ`,`TL`,`TM`,`TR`,`TW`,`U6`,`U8`,
`UZ`,`VN`,`YE` | * |_________________________|__________________________________________________|__________________________________________________| * | `OCN` | Australia / Oceania | `AS`,`AU`,`CC`,`CK`,`CX`,`FJ`,`FM`,
`GU`,`HM`,`KI`,`MH`,`MP`,`NC`,`NF`,
`NR`,`NU`,`NZ`,`PF`,`PG`,`PN`,`PW`,
`SB`,`TK`,`TO`,`TV`,`U9`,`UM`,`VU`,
`WF`,`WS` | * |_________________________|__________________________________________________|__________________________________________________| * | `ANT` | Antarctica | `AQ`, `TF`, `BV` | * |_________________________|__________________________________________________|__________________________________________________| * * ## Import * * Directional (DIR) pool records can be imported by combining their `owner_name`, `zone_name`, and `record_type`, separated by a colon.
Example `www.example.com.:example.com.:A (1)`. -> For import, the `owner_name` and `zone_name` must be a FQDN, and `record_type` should have the type, as well as the corresponding number, as shown in the example below. Exampleterraform * * ```sh * $ pulumi import ultradns:index/dirPool:DirPool example "www.example.com.:example.com.:A (1)" * ``` */ export declare class DirPool extends pulumi.CustomResource { /** * Get an existing DirPool resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: DirPoolState, opts?: pulumi.CustomResourceOptions): DirPool; /** * Returns true if the given object is an instance of DirPool. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is DirPool; /** * (String) When there is a conflict between a matching GeoIP group and a matching SourceIP group, this will determine which should take precedence. This only applies to a mixed pool (contains both GeoIP and SourceIP data). Valid values are `GEO` and `IP`. Default value set to `GEO`. */ readonly conflictResolve: pulumi.Output; /** * (Boolean) Whether to ignore the EDNSO (which is an extended label type allowing for greater DNS messaging size) Client Subnet data when available in the DNS request.
* `false`= EDNSO data will be used for IP directional routing.
* `true` = EDNSO data will not be used and IP directional routing decisions will always use the IP address of the recursive server.
* Default value set to false. */ readonly ignoreEcs: pulumi.Output; /** * (Block Set, Max: 1) Nested block describing certain geographical territories and IP addresses that will not get a response if they try to access the directional pool. The structure of this block is described below. */ readonly noResponse: pulumi.Output; /** * (String) The domain name of the owner of the RRSet. Can be either a fully qualified domain name (FQDN) or a relative domain name. If provided as a FQDN, it must be contained within the zone name's FQDN. */ readonly ownerName: pulumi.Output; /** * (String) Allows for an additional description of the Directional (DIR) pool. */ readonly poolDescription: pulumi.Output; /** * (Block Set, Min: 1) List of nested blocks describing the pool records. The structure of this block is described below. */ readonly rdataInfos: pulumi.Output; /** * (String) Must be formatted as a well-known resource record type (A, AAAA, TXT, etc.), or the corresponding number for the type; between 1 and 33.
* Below are the supported resource record types with the corresponding number:
* `A (1)` * `PTR (12)` * `MX (15)` * `TXT (16)` * `AAAA (28)` * `SRV (33)` */ readonly recordType: pulumi.Output; /** * (Integer) The time to live (in seconds) for the corresponding record in rdata. Must be a value between 0 and 2147483647, inclusive. */ readonly ttl: pulumi.Output; /** * (String) Name of the zone. */ readonly zoneName: pulumi.Output; /** * Create a DirPool resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: DirPoolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering DirPool resources. */ export interface DirPoolState { /** * (String) When there is a conflict between a matching GeoIP group and a matching SourceIP group, this will determine which should take precedence. This only applies to a mixed pool (contains both GeoIP and SourceIP data). Valid values are `GEO` and `IP`. Default value set to `GEO`. */ conflictResolve?: pulumi.Input; /** * (Boolean) Whether to ignore the EDNSO (which is an extended label type allowing for greater DNS messaging size) Client Subnet data when available in the DNS request.
* `false`= EDNSO data will be used for IP directional routing.
* `true` = EDNSO data will not be used and IP directional routing decisions will always use the IP address of the recursive server.
* Default value set to false. */ ignoreEcs?: pulumi.Input; /** * (Block Set, Max: 1) Nested block describing certain geographical territories and IP addresses that will not get a response if they try to access the directional pool. The structure of this block is described below. */ noResponse?: pulumi.Input; /** * (String) The domain name of the owner of the RRSet. Can be either a fully qualified domain name (FQDN) or a relative domain name. If provided as a FQDN, it must be contained within the zone name's FQDN. */ ownerName?: pulumi.Input; /** * (String) Allows for an additional description of the Directional (DIR) pool. */ poolDescription?: pulumi.Input; /** * (Block Set, Min: 1) List of nested blocks describing the pool records. The structure of this block is described below. */ rdataInfos?: pulumi.Input[]>; /** * (String) Must be formatted as a well-known resource record type (A, AAAA, TXT, etc.), or the corresponding number for the type; between 1 and 33.
* Below are the supported resource record types with the corresponding number:
* `A (1)` * `PTR (12)` * `MX (15)` * `TXT (16)` * `AAAA (28)` * `SRV (33)` */ recordType?: pulumi.Input; /** * (Integer) The time to live (in seconds) for the corresponding record in rdata. Must be a value between 0 and 2147483647, inclusive. */ ttl?: pulumi.Input; /** * (String) Name of the zone. */ zoneName?: pulumi.Input; } /** * The set of arguments for constructing a DirPool resource. */ export interface DirPoolArgs { /** * (String) When there is a conflict between a matching GeoIP group and a matching SourceIP group, this will determine which should take precedence. This only applies to a mixed pool (contains both GeoIP and SourceIP data). Valid values are `GEO` and `IP`. Default value set to `GEO`. */ conflictResolve?: pulumi.Input; /** * (Boolean) Whether to ignore the EDNSO (which is an extended label type allowing for greater DNS messaging size) Client Subnet data when available in the DNS request.
* `false`= EDNSO data will be used for IP directional routing.
* `true` = EDNSO data will not be used and IP directional routing decisions will always use the IP address of the recursive server.
* Default value set to false. */ ignoreEcs?: pulumi.Input; /** * (Block Set, Max: 1) Nested block describing certain geographical territories and IP addresses that will not get a response if they try to access the directional pool. The structure of this block is described below. */ noResponse?: pulumi.Input; /** * (String) The domain name of the owner of the RRSet. Can be either a fully qualified domain name (FQDN) or a relative domain name. If provided as a FQDN, it must be contained within the zone name's FQDN. */ ownerName: pulumi.Input; /** * (String) Allows for an additional description of the Directional (DIR) pool. */ poolDescription?: pulumi.Input; /** * (Block Set, Min: 1) List of nested blocks describing the pool records. The structure of this block is described below. */ rdataInfos: pulumi.Input[]>; /** * (String) Must be formatted as a well-known resource record type (A, AAAA, TXT, etc.), or the corresponding number for the type; between 1 and 33.
* Below are the supported resource record types with the corresponding number:
* `A (1)` * `PTR (12)` * `MX (15)` * `TXT (16)` * `AAAA (28)` * `SRV (33)` */ recordType: pulumi.Input; /** * (String) Name of the zone. */ zoneName: pulumi.Input; }