UNPKG

@pulumi/linode

Version:

A Pulumi package for creating and managing linode cloud resources.

139 lines (138 loc) 5.33 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Provides a Linode RDNS resource. This can be used to create and modify RDNS records. * * Linode RDNS names must have a matching address value in an A or AAAA record. This A or AAAA name must be resolvable at the time the RDNS resource is being associated. * * For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/put-ip) and the [Configure your Linode for Reverse DNS](https://www.linode.com/docs/networking/dns/configure-your-linode-for-reverse-dns-classic-manager/) guide. * * ## Example Usage * * The following example shows how one might use this resource to configure an RDNS address for an IP address. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as linode from "@pulumi/linode"; * * const fooInstance = new linode.Instance("foo", { * image: "linode/alpine3.19", * region: "ca-east", * type: "g6-dedicated-2", * }); * const foo = new linode.Rdns("foo", { * address: fooInstance.ipAddress, * rdns: pulumi.interpolate`${fooInstance.ipAddress}.nip.io`, * }); * ``` * * The following example shows how one might use this resource to configure RDNS for multiple IP addresses. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as linode from "@pulumi/linode"; * * const myInstance: linode.Instance[] = []; * for (const range = {value: 0}; range.value < 3; range.value++) { * myInstance.push(new linode.Instance(`my_instance-${range.value}`, { * label: `simple_instance-${range.value + 1}`, * image: "linode/ubuntu22.04", * region: "us-central", * type: "g6-standard-1", * rootPass: "terr4form-test", * })); * } * const myRdns: linode.Rdns[] = []; * myInstance.length.apply(rangeBody => { * for (const range = {value: 0}; range.value < rangeBody; range.value++) { * myRdns.push(new linode.Rdns(`my_rdns-${range.value}`, { * address: myInstance[range.value].ipAddress, * rdns: pulumi.interpolate`${myInstance[range.value].ipAddress}.nip.io`, * })); * } * }); * ``` * * ## Import * * Linodes RDNS resources can be imported using the address as the `id`. * * ```sh * $ pulumi import linode:index/rdns:Rdns foo 123.123.123.123 * ``` */ export declare class Rdns extends pulumi.CustomResource { /** * Get an existing Rdns 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<pulumi.ID>, state?: RdnsState, opts?: pulumi.CustomResourceOptions): Rdns; /** * Returns true if the given object is an instance of Rdns. 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 Rdns; /** * The Public IPv4 or IPv6 address that will receive the `PTR` record. A matching `A` or `AAAA` record must exist. */ readonly address: pulumi.Output<string>; /** * The name of the RDNS address. */ readonly rdns: pulumi.Output<string>; readonly timeouts: pulumi.Output<outputs.RdnsTimeouts | undefined>; /** * If true, the RDNS assignment will be retried within the operation timeout period. */ readonly waitForAvailable: pulumi.Output<boolean>; /** * Create a Rdns 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: RdnsArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Rdns resources. */ export interface RdnsState { /** * The Public IPv4 or IPv6 address that will receive the `PTR` record. A matching `A` or `AAAA` record must exist. */ address?: pulumi.Input<string>; /** * The name of the RDNS address. */ rdns?: pulumi.Input<string>; timeouts?: pulumi.Input<inputs.RdnsTimeouts>; /** * If true, the RDNS assignment will be retried within the operation timeout period. */ waitForAvailable?: pulumi.Input<boolean>; } /** * The set of arguments for constructing a Rdns resource. */ export interface RdnsArgs { /** * The Public IPv4 or IPv6 address that will receive the `PTR` record. A matching `A` or `AAAA` record must exist. */ address: pulumi.Input<string>; /** * The name of the RDNS address. */ rdns: pulumi.Input<string>; timeouts?: pulumi.Input<inputs.RdnsTimeouts>; /** * If true, the RDNS assignment will be retried within the operation timeout period. */ waitForAvailable?: pulumi.Input<boolean>; }