import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* Use this resource to manage Simple Load Balancing (SLB) pool records in UltraDNS.
*
* ## Example Usage
* ### Create SLB pool record of type A (1)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const slbPool = new ultradns.SlbPool("a", {
* allFailRecord: {
* rdata: "192.127.127.33",
* },
* monitor: {
* method: "POST",
* url: "https://example.com",
* },
* ownerName: "a",
* rdataInfos: [
* {
* description: "first",
* probingEnabled: false,
* rdata: "192.201.127.33",
* },
* {
* description: "second",
* probingEnabled: true,
* rdata: "192.168.1.2",
* },
* ],
* recordType: "A",
* regionFailureSensitivity: "HIGH",
* responseMethod: "ROUND_ROBIN",
* servingPreference: "AUTO_SELECT",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create SLB pool record of type AAAA (28)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const aaaa = new ultradns.SlbPool("aaaa", {
* allFailRecord: {
* rdata: "2001:db8:85a3:0:0:8a2e:370:7324",
* },
* monitor: {
* method: "GET",
* url: "https://example.com",
* },
* ownerName: "aaaa",
* rdataInfos: [{
* description: "first",
* probingEnabled: false,
* rdata: "2001:db8:85a3:0:0:8a2e:370:7334",
* }],
* recordType: "28",
* regionFailureSensitivity: "LOW",
* responseMethod: "ROUND_ROBIN",
* servingPreference: "AUTO_SELECT",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
*
* ## Import
*
* Simple Load Balancing (SLB) 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/slbPool:SlbPool example "www.example.com.:example.com.:A (1)"
* ```
*/
export declare class SlbPool extends pulumi.CustomResource {
/**
* Get an existing SlbPool 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?: SlbPoolState, opts?: pulumi.CustomResourceOptions): SlbPool;
/**
* Returns true if the given object is an instance of SlbPool. 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 SlbPool;
/**
* (Block Set) Nested block describing the information for the backup record. The structure of this block is described below.
*/
readonly allFailRecord: pulumi.Output;
/**
* (Block Set) Nested block describing the information for the monitor. The structure of this block is described below.
*/
readonly monitor: 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) An optional description of the Simple Load Balancing (SLB) field.
*/
readonly poolDescription: pulumi.Output;
/**
* (Block Set, Max: 5) Nested block 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 or AAAA), or the corresponding number for the type (1 or 28).
* Below are the supported resource record types with the corresponding number:
* `A (1)`
* `AAAA (28)`
*/
readonly recordType: pulumi.Output;
/**
* (String) Specifies the sensitivity to the number of regions that need to fail for the backup record to be made active. Valid values are `LOW`, and `HIGH`.
*/
readonly regionFailureSensitivity: pulumi.Output;
/**
* (String) The method used to select which record is returned from the primary record pool. Valid values are:
* `PRIORITY_HUNT` – The sequence of the records listed in the primary record pool determines the priority. The first record listed is the highest priority record. Once a record starts being served, it will always be served until the probe detects a failure on this record, or, the record is set to FORCED_INACTIVE.
* `RANDOM` – A random record is returned from the following set of primary records.
* `ROUND_ROBIN` -A record is returned in (a round robin fashion) rotation, based upon the priority of the following active set of records.
*/
readonly responseMethod: pulumi.Output;
/**
* (String) It determines if records will be selected from the Primary Records pool or from the All Fail Record. Valid values are:
* `AUTO_SELECT`: Serving method switches from serving Primary Records, to All Fail Record based upon probe results, and the Forced State of the Primary Records.
* `SERVE_PRIMARY`: Only the Primary Records are served based upon the probe results and the Forced State of the Primary Records.
* `SERVE_ALL_FAIL`: Only the All Fail Record will be served, ignoring the probe results and the Forced State of the Primary Records.
*/
readonly servingPreference: pulumi.Output;
/**
* (Computed) (String) Current status of the serving record. Valid values are:
* `OK`- Priority record(s) are being served.
* `WARNING` – One of the priority records is not being served due to the monitor detecting a failure, but there is still a priority record to be served.
* `CRITICAL` – The backup All Fail record is being served due to the monitor detecting a failure.
*/
readonly status: pulumi.Output;
/**
* (Integer) The time to live (in seconds) for the record. Must be a value between 0 and 2147483647, inclusive.
*/
readonly ttl: pulumi.Output;
/**
* (String) Name of the zone.
*/
readonly zoneName: pulumi.Output;
/**
* Create a SlbPool 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: SlbPoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering SlbPool resources.
*/
export interface SlbPoolState {
/**
* (Block Set) Nested block describing the information for the backup record. The structure of this block is described below.
*/
allFailRecord?: pulumi.Input;
/**
* (Block Set) Nested block describing the information for the monitor. The structure of this block is described below.
*/
monitor?: 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) An optional description of the Simple Load Balancing (SLB) field.
*/
poolDescription?: pulumi.Input;
/**
* (Block Set, Max: 5) Nested block 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 or AAAA), or the corresponding number for the type (1 or 28).
* Below are the supported resource record types with the corresponding number:
* `A (1)`
* `AAAA (28)`
*/
recordType?: pulumi.Input;
/**
* (String) Specifies the sensitivity to the number of regions that need to fail for the backup record to be made active. Valid values are `LOW`, and `HIGH`.
*/
regionFailureSensitivity?: pulumi.Input;
/**
* (String) The method used to select which record is returned from the primary record pool. Valid values are:
* `PRIORITY_HUNT` – The sequence of the records listed in the primary record pool determines the priority. The first record listed is the highest priority record. Once a record starts being served, it will always be served until the probe detects a failure on this record, or, the record is set to FORCED_INACTIVE.
* `RANDOM` – A random record is returned from the following set of primary records.
* `ROUND_ROBIN` -A record is returned in (a round robin fashion) rotation, based upon the priority of the following active set of records.
*/
responseMethod?: pulumi.Input;
/**
* (String) It determines if records will be selected from the Primary Records pool or from the All Fail Record. Valid values are:
* `AUTO_SELECT`: Serving method switches from serving Primary Records, to All Fail Record based upon probe results, and the Forced State of the Primary Records.
* `SERVE_PRIMARY`: Only the Primary Records are served based upon the probe results and the Forced State of the Primary Records.
* `SERVE_ALL_FAIL`: Only the All Fail Record will be served, ignoring the probe results and the Forced State of the Primary Records.
*/
servingPreference?: pulumi.Input;
/**
* (Computed) (String) Current status of the serving record. Valid values are:
* `OK`- Priority record(s) are being served.
* `WARNING` – One of the priority records is not being served due to the monitor detecting a failure, but there is still a priority record to be served.
* `CRITICAL` – The backup All Fail record is being served due to the monitor detecting a failure.
*/
status?: pulumi.Input;
/**
* (Integer) The time to live (in seconds) for the record. 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 SlbPool resource.
*/
export interface SlbPoolArgs {
/**
* (Block Set) Nested block describing the information for the backup record. The structure of this block is described below.
*/
allFailRecord: pulumi.Input;
/**
* (Block Set) Nested block describing the information for the monitor. The structure of this block is described below.
*/
monitor: 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) An optional description of the Simple Load Balancing (SLB) field.
*/
poolDescription?: pulumi.Input;
/**
* (Block Set, Max: 5) Nested block 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 or AAAA), or the corresponding number for the type (1 or 28).
* Below are the supported resource record types with the corresponding number:
* `A (1)`
* `AAAA (28)`
*/
recordType: pulumi.Input;
/**
* (String) Specifies the sensitivity to the number of regions that need to fail for the backup record to be made active. Valid values are `LOW`, and `HIGH`.
*/
regionFailureSensitivity: pulumi.Input;
/**
* (String) The method used to select which record is returned from the primary record pool. Valid values are:
* `PRIORITY_HUNT` – The sequence of the records listed in the primary record pool determines the priority. The first record listed is the highest priority record. Once a record starts being served, it will always be served until the probe detects a failure on this record, or, the record is set to FORCED_INACTIVE.
* `RANDOM` – A random record is returned from the following set of primary records.
* `ROUND_ROBIN` -A record is returned in (a round robin fashion) rotation, based upon the priority of the following active set of records.
*/
responseMethod: pulumi.Input;
/**
* (String) It determines if records will be selected from the Primary Records pool or from the All Fail Record. Valid values are:
* `AUTO_SELECT`: Serving method switches from serving Primary Records, to All Fail Record based upon probe results, and the Forced State of the Primary Records.
* `SERVE_PRIMARY`: Only the Primary Records are served based upon the probe results and the Forced State of the Primary Records.
* `SERVE_ALL_FAIL`: Only the All Fail Record will be served, ignoring the probe results and the Forced State of the Primary Records.
*/
servingPreference: pulumi.Input;
/**
* (Integer) The time to live (in seconds) for the record. Must be a value between 0 and 2147483647, inclusive.
*/
ttl?: pulumi.Input;
/**
* (String) Name of the zone.
*/
zoneName: pulumi.Input;
}