import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Zone in Oracle Cloud Infrastructure DNS service.
 *
 * Gets information about a specific zone by name or OCID.
 *
 * Notes:
 * - When accessing a private zone by name, the `viewId` must be provided and `scope` must be `PRIVATE`.
 * - The `compartmentId` request parameter is deprecated by the service for GetZone and can generally be omitted.
 *
 * ## Example Usage
 *
 * Using zone OCID:
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const target = oci.dns.getZone({
 *     zoneNameOrId: zoneOcid,
 *     scope: "PRIVATE",
 *     viewId: testView.id,
 * });
 * ```
 *
 * Using zone name (private zone):
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const targetByName = oci.dns.getZone({
 *     zoneNameOrId: `${testTenancy.name}.example.internal.`,
 *     scope: "PRIVATE",
 *     viewId: testView.id,
 * });
 * ```
 */
export declare function getZone(args: GetZoneArgs, opts?: pulumi.InvokeOptions): Promise<GetZoneResult>;
/**
 * A collection of arguments for invoking getZone.
 */
export interface GetZoneArgs {
    /**
     * The OCID of the compartment the zone belongs to. This parameter is deprecated by the service for `GetZone` and should be omitted in most cases.
     */
    compartmentId?: string;
    /**
     * Specifies to operate only on resources that have a matching DNS scope. Allowed values: `GLOBAL`, `PRIVATE`. Required to access private zones by name.
     */
    scope?: string;
    /**
     * The OCID of the view the zone is associated with. Required when accessing a private zone by name.
     */
    viewId?: string;
    /**
     * The name or OCID of the target zone.
     */
    zoneNameOrId: string;
}
/**
 * A collection of values returned by getZone.
 */
export interface GetZoneResult {
    /**
     * The OCID of the compartment containing the zone.
     */
    readonly compartmentId?: string;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    readonly definedTags: {
        [key: string]: string;
    };
    /**
     * DNSSEC configuration data.
     */
    readonly dnssecConfigs: outputs.Dns.GetZoneDnssecConfig[];
    /**
     * The state of DNSSEC on the zone.
     */
    readonly dnssecState: string;
    /**
     * External secondary servers for the zone.
     */
    readonly externalDownstreams: outputs.Dns.GetZoneExternalDownstream[];
    /**
     * External master servers for the zone (required when `zoneType` is `SECONDARY`).
     */
    readonly externalMasters: outputs.Dns.GetZoneExternalMaster[];
    /**
     * Free-form tags for this resource. Each tag is a simple key-value pair.
     */
    readonly freeformTags: {
        [key: string]: string;
    };
    /**
     * The OCID of the zone.
     */
    readonly id: string;
    /**
     * Whether parts of the resource are protected from explicit management.
     */
    readonly isProtected: boolean;
    /**
     * The name of the zone.
     */
    readonly name: string;
    /**
     * Nameservers for the zone.
     */
    readonly nameservers: outputs.Dns.GetZoneNameserver[];
    /**
     * The resolution mode for the zone.
     */
    readonly resolutionMode: string;
    /**
     * The scope of the zone.
     */
    readonly scope?: string;
    /**
     * The canonical absolute URL of the resource.
     */
    readonly self: string;
    /**
     * The current serial of the zone (from the SOA record).
     */
    readonly serial: number;
    /**
     * The current lifecycle state of the zone.
     */
    readonly state: string;
    /**
     * The RFC 3339 timestamp when the zone was created.
     */
    readonly timeCreated: string;
    /**
     * The version of the zone from which the SOA serial is derived.
     */
    readonly version: string;
    /**
     * The OCID of the private view containing the zone (null for global zones).
     */
    readonly viewId?: string;
    readonly zoneNameOrId: string;
    /**
     * The OCI nameservers that transfer zone data with external nameservers.
     */
    readonly zoneTransferServers: outputs.Dns.GetZoneZoneTransferServer[];
    /**
     * The type of the zone. Must be either `PRIMARY` or `SECONDARY`. `SECONDARY` is supported only for `GLOBAL` zones.
     */
    readonly zoneType: string;
}
/**
 * This data source provides details about a specific Zone in Oracle Cloud Infrastructure DNS service.
 *
 * Gets information about a specific zone by name or OCID.
 *
 * Notes:
 * - When accessing a private zone by name, the `viewId` must be provided and `scope` must be `PRIVATE`.
 * - The `compartmentId` request parameter is deprecated by the service for GetZone and can generally be omitted.
 *
 * ## Example Usage
 *
 * Using zone OCID:
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const target = oci.dns.getZone({
 *     zoneNameOrId: zoneOcid,
 *     scope: "PRIVATE",
 *     viewId: testView.id,
 * });
 * ```
 *
 * Using zone name (private zone):
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const targetByName = oci.dns.getZone({
 *     zoneNameOrId: `${testTenancy.name}.example.internal.`,
 *     scope: "PRIVATE",
 *     viewId: testView.id,
 * });
 * ```
 */
export declare function getZoneOutput(args: GetZoneOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetZoneResult>;
/**
 * A collection of arguments for invoking getZone.
 */
export interface GetZoneOutputArgs {
    /**
     * The OCID of the compartment the zone belongs to. This parameter is deprecated by the service for `GetZone` and should be omitted in most cases.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Specifies to operate only on resources that have a matching DNS scope. Allowed values: `GLOBAL`, `PRIVATE`. Required to access private zones by name.
     */
    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.
     */
    zoneNameOrId: pulumi.Input<string>;
}
//# sourceMappingURL=getZone.d.ts.map