All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.privatedns.kotlin.PrivatednsFunctions.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.privatedns.kotlin

import com.pulumi.azure.privatedns.PrivatednsFunctions.getAAAARecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getARecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getCnameRecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getDnsZonePlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getMxRecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getPtrRecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getResolverDnsForwardingRulesetPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getResolverForwardingRulePlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getResolverInboundEndpointPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getResolverOutboundEndpointPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getResolverPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getResolverVirtualNetworkLinkPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getSoaRecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getSrvRecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getTxtRecordPlain
import com.pulumi.azure.privatedns.PrivatednsFunctions.getZoneVirtualNetworkLinkPlain
import com.pulumi.azure.privatedns.kotlin.inputs.GetAAAARecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetAAAARecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetARecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetARecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetCnameRecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetCnameRecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetDnsZonePlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetDnsZonePlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetMxRecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetMxRecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetPtrRecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetPtrRecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverDnsForwardingRulesetPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverDnsForwardingRulesetPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverForwardingRulePlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverForwardingRulePlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverInboundEndpointPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverInboundEndpointPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverOutboundEndpointPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverOutboundEndpointPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverVirtualNetworkLinkPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetResolverVirtualNetworkLinkPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetSoaRecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetSoaRecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetSrvRecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetSrvRecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetTxtRecordPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetTxtRecordPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.inputs.GetZoneVirtualNetworkLinkPlainArgs
import com.pulumi.azure.privatedns.kotlin.inputs.GetZoneVirtualNetworkLinkPlainArgsBuilder
import com.pulumi.azure.privatedns.kotlin.outputs.GetAAAARecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetARecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetCnameRecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetDnsZoneResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetMxRecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetPtrRecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverDnsForwardingRulesetResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverForwardingRuleResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverInboundEndpointResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverOutboundEndpointResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverVirtualNetworkLinkResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetSoaRecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetSrvRecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetTxtRecordResult
import com.pulumi.azure.privatedns.kotlin.outputs.GetZoneVirtualNetworkLinkResult
import kotlinx.coroutines.future.await
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import com.pulumi.azure.privatedns.kotlin.outputs.GetAAAARecordResult.Companion.toKotlin as getAAAARecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetARecordResult.Companion.toKotlin as getARecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetCnameRecordResult.Companion.toKotlin as getCnameRecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetDnsZoneResult.Companion.toKotlin as getDnsZoneResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetMxRecordResult.Companion.toKotlin as getMxRecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetPtrRecordResult.Companion.toKotlin as getPtrRecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverDnsForwardingRulesetResult.Companion.toKotlin as getResolverDnsForwardingRulesetResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverForwardingRuleResult.Companion.toKotlin as getResolverForwardingRuleResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverInboundEndpointResult.Companion.toKotlin as getResolverInboundEndpointResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverOutboundEndpointResult.Companion.toKotlin as getResolverOutboundEndpointResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverResult.Companion.toKotlin as getResolverResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetResolverVirtualNetworkLinkResult.Companion.toKotlin as getResolverVirtualNetworkLinkResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetSoaRecordResult.Companion.toKotlin as getSoaRecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetSrvRecordResult.Companion.toKotlin as getSrvRecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetTxtRecordResult.Companion.toKotlin as getTxtRecordResultToKotlin
import com.pulumi.azure.privatedns.kotlin.outputs.GetZoneVirtualNetworkLinkResult.Companion.toKotlin as getZoneVirtualNetworkLinkResultToKotlin

