import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Resource for maintaining exclusive management of resource record sets defined in an AWS Route53 hosted zone. * * > This resource takes exclusive ownership over resource record sets defined in a hosted zone. This includes removal of record sets which are not explicitly configured. To prevent persistent drift, ensure any `aws.route53.Record` resources managed alongside this resource have an equivalent `resourceRecordSet` argument. * * > Destruction of this resource means Terraform will no longer manage reconciliation of the configured resource record sets. It __will not__ delete the configured record sets from the hosted zone. * * > The default `NS` and `SOA` records created during provisioning of the Route53 Zone __should not be included__ in this resource definition. Adding them will cause persistent drift as the read operation is explicitly configured to ignore writing them to state. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.route53.Zone("example", { * name: "example.com", * forceDestroy: true, * }); * const test = new aws.route53.RecordsExclusive("test", { * resourceRecordSets: [{ * resourceRecords: [ * { * value: "127.0.0.1", * }, * { * value: "127.0.0.27", * }, * ], * name: "subdomain.example.com", * type: "A", * ttl: 30, * }], * zoneId: testAwsRoute53Zone.zoneId, * }); * ``` * * ### Disallow Record Sets * * To automatically remove any configured record sets, omit a `resourceRecordSet` block. * * > This will not __prevent__ record sets from being defined in a hosted zone via Terraform (or any other interface). This resource enables bringing record set definitions into a configured state, however, this reconciliation happens only when `apply` is proactively run. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const test = new aws.route53.RecordsExclusive("test", {zoneId: testAwsRoute53Zone.zoneId}); * ``` * * ## Import * * Using `pulumi import`, import Route 53 Records Exclusive using the `zoneId`. For example: * * ```sh * $ pulumi import aws:route53/recordsExclusive:RecordsExclusive example ABCD1234 * ``` */ export declare class RecordsExclusive extends pulumi.CustomResource { /** * Get an existing RecordsExclusive 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?: RecordsExclusiveState, opts?: pulumi.CustomResourceOptions): RecordsExclusive; /** * Returns true if the given object is an instance of RecordsExclusive. 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 RecordsExclusive; /** * A list of all resource record sets associated with the hosted zone. * See `resourceRecordSet` below. */ readonly resourceRecordSets: pulumi.Output; readonly timeouts: pulumi.Output; /** * ID of the hosted zone containing the resource record sets. * * The following arguments are optional: */ readonly zoneId: pulumi.Output; /** * Create a RecordsExclusive 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: RecordsExclusiveArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering RecordsExclusive resources. */ export interface RecordsExclusiveState { /** * A list of all resource record sets associated with the hosted zone. * See `resourceRecordSet` below. */ resourceRecordSets?: pulumi.Input[] | undefined>; timeouts?: pulumi.Input; /** * ID of the hosted zone containing the resource record sets. * * The following arguments are optional: */ zoneId?: pulumi.Input; } /** * The set of arguments for constructing a RecordsExclusive resource. */ export interface RecordsExclusiveArgs { /** * A list of all resource record sets associated with the hosted zone. * See `resourceRecordSet` below. */ resourceRecordSets?: pulumi.Input[] | undefined>; timeouts?: pulumi.Input; /** * ID of the hosted zone containing the resource record sets. * * The following arguments are optional: */ zoneId: pulumi.Input; } //# sourceMappingURL=recordsExclusive.d.ts.map