import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Rrset resource in Oracle Cloud Infrastructure DNS service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/dns/latest/Rrset
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/dns
 *
 *   Updates records in the specified RRSet.
 *
 * When the zone name is provided as a path parameter and `PRIVATE` is used for the scope query
 * parameter then the viewId query parameter is required.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testRrset = new oci.dns.Rrset("test_rrset", {
 *     domain: rrsetDomain,
 *     rtype: rrsetRtype,
 *     zoneNameOrId: testZone.id,
 *     items: [{
 *         domain: rrsetItemsDomain,
 *         rdata: rrsetItemsRdata,
 *         rtype: rrsetItemsRtype,
 *         ttl: Number(rrsetItemsTtl),
 *     }],
 *     scope: rrsetScope,
 *     viewId: testView.id,
 * });
 * ```
 *
 * ## Behavior
 *
 * - Create returns HTTP 409 (Conflict) if the target RRSet already contains records. Use Update to modify an existing RRSet, or Delete to remove records.
 *
 * ## Import
 *
 * For Rrsets created using `scope` and `viewId`, these Rrsets can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Dns/rrset:Rrset test_rrset "zoneNameOrId/{zoneNameOrId}/domain/{domain}/rtype/{rtype}/scope/{scope}/viewId/{viewId}"
 * ```
 *
 * skip adding `{view_id}` at the end if Rrset was created without `viewId`.
 */
export declare class Rrset extends pulumi.CustomResource {
    /**
     * Get an existing Rrset 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?: RrsetState, opts?: pulumi.CustomResourceOptions): Rrset;
    /**
     * Returns true if the given object is an instance of Rrset.  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 Rrset;
    /**
     * (Updatable) The OCID of the compartment the zone belongs to.
     *
     * This parameter is deprecated and should be omitted.
     *
     * @deprecated Deprecated; compartment is inferred from the zone and this argument is ignored. Will be removed in a future release.
     */
    readonly compartmentId: pulumi.Output<string | undefined>;
    /**
     * The target fully-qualified domain name (FQDN) within the target zone.
     */
    readonly domain: pulumi.Output<string>;
    /**
     * (Updatable)
     * **NOTE** Omitting `items` at time of create will delete any existing records in the RRSet
     */
    readonly items: pulumi.Output<outputs.Dns.RrsetItem[]>;
    /**
     * The type of the target RRSet within the target zone.
     */
    readonly rtype: pulumi.Output<string>;
    /**
     * Specifies to operate only on resources that have a matching DNS scope.
     *
     * @deprecated Deprecated; scope is inferred from the zone and this argument is ignored. Will be removed in a future release.
     */
    readonly scope: pulumi.Output<string | undefined>;
    /**
     * The OCID of the view the zone is associated with. Required when accessing a private zone by name.
     */
    readonly viewId: pulumi.Output<string | undefined>;
    /**
     * The name or OCID of the target zone.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly zoneNameOrId: pulumi.Output<string>;
    /**
     * Create a Rrset 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: RrsetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Rrset resources.
 */
export interface RrsetState {
    /**
     * (Updatable) The OCID of the compartment the zone belongs to.
     *
     * This parameter is deprecated and should be omitted.
     *
     * @deprecated Deprecated; compartment is inferred from the zone and this argument is ignored. Will be removed in a future release.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * The target fully-qualified domain name (FQDN) within the target zone.
     */
    domain?: pulumi.Input<string | undefined>;
    /**
     * (Updatable)
     * **NOTE** Omitting `items` at time of create will delete any existing records in the RRSet
     */
    items?: pulumi.Input<pulumi.Input<inputs.Dns.RrsetItem>[] | undefined>;
    /**
     * The type of the target RRSet within the target zone.
     */
    rtype?: pulumi.Input<string | undefined>;
    /**
     * Specifies to operate only on resources that have a matching DNS scope.
     *
     * @deprecated Deprecated; scope is inferred from the zone and this argument is ignored. Will be removed in a future release.
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the view the zone is associated with. Required when accessing a private zone by name.
     */
    viewId?: pulumi.Input<string | undefined>;
    /**
     * The name or OCID of the target zone.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    zoneNameOrId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Rrset resource.
 */
export interface RrsetArgs {
    /**
     * (Updatable) The OCID of the compartment the zone belongs to.
     *
     * This parameter is deprecated and should be omitted.
     *
     * @deprecated Deprecated; compartment is inferred from the zone and this argument is ignored. Will be removed in a future release.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * The target fully-qualified domain name (FQDN) within the target zone.
     */
    domain: pulumi.Input<string>;
    /**
     * (Updatable)
     * **NOTE** Omitting `items` at time of create will delete any existing records in the RRSet
     */
    items?: pulumi.Input<pulumi.Input<inputs.Dns.RrsetItem>[] | undefined>;
    /**
     * The type of the target RRSet within the target zone.
     */
    rtype: pulumi.Input<string>;
    /**
     * Specifies to operate only on resources that have a matching DNS scope.
     *
     * @deprecated Deprecated; scope is inferred from the zone and this argument is ignored. Will be removed in a future release.
     */
    scope?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the view the zone is associated with. Required when accessing a private zone by name.
     */
    viewId?: pulumi.Input<string | undefined>;
    /**
     * The name or OCID of the target zone.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    zoneNameOrId: pulumi.Input<string>;
}
//# sourceMappingURL=rrset.d.ts.map