public object PrivatednsFunctions {
    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = new azure.privatedns.AAAARecord("example", {
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsAaaaRecordId = exampleAzurermPrivateDnsAaaaRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.AAAARecord("example",
     *     name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsAaaaRecordId", example_azurerm_private_dns_aaaa_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azure.PrivateDns.AAAARecord("example", new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsAaaaRecordId"] = exampleAzurermPrivateDnsAaaaRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.NewAAAARecord(ctx, "example", &privatedns.AAAARecordArgs{
     * 			Name:              pulumi.String("test"),
     * 			ZoneName:          pulumi.String("test-zone"),
     * 			ResourceGroupName: pulumi.String("test-rg"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsAaaaRecordId", exampleAzurermPrivateDnsAaaaRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.AAAARecord;
     * import com.pulumi.azure.privatedns.AAAARecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new AAAARecord("example", AAAARecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsAaaaRecordId", exampleAzurermPrivateDnsAaaaRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azure:privatedns:AAAARecord
     *     properties:
     *       name: test
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsAaaaRecordId: ${exampleAzurermPrivateDnsAaaaRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getAAAARecord.
     * @return A collection of values returned by getAAAARecord.
     */
    public suspend fun getAAAARecord(argument: GetAAAARecordPlainArgs): GetAAAARecordResult =
        getAAAARecordResultToKotlin(getAAAARecordPlain(argument.toJava()).await())

    /**
     * @see [getAAAARecord].
     * @param name The name of the Private DNS AAAA Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getAAAARecord.
     */
    public suspend fun getAAAARecord(
        name: String,
        resourceGroupName: String,
        zoneName: String,
    ): GetAAAARecordResult {
        val argument = GetAAAARecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getAAAARecordResultToKotlin(getAAAARecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getAAAARecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetAAAARecordPlainArgs].
     * @return A collection of values returned by getAAAARecord.
     */
    public suspend fun getAAAARecord(argument: suspend GetAAAARecordPlainArgsBuilder.() -> Unit):
        GetAAAARecordResult {
        val builder = GetAAAARecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAAAARecordResultToKotlin(getAAAARecordPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getARecord({
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsARecordId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_a_record(name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsARecordId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetARecord.Invoke(new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsARecordId"] = example.Apply(getARecordResult => getARecordResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := privatedns.LookupARecord(ctx, &privatedns.LookupARecordArgs{
     * 			Name:              "test",
     * 			ZoneName:          "test-zone",
     * 			ResourceGroupName: "test-rg",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsARecordId", example.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetARecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getARecord(GetARecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsARecordId", example.applyValue(getARecordResult -> getARecordResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getARecord
     *       Arguments:
     *         name: test
     *         zoneName: test-zone
     *         resourceGroupName: test-rg
     * outputs:
     *   privateDnsARecordId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getARecord.
     * @return A collection of values returned by getARecord.
     */
    public suspend fun getARecord(argument: GetARecordPlainArgs): GetARecordResult =
        getARecordResultToKotlin(getARecordPlain(argument.toJava()).await())

    /**
     * @see [getARecord].
     * @param name The name of the Private DNS A Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getARecord.
     */
    public suspend fun getARecord(
        name: String,
        resourceGroupName: String,
        zoneName: String,
    ): GetARecordResult {
        val argument = GetARecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getARecordResultToKotlin(getARecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getARecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetARecordPlainArgs].
     * @return A collection of values returned by getARecord.
     */
    public suspend fun getARecord(argument: suspend GetARecordPlainArgsBuilder.() -> Unit):
        GetARecordResult {
        val builder = GetARecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getARecordResultToKotlin(getARecordPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = new azure.privatedns.CnameRecord("example", {
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsCnameRecordId = exampleAzurermPrivateDnsCnameRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.CnameRecord("example",
     *     name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsCnameRecordId", example_azurerm_private_dns_cname_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azure.PrivateDns.CnameRecord("example", new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsCnameRecordId"] = exampleAzurermPrivateDnsCnameRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.NewCnameRecord(ctx, "example", &privatedns.CnameRecordArgs{
     * 			Name:              pulumi.String("test"),
     * 			ZoneName:          pulumi.String("test-zone"),
     * 			ResourceGroupName: pulumi.String("test-rg"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsCnameRecordId", exampleAzurermPrivateDnsCnameRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.CnameRecord;
     * import com.pulumi.azure.privatedns.CnameRecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new CnameRecord("example", CnameRecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsCnameRecordId", exampleAzurermPrivateDnsCnameRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azure:privatedns:CnameRecord
     *     properties:
     *       name: test
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsCnameRecordId: ${exampleAzurermPrivateDnsCnameRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getCnameRecord.
     * @return A collection of values returned by getCnameRecord.
     */
    public suspend fun getCnameRecord(argument: GetCnameRecordPlainArgs): GetCnameRecordResult =
        getCnameRecordResultToKotlin(getCnameRecordPlain(argument.toJava()).await())

    /**
     * @see [getCnameRecord].
     * @param name The name of the Private DNS CNAME Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getCnameRecord.
     */
    public suspend fun getCnameRecord(
        name: String,
        resourceGroupName: String,
        zoneName: String,
    ): GetCnameRecordResult {
        val argument = GetCnameRecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getCnameRecordResultToKotlin(getCnameRecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getCnameRecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetCnameRecordPlainArgs].
     * @return A collection of values returned by getCnameRecord.
     */
    public suspend fun getCnameRecord(argument: suspend GetCnameRecordPlainArgsBuilder.() -> Unit):
        GetCnameRecordResult {
        val builder = GetCnameRecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCnameRecordResultToKotlin(getCnameRecordPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Private DNS Zone.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getDnsZone({
     *     name: "contoso.internal",
     *     resourceGroupName: "contoso-dns",
     * });
     * export const privateDnsZoneId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_dns_zone(name="contoso.internal",
     *     resource_group_name="contoso-dns")
     * pulumi.export("privateDnsZoneId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetDnsZone.Invoke(new()
     *     {
     *         Name = "contoso.internal",
     *         ResourceGroupName = "contoso-dns",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsZoneId"] = example.Apply(getDnsZoneResult => getDnsZoneResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := privatedns.GetDnsZone(ctx, &privatedns.GetDnsZoneArgs{
     * 			Name:              "contoso.internal",
     * 			ResourceGroupName: pulumi.StringRef("contoso-dns"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsZoneId", example.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetDnsZoneArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getDnsZone(GetDnsZoneArgs.builder()
     *             .name("contoso.internal")
     *             .resourceGroupName("contoso-dns")
     *             .build());
     *         ctx.export("privateDnsZoneId", example.applyValue(getDnsZoneResult -> getDnsZoneResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getDnsZone
     *       Arguments:
     *         name: contoso.internal
     *         resourceGroupName: contoso-dns
     * outputs:
     *   privateDnsZoneId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getDnsZone.
     * @return A collection of values returned by getDnsZone.
     */
    public suspend fun getDnsZone(argument: GetDnsZonePlainArgs): GetDnsZoneResult =
        getDnsZoneResultToKotlin(getDnsZonePlain(argument.toJava()).await())

    /**
     * @see [getDnsZone].
     * @param name The name of the Private DNS Zone.
     * @param resourceGroupName The Name of the Resource Group where the Private DNS Zone exists.
     * If the Name of the Resource Group is not provided, the first Private DNS Zone from the list of Private
     * DNS Zones in your subscription that matches `name` will be returned.
     * @param tags A mapping of tags for the zone.
     * @return A collection of values returned by getDnsZone.
     */
    public suspend fun getDnsZone(
        name: String,
        resourceGroupName: String? = null,
        tags: Map? = null,
    ): GetDnsZoneResult {
        val argument = GetDnsZonePlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            tags = tags,
        )
        return getDnsZoneResultToKotlin(getDnsZonePlain(argument.toJava()).await())
    }

    /**
     * @see [getDnsZone].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetDnsZonePlainArgs].
     * @return A collection of values returned by getDnsZone.
     */
    public suspend fun getDnsZone(argument: suspend GetDnsZonePlainArgsBuilder.() -> Unit):
        GetDnsZoneResult {
        val builder = GetDnsZonePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getDnsZoneResultToKotlin(getDnsZonePlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = new azure.privatedns.MxRecord("example", {
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsMxRecordId = exampleAzurermPrivateDnsMxRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.MxRecord("example",
     *     name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsMxRecordId", example_azurerm_private_dns_mx_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azure.PrivateDns.MxRecord("example", new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsMxRecordId"] = exampleAzurermPrivateDnsMxRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.NewMxRecord(ctx, "example", &privatedns.MxRecordArgs{
     * 			Name:              pulumi.String("test"),
     * 			ZoneName:          pulumi.String("test-zone"),
     * 			ResourceGroupName: pulumi.String("test-rg"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsMxRecordId", exampleAzurermPrivateDnsMxRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.MxRecord;
     * import com.pulumi.azure.privatedns.MxRecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new MxRecord("example", MxRecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsMxRecordId", exampleAzurermPrivateDnsMxRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azure:privatedns:MxRecord
     *     properties:
     *       name: test
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsMxRecordId: ${exampleAzurermPrivateDnsMxRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getMxRecord.
     * @return A collection of values returned by getMxRecord.
     */
    public suspend fun getMxRecord(argument: GetMxRecordPlainArgs): GetMxRecordResult =
        getMxRecordResultToKotlin(getMxRecordPlain(argument.toJava()).await())

    /**
     * @see [getMxRecord].
     * @param name The name of the Private DNS MX Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getMxRecord.
     */
    public suspend fun getMxRecord(
        name: String? = null,
        resourceGroupName: String,
        zoneName: String,
    ): GetMxRecordResult {
        val argument = GetMxRecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getMxRecordResultToKotlin(getMxRecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getMxRecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetMxRecordPlainArgs].
     * @return A collection of values returned by getMxRecord.
     */
    public suspend fun getMxRecord(argument: suspend GetMxRecordPlainArgsBuilder.() -> Unit):
        GetMxRecordResult {
        val builder = GetMxRecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getMxRecordResultToKotlin(getMxRecordPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = new azure.privatedns.PTRRecord("example", {
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsPtrRecordId = exampleAzurermPrivateDnsPtrRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.PTRRecord("example",
     *     name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsPtrRecordId", example_azurerm_private_dns_ptr_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azure.PrivateDns.PTRRecord("example", new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsPtrRecordId"] = exampleAzurermPrivateDnsPtrRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.NewPTRRecord(ctx, "example", &privatedns.PTRRecordArgs{
     * 			Name:              pulumi.String("test"),
     * 			ZoneName:          pulumi.String("test-zone"),
     * 			ResourceGroupName: pulumi.String("test-rg"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsPtrRecordId", exampleAzurermPrivateDnsPtrRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PTRRecord;
     * import com.pulumi.azure.privatedns.PTRRecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new PTRRecord("example", PTRRecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsPtrRecordId", exampleAzurermPrivateDnsPtrRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azure:privatedns:PTRRecord
     *     properties:
     *       name: test
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsPtrRecordId: ${exampleAzurermPrivateDnsPtrRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getPtrRecord.
     * @return A collection of values returned by getPtrRecord.
     */
    public suspend fun getPtrRecord(argument: GetPtrRecordPlainArgs): GetPtrRecordResult =
        getPtrRecordResultToKotlin(getPtrRecordPlain(argument.toJava()).await())

    /**
     * @see [getPtrRecord].
     * @param name The name of the Private DNS PTR Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getPtrRecord.
     */
    public suspend fun getPtrRecord(
        name: String,
        resourceGroupName: String,
        zoneName: String,
    ): GetPtrRecordResult {
        val argument = GetPtrRecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getPtrRecordResultToKotlin(getPtrRecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getPtrRecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetPtrRecordPlainArgs].
     * @return A collection of values returned by getPtrRecord.
     */
    public suspend fun getPtrRecord(argument: suspend GetPtrRecordPlainArgsBuilder.() -> Unit):
        GetPtrRecordResult {
        val builder = GetPtrRecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPtrRecordResultToKotlin(getPtrRecordPlain(builtArgument.toJava()).await())
    }

    /**
     * Gets information about an existing Private DNS Resolver.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const test = azure.privatedns.getResolver({
     *     name: "example",
     *     resourceGroupName: "example-resourcegroup-name",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * test = azure.privatedns.get_resolver(name="example",
     *     resource_group_name="example-resourcegroup-name")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var test = Azure.PrivateDns.GetResolver.Invoke(new()
     *     {
     *         Name = "example",
     *         ResourceGroupName = "example-resourcegroup-name",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.LookupResolver(ctx, &privatedns.LookupResolverArgs{
     * 			Name:              "example",
     * 			ResourceGroupName: "example-resourcegroup-name",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetResolverArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var test = PrivatednsFunctions.getResolver(GetResolverArgs.builder()
     *             .name("example")
     *             .resourceGroupName("example-resourcegroup-name")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   test:
     *     fn::invoke:
     *       Function: azure:privatedns:getResolver
     *       Arguments:
     *         name: example
     *         resourceGroupName: example-resourcegroup-name
     * ```
     * 
     * @param argument A collection of arguments for invoking getResolver.
     * @return A collection of values returned by getResolver.
     */
    public suspend fun getResolver(argument: GetResolverPlainArgs): GetResolverResult =
        getResolverResultToKotlin(getResolverPlain(argument.toJava()).await())

    /**
     * @see [getResolver].
     * @param name Name of the Private DNS Resolver.
     * @param resourceGroupName Name of the Resource Group where the Private DNS Resolver exists.
     * @return A collection of values returned by getResolver.
     */
    public suspend fun getResolver(name: String, resourceGroupName: String): GetResolverResult {
        val argument = GetResolverPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getResolverResultToKotlin(getResolverPlain(argument.toJava()).await())
    }

    /**
     * @see [getResolver].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetResolverPlainArgs].
     * @return A collection of values returned by getResolver.
     */
    public suspend fun getResolver(argument: suspend GetResolverPlainArgsBuilder.() -> Unit):
        GetResolverResult {
        val builder = GetResolverPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getResolverResultToKotlin(getResolverPlain(builtArgument.toJava()).await())
    }

    /**
     * Gets information about an existing Private DNS Resolver Dns Forwarding Ruleset.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getResolverDnsForwardingRuleset({
     *     name: "example-ruleset",
     *     resourceGroupName: "example-ruleset-resourcegroup",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_resolver_dns_forwarding_ruleset(name="example-ruleset",
     *     resource_group_name="example-ruleset-resourcegroup")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetResolverDnsForwardingRuleset.Invoke(new()
     *     {
     *         Name = "example-ruleset",
     *         ResourceGroupName = "example-ruleset-resourcegroup",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.LookupResolverDnsForwardingRuleset(ctx, &privatedns.LookupResolverDnsForwardingRulesetArgs{
     * 			Name:              "example-ruleset",
     * 			ResourceGroupName: "example-ruleset-resourcegroup",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetResolverDnsForwardingRulesetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getResolverDnsForwardingRuleset(GetResolverDnsForwardingRulesetArgs.builder()
     *             .name("example-ruleset")
     *             .resourceGroupName("example-ruleset-resourcegroup")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getResolverDnsForwardingRuleset
     *       Arguments:
     *         name: example-ruleset
     *         resourceGroupName: example-ruleset-resourcegroup
     * ```
     * 
     * @param argument A collection of arguments for invoking getResolverDnsForwardingRuleset.
     * @return A collection of values returned by getResolverDnsForwardingRuleset.
     */
    public suspend
    fun getResolverDnsForwardingRuleset(argument: GetResolverDnsForwardingRulesetPlainArgs):
        GetResolverDnsForwardingRulesetResult =
        getResolverDnsForwardingRulesetResultToKotlin(getResolverDnsForwardingRulesetPlain(argument.toJava()).await())

    /**
     * @see [getResolverDnsForwardingRuleset].
     * @param name Name of the existing Private DNS Resolver Dns Forwarding Ruleset.
     * @param resourceGroupName Name of the Resource Group where the Private DNS Resolver Dns Forwarding Ruleset exists.
     * @return A collection of values returned by getResolverDnsForwardingRuleset.
     */
    public suspend fun getResolverDnsForwardingRuleset(name: String, resourceGroupName: String):
        GetResolverDnsForwardingRulesetResult {
        val argument = GetResolverDnsForwardingRulesetPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getResolverDnsForwardingRulesetResultToKotlin(getResolverDnsForwardingRulesetPlain(argument.toJava()).await())
    }

    /**
     * @see [getResolverDnsForwardingRuleset].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetResolverDnsForwardingRulesetPlainArgs].
     * @return A collection of values returned by getResolverDnsForwardingRuleset.
     */
    public suspend
    fun getResolverDnsForwardingRuleset(argument: suspend GetResolverDnsForwardingRulesetPlainArgsBuilder.() -> Unit):
        GetResolverDnsForwardingRulesetResult {
        val builder = GetResolverDnsForwardingRulesetPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getResolverDnsForwardingRulesetResultToKotlin(getResolverDnsForwardingRulesetPlain(builtArgument.toJava()).await())
    }

    /**
     * Gets information about an existing Private DNS Resolver Forwarding Rule.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getResolverForwardingRule({
     *     name: "example-rule",
     *     dnsForwardingRulesetId: "example-forwarding-rulset-id",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_resolver_forwarding_rule(name="example-rule",
     *     dns_forwarding_ruleset_id="example-forwarding-rulset-id")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetResolverForwardingRule.Invoke(new()
     *     {
     *         Name = "example-rule",
     *         DnsForwardingRulesetId = "example-forwarding-rulset-id",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.LookupResolverForwardingRule(ctx, &privatedns.LookupResolverForwardingRuleArgs{
     * 			Name:                   "example-rule",
     * 			DnsForwardingRulesetId: "example-forwarding-rulset-id",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetResolverForwardingRuleArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getResolverForwardingRule(GetResolverForwardingRuleArgs.builder()
     *             .name("example-rule")
     *             .dnsForwardingRulesetId("example-forwarding-rulset-id")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getResolverForwardingRule
     *       Arguments:
     *         name: example-rule
     *         dnsForwardingRulesetId: example-forwarding-rulset-id
     * ```
     * 
     * @param argument A collection of arguments for invoking getResolverForwardingRule.
     * @return A collection of values returned by getResolverForwardingRule.
     */
    public suspend fun getResolverForwardingRule(argument: GetResolverForwardingRulePlainArgs):
        GetResolverForwardingRuleResult =
        getResolverForwardingRuleResultToKotlin(getResolverForwardingRulePlain(argument.toJava()).await())

    /**
     * @see [getResolverForwardingRule].
     * @param dnsForwardingRulesetId ID of the Private DNS Resolver Forwarding Ruleset.
     * @param name Name of the Private DNS Resolver Forwarding Rule.
     * @return A collection of values returned by getResolverForwardingRule.
     */
    public suspend fun getResolverForwardingRule(dnsForwardingRulesetId: String, name: String):
        GetResolverForwardingRuleResult {
        val argument = GetResolverForwardingRulePlainArgs(
            dnsForwardingRulesetId = dnsForwardingRulesetId,
            name = name,
        )
        return getResolverForwardingRuleResultToKotlin(getResolverForwardingRulePlain(argument.toJava()).await())
    }

    /**
     * @see [getResolverForwardingRule].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetResolverForwardingRulePlainArgs].
     * @return A collection of values returned by getResolverForwardingRule.
     */
    public suspend
    fun getResolverForwardingRule(argument: suspend GetResolverForwardingRulePlainArgsBuilder.() -> Unit):
        GetResolverForwardingRuleResult {
        val builder = GetResolverForwardingRulePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getResolverForwardingRuleResultToKotlin(getResolverForwardingRulePlain(builtArgument.toJava()).await())
    }

    /**
     * Gets information about an existing Private DNS Resolver Inbound Endpoint.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getResolverInboundEndpoint({
     *     name: "example-drie",
     *     privateDnsResolverId: "example-private-dns-resolver-id",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_resolver_inbound_endpoint(name="example-drie",
     *     private_dns_resolver_id="example-private-dns-resolver-id")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetResolverInboundEndpoint.Invoke(new()
     *     {
     *         Name = "example-drie",
     *         PrivateDnsResolverId = "example-private-dns-resolver-id",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.LookupResolverInboundEndpoint(ctx, &privatedns.LookupResolverInboundEndpointArgs{
     * 			Name:                 "example-drie",
     * 			PrivateDnsResolverId: "example-private-dns-resolver-id",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetResolverInboundEndpointArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getResolverInboundEndpoint(GetResolverInboundEndpointArgs.builder()
     *             .name("example-drie")
     *             .privateDnsResolverId("example-private-dns-resolver-id")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getResolverInboundEndpoint
     *       Arguments:
     *         name: example-drie
     *         privateDnsResolverId: example-private-dns-resolver-id
     * ```
     * 
     * @param argument A collection of arguments for invoking getResolverInboundEndpoint.
     * @return A collection of values returned by getResolverInboundEndpoint.
     */
    public suspend fun getResolverInboundEndpoint(argument: GetResolverInboundEndpointPlainArgs):
        GetResolverInboundEndpointResult =
        getResolverInboundEndpointResultToKotlin(getResolverInboundEndpointPlain(argument.toJava()).await())

    /**
     * @see [getResolverInboundEndpoint].
     * @param name Name of the Private DNS Resolver Inbound Endpoint.
     * @param privateDnsResolverId ID of the Private DNS Resolver.
     * @return A collection of values returned by getResolverInboundEndpoint.
     */
    public suspend fun getResolverInboundEndpoint(name: String, privateDnsResolverId: String):
        GetResolverInboundEndpointResult {
        val argument = GetResolverInboundEndpointPlainArgs(
            name = name,
            privateDnsResolverId = privateDnsResolverId,
        )
        return getResolverInboundEndpointResultToKotlin(getResolverInboundEndpointPlain(argument.toJava()).await())
    }

    /**
     * @see [getResolverInboundEndpoint].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetResolverInboundEndpointPlainArgs].
     * @return A collection of values returned by getResolverInboundEndpoint.
     */
    public suspend
    fun getResolverInboundEndpoint(argument: suspend GetResolverInboundEndpointPlainArgsBuilder.() -> Unit):
        GetResolverInboundEndpointResult {
        val builder = GetResolverInboundEndpointPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getResolverInboundEndpointResultToKotlin(getResolverInboundEndpointPlain(builtArgument.toJava()).await())
    }

    /**
     * Gets information about an existing Private DNS Resolver Outbound Endpoint.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getResolverOutboundEndpoint({
     *     name: "example-endpoint",
     *     privateDnsResolverId: "example-private-dns-resolver-id",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_resolver_outbound_endpoint(name="example-endpoint",
     *     private_dns_resolver_id="example-private-dns-resolver-id")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetResolverOutboundEndpoint.Invoke(new()
     *     {
     *         Name = "example-endpoint",
     *         PrivateDnsResolverId = "example-private-dns-resolver-id",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.LookupResolverOutboundEndpoint(ctx, &privatedns.LookupResolverOutboundEndpointArgs{
     * 			Name:                 "example-endpoint",
     * 			PrivateDnsResolverId: "example-private-dns-resolver-id",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetResolverOutboundEndpointArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getResolverOutboundEndpoint(GetResolverOutboundEndpointArgs.builder()
     *             .name("example-endpoint")
     *             .privateDnsResolverId("example-private-dns-resolver-id")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getResolverOutboundEndpoint
     *       Arguments:
     *         name: example-endpoint
     *         privateDnsResolverId: example-private-dns-resolver-id
     * ```
     * 
     * @param argument A collection of arguments for invoking getResolverOutboundEndpoint.
     * @return A collection of values returned by getResolverOutboundEndpoint.
     */
    public suspend fun getResolverOutboundEndpoint(argument: GetResolverOutboundEndpointPlainArgs):
        GetResolverOutboundEndpointResult =
        getResolverOutboundEndpointResultToKotlin(getResolverOutboundEndpointPlain(argument.toJava()).await())

    /**
     * @see [getResolverOutboundEndpoint].
     * @param name Name of the Private DNS Resolver Outbound Endpoint.
     * @param privateDnsResolverId ID of the Private DNS Resolver Outbound Endpoint.
     * @return A collection of values returned by getResolverOutboundEndpoint.
     */
    public suspend fun getResolverOutboundEndpoint(name: String, privateDnsResolverId: String):
        GetResolverOutboundEndpointResult {
        val argument = GetResolverOutboundEndpointPlainArgs(
            name = name,
            privateDnsResolverId = privateDnsResolverId,
        )
        return getResolverOutboundEndpointResultToKotlin(getResolverOutboundEndpointPlain(argument.toJava()).await())
    }

    /**
     * @see [getResolverOutboundEndpoint].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetResolverOutboundEndpointPlainArgs].
     * @return A collection of values returned by getResolverOutboundEndpoint.
     */
    public suspend
    fun getResolverOutboundEndpoint(argument: suspend GetResolverOutboundEndpointPlainArgsBuilder.() -> Unit):
        GetResolverOutboundEndpointResult {
        val builder = GetResolverOutboundEndpointPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getResolverOutboundEndpointResultToKotlin(getResolverOutboundEndpointPlain(builtArgument.toJava()).await())
    }

    /**
     * Gets information about an existing Private DNS Resolver Virtual Network Link.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getResolverVirtualNetworkLink({
     *     name: "example-link",
     *     dnsForwardingRulesetId: "example-dns-forwarding-ruleset-id",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_resolver_virtual_network_link(name="example-link",
     *     dns_forwarding_ruleset_id="example-dns-forwarding-ruleset-id")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetResolverVirtualNetworkLink.Invoke(new()
     *     {
     *         Name = "example-link",
     *         DnsForwardingRulesetId = "example-dns-forwarding-ruleset-id",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.LookupResolverVirtualNetworkLink(ctx, &privatedns.LookupResolverVirtualNetworkLinkArgs{
     * 			Name:                   "example-link",
     * 			DnsForwardingRulesetId: "example-dns-forwarding-ruleset-id",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetResolverVirtualNetworkLinkArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getResolverVirtualNetworkLink(GetResolverVirtualNetworkLinkArgs.builder()
     *             .name("example-link")
     *             .dnsForwardingRulesetId("example-dns-forwarding-ruleset-id")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getResolverVirtualNetworkLink
     *       Arguments:
     *         name: example-link
     *         dnsForwardingRulesetId: example-dns-forwarding-ruleset-id
     * ```
     * 
     * @param argument A collection of arguments for invoking getResolverVirtualNetworkLink.
     * @return A collection of values returned by getResolverVirtualNetworkLink.
     */
    public suspend
    fun getResolverVirtualNetworkLink(argument: GetResolverVirtualNetworkLinkPlainArgs):
        GetResolverVirtualNetworkLinkResult =
        getResolverVirtualNetworkLinkResultToKotlin(getResolverVirtualNetworkLinkPlain(argument.toJava()).await())

    /**
     * @see [getResolverVirtualNetworkLink].
     * @param dnsForwardingRulesetId ID of the Private DNS Resolver DNS Forwarding Ruleset.
     * @param name Name of the Private DNS Resolver Virtual Network Link.
     * @return A collection of values returned by getResolverVirtualNetworkLink.
     */
    public suspend fun getResolverVirtualNetworkLink(dnsForwardingRulesetId: String, name: String):
        GetResolverVirtualNetworkLinkResult {
        val argument = GetResolverVirtualNetworkLinkPlainArgs(
            dnsForwardingRulesetId = dnsForwardingRulesetId,
            name = name,
        )
        return getResolverVirtualNetworkLinkResultToKotlin(getResolverVirtualNetworkLinkPlain(argument.toJava()).await())
    }

    /**
     * @see [getResolverVirtualNetworkLink].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetResolverVirtualNetworkLinkPlainArgs].
     * @return A collection of values returned by getResolverVirtualNetworkLink.
     */
    public suspend
    fun getResolverVirtualNetworkLink(argument: suspend GetResolverVirtualNetworkLinkPlainArgsBuilder.() -> Unit):
        GetResolverVirtualNetworkLinkResult {
        val builder = GetResolverVirtualNetworkLinkPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getResolverVirtualNetworkLinkResultToKotlin(getResolverVirtualNetworkLinkPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azurerm from "@pulumi/azurerm";
     * const example = new azurerm.index.PrivateDnsSoaRecord("example", {
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsSoaRecordId = exampleAzurermPrivateDnsSoaRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azurerm as azurerm
     * example = azurerm.index.PrivateDnsSoaRecord("example",
     *     zone_name=test-zone,
     *     resource_group_name=test-rg)
     * pulumi.export("privateDnsSoaRecordId", example_azurerm_private_dns_soa_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azurerm = Pulumi.Azurerm;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azurerm.Index.PrivateDnsSoaRecord("example", new()
     *     {
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsSoaRecordId"] = exampleAzurermPrivateDnsSoaRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azurerm/sdk/v1/go/azurerm"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := index.NewPrivateDnsSoaRecord(ctx, "example", &index.PrivateDnsSoaRecordArgs{
     * 			ZoneName:          "test-zone",
     * 			ResourceGroupName: "test-rg",
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsSoaRecordId", exampleAzurermPrivateDnsSoaRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azurerm.privateDnsSoaRecord;
     * import com.pulumi.azurerm.PrivateDnsSoaRecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new PrivateDnsSoaRecord("example", PrivateDnsSoaRecordArgs.builder()
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsSoaRecordId", exampleAzurermPrivateDnsSoaRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azurerm:privateDnsSoaRecord
     *     properties:
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsSoaRecordId: ${exampleAzurermPrivateDnsSoaRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getSoaRecord.
     * @return A collection of values returned by getSoaRecord.
     */
    public suspend fun getSoaRecord(argument: GetSoaRecordPlainArgs): GetSoaRecordResult =
        getSoaRecordResultToKotlin(getSoaRecordPlain(argument.toJava()).await())

    /**
     * @see [getSoaRecord].
     * @param name The name of the Private DNS SOA Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getSoaRecord.
     */
    public suspend fun getSoaRecord(
        name: String? = null,
        resourceGroupName: String,
        zoneName: String,
    ): GetSoaRecordResult {
        val argument = GetSoaRecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getSoaRecordResultToKotlin(getSoaRecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getSoaRecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetSoaRecordPlainArgs].
     * @return A collection of values returned by getSoaRecord.
     */
    public suspend fun getSoaRecord(argument: suspend GetSoaRecordPlainArgsBuilder.() -> Unit):
        GetSoaRecordResult {
        val builder = GetSoaRecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSoaRecordResultToKotlin(getSoaRecordPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = new azure.privatedns.SRVRecord("example", {
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsSrvRecordId = exampleAzurermPrivateDnsSrvRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.SRVRecord("example",
     *     name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsSrvRecordId", example_azurerm_private_dns_srv_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azure.PrivateDns.SRVRecord("example", new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsSrvRecordId"] = exampleAzurermPrivateDnsSrvRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.NewSRVRecord(ctx, "example", &privatedns.SRVRecordArgs{
     * 			Name:              pulumi.String("test"),
     * 			ZoneName:          pulumi.String("test-zone"),
     * 			ResourceGroupName: pulumi.String("test-rg"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsSrvRecordId", exampleAzurermPrivateDnsSrvRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.SRVRecord;
     * import com.pulumi.azure.privatedns.SRVRecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new SRVRecord("example", SRVRecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsSrvRecordId", exampleAzurermPrivateDnsSrvRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azure:privatedns:SRVRecord
     *     properties:
     *       name: test
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsSrvRecordId: ${exampleAzurermPrivateDnsSrvRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getSrvRecord.
     * @return A collection of values returned by getSrvRecord.
     */
    public suspend fun getSrvRecord(argument: GetSrvRecordPlainArgs): GetSrvRecordResult =
        getSrvRecordResultToKotlin(getSrvRecordPlain(argument.toJava()).await())

    /**
     * @see [getSrvRecord].
     * @param name The name of the Private DNS SRV Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getSrvRecord.
     */
    public suspend fun getSrvRecord(
        name: String,
        resourceGroupName: String,
        zoneName: String,
    ): GetSrvRecordResult {
        val argument = GetSrvRecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getSrvRecordResultToKotlin(getSrvRecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getSrvRecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetSrvRecordPlainArgs].
     * @return A collection of values returned by getSrvRecord.
     */
    public suspend fun getSrvRecord(argument: suspend GetSrvRecordPlainArgsBuilder.() -> Unit):
        GetSrvRecordResult {
        val builder = GetSrvRecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSrvRecordResultToKotlin(getSrvRecordPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = new azure.privatedns.TxtRecord("example", {
     *     name: "test",
     *     zoneName: "test-zone",
     *     resourceGroupName: "test-rg",
     * });
     * export const privateDnsTxtRecordId = exampleAzurermPrivateDnsTxtRecord.id;
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.TxtRecord("example",
     *     name="test",
     *     zone_name="test-zone",
     *     resource_group_name="test-rg")
     * pulumi.export("privateDnsTxtRecordId", example_azurerm_private_dns_txt_record["id"])
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = new Azure.PrivateDns.TxtRecord("example", new()
     *     {
     *         Name = "test",
     *         ZoneName = "test-zone",
     *         ResourceGroupName = "test-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsTxtRecordId"] = exampleAzurermPrivateDnsTxtRecord.Id,
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := privatedns.NewTxtRecord(ctx, "example", &privatedns.TxtRecordArgs{
     * 			Name:              pulumi.String("test"),
     * 			ZoneName:          pulumi.String("test-zone"),
     * 			ResourceGroupName: pulumi.String("test-rg"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsTxtRecordId", exampleAzurermPrivateDnsTxtRecord.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.TxtRecord;
     * import com.pulumi.azure.privatedns.TxtRecordArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         var example = new TxtRecord("example", TxtRecordArgs.builder()
     *             .name("test")
     *             .zoneName("test-zone")
     *             .resourceGroupName("test-rg")
     *             .build());
     *         ctx.export("privateDnsTxtRecordId", exampleAzurermPrivateDnsTxtRecord.id());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   example:
     *     type: azure:privatedns:TxtRecord
     *     properties:
     *       name: test
     *       zoneName: test-zone
     *       resourceGroupName: test-rg
     * outputs:
     *   privateDnsTxtRecordId: ${exampleAzurermPrivateDnsTxtRecord.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getTxtRecord.
     * @return A collection of values returned by getTxtRecord.
     */
    public suspend fun getTxtRecord(argument: GetTxtRecordPlainArgs): GetTxtRecordResult =
        getTxtRecordResultToKotlin(getTxtRecordPlain(argument.toJava()).await())

    /**
     * @see [getTxtRecord].
     * @param name The name of the Private DNS TXT Record.
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone (parent resource) exists.
     * @param zoneName Specifies the Private DNS Zone where the resource exists.
     * @return A collection of values returned by getTxtRecord.
     */
    public suspend fun getTxtRecord(
        name: String,
        resourceGroupName: String,
        zoneName: String,
    ): GetTxtRecordResult {
        val argument = GetTxtRecordPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            zoneName = zoneName,
        )
        return getTxtRecordResultToKotlin(getTxtRecordPlain(argument.toJava()).await())
    }

    /**
     * @see [getTxtRecord].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetTxtRecordPlainArgs].
     * @return A collection of values returned by getTxtRecord.
     */
    public suspend fun getTxtRecord(argument: suspend GetTxtRecordPlainArgsBuilder.() -> Unit):
        GetTxtRecordResult {
        val builder = GetTxtRecordPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTxtRecordResultToKotlin(getTxtRecordPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Private DNS zone Virtual Network Link. These Links enable DNS resolution and registration inside Azure Virtual Networks using Azure Private DNS.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.privatedns.getZoneVirtualNetworkLink({
     *     name: "test",
     *     resourceGroupName: "test-rg",
     *     privateDnsZoneName: "test-zone",
     * });
     * export const privateDnsARecordId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.privatedns.get_zone_virtual_network_link(name="test",
     *     resource_group_name="test-rg",
     *     private_dns_zone_name="test-zone")
     * pulumi.export("privateDnsARecordId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.PrivateDns.GetZoneVirtualNetworkLink.Invoke(new()
     *     {
     *         Name = "test",
     *         ResourceGroupName = "test-rg",
     *         PrivateDnsZoneName = "test-zone",
     *     });
     *     return new Dictionary
     *     {
     *         ["privateDnsARecordId"] = example.Apply(getZoneVirtualNetworkLinkResult => getZoneVirtualNetworkLinkResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/privatedns"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := privatedns.LookupZoneVirtualNetworkLink(ctx, &privatedns.LookupZoneVirtualNetworkLinkArgs{
     * 			Name:               "test",
     * 			ResourceGroupName:  "test-rg",
     * 			PrivateDnsZoneName: "test-zone",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("privateDnsARecordId", example.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.privatedns.PrivatednsFunctions;
     * import com.pulumi.azure.privatedns.inputs.GetZoneVirtualNetworkLinkArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = PrivatednsFunctions.getZoneVirtualNetworkLink(GetZoneVirtualNetworkLinkArgs.builder()
     *             .name("test")
     *             .resourceGroupName("test-rg")
     *             .privateDnsZoneName("test-zone")
     *             .build());
     *         ctx.export("privateDnsARecordId", example.applyValue(getZoneVirtualNetworkLinkResult -> getZoneVirtualNetworkLinkResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:privatedns:getZoneVirtualNetworkLink
     *       Arguments:
     *         name: test
     *         resourceGroupName: test-rg
     *         privateDnsZoneName: test-zone
     * outputs:
     *   privateDnsARecordId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getZoneVirtualNetworkLink.
     * @return A collection of values returned by getZoneVirtualNetworkLink.
     */
    public suspend fun getZoneVirtualNetworkLink(argument: GetZoneVirtualNetworkLinkPlainArgs):
        GetZoneVirtualNetworkLinkResult =
        getZoneVirtualNetworkLinkResultToKotlin(getZoneVirtualNetworkLinkPlain(argument.toJava()).await())

    /**
     * @see [getZoneVirtualNetworkLink].
     * @param name The name of the Private DNS Zone Virtual Network Link.
     * @param privateDnsZoneName The name of the Private DNS zone (without a terminating dot).
     * @param resourceGroupName Specifies the resource group where the Private DNS Zone exists.
     * @return A collection of values returned by getZoneVirtualNetworkLink.
     */
    public suspend fun getZoneVirtualNetworkLink(
        name: String,
        privateDnsZoneName: String,
        resourceGroupName: String,
    ): GetZoneVirtualNetworkLinkResult {
        val argument = GetZoneVirtualNetworkLinkPlainArgs(
            name = name,
            privateDnsZoneName = privateDnsZoneName,
            resourceGroupName = resourceGroupName,
        )
        return getZoneVirtualNetworkLinkResultToKotlin(getZoneVirtualNetworkLinkPlain(argument.toJava()).await())
    }

    /**
     * @see [getZoneVirtualNetworkLink].
     * @param argument Builder for [com.pulumi.azure.privatedns.kotlin.inputs.GetZoneVirtualNetworkLinkPlainArgs].
     * @return A collection of values returned by getZoneVirtualNetworkLink.
     */
    public suspend
    fun getZoneVirtualNetworkLink(argument: suspend GetZoneVirtualNetworkLinkPlainArgsBuilder.() -> Unit):
        GetZoneVirtualNetworkLinkResult {
        val builder = GetZoneVirtualNetworkLinkPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getZoneVirtualNetworkLinkResultToKotlin(getZoneVirtualNetworkLinkPlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy