import * as pulumi from "@pulumi/pulumi";
/**
* Use this resource to manage standard DNS records in UltraDNS
*
* ## Example Usage
* ### Create DNS record of type A (1)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const record = new ultradns.Record("a", {
* ownerName: "a",
* recordDatas: ["192.168.1.1"],
* recordType: "1",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type NS (2)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const ns = new ultradns.Record("ns", {
* ownerName: "example.com.",
* recordDatas: [
* "ns11.sample.com.",
* "ns12.sample.com.",
* ],
* recordType: "NS",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type CNAME (5)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const cname = new ultradns.Record("cname", {
* ownerName: "cname",
* recordDatas: ["host.sample.com."],
* recordType: "CNAME",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type PTR (12)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const ptr = new ultradns.Record("ptr", {
* ownerName: "1",
* recordDatas: ["ns1.example.com."],
* recordType: "12",
* ttl: 120,
* zoneName: "70.154.156.in-addr.arpa.",
* });
* ```
* ### Create DNS record of type MX (15)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const mx = new ultradns.Record("mx", {
* ownerName: "mx",
* recordDatas: ["2 example.com."],
* recordType: "15",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type TXT (16)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const txt = new ultradns.Record("txt", {
* ownerName: "txt",
* recordDatas: ["text data"],
* recordType: "TXT",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type AAAA (28)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const aaaa = new ultradns.Record("aaaa", {
* ownerName: "aaaa",
* recordDatas: ["2001:db8:85a3:0:0:8a2e:370:7334"],
* recordType: "AAAA",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type SRV (33)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const srv = new ultradns.Record("srv", {
* ownerName: "srv",
* recordDatas: ["5 6 7 example.com."],
* recordType: "33",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type SSHFP (44)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const sshfp = new ultradns.Record("sshfp", {
* ownerName: "sshfp",
* recordDatas: ["1 2 54B5E539EAF593AEA410F80737530B71CCDE8B6C3D241184A1372E98BC7EDB37"],
* recordType: "SSHFP",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
* ### Create DNS record of type APEXALIAS (65282)
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as ultradns from "@pulumi/ultradns";
*
* const apex = new ultradns.Record("apex", {
* ownerName: "example.com.",
* recordDatas: ["sample.com."],
* recordType: "APEXALIAS",
* ttl: 120,
* zoneName: "example.com.",
* });
* ```
*
* ## Import
*
* 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. Example
*
* ```sh
* $ pulumi import ultradns:index/record:Record example "www.example.com.:example.com.:A (1)"
* ```
*/
export declare class Record extends pulumi.CustomResource {
/**
* Get an existing Record 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?: RecordState, opts?: pulumi.CustomResourceOptions): Record;
/**
* Returns true if the given object is an instance of Record. 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 Record;
/**
* (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 List) The data for the record displayed as the BIND presentation format for the specified RRTYPE.
* Example : For a SRV record, the format of data is ["priority weight port target"] (["2 2 523 example.com."])
* Additionally for MX, CNAME, and PTR record types, the data value must be a FQDN, as it cannot be relative to the zone name.
*/
readonly recordDatas: pulumi.Output;
/**
* (String) Must be formatted as the well-known resource record type (A, AAAA, TXT, etc.) or the corresponding number for the type; between 1 and 65535.
* Below are the supported resource record types with the corresponding number:
* `A (1)`
* `NS (2)`
* `CNAME (5)`
* `PTR (12)`
* `MX (15)`
* `TXT (16)`
* `AAAA (28)`
* `SRV (33)`
* `SSHFP (44)`
* `APEXALIAS (65282)`
*/
readonly recordType: 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 Record 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: RecordArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Record resources.
*/
export interface RecordState {
/**
* (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 List) The data for the record displayed as the BIND presentation format for the specified RRTYPE.
* Example : For a SRV record, the format of data is ["priority weight port target"] (["2 2 523 example.com."])
* Additionally for MX, CNAME, and PTR record types, the data value must be a FQDN, as it cannot be relative to the zone name.
*/
recordDatas?: pulumi.Input[]>;
/**
* (String) Must be formatted as the well-known resource record type (A, AAAA, TXT, etc.) or the corresponding number for the type; between 1 and 65535.
* Below are the supported resource record types with the corresponding number:
* `A (1)`
* `NS (2)`
* `CNAME (5)`
* `PTR (12)`
* `MX (15)`
* `TXT (16)`
* `AAAA (28)`
* `SRV (33)`
* `SSHFP (44)`
* `APEXALIAS (65282)`
*/
recordType?: 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 Record resource.
*/
export interface RecordArgs {
/**
* (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 List) The data for the record displayed as the BIND presentation format for the specified RRTYPE.
* Example : For a SRV record, the format of data is ["priority weight port target"] (["2 2 523 example.com."])
* Additionally for MX, CNAME, and PTR record types, the data value must be a FQDN, as it cannot be relative to the zone name.
*/
recordDatas: pulumi.Input[]>;
/**
* (String) Must be formatted as the well-known resource record type (A, AAAA, TXT, etc.) or the corresponding number for the type; between 1 and 65535.
* Below are the supported resource record types with the corresponding number:
* `A (1)`
* `NS (2)`
* `CNAME (5)`
* `PTR (12)`
* `MX (15)`
* `TXT (16)`
* `AAAA (28)`
* `SRV (33)`
* `SSHFP (44)`
* `APEXALIAS (65282)`
*/
recordType: 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;
}