import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* Use this resource to manage Simple Monitor/Failover (SF) pool records in UltraDNS.
*
* ## Example Usage
* ### Create SF pool record of type A (1)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const sfPool = new ultradns.SfPool("a", {
* backupRecord: {
* description: "Backup record",
* rdata: "192.1.1.4",
* },
* liveRecordDescription: "Maintenance",
* liveRecordState: "NOT_FORCED",
* monitor: {
* method: "GET",
* url: "https://example.com",
* },
* ownerName: "a",
* poolDescription: "SF Pool Resource of Type A",
* recordDatas: ["192.1.1.3"],
* recordType: "A",
* regionFailureSensitivity: "HIGH",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create SF pool record of type AAAA (28)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const aaaa = new ultradns.SfPool("aaaa", {
* backupRecord: {
* description: "Backup record",
* rdata: "2001:db8:85a3:0:0:8a2e:370:7324",
* },
* monitor: {
* method: "POST",
* url: "https://example.com",
* },
* ownerName: "aaaa",
* recordDatas: ["2001:db8:85a3:0:0:8a2e:370:7334"],
* recordType: "AAAA",
* regionFailureSensitivity: "LOW",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
*
* ## Import
*
* Simple Monitor/Failover (SF) 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/sfPool:SfPool example "www.example.com.:example.com.:A (1)"
* ```
*/
export declare class SfPool extends pulumi.CustomResource {
/**
* Get an existing SfPool 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?: SfPoolState, opts?: pulumi.CustomResourceOptions): SfPool;
/**
* Returns true if the given object is an instance of SfPool. 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 SfPool;
/**
* (Block Set) Nested block describing the information for the backup record. The structure of this block is described below.
*/
readonly backupRecord: pulumi.Output;
/**
* (String) An optional description of the live record.
*/
readonly liveRecordDescription: pulumi.Output;
/**
* (String) Whether or not the live record is currently active. Valid values are:
* `FORCED_INACTIVE` – the backup record should always be returned by a DNS query.
* `NOT_FORCED` – the monitor should determine if the live record or the backup record is returned by a DNS query.
*/
readonly liveRecordState: 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 Failover field.
*/
readonly poolDescription: pulumi.Output;
/**
* (String List) The list of IPv4 or IPv6 addresses.
*/
readonly recordDatas: 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`, `HIGH`.
*/
readonly regionFailureSensitivity: pulumi.Output;
/**
* (Computed) (String) Current status of the serving record. Valid values are:
* `OK` – Live record is being served.
* `CRITICAL` – The backup record is being served due to the monitor detecting a failure.
* `MANUAL` – The backup record is being served due to user forcing the live record to be inactive.
*/
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 SfPool 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: SfPoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering SfPool resources.
*/
export interface SfPoolState {
/**
* (Block Set) Nested block describing the information for the backup record. The structure of this block is described below.
*/
backupRecord?: pulumi.Input;
/**
* (String) An optional description of the live record.
*/
liveRecordDescription?: pulumi.Input;
/**
* (String) Whether or not the live record is currently active. Valid values are:
* `FORCED_INACTIVE` – the backup record should always be returned by a DNS query.
* `NOT_FORCED` – the monitor should determine if the live record or the backup record is returned by a DNS query.
*/
liveRecordState?: 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 Failover field.
*/
poolDescription?: pulumi.Input;
/**
* (String List) The list of IPv4 or IPv6 addresses.
*/
recordDatas?: 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`, `HIGH`.
*/
regionFailureSensitivity?: pulumi.Input;
/**
* (Computed) (String) Current status of the serving record. Valid values are:
* `OK` – Live record is being served.
* `CRITICAL` – The backup record is being served due to the monitor detecting a failure.
* `MANUAL` – The backup record is being served due to user forcing the live record to be inactive.
*/
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 SfPool resource.
*/
export interface SfPoolArgs {
/**
* (Block Set) Nested block describing the information for the backup record. The structure of this block is described below.
*/
backupRecord?: pulumi.Input;
/**
* (String) An optional description of the live record.
*/
liveRecordDescription?: pulumi.Input;
/**
* (String) Whether or not the live record is currently active. Valid values are:
* `FORCED_INACTIVE` – the backup record should always be returned by a DNS query.
* `NOT_FORCED` – the monitor should determine if the live record or the backup record is returned by a DNS query.
*/
liveRecordState?: 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 Failover field.
*/
poolDescription?: pulumi.Input;
/**
* (String List) The list of IPv4 or IPv6 addresses.
*/
recordDatas: 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`, `HIGH`.
*/
regionFailureSensitivity: 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;
}