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

com.pulumi.azure.network.kotlin.NetworkFunctions.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.network.kotlin

import com.pulumi.azure.network.NetworkFunctions.getApplicationGatewayPlain
import com.pulumi.azure.network.NetworkFunctions.getApplicationSecurityGroupPlain
import com.pulumi.azure.network.NetworkFunctions.getExpressRouteCircuitPlain
import com.pulumi.azure.network.NetworkFunctions.getFirewallPlain
import com.pulumi.azure.network.NetworkFunctions.getFirewallPolicyPlain
import com.pulumi.azure.network.NetworkFunctions.getGatewayConnectionPlain
import com.pulumi.azure.network.NetworkFunctions.getIpGroupPlain
import com.pulumi.azure.network.NetworkFunctions.getIpGroupsPlain
import com.pulumi.azure.network.NetworkFunctions.getLocalNetworkGatewayPlain
import com.pulumi.azure.network.NetworkFunctions.getNatGatewayPlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkDdosProtectionPlanPlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkInterfacePlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkManagerConnectivityConfigurationPlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkManagerNetworkGroupPlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkManagerPlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkSecurityGroupPlain
import com.pulumi.azure.network.NetworkFunctions.getNetworkWatcherPlain
import com.pulumi.azure.network.NetworkFunctions.getPublicIPPlain
import com.pulumi.azure.network.NetworkFunctions.getPublicIPsPlain
import com.pulumi.azure.network.NetworkFunctions.getPublicIpPrefixPlain
import com.pulumi.azure.network.NetworkFunctions.getRouteFilterPlain
import com.pulumi.azure.network.NetworkFunctions.getRouteTablePlain
import com.pulumi.azure.network.NetworkFunctions.getServiceTagsPlain
import com.pulumi.azure.network.NetworkFunctions.getSubnetPlain
import com.pulumi.azure.network.NetworkFunctions.getTrafficManagerPlain
import com.pulumi.azure.network.NetworkFunctions.getTrafficManagerProfilePlain
import com.pulumi.azure.network.NetworkFunctions.getVirtualHubConnectionPlain
import com.pulumi.azure.network.NetworkFunctions.getVirtualHubPlain
import com.pulumi.azure.network.NetworkFunctions.getVirtualHubRouteTablePlain
import com.pulumi.azure.network.NetworkFunctions.getVirtualNetworkGatewayPlain
import com.pulumi.azure.network.NetworkFunctions.getVirtualNetworkPlain
import com.pulumi.azure.network.NetworkFunctions.getVirtualWanPlain
import com.pulumi.azure.network.NetworkFunctions.getVpnGatewayPlain
import com.pulumi.azure.network.kotlin.inputs.GetApplicationGatewayPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetApplicationGatewayPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetApplicationSecurityGroupPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetApplicationSecurityGroupPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetExpressRouteCircuitPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetExpressRouteCircuitPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetFirewallPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetFirewallPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetFirewallPolicyPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetFirewallPolicyPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetGatewayConnectionPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetGatewayConnectionPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetIpGroupPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetIpGroupPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetIpGroupsPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetIpGroupsPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetLocalNetworkGatewayPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetLocalNetworkGatewayPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNatGatewayPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNatGatewayPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkDdosProtectionPlanPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkDdosProtectionPlanPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkInterfacePlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkInterfacePlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerConnectivityConfigurationPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerConnectivityConfigurationPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerNetworkGroupPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerNetworkGroupPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkSecurityGroupPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkSecurityGroupPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetNetworkWatcherPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetNetworkWatcherPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetPublicIPPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetPublicIPPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetPublicIPsPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetPublicIPsPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetPublicIpPrefixPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetPublicIpPrefixPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetRouteFilterPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetRouteFilterPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetRouteTablePlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetRouteTablePlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetServiceTagsPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetServiceTagsPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetSubnetPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetSubnetPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetTrafficManagerPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetTrafficManagerPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetTrafficManagerProfilePlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetTrafficManagerProfilePlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVirtualHubConnectionPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVirtualHubConnectionPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVirtualHubPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVirtualHubPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVirtualHubRouteTablePlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVirtualHubRouteTablePlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVirtualNetworkGatewayPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVirtualNetworkGatewayPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVirtualNetworkPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVirtualNetworkPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVirtualWanPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVirtualWanPlainArgsBuilder
import com.pulumi.azure.network.kotlin.inputs.GetVpnGatewayPlainArgs
import com.pulumi.azure.network.kotlin.inputs.GetVpnGatewayPlainArgsBuilder
import com.pulumi.azure.network.kotlin.outputs.GetApplicationGatewayResult
import com.pulumi.azure.network.kotlin.outputs.GetApplicationSecurityGroupResult
import com.pulumi.azure.network.kotlin.outputs.GetExpressRouteCircuitResult
import com.pulumi.azure.network.kotlin.outputs.GetFirewallPolicyResult
import com.pulumi.azure.network.kotlin.outputs.GetFirewallResult
import com.pulumi.azure.network.kotlin.outputs.GetGatewayConnectionResult
import com.pulumi.azure.network.kotlin.outputs.GetIpGroupResult
import com.pulumi.azure.network.kotlin.outputs.GetIpGroupsResult
import com.pulumi.azure.network.kotlin.outputs.GetLocalNetworkGatewayResult
import com.pulumi.azure.network.kotlin.outputs.GetNatGatewayResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkDdosProtectionPlanResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkInterfaceResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkManagerConnectivityConfigurationResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkManagerNetworkGroupResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkManagerResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkSecurityGroupResult
import com.pulumi.azure.network.kotlin.outputs.GetNetworkWatcherResult
import com.pulumi.azure.network.kotlin.outputs.GetPublicIPResult
import com.pulumi.azure.network.kotlin.outputs.GetPublicIPsResult
import com.pulumi.azure.network.kotlin.outputs.GetPublicIpPrefixResult
import com.pulumi.azure.network.kotlin.outputs.GetRouteFilterResult
import com.pulumi.azure.network.kotlin.outputs.GetRouteTableResult
import com.pulumi.azure.network.kotlin.outputs.GetServiceTagsResult
import com.pulumi.azure.network.kotlin.outputs.GetSubnetResult
import com.pulumi.azure.network.kotlin.outputs.GetTrafficManagerProfileResult
import com.pulumi.azure.network.kotlin.outputs.GetTrafficManagerResult
import com.pulumi.azure.network.kotlin.outputs.GetVirtualHubConnectionResult
import com.pulumi.azure.network.kotlin.outputs.GetVirtualHubResult
import com.pulumi.azure.network.kotlin.outputs.GetVirtualHubRouteTableResult
import com.pulumi.azure.network.kotlin.outputs.GetVirtualNetworkGatewayResult
import com.pulumi.azure.network.kotlin.outputs.GetVirtualNetworkResult
import com.pulumi.azure.network.kotlin.outputs.GetVirtualWanResult
import com.pulumi.azure.network.kotlin.outputs.GetVpnGatewayResult
import kotlinx.coroutines.future.await
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.azure.network.kotlin.outputs.GetApplicationGatewayResult.Companion.toKotlin as getApplicationGatewayResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetApplicationSecurityGroupResult.Companion.toKotlin as getApplicationSecurityGroupResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetExpressRouteCircuitResult.Companion.toKotlin as getExpressRouteCircuitResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetFirewallPolicyResult.Companion.toKotlin as getFirewallPolicyResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetFirewallResult.Companion.toKotlin as getFirewallResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetGatewayConnectionResult.Companion.toKotlin as getGatewayConnectionResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetIpGroupResult.Companion.toKotlin as getIpGroupResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetIpGroupsResult.Companion.toKotlin as getIpGroupsResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetLocalNetworkGatewayResult.Companion.toKotlin as getLocalNetworkGatewayResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNatGatewayResult.Companion.toKotlin as getNatGatewayResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkDdosProtectionPlanResult.Companion.toKotlin as getNetworkDdosProtectionPlanResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkInterfaceResult.Companion.toKotlin as getNetworkInterfaceResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkManagerConnectivityConfigurationResult.Companion.toKotlin as getNetworkManagerConnectivityConfigurationResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkManagerNetworkGroupResult.Companion.toKotlin as getNetworkManagerNetworkGroupResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkManagerResult.Companion.toKotlin as getNetworkManagerResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkSecurityGroupResult.Companion.toKotlin as getNetworkSecurityGroupResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetNetworkWatcherResult.Companion.toKotlin as getNetworkWatcherResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetPublicIPResult.Companion.toKotlin as getPublicIPResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetPublicIPsResult.Companion.toKotlin as getPublicIPsResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetPublicIpPrefixResult.Companion.toKotlin as getPublicIpPrefixResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetRouteFilterResult.Companion.toKotlin as getRouteFilterResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetRouteTableResult.Companion.toKotlin as getRouteTableResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetServiceTagsResult.Companion.toKotlin as getServiceTagsResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetSubnetResult.Companion.toKotlin as getSubnetResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetTrafficManagerProfileResult.Companion.toKotlin as getTrafficManagerProfileResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetTrafficManagerResult.Companion.toKotlin as getTrafficManagerResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVirtualHubConnectionResult.Companion.toKotlin as getVirtualHubConnectionResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVirtualHubResult.Companion.toKotlin as getVirtualHubResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVirtualHubRouteTableResult.Companion.toKotlin as getVirtualHubRouteTableResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVirtualNetworkGatewayResult.Companion.toKotlin as getVirtualNetworkGatewayResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVirtualNetworkResult.Companion.toKotlin as getVirtualNetworkResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVirtualWanResult.Companion.toKotlin as getVirtualWanResultToKotlin
import com.pulumi.azure.network.kotlin.outputs.GetVpnGatewayResult.Companion.toKotlin as getVpnGatewayResultToKotlin

public object NetworkFunctions {
    /**
     * Use this data source to access information about an existing Application Gateway.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getApplicationGateway({
     *     name: "existing-app-gateway",
     *     resourceGroupName: "existing-resources",
     * });
     * export const id = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_application_gateway(name="existing-app-gateway",
     *     resource_group_name="existing-resources")
     * pulumi.export("id", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetApplicationGateway.Invoke(new()
     *     {
     *         Name = "existing-app-gateway",
     *         ResourceGroupName = "existing-resources",
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = example.Apply(getApplicationGatewayResult => getApplicationGatewayResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupApplicationGateway(ctx, &network.LookupApplicationGatewayArgs{
     * 			Name:              "existing-app-gateway",
     * 			ResourceGroupName: "existing-resources",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetApplicationGatewayArgs;
     * 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 = NetworkFunctions.getApplicationGateway(GetApplicationGatewayArgs.builder()
     *             .name("existing-app-gateway")
     *             .resourceGroupName("existing-resources")
     *             .build());
     *         ctx.export("id", example.applyValue(getApplicationGatewayResult -> getApplicationGatewayResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getApplicationGateway
     *       Arguments:
     *         name: existing-app-gateway
     *         resourceGroupName: existing-resources
     * outputs:
     *   id: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getApplicationGateway.
     * @return A collection of values returned by getApplicationGateway.
     */
    public suspend fun getApplicationGateway(argument: GetApplicationGatewayPlainArgs):
        GetApplicationGatewayResult =
        getApplicationGatewayResultToKotlin(getApplicationGatewayPlain(argument.toJava()).await())

    /**
     * @see [getApplicationGateway].
     * @param name The name of this Application Gateway.
     * @param resourceGroupName The name of the Resource Group where the Application Gateway exists.
     * @return A collection of values returned by getApplicationGateway.
     */
    public suspend fun getApplicationGateway(name: String, resourceGroupName: String):
        GetApplicationGatewayResult {
        val argument = GetApplicationGatewayPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getApplicationGatewayResultToKotlin(getApplicationGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getApplicationGateway].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetApplicationGatewayPlainArgs].
     * @return A collection of values returned by getApplicationGateway.
     */
    public suspend
    fun getApplicationGateway(argument: suspend GetApplicationGatewayPlainArgsBuilder.() -> Unit):
        GetApplicationGatewayResult {
        val builder = GetApplicationGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getApplicationGatewayResultToKotlin(getApplicationGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Application Security Group.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getApplicationSecurityGroup({
     *     name: "tf-appsecuritygroup",
     *     resourceGroupName: "my-resource-group",
     * });
     * export const applicationSecurityGroupId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_application_security_group(name="tf-appsecuritygroup",
     *     resource_group_name="my-resource-group")
     * pulumi.export("applicationSecurityGroupId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetApplicationSecurityGroup.Invoke(new()
     *     {
     *         Name = "tf-appsecuritygroup",
     *         ResourceGroupName = "my-resource-group",
     *     });
     *     return new Dictionary
     *     {
     *         ["applicationSecurityGroupId"] = example.Apply(getApplicationSecurityGroupResult => getApplicationSecurityGroupResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupApplicationSecurityGroup(ctx, &network.LookupApplicationSecurityGroupArgs{
     * 			Name:              "tf-appsecuritygroup",
     * 			ResourceGroupName: "my-resource-group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("applicationSecurityGroupId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetApplicationSecurityGroupArgs;
     * 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 = NetworkFunctions.getApplicationSecurityGroup(GetApplicationSecurityGroupArgs.builder()
     *             .name("tf-appsecuritygroup")
     *             .resourceGroupName("my-resource-group")
     *             .build());
     *         ctx.export("applicationSecurityGroupId", example.applyValue(getApplicationSecurityGroupResult -> getApplicationSecurityGroupResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getApplicationSecurityGroup
     *       Arguments:
     *         name: tf-appsecuritygroup
     *         resourceGroupName: my-resource-group
     * outputs:
     *   applicationSecurityGroupId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getApplicationSecurityGroup.
     * @return A collection of values returned by getApplicationSecurityGroup.
     */
    public suspend fun getApplicationSecurityGroup(argument: GetApplicationSecurityGroupPlainArgs):
        GetApplicationSecurityGroupResult =
        getApplicationSecurityGroupResultToKotlin(getApplicationSecurityGroupPlain(argument.toJava()).await())

    /**
     * @see [getApplicationSecurityGroup].
     * @param name The name of the Application Security Group.
     * @param resourceGroupName The name of the resource group in which the Application Security Group exists.
     * @return A collection of values returned by getApplicationSecurityGroup.
     */
    public suspend fun getApplicationSecurityGroup(name: String, resourceGroupName: String):
        GetApplicationSecurityGroupResult {
        val argument = GetApplicationSecurityGroupPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getApplicationSecurityGroupResultToKotlin(getApplicationSecurityGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getApplicationSecurityGroup].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetApplicationSecurityGroupPlainArgs].
     * @return A collection of values returned by getApplicationSecurityGroup.
     */
    public suspend
    fun getApplicationSecurityGroup(argument: suspend GetApplicationSecurityGroupPlainArgsBuilder.() -> Unit):
        GetApplicationSecurityGroupResult {
        val builder = GetApplicationSecurityGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getApplicationSecurityGroupResultToKotlin(getApplicationSecurityGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing ExpressRoute circuit.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getExpressRouteCircuit({
     *     resourceGroupName: exampleAzurermResourceGroup.name,
     *     name: exampleAzurermExpressRouteCircuit.name,
     * });
     * export const expressRouteCircuitId = example.then(example => example.id);
     * export const serviceKey = example.then(example => example.serviceKey);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_express_route_circuit(resource_group_name=example_azurerm_resource_group["name"],
     *     name=example_azurerm_express_route_circuit["name"])
     * pulumi.export("expressRouteCircuitId", example.id)
     * pulumi.export("serviceKey", example.service_key)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetExpressRouteCircuit.Invoke(new()
     *     {
     *         ResourceGroupName = exampleAzurermResourceGroup.Name,
     *         Name = exampleAzurermExpressRouteCircuit.Name,
     *     });
     *     return new Dictionary
     *     {
     *         ["expressRouteCircuitId"] = example.Apply(getExpressRouteCircuitResult => getExpressRouteCircuitResult.Id),
     *         ["serviceKey"] = example.Apply(getExpressRouteCircuitResult => getExpressRouteCircuitResult.ServiceKey),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupExpressRouteCircuit(ctx, &network.LookupExpressRouteCircuitArgs{
     * 			ResourceGroupName: exampleAzurermResourceGroup.Name,
     * 			Name:              exampleAzurermExpressRouteCircuit.Name,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("expressRouteCircuitId", example.Id)
     * 		ctx.Export("serviceKey", example.ServiceKey)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetExpressRouteCircuitArgs;
     * 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 = NetworkFunctions.getExpressRouteCircuit(GetExpressRouteCircuitArgs.builder()
     *             .resourceGroupName(exampleAzurermResourceGroup.name())
     *             .name(exampleAzurermExpressRouteCircuit.name())
     *             .build());
     *         ctx.export("expressRouteCircuitId", example.applyValue(getExpressRouteCircuitResult -> getExpressRouteCircuitResult.id()));
     *         ctx.export("serviceKey", example.applyValue(getExpressRouteCircuitResult -> getExpressRouteCircuitResult.serviceKey()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getExpressRouteCircuit
     *       Arguments:
     *         resourceGroupName: ${exampleAzurermResourceGroup.name}
     *         name: ${exampleAzurermExpressRouteCircuit.name}
     * outputs:
     *   expressRouteCircuitId: ${example.id}
     *   serviceKey: ${example.serviceKey}
     * ```
     * 
     * @param argument A collection of arguments for invoking getExpressRouteCircuit.
     * @return A collection of values returned by getExpressRouteCircuit.
     */
    public suspend fun getExpressRouteCircuit(argument: GetExpressRouteCircuitPlainArgs):
        GetExpressRouteCircuitResult =
        getExpressRouteCircuitResultToKotlin(getExpressRouteCircuitPlain(argument.toJava()).await())

    /**
     * @see [getExpressRouteCircuit].
     * @param name The name of the ExpressRoute circuit.
     * @param resourceGroupName The Name of the Resource Group where the ExpressRoute circuit exists.
     * @return A collection of values returned by getExpressRouteCircuit.
     */
    public suspend fun getExpressRouteCircuit(name: String, resourceGroupName: String):
        GetExpressRouteCircuitResult {
        val argument = GetExpressRouteCircuitPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getExpressRouteCircuitResultToKotlin(getExpressRouteCircuitPlain(argument.toJava()).await())
    }

    /**
     * @see [getExpressRouteCircuit].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetExpressRouteCircuitPlainArgs].
     * @return A collection of values returned by getExpressRouteCircuit.
     */
    public suspend
    fun getExpressRouteCircuit(argument: suspend GetExpressRouteCircuitPlainArgsBuilder.() -> Unit):
        GetExpressRouteCircuitResult {
        val builder = GetExpressRouteCircuitPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getExpressRouteCircuitResultToKotlin(getExpressRouteCircuitPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Azure Firewall.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getFirewall({
     *     name: "firewall1",
     *     resourceGroupName: "firewall-RG",
     * });
     * export const firewallPrivateIp = example.then(example => example.ipConfigurations?.[0]?.privateIpAddress);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_firewall(name="firewall1",
     *     resource_group_name="firewall-RG")
     * pulumi.export("firewallPrivateIp", example.ip_configurations[0].private_ip_address)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetFirewall.Invoke(new()
     *     {
     *         Name = "firewall1",
     *         ResourceGroupName = "firewall-RG",
     *     });
     *     return new Dictionary
     *     {
     *         ["firewallPrivateIp"] = example.Apply(getFirewallResult => getFirewallResult.IpConfigurations[0]?.PrivateIpAddress),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupFirewall(ctx, &network.LookupFirewallArgs{
     * 			Name:              "firewall1",
     * 			ResourceGroupName: "firewall-RG",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("firewallPrivateIp", example.IpConfigurations[0].PrivateIpAddress)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetFirewallArgs;
     * 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 = NetworkFunctions.getFirewall(GetFirewallArgs.builder()
     *             .name("firewall1")
     *             .resourceGroupName("firewall-RG")
     *             .build());
     *         ctx.export("firewallPrivateIp", example.applyValue(getFirewallResult -> getFirewallResult.ipConfigurations()[0].privateIpAddress()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getFirewall
     *       Arguments:
     *         name: firewall1
     *         resourceGroupName: firewall-RG
     * outputs:
     *   firewallPrivateIp: ${example.ipConfigurations[0].privateIpAddress}
     * ```
     * 
     * @param argument A collection of arguments for invoking getFirewall.
     * @return A collection of values returned by getFirewall.
     */
    public suspend fun getFirewall(argument: GetFirewallPlainArgs): GetFirewallResult =
        getFirewallResultToKotlin(getFirewallPlain(argument.toJava()).await())

    /**
     * @see [getFirewall].
     * @param dnsProxyEnabled Whether DNS proxy is enabled. It will forward DNS requests to the DNS servers when it is `true`.
     * @param name The name of the Azure Firewall.
     * @param resourceGroupName The name of the Resource Group in which the Azure Firewall exists.
     * @return A collection of values returned by getFirewall.
     */
    public suspend fun getFirewall(
        dnsProxyEnabled: Boolean? = null,
        name: String,
        resourceGroupName: String,
    ): GetFirewallResult {
        val argument = GetFirewallPlainArgs(
            dnsProxyEnabled = dnsProxyEnabled,
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getFirewallResultToKotlin(getFirewallPlain(argument.toJava()).await())
    }

    /**
     * @see [getFirewall].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetFirewallPlainArgs].
     * @return A collection of values returned by getFirewall.
     */
    public suspend fun getFirewall(argument: suspend GetFirewallPlainArgsBuilder.() -> Unit):
        GetFirewallResult {
        val builder = GetFirewallPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getFirewallResultToKotlin(getFirewallPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Firewall Policy.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getFirewallPolicy({
     *     name: "existing",
     *     resourceGroupName: "existing",
     * });
     * export const id = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_firewall_policy(name="existing",
     *     resource_group_name="existing")
     * pulumi.export("id", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetFirewallPolicy.Invoke(new()
     *     {
     *         Name = "existing",
     *         ResourceGroupName = "existing",
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = example.Apply(getFirewallPolicyResult => getFirewallPolicyResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupFirewallPolicy(ctx, &network.LookupFirewallPolicyArgs{
     * 			Name:              "existing",
     * 			ResourceGroupName: "existing",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetFirewallPolicyArgs;
     * 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 = NetworkFunctions.getFirewallPolicy(GetFirewallPolicyArgs.builder()
     *             .name("existing")
     *             .resourceGroupName("existing")
     *             .build());
     *         ctx.export("id", example.applyValue(getFirewallPolicyResult -> getFirewallPolicyResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getFirewallPolicy
     *       Arguments:
     *         name: existing
     *         resourceGroupName: existing
     * outputs:
     *   id: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getFirewallPolicy.
     * @return A collection of values returned by getFirewallPolicy.
     */
    public suspend fun getFirewallPolicy(argument: GetFirewallPolicyPlainArgs):
        GetFirewallPolicyResult =
        getFirewallPolicyResultToKotlin(getFirewallPolicyPlain(argument.toJava()).await())

    /**
     * @see [getFirewallPolicy].
     * @param name The name of this Firewall Policy.
     * @param resourceGroupName The name of the Resource Group where the Firewall Policy exists.
     * @return A collection of values returned by getFirewallPolicy.
     */
    public suspend fun getFirewallPolicy(name: String, resourceGroupName: String):
        GetFirewallPolicyResult {
        val argument = GetFirewallPolicyPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getFirewallPolicyResultToKotlin(getFirewallPolicyPlain(argument.toJava()).await())
    }

    /**
     * @see [getFirewallPolicy].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetFirewallPolicyPlainArgs].
     * @return A collection of values returned by getFirewallPolicy.
     */
    public suspend
    fun getFirewallPolicy(argument: suspend GetFirewallPolicyPlainArgsBuilder.() -> Unit):
        GetFirewallPolicyResult {
        val builder = GetFirewallPolicyPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getFirewallPolicyResultToKotlin(getFirewallPolicyPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Virtual Network Gateway Connection.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getGatewayConnection({
     *     name: "production",
     *     resourceGroupName: "networking",
     * });
     * export const virtualNetworkGatewayConnectionId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_gateway_connection(name="production",
     *     resource_group_name="networking")
     * pulumi.export("virtualNetworkGatewayConnectionId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetGatewayConnection.Invoke(new()
     *     {
     *         Name = "production",
     *         ResourceGroupName = "networking",
     *     });
     *     return new Dictionary
     *     {
     *         ["virtualNetworkGatewayConnectionId"] = example.Apply(getGatewayConnectionResult => getGatewayConnectionResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetGatewayConnection(ctx, &network.GetGatewayConnectionArgs{
     * 			Name:              "production",
     * 			ResourceGroupName: "networking",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("virtualNetworkGatewayConnectionId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetGatewayConnectionArgs;
     * 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 = NetworkFunctions.getGatewayConnection(GetGatewayConnectionArgs.builder()
     *             .name("production")
     *             .resourceGroupName("networking")
     *             .build());
     *         ctx.export("virtualNetworkGatewayConnectionId", example.applyValue(getGatewayConnectionResult -> getGatewayConnectionResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getGatewayConnection
     *       Arguments:
     *         name: production
     *         resourceGroupName: networking
     * outputs:
     *   virtualNetworkGatewayConnectionId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getGatewayConnection.
     * @return A collection of values returned by getGatewayConnection.
     */
    public suspend fun getGatewayConnection(argument: GetGatewayConnectionPlainArgs):
        GetGatewayConnectionResult =
        getGatewayConnectionResultToKotlin(getGatewayConnectionPlain(argument.toJava()).await())

    /**
     * @see [getGatewayConnection].
     * @param name Specifies the name of the Virtual Network Gateway Connection.
     * @param resourceGroupName Specifies the name of the resource group the Virtual Network Gateway Connection is located in.
     * @return A collection of values returned by getGatewayConnection.
     */
    public suspend fun getGatewayConnection(name: String, resourceGroupName: String):
        GetGatewayConnectionResult {
        val argument = GetGatewayConnectionPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getGatewayConnectionResultToKotlin(getGatewayConnectionPlain(argument.toJava()).await())
    }

    /**
     * @see [getGatewayConnection].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetGatewayConnectionPlainArgs].
     * @return A collection of values returned by getGatewayConnection.
     */
    public suspend
    fun getGatewayConnection(argument: suspend GetGatewayConnectionPlainArgsBuilder.() -> Unit):
        GetGatewayConnectionResult {
        val builder = GetGatewayConnectionPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getGatewayConnectionResultToKotlin(getGatewayConnectionPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing IP Group.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getIpGroup({
     *     name: "example1-ipgroup",
     *     resourceGroupName: "example-rg",
     * });
     * export const cidrs = example.then(example => example.cidrs);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_ip_group(name="example1-ipgroup",
     *     resource_group_name="example-rg")
     * pulumi.export("cidrs", example.cidrs)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetIpGroup.Invoke(new()
     *     {
     *         Name = "example1-ipgroup",
     *         ResourceGroupName = "example-rg",
     *     });
     *     return new Dictionary
     *     {
     *         ["cidrs"] = example.Apply(getIpGroupResult => getIpGroupResult.Cidrs),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetIpGroup(ctx, &network.GetIpGroupArgs{
     * 			Name:              "example1-ipgroup",
     * 			ResourceGroupName: "example-rg",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("cidrs", example.Cidrs)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetIpGroupArgs;
     * 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 = NetworkFunctions.getIpGroup(GetIpGroupArgs.builder()
     *             .name("example1-ipgroup")
     *             .resourceGroupName("example-rg")
     *             .build());
     *         ctx.export("cidrs", example.applyValue(getIpGroupResult -> getIpGroupResult.cidrs()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getIpGroup
     *       Arguments:
     *         name: example1-ipgroup
     *         resourceGroupName: example-rg
     * outputs:
     *   cidrs: ${example.cidrs}
     * ```
     * 
     * @param argument A collection of arguments for invoking getIpGroup.
     * @return A collection of values returned by getIpGroup.
     */
    public suspend fun getIpGroup(argument: GetIpGroupPlainArgs): GetIpGroupResult =
        getIpGroupResultToKotlin(getIpGroupPlain(argument.toJava()).await())

    /**
     * @see [getIpGroup].
     * @param name Specifies the Name of the IP Group.
     * @param resourceGroupName Specifies the Name of the Resource Group within which the IP Group exists
     * @return A collection of values returned by getIpGroup.
     */
    public suspend fun getIpGroup(name: String, resourceGroupName: String): GetIpGroupResult {
        val argument = GetIpGroupPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getIpGroupResultToKotlin(getIpGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpGroup].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetIpGroupPlainArgs].
     * @return A collection of values returned by getIpGroup.
     */
    public suspend fun getIpGroup(argument: suspend GetIpGroupPlainArgsBuilder.() -> Unit):
        GetIpGroupResult {
        val builder = GetIpGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpGroupResultToKotlin(getIpGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about existing IP Groups.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getIpGroups({
     *     name: "existing",
     *     resourceGroupName: "existing",
     * });
     * export const ids = example.then(example => example.ids);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_ip_groups(name="existing",
     *     resource_group_name="existing")
     * pulumi.export("ids", example.ids)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetIpGroups.Invoke(new()
     *     {
     *         Name = "existing",
     *         ResourceGroupName = "existing",
     *     });
     *     return new Dictionary
     *     {
     *         ["ids"] = example.Apply(getIpGroupsResult => getIpGroupsResult.Ids),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetIpGroups(ctx, &network.GetIpGroupsArgs{
     * 			Name:              "existing",
     * 			ResourceGroupName: "existing",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("ids", example.Ids)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetIpGroupsArgs;
     * 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 = NetworkFunctions.getIpGroups(GetIpGroupsArgs.builder()
     *             .name("existing")
     *             .resourceGroupName("existing")
     *             .build());
     *         ctx.export("ids", example.applyValue(getIpGroupsResult -> getIpGroupsResult.ids()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getIpGroups
     *       Arguments:
     *         name: existing
     *         resourceGroupName: existing
     * outputs:
     *   ids: ${example.ids}
     * ```
     * 
     * @param argument A collection of arguments for invoking getIpGroups.
     * @return A collection of values returned by getIpGroups.
     */
    public suspend fun getIpGroups(argument: GetIpGroupsPlainArgs): GetIpGroupsResult =
        getIpGroupsResultToKotlin(getIpGroupsPlain(argument.toJava()).await())

    /**
     * @see [getIpGroups].
     * @param name A substring to match some number of IP Groups.
     * @param resourceGroupName The name of the Resource Group where the IP Groups exist.
     * @return A collection of values returned by getIpGroups.
     */
    public suspend fun getIpGroups(name: String, resourceGroupName: String): GetIpGroupsResult {
        val argument = GetIpGroupsPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getIpGroupsResultToKotlin(getIpGroupsPlain(argument.toJava()).await())
    }

    /**
     * @see [getIpGroups].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetIpGroupsPlainArgs].
     * @return A collection of values returned by getIpGroups.
     */
    public suspend fun getIpGroups(argument: suspend GetIpGroupsPlainArgsBuilder.() -> Unit):
        GetIpGroupsResult {
        val builder = GetIpGroupsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getIpGroupsResultToKotlin(getIpGroupsPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Local Network Gateway.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getLocalNetworkGateway({
     *     name: "existing-local-network-gateway",
     *     resourceGroupName: "existing-resources",
     * });
     * export const id = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_local_network_gateway(name="existing-local-network-gateway",
     *     resource_group_name="existing-resources")
     * pulumi.export("id", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetLocalNetworkGateway.Invoke(new()
     *     {
     *         Name = "existing-local-network-gateway",
     *         ResourceGroupName = "existing-resources",
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = example.Apply(getLocalNetworkGatewayResult => getLocalNetworkGatewayResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupLocalNetworkGateway(ctx, &network.LookupLocalNetworkGatewayArgs{
     * 			Name:              "existing-local-network-gateway",
     * 			ResourceGroupName: "existing-resources",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetLocalNetworkGatewayArgs;
     * 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 = NetworkFunctions.getLocalNetworkGateway(GetLocalNetworkGatewayArgs.builder()
     *             .name("existing-local-network-gateway")
     *             .resourceGroupName("existing-resources")
     *             .build());
     *         ctx.export("id", example.applyValue(getLocalNetworkGatewayResult -> getLocalNetworkGatewayResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getLocalNetworkGateway
     *       Arguments:
     *         name: existing-local-network-gateway
     *         resourceGroupName: existing-resources
     * outputs:
     *   id: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getLocalNetworkGateway.
     * @return A collection of values returned by getLocalNetworkGateway.
     */
    public suspend fun getLocalNetworkGateway(argument: GetLocalNetworkGatewayPlainArgs):
        GetLocalNetworkGatewayResult =
        getLocalNetworkGatewayResultToKotlin(getLocalNetworkGatewayPlain(argument.toJava()).await())

    /**
     * @see [getLocalNetworkGateway].
     * @param name The name of the Local Network Gateway.
     * @param resourceGroupName The name of the Resource Group where the Local Network Gateway exists.
     * @return A collection of values returned by getLocalNetworkGateway.
     */
    public suspend fun getLocalNetworkGateway(name: String, resourceGroupName: String):
        GetLocalNetworkGatewayResult {
        val argument = GetLocalNetworkGatewayPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getLocalNetworkGatewayResultToKotlin(getLocalNetworkGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getLocalNetworkGateway].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetLocalNetworkGatewayPlainArgs].
     * @return A collection of values returned by getLocalNetworkGateway.
     */
    public suspend
    fun getLocalNetworkGateway(argument: suspend GetLocalNetworkGatewayPlainArgsBuilder.() -> Unit):
        GetLocalNetworkGatewayResult {
        val builder = GetLocalNetworkGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLocalNetworkGatewayResultToKotlin(getLocalNetworkGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing NAT Gateway.
     * @param argument A collection of arguments for invoking getNatGateway.
     * @return A collection of values returned by getNatGateway.
     */
    public suspend fun getNatGateway(argument: GetNatGatewayPlainArgs): GetNatGatewayResult =
        getNatGatewayResultToKotlin(getNatGatewayPlain(argument.toJava()).await())

    /**
     * @see [getNatGateway].
     * @param name Specifies the Name of the NAT Gateway.
     * @param publicIpAddressIds A list of existing Public IP Address resource IDs which the NAT Gateway is using.
     * @param publicIpPrefixIds A list of existing Public IP Prefix resource IDs which the NAT Gateway is using.
     * @param resourceGroupName Specifies the name of the Resource Group where the NAT Gateway exists.
     * @return A collection of values returned by getNatGateway.
     */
    public suspend fun getNatGateway(
        name: String,
        publicIpAddressIds: List? = null,
        publicIpPrefixIds: List? = null,
        resourceGroupName: String,
    ): GetNatGatewayResult {
        val argument = GetNatGatewayPlainArgs(
            name = name,
            publicIpAddressIds = publicIpAddressIds,
            publicIpPrefixIds = publicIpPrefixIds,
            resourceGroupName = resourceGroupName,
        )
        return getNatGatewayResultToKotlin(getNatGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getNatGateway].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNatGatewayPlainArgs].
     * @return A collection of values returned by getNatGateway.
     */
    public suspend fun getNatGateway(argument: suspend GetNatGatewayPlainArgsBuilder.() -> Unit):
        GetNatGatewayResult {
        val builder = GetNatGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNatGatewayResultToKotlin(getNatGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Azure Network DDoS Protection Plan.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getNetworkDdosProtectionPlan({
     *     name: exampleAzurermNetworkDdosProtectionPlan.name,
     *     resourceGroupName: exampleAzurermNetworkDdosProtectionPlan.resourceGroupName,
     * });
     * export const ddosProtectionPlanId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_network_ddos_protection_plan(name=example_azurerm_network_ddos_protection_plan["name"],
     *     resource_group_name=example_azurerm_network_ddos_protection_plan["resourceGroupName"])
     * pulumi.export("ddosProtectionPlanId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetNetworkDdosProtectionPlan.Invoke(new()
     *     {
     *         Name = exampleAzurermNetworkDdosProtectionPlan.Name,
     *         ResourceGroupName = exampleAzurermNetworkDdosProtectionPlan.ResourceGroupName,
     *     });
     *     return new Dictionary
     *     {
     *         ["ddosProtectionPlanId"] = example.Apply(getNetworkDdosProtectionPlanResult => getNetworkDdosProtectionPlanResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetNetworkDdosProtectionPlan(ctx, &network.GetNetworkDdosProtectionPlanArgs{
     * 			Name:              exampleAzurermNetworkDdosProtectionPlan.Name,
     * 			ResourceGroupName: exampleAzurermNetworkDdosProtectionPlan.ResourceGroupName,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("ddosProtectionPlanId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkDdosProtectionPlanArgs;
     * 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 = NetworkFunctions.getNetworkDdosProtectionPlan(GetNetworkDdosProtectionPlanArgs.builder()
     *             .name(exampleAzurermNetworkDdosProtectionPlan.name())
     *             .resourceGroupName(exampleAzurermNetworkDdosProtectionPlan.resourceGroupName())
     *             .build());
     *         ctx.export("ddosProtectionPlanId", example.applyValue(getNetworkDdosProtectionPlanResult -> getNetworkDdosProtectionPlanResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkDdosProtectionPlan
     *       Arguments:
     *         name: ${exampleAzurermNetworkDdosProtectionPlan.name}
     *         resourceGroupName: ${exampleAzurermNetworkDdosProtectionPlan.resourceGroupName}
     * outputs:
     *   ddosProtectionPlanId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkDdosProtectionPlan.
     * @return A collection of values returned by getNetworkDdosProtectionPlan.
     */
    public suspend fun getNetworkDdosProtectionPlan(argument: GetNetworkDdosProtectionPlanPlainArgs):
        GetNetworkDdosProtectionPlanResult =
        getNetworkDdosProtectionPlanResultToKotlin(getNetworkDdosProtectionPlanPlain(argument.toJava()).await())

    /**
     * @see [getNetworkDdosProtectionPlan].
     * @param name The name of the Network DDoS Protection Plan.
     * @param resourceGroupName The name of the resource group where the Network DDoS Protection Plan exists.
     * @return A collection of values returned by getNetworkDdosProtectionPlan.
     */
    public suspend fun getNetworkDdosProtectionPlan(name: String, resourceGroupName: String):
        GetNetworkDdosProtectionPlanResult {
        val argument = GetNetworkDdosProtectionPlanPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getNetworkDdosProtectionPlanResultToKotlin(getNetworkDdosProtectionPlanPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkDdosProtectionPlan].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkDdosProtectionPlanPlainArgs].
     * @return A collection of values returned by getNetworkDdosProtectionPlan.
     */
    public suspend
    fun getNetworkDdosProtectionPlan(argument: suspend GetNetworkDdosProtectionPlanPlainArgsBuilder.() -> Unit):
        GetNetworkDdosProtectionPlanResult {
        val builder = GetNetworkDdosProtectionPlanPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkDdosProtectionPlanResultToKotlin(getNetworkDdosProtectionPlanPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Network Interface.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getNetworkInterface({
     *     name: "acctest-nic",
     *     resourceGroupName: "networking",
     * });
     * export const networkInterfaceId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_network_interface(name="acctest-nic",
     *     resource_group_name="networking")
     * pulumi.export("networkInterfaceId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetNetworkInterface.Invoke(new()
     *     {
     *         Name = "acctest-nic",
     *         ResourceGroupName = "networking",
     *     });
     *     return new Dictionary
     *     {
     *         ["networkInterfaceId"] = example.Apply(getNetworkInterfaceResult => getNetworkInterfaceResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupNetworkInterface(ctx, &network.LookupNetworkInterfaceArgs{
     * 			Name:              "acctest-nic",
     * 			ResourceGroupName: "networking",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("networkInterfaceId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkInterfaceArgs;
     * 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 = NetworkFunctions.getNetworkInterface(GetNetworkInterfaceArgs.builder()
     *             .name("acctest-nic")
     *             .resourceGroupName("networking")
     *             .build());
     *         ctx.export("networkInterfaceId", example.applyValue(getNetworkInterfaceResult -> getNetworkInterfaceResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkInterface
     *       Arguments:
     *         name: acctest-nic
     *         resourceGroupName: networking
     * outputs:
     *   networkInterfaceId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkInterface.
     * @return A collection of values returned by getNetworkInterface.
     */
    public suspend fun getNetworkInterface(argument: GetNetworkInterfacePlainArgs):
        GetNetworkInterfaceResult =
        getNetworkInterfaceResultToKotlin(getNetworkInterfacePlain(argument.toJava()).await())

    /**
     * @see [getNetworkInterface].
     * @param name Specifies the name of the Network Interface.
     * @param resourceGroupName Specifies the name of the resource group the Network Interface is located in.
     * @return A collection of values returned by getNetworkInterface.
     */
    public suspend fun getNetworkInterface(name: String, resourceGroupName: String):
        GetNetworkInterfaceResult {
        val argument = GetNetworkInterfacePlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getNetworkInterfaceResultToKotlin(getNetworkInterfacePlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkInterface].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkInterfacePlainArgs].
     * @return A collection of values returned by getNetworkInterface.
     */
    public suspend
    fun getNetworkInterface(argument: suspend GetNetworkInterfacePlainArgsBuilder.() -> Unit):
        GetNetworkInterfaceResult {
        val builder = GetNetworkInterfacePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkInterfaceResultToKotlin(getNetworkInterfacePlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about a Network Manager.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const exampleResourceGroup = new azure.core.ResourceGroup("example", {
     *     name: "example-resources",
     *     location: "West Europe",
     * });
     * const current = azure.core.getSubscription({});
     * const exampleNetworkManager = new azure.network.NetworkManager("example", {
     *     name: "example-network-manager",
     *     location: exampleResourceGroup.location,
     *     resourceGroupName: exampleResourceGroup.name,
     *     scope: {
     *         subscriptionIds: [current.then(current => current.id)],
     *     },
     *     scopeAccesses: [
     *         "Connectivity",
     *         "SecurityAdmin",
     *     ],
     *     description: "example network manager",
     * });
     * const example = azure.network.getNetworkManagerOutput({
     *     name: exampleNetworkManager.name,
     *     resourceGroupName: exampleNetworkManager.resourceGroupName,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example_resource_group = azure.core.ResourceGroup("example",
     *     name="example-resources",
     *     location="West Europe")
     * current = azure.core.get_subscription()
     * example_network_manager = azure.network.NetworkManager("example",
     *     name="example-network-manager",
     *     location=example_resource_group.location,
     *     resource_group_name=example_resource_group.name,
     *     scope=azure.network.NetworkManagerScopeArgs(
     *         subscription_ids=[current.id],
     *     ),
     *     scope_accesses=[
     *         "Connectivity",
     *         "SecurityAdmin",
     *     ],
     *     description="example network manager")
     * example = azure.network.get_network_manager_output(name=example_network_manager.name,
     *     resource_group_name=example_network_manager.resource_group_name)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
     *     {
     *         Name = "example-resources",
     *         Location = "West Europe",
     *     });
     *     var current = Azure.Core.GetSubscription.Invoke();
     *     var exampleNetworkManager = new Azure.Network.NetworkManager("example", new()
     *     {
     *         Name = "example-network-manager",
     *         Location = exampleResourceGroup.Location,
     *         ResourceGroupName = exampleResourceGroup.Name,
     *         Scope = new Azure.Network.Inputs.NetworkManagerScopeArgs
     *         {
     *             SubscriptionIds = new[]
     *             {
     *                 current.Apply(getSubscriptionResult => getSubscriptionResult.Id),
     *             },
     *         },
     *         ScopeAccesses = new[]
     *         {
     *             "Connectivity",
     *             "SecurityAdmin",
     *         },
     *         Description = "example network manager",
     *     });
     *     var example = Azure.Network.GetNetworkManager.Invoke(new()
     *     {
     *         Name = exampleNetworkManager.Name,
     *         ResourceGroupName = exampleNetworkManager.ResourceGroupName,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
     * 			Name:     pulumi.String("example-resources"),
     * 			Location: pulumi.String("West Europe"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		current, err := core.LookupSubscription(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleNetworkManager, err := network.NewNetworkManager(ctx, "example", &network.NetworkManagerArgs{
     * 			Name:              pulumi.String("example-network-manager"),
     * 			Location:          exampleResourceGroup.Location,
     * 			ResourceGroupName: exampleResourceGroup.Name,
     * 			Scope: &network.NetworkManagerScopeArgs{
     * 				SubscriptionIds: pulumi.StringArray{
     * 					pulumi.String(current.Id),
     * 				},
     * 			},
     * 			ScopeAccesses: pulumi.StringArray{
     * 				pulumi.String("Connectivity"),
     * 				pulumi.String("SecurityAdmin"),
     * 			},
     * 			Description: pulumi.String("example network manager"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_ = network.LookupNetworkManagerOutput(ctx, network.GetNetworkManagerOutputArgs{
     * 			Name:              exampleNetworkManager.Name,
     * 			ResourceGroupName: exampleNetworkManager.ResourceGroupName,
     * 		}, nil)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.core.ResourceGroup;
     * import com.pulumi.azure.core.ResourceGroupArgs;
     * import com.pulumi.azure.core.CoreFunctions;
     * import com.pulumi.azure.core.inputs.GetSubscriptionArgs;
     * import com.pulumi.azure.network.NetworkManager;
     * import com.pulumi.azure.network.NetworkManagerArgs;
     * import com.pulumi.azure.network.inputs.NetworkManagerScopeArgs;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkManagerArgs;
     * 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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
     *             .name("example-resources")
     *             .location("West Europe")
     *             .build());
     *         final var current = CoreFunctions.getSubscription();
     *         var exampleNetworkManager = new NetworkManager("exampleNetworkManager", NetworkManagerArgs.builder()
     *             .name("example-network-manager")
     *             .location(exampleResourceGroup.location())
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .scope(NetworkManagerScopeArgs.builder()
     *                 .subscriptionIds(current.applyValue(getSubscriptionResult -> getSubscriptionResult.id()))
     *                 .build())
     *             .scopeAccesses(
     *                 "Connectivity",
     *                 "SecurityAdmin")
     *             .description("example network manager")
     *             .build());
     *         final var example = NetworkFunctions.getNetworkManager(GetNetworkManagerArgs.builder()
     *             .name(exampleNetworkManager.name())
     *             .resourceGroupName(exampleNetworkManager.resourceGroupName())
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   exampleResourceGroup:
     *     type: azure:core:ResourceGroup
     *     name: example
     *     properties:
     *       name: example-resources
     *       location: West Europe
     *   exampleNetworkManager:
     *     type: azure:network:NetworkManager
     *     name: example
     *     properties:
     *       name: example-network-manager
     *       location: ${exampleResourceGroup.location}
     *       resourceGroupName: ${exampleResourceGroup.name}
     *       scope:
     *         subscriptionIds:
     *           - ${current.id}
     *       scopeAccesses:
     *         - Connectivity
     *         - SecurityAdmin
     *       description: example network manager
     * variables:
     *   current:
     *     fn::invoke:
     *       Function: azure:core:getSubscription
     *       Arguments: {}
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkManager
     *       Arguments:
     *         name: ${exampleNetworkManager.name}
     *         resourceGroupName: ${exampleNetworkManager.resourceGroupName}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkManager.
     * @return A collection of values returned by getNetworkManager.
     */
    public suspend fun getNetworkManager(argument: GetNetworkManagerPlainArgs):
        GetNetworkManagerResult =
        getNetworkManagerResultToKotlin(getNetworkManagerPlain(argument.toJava()).await())

    /**
     * @see [getNetworkManager].
     * @param name The name of the Network Manager.
     * @param resourceGroupName The Name of the Resource Group where the Network Manager exists.
     * @return A collection of values returned by getNetworkManager.
     */
    public suspend fun getNetworkManager(name: String, resourceGroupName: String):
        GetNetworkManagerResult {
        val argument = GetNetworkManagerPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getNetworkManagerResultToKotlin(getNetworkManagerPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkManager].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerPlainArgs].
     * @return A collection of values returned by getNetworkManager.
     */
    public suspend
    fun getNetworkManager(argument: suspend GetNetworkManagerPlainArgsBuilder.() -> Unit):
        GetNetworkManagerResult {
        val builder = GetNetworkManagerPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkManagerResultToKotlin(getNetworkManagerPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Network Manager Connectivity Configuration.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getNetworkManagerConnectivityConfiguration({
     *     name: "existing",
     *     networkManagerId: "TODO",
     * });
     * export const id = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_network_manager_connectivity_configuration(name="existing",
     *     network_manager_id="TODO")
     * pulumi.export("id", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetNetworkManagerConnectivityConfiguration.Invoke(new()
     *     {
     *         Name = "existing",
     *         NetworkManagerId = "TODO",
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = example.Apply(getNetworkManagerConnectivityConfigurationResult => getNetworkManagerConnectivityConfigurationResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupNetworkManagerConnectivityConfiguration(ctx, &network.LookupNetworkManagerConnectivityConfigurationArgs{
     * 			Name:             "existing",
     * 			NetworkManagerId: "TODO",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkManagerConnectivityConfigurationArgs;
     * 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 = NetworkFunctions.getNetworkManagerConnectivityConfiguration(GetNetworkManagerConnectivityConfigurationArgs.builder()
     *             .name("existing")
     *             .networkManagerId("TODO")
     *             .build());
     *         ctx.export("id", example.applyValue(getNetworkManagerConnectivityConfigurationResult -> getNetworkManagerConnectivityConfigurationResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkManagerConnectivityConfiguration
     *       Arguments:
     *         name: existing
     *         networkManagerId: TODO
     * outputs:
     *   id: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkManagerConnectivityConfiguration.
     * @return A collection of values returned by getNetworkManagerConnectivityConfiguration.
     */
    public suspend
    fun getNetworkManagerConnectivityConfiguration(argument: GetNetworkManagerConnectivityConfigurationPlainArgs):
        GetNetworkManagerConnectivityConfigurationResult =
        getNetworkManagerConnectivityConfigurationResultToKotlin(getNetworkManagerConnectivityConfigurationPlain(argument.toJava()).await())

    /**
     * @see [getNetworkManagerConnectivityConfiguration].
     * @param name The name of this Network Manager Connectivity Configuration.
     * @param networkManagerId The ID of the Network Manager.
     * @return A collection of values returned by getNetworkManagerConnectivityConfiguration.
     */
    public suspend fun getNetworkManagerConnectivityConfiguration(
        name: String,
        networkManagerId: String,
    ): GetNetworkManagerConnectivityConfigurationResult {
        val argument = GetNetworkManagerConnectivityConfigurationPlainArgs(
            name = name,
            networkManagerId = networkManagerId,
        )
        return getNetworkManagerConnectivityConfigurationResultToKotlin(getNetworkManagerConnectivityConfigurationPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkManagerConnectivityConfiguration].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerConnectivityConfigurationPlainArgs].
     * @return A collection of values returned by getNetworkManagerConnectivityConfiguration.
     */
    public suspend
    fun getNetworkManagerConnectivityConfiguration(argument: suspend GetNetworkManagerConnectivityConfigurationPlainArgsBuilder.() -> Unit):
        GetNetworkManagerConnectivityConfigurationResult {
        val builder = GetNetworkManagerConnectivityConfigurationPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkManagerConnectivityConfigurationResultToKotlin(getNetworkManagerConnectivityConfigurationPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about a Network Manager Network Group.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const exampleResourceGroup = new azure.core.ResourceGroup("example", {
     *     name: "example-resources",
     *     location: "West Europe",
     * });
     * const current = azure.core.getSubscription({});
     * const exampleNetworkManager = new azure.network.NetworkManager("example", {
     *     name: "example-network-manager",
     *     location: exampleResourceGroup.location,
     *     resourceGroupName: exampleResourceGroup.name,
     *     scope: {
     *         subscriptionIds: [current.then(current => current.id)],
     *     },
     *     scopeAccesses: [
     *         "Connectivity",
     *         "SecurityAdmin",
     *     ],
     *     description: "example network manager",
     * });
     * const exampleNetworkManagerNetworkGroup = new azure.network.NetworkManagerNetworkGroup("example", {
     *     name: "example-group",
     *     networkManagerId: exampleNetworkManager.id,
     * });
     * const example = azure.network.getNetworkManagerNetworkGroupOutput({
     *     name: exampleNetworkManagerNetworkGroup.name,
     *     networkManagerId: exampleNetworkManager.id,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example_resource_group = azure.core.ResourceGroup("example",
     *     name="example-resources",
     *     location="West Europe")
     * current = azure.core.get_subscription()
     * example_network_manager = azure.network.NetworkManager("example",
     *     name="example-network-manager",
     *     location=example_resource_group.location,
     *     resource_group_name=example_resource_group.name,
     *     scope=azure.network.NetworkManagerScopeArgs(
     *         subscription_ids=[current.id],
     *     ),
     *     scope_accesses=[
     *         "Connectivity",
     *         "SecurityAdmin",
     *     ],
     *     description="example network manager")
     * example_network_manager_network_group = azure.network.NetworkManagerNetworkGroup("example",
     *     name="example-group",
     *     network_manager_id=example_network_manager.id)
     * example = azure.network.get_network_manager_network_group_output(name=example_network_manager_network_group.name,
     *     network_manager_id=example_network_manager.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
     *     {
     *         Name = "example-resources",
     *         Location = "West Europe",
     *     });
     *     var current = Azure.Core.GetSubscription.Invoke();
     *     var exampleNetworkManager = new Azure.Network.NetworkManager("example", new()
     *     {
     *         Name = "example-network-manager",
     *         Location = exampleResourceGroup.Location,
     *         ResourceGroupName = exampleResourceGroup.Name,
     *         Scope = new Azure.Network.Inputs.NetworkManagerScopeArgs
     *         {
     *             SubscriptionIds = new[]
     *             {
     *                 current.Apply(getSubscriptionResult => getSubscriptionResult.Id),
     *             },
     *         },
     *         ScopeAccesses = new[]
     *         {
     *             "Connectivity",
     *             "SecurityAdmin",
     *         },
     *         Description = "example network manager",
     *     });
     *     var exampleNetworkManagerNetworkGroup = new Azure.Network.NetworkManagerNetworkGroup("example", new()
     *     {
     *         Name = "example-group",
     *         NetworkManagerId = exampleNetworkManager.Id,
     *     });
     *     var example = Azure.Network.GetNetworkManagerNetworkGroup.Invoke(new()
     *     {
     *         Name = exampleNetworkManagerNetworkGroup.Name,
     *         NetworkManagerId = exampleNetworkManager.Id,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
     * 			Name:     pulumi.String("example-resources"),
     * 			Location: pulumi.String("West Europe"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		current, err := core.LookupSubscription(ctx, nil, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleNetworkManager, err := network.NewNetworkManager(ctx, "example", &network.NetworkManagerArgs{
     * 			Name:              pulumi.String("example-network-manager"),
     * 			Location:          exampleResourceGroup.Location,
     * 			ResourceGroupName: exampleResourceGroup.Name,
     * 			Scope: &network.NetworkManagerScopeArgs{
     * 				SubscriptionIds: pulumi.StringArray{
     * 					pulumi.String(current.Id),
     * 				},
     * 			},
     * 			ScopeAccesses: pulumi.StringArray{
     * 				pulumi.String("Connectivity"),
     * 				pulumi.String("SecurityAdmin"),
     * 			},
     * 			Description: pulumi.String("example network manager"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleNetworkManagerNetworkGroup, err := network.NewNetworkManagerNetworkGroup(ctx, "example", &network.NetworkManagerNetworkGroupArgs{
     * 			Name:             pulumi.String("example-group"),
     * 			NetworkManagerId: exampleNetworkManager.ID(),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_ = network.LookupNetworkManagerNetworkGroupOutput(ctx, network.GetNetworkManagerNetworkGroupOutputArgs{
     * 			Name:             exampleNetworkManagerNetworkGroup.Name,
     * 			NetworkManagerId: exampleNetworkManager.ID(),
     * 		}, nil)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.core.ResourceGroup;
     * import com.pulumi.azure.core.ResourceGroupArgs;
     * import com.pulumi.azure.core.CoreFunctions;
     * import com.pulumi.azure.core.inputs.GetSubscriptionArgs;
     * import com.pulumi.azure.network.NetworkManager;
     * import com.pulumi.azure.network.NetworkManagerArgs;
     * import com.pulumi.azure.network.inputs.NetworkManagerScopeArgs;
     * import com.pulumi.azure.network.NetworkManagerNetworkGroup;
     * import com.pulumi.azure.network.NetworkManagerNetworkGroupArgs;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkManagerNetworkGroupArgs;
     * 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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
     *             .name("example-resources")
     *             .location("West Europe")
     *             .build());
     *         final var current = CoreFunctions.getSubscription();
     *         var exampleNetworkManager = new NetworkManager("exampleNetworkManager", NetworkManagerArgs.builder()
     *             .name("example-network-manager")
     *             .location(exampleResourceGroup.location())
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .scope(NetworkManagerScopeArgs.builder()
     *                 .subscriptionIds(current.applyValue(getSubscriptionResult -> getSubscriptionResult.id()))
     *                 .build())
     *             .scopeAccesses(
     *                 "Connectivity",
     *                 "SecurityAdmin")
     *             .description("example network manager")
     *             .build());
     *         var exampleNetworkManagerNetworkGroup = new NetworkManagerNetworkGroup("exampleNetworkManagerNetworkGroup", NetworkManagerNetworkGroupArgs.builder()
     *             .name("example-group")
     *             .networkManagerId(exampleNetworkManager.id())
     *             .build());
     *         final var example = NetworkFunctions.getNetworkManagerNetworkGroup(GetNetworkManagerNetworkGroupArgs.builder()
     *             .name(exampleNetworkManagerNetworkGroup.name())
     *             .networkManagerId(exampleNetworkManager.id())
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   exampleResourceGroup:
     *     type: azure:core:ResourceGroup
     *     name: example
     *     properties:
     *       name: example-resources
     *       location: West Europe
     *   exampleNetworkManager:
     *     type: azure:network:NetworkManager
     *     name: example
     *     properties:
     *       name: example-network-manager
     *       location: ${exampleResourceGroup.location}
     *       resourceGroupName: ${exampleResourceGroup.name}
     *       scope:
     *         subscriptionIds:
     *           - ${current.id}
     *       scopeAccesses:
     *         - Connectivity
     *         - SecurityAdmin
     *       description: example network manager
     *   exampleNetworkManagerNetworkGroup:
     *     type: azure:network:NetworkManagerNetworkGroup
     *     name: example
     *     properties:
     *       name: example-group
     *       networkManagerId: ${exampleNetworkManager.id}
     * variables:
     *   current:
     *     fn::invoke:
     *       Function: azure:core:getSubscription
     *       Arguments: {}
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkManagerNetworkGroup
     *       Arguments:
     *         name: ${exampleNetworkManagerNetworkGroup.name}
     *         networkManagerId: ${exampleNetworkManager.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkManagerNetworkGroup.
     * @return A collection of values returned by getNetworkManagerNetworkGroup.
     */
    public suspend
    fun getNetworkManagerNetworkGroup(argument: GetNetworkManagerNetworkGroupPlainArgs):
        GetNetworkManagerNetworkGroupResult =
        getNetworkManagerNetworkGroupResultToKotlin(getNetworkManagerNetworkGroupPlain(argument.toJava()).await())

    /**
     * @see [getNetworkManagerNetworkGroup].
     * @param name Specifies the name of the Network Manager Network Group.
     * @param networkManagerId Specifies the ID of the Network Manager.
     * @return A collection of values returned by getNetworkManagerNetworkGroup.
     */
    public suspend fun getNetworkManagerNetworkGroup(name: String, networkManagerId: String):
        GetNetworkManagerNetworkGroupResult {
        val argument = GetNetworkManagerNetworkGroupPlainArgs(
            name = name,
            networkManagerId = networkManagerId,
        )
        return getNetworkManagerNetworkGroupResultToKotlin(getNetworkManagerNetworkGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkManagerNetworkGroup].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkManagerNetworkGroupPlainArgs].
     * @return A collection of values returned by getNetworkManagerNetworkGroup.
     */
    public suspend
    fun getNetworkManagerNetworkGroup(argument: suspend GetNetworkManagerNetworkGroupPlainArgsBuilder.() -> Unit):
        GetNetworkManagerNetworkGroupResult {
        val builder = GetNetworkManagerNetworkGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkManagerNetworkGroupResultToKotlin(getNetworkManagerNetworkGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Network Security Group.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getNetworkSecurityGroup({
     *     name: "example",
     *     resourceGroupName: exampleAzurermResourceGroup.name,
     * });
     * export const location = example.then(example => example.location);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_network_security_group(name="example",
     *     resource_group_name=example_azurerm_resource_group["name"])
     * pulumi.export("location", example.location)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetNetworkSecurityGroup.Invoke(new()
     *     {
     *         Name = "example",
     *         ResourceGroupName = exampleAzurermResourceGroup.Name,
     *     });
     *     return new Dictionary
     *     {
     *         ["location"] = example.Apply(getNetworkSecurityGroupResult => getNetworkSecurityGroupResult.Location),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupNetworkSecurityGroup(ctx, &network.LookupNetworkSecurityGroupArgs{
     * 			Name:              "example",
     * 			ResourceGroupName: exampleAzurermResourceGroup.Name,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("location", example.Location)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkSecurityGroupArgs;
     * 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 = NetworkFunctions.getNetworkSecurityGroup(GetNetworkSecurityGroupArgs.builder()
     *             .name("example")
     *             .resourceGroupName(exampleAzurermResourceGroup.name())
     *             .build());
     *         ctx.export("location", example.applyValue(getNetworkSecurityGroupResult -> getNetworkSecurityGroupResult.location()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkSecurityGroup
     *       Arguments:
     *         name: example
     *         resourceGroupName: ${exampleAzurermResourceGroup.name}
     * outputs:
     *   location: ${example.location}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkSecurityGroup.
     * @return A collection of values returned by getNetworkSecurityGroup.
     */
    public suspend fun getNetworkSecurityGroup(argument: GetNetworkSecurityGroupPlainArgs):
        GetNetworkSecurityGroupResult =
        getNetworkSecurityGroupResultToKotlin(getNetworkSecurityGroupPlain(argument.toJava()).await())

    /**
     * @see [getNetworkSecurityGroup].
     * @param name Specifies the Name of the Network Security Group.
     * @param resourceGroupName Specifies the Name of the Resource Group within which the Network Security Group exists
     * @return A collection of values returned by getNetworkSecurityGroup.
     */
    public suspend fun getNetworkSecurityGroup(name: String, resourceGroupName: String):
        GetNetworkSecurityGroupResult {
        val argument = GetNetworkSecurityGroupPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getNetworkSecurityGroupResultToKotlin(getNetworkSecurityGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkSecurityGroup].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkSecurityGroupPlainArgs].
     * @return A collection of values returned by getNetworkSecurityGroup.
     */
    public suspend
    fun getNetworkSecurityGroup(argument: suspend GetNetworkSecurityGroupPlainArgsBuilder.() -> Unit):
        GetNetworkSecurityGroupResult {
        val builder = GetNetworkSecurityGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkSecurityGroupResultToKotlin(getNetworkSecurityGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Network Watcher.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getNetworkWatcher({
     *     name: exampleAzurermNetworkWatcher.name,
     *     resourceGroupName: exampleAzurermResourceGroup.name,
     * });
     * export const networkWatcherId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_network_watcher(name=example_azurerm_network_watcher["name"],
     *     resource_group_name=example_azurerm_resource_group["name"])
     * pulumi.export("networkWatcherId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetNetworkWatcher.Invoke(new()
     *     {
     *         Name = exampleAzurermNetworkWatcher.Name,
     *         ResourceGroupName = exampleAzurermResourceGroup.Name,
     *     });
     *     return new Dictionary
     *     {
     *         ["networkWatcherId"] = example.Apply(getNetworkWatcherResult => getNetworkWatcherResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupNetworkWatcher(ctx, &network.LookupNetworkWatcherArgs{
     * 			Name:              exampleAzurermNetworkWatcher.Name,
     * 			ResourceGroupName: exampleAzurermResourceGroup.Name,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("networkWatcherId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetNetworkWatcherArgs;
     * 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 = NetworkFunctions.getNetworkWatcher(GetNetworkWatcherArgs.builder()
     *             .name(exampleAzurermNetworkWatcher.name())
     *             .resourceGroupName(exampleAzurermResourceGroup.name())
     *             .build());
     *         ctx.export("networkWatcherId", example.applyValue(getNetworkWatcherResult -> getNetworkWatcherResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getNetworkWatcher
     *       Arguments:
     *         name: ${exampleAzurermNetworkWatcher.name}
     *         resourceGroupName: ${exampleAzurermResourceGroup.name}
     * outputs:
     *   networkWatcherId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getNetworkWatcher.
     * @return A collection of values returned by getNetworkWatcher.
     */
    public suspend fun getNetworkWatcher(argument: GetNetworkWatcherPlainArgs):
        GetNetworkWatcherResult =
        getNetworkWatcherResultToKotlin(getNetworkWatcherPlain(argument.toJava()).await())

    /**
     * @see [getNetworkWatcher].
     * @param name Specifies the Name of the Network Watcher.
     * @param resourceGroupName Specifies the Name of the Resource Group within which the Network Watcher exists.
     * @return A collection of values returned by getNetworkWatcher.
     */
    public suspend fun getNetworkWatcher(name: String, resourceGroupName: String):
        GetNetworkWatcherResult {
        val argument = GetNetworkWatcherPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getNetworkWatcherResultToKotlin(getNetworkWatcherPlain(argument.toJava()).await())
    }

    /**
     * @see [getNetworkWatcher].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetNetworkWatcherPlainArgs].
     * @return A collection of values returned by getNetworkWatcher.
     */
    public suspend
    fun getNetworkWatcher(argument: suspend GetNetworkWatcherPlainArgsBuilder.() -> Unit):
        GetNetworkWatcherResult {
        val builder = GetNetworkWatcherPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getNetworkWatcherResultToKotlin(getNetworkWatcherPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Public IP Address.
     * ## Example Usage
     * ### Reference An Existing)
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getPublicIP({
     *     name: "name_of_public_ip",
     *     resourceGroupName: "name_of_resource_group",
     * });
     * export const domainNameLabel = example.then(example => example.domainNameLabel);
     * export const publicIpAddress = example.then(example => example.ipAddress);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_public_ip(name="name_of_public_ip",
     *     resource_group_name="name_of_resource_group")
     * pulumi.export("domainNameLabel", example.domain_name_label)
     * pulumi.export("publicIpAddress", example.ip_address)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetPublicIP.Invoke(new()
     *     {
     *         Name = "name_of_public_ip",
     *         ResourceGroupName = "name_of_resource_group",
     *     });
     *     return new Dictionary
     *     {
     *         ["domainNameLabel"] = example.Apply(getPublicIPResult => getPublicIPResult.DomainNameLabel),
     *         ["publicIpAddress"] = example.Apply(getPublicIPResult => getPublicIPResult.IpAddress),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetPublicIP(ctx, &network.GetPublicIPArgs{
     * 			Name:              "name_of_public_ip",
     * 			ResourceGroupName: "name_of_resource_group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("domainNameLabel", example.DomainNameLabel)
     * 		ctx.Export("publicIpAddress", example.IpAddress)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetPublicIPArgs;
     * 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 = NetworkFunctions.getPublicIP(GetPublicIPArgs.builder()
     *             .name("name_of_public_ip")
     *             .resourceGroupName("name_of_resource_group")
     *             .build());
     *         ctx.export("domainNameLabel", example.applyValue(getPublicIPResult -> getPublicIPResult.domainNameLabel()));
     *         ctx.export("publicIpAddress", example.applyValue(getPublicIPResult -> getPublicIPResult.ipAddress()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getPublicIP
     *       Arguments:
     *         name: name_of_public_ip
     *         resourceGroupName: name_of_resource_group
     * outputs:
     *   domainNameLabel: ${example.domainNameLabel}
     *   publicIpAddress: ${example.ipAddress}
     * ```
     * 
     * ### Retrieve The Dynamic Public IP Of A New VM)
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const exampleResourceGroup = new azure.core.ResourceGroup("example", {
     *     name: "test-resources",
     *     location: "West Europe",
     * });
     * const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
     *     name: "test-network",
     *     addressSpaces: ["10.0.0.0/16"],
     *     location: exampleResourceGroup.location,
     *     resourceGroupName: exampleResourceGroup.name,
     * });
     * const exampleSubnet = new azure.network.Subnet("example", {
     *     name: "acctsub",
     *     resourceGroupName: exampleResourceGroup.name,
     *     virtualNetworkName: exampleVirtualNetwork.name,
     *     addressPrefixes: ["10.0.2.0/24"],
     * });
     * const examplePublicIp = new azure.network.PublicIp("example", {
     *     name: "test-pip",
     *     location: exampleResourceGroup.location,
     *     resourceGroupName: exampleResourceGroup.name,
     *     allocationMethod: "Dynamic",
     *     idleTimeoutInMinutes: 30,
     *     tags: {
     *         environment: "test",
     *     },
     * });
     * const exampleNetworkInterface = new azure.network.NetworkInterface("example", {
     *     name: "test-nic",
     *     location: exampleResourceGroup.location,
     *     resourceGroupName: exampleResourceGroup.name,
     *     ipConfigurations: [{
     *         name: "testconfiguration1",
     *         subnetId: exampleSubnet.id,
     *         privateIpAddressAllocation: "Static",
     *         privateIpAddress: "10.0.2.5",
     *         publicIpAddressId: examplePublicIp.id,
     *     }],
     * });
     * const exampleVirtualMachine = new azure.compute.VirtualMachine("example", {
     *     name: "test-vm",
     *     location: exampleResourceGroup.location,
     *     resourceGroupName: exampleResourceGroup.name,
     *     networkInterfaceIds: [exampleNetworkInterface.id],
     * });
     * const example = azure.network.getPublicIPOutput({
     *     name: examplePublicIp.name,
     *     resourceGroupName: exampleVirtualMachine.resourceGroupName,
     * });
     * export const publicIpAddress = example.apply(example => example.ipAddress);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example_resource_group = azure.core.ResourceGroup("example",
     *     name="test-resources",
     *     location="West Europe")
     * example_virtual_network = azure.network.VirtualNetwork("example",
     *     name="test-network",
     *     address_spaces=["10.0.0.0/16"],
     *     location=example_resource_group.location,
     *     resource_group_name=example_resource_group.name)
     * example_subnet = azure.network.Subnet("example",
     *     name="acctsub",
     *     resource_group_name=example_resource_group.name,
     *     virtual_network_name=example_virtual_network.name,
     *     address_prefixes=["10.0.2.0/24"])
     * example_public_ip = azure.network.PublicIp("example",
     *     name="test-pip",
     *     location=example_resource_group.location,
     *     resource_group_name=example_resource_group.name,
     *     allocation_method="Dynamic",
     *     idle_timeout_in_minutes=30,
     *     tags={
     *         "environment": "test",
     *     })
     * example_network_interface = azure.network.NetworkInterface("example",
     *     name="test-nic",
     *     location=example_resource_group.location,
     *     resource_group_name=example_resource_group.name,
     *     ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(
     *         name="testconfiguration1",
     *         subnet_id=example_subnet.id,
     *         private_ip_address_allocation="Static",
     *         private_ip_address="10.0.2.5",
     *         public_ip_address_id=example_public_ip.id,
     *     )])
     * example_virtual_machine = azure.compute.VirtualMachine("example",
     *     name="test-vm",
     *     location=example_resource_group.location,
     *     resource_group_name=example_resource_group.name,
     *     network_interface_ids=[example_network_interface.id])
     * example = azure.network.get_public_ip_output(name=example_public_ip.name,
     *     resource_group_name=example_virtual_machine.resource_group_name)
     * pulumi.export("publicIpAddress", example.ip_address)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
     *     {
     *         Name = "test-resources",
     *         Location = "West Europe",
     *     });
     *     var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
     *     {
     *         Name = "test-network",
     *         AddressSpaces = new[]
     *         {
     *             "10.0.0.0/16",
     *         },
     *         Location = exampleResourceGroup.Location,
     *         ResourceGroupName = exampleResourceGroup.Name,
     *     });
     *     var exampleSubnet = new Azure.Network.Subnet("example", new()
     *     {
     *         Name = "acctsub",
     *         ResourceGroupName = exampleResourceGroup.Name,
     *         VirtualNetworkName = exampleVirtualNetwork.Name,
     *         AddressPrefixes = new[]
     *         {
     *             "10.0.2.0/24",
     *         },
     *     });
     *     var examplePublicIp = new Azure.Network.PublicIp("example", new()
     *     {
     *         Name = "test-pip",
     *         Location = exampleResourceGroup.Location,
     *         ResourceGroupName = exampleResourceGroup.Name,
     *         AllocationMethod = "Dynamic",
     *         IdleTimeoutInMinutes = 30,
     *         Tags =
     *         {
     *             { "environment", "test" },
     *         },
     *     });
     *     var exampleNetworkInterface = new Azure.Network.NetworkInterface("example", new()
     *     {
     *         Name = "test-nic",
     *         Location = exampleResourceGroup.Location,
     *         ResourceGroupName = exampleResourceGroup.Name,
     *         IpConfigurations = new[]
     *         {
     *             new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs
     *             {
     *                 Name = "testconfiguration1",
     *                 SubnetId = exampleSubnet.Id,
     *                 PrivateIpAddressAllocation = "Static",
     *                 PrivateIpAddress = "10.0.2.5",
     *                 PublicIpAddressId = examplePublicIp.Id,
     *             },
     *         },
     *     });
     *     var exampleVirtualMachine = new Azure.Compute.VirtualMachine("example", new()
     *     {
     *         Name = "test-vm",
     *         Location = exampleResourceGroup.Location,
     *         ResourceGroupName = exampleResourceGroup.Name,
     *         NetworkInterfaceIds = new[]
     *         {
     *             exampleNetworkInterface.Id,
     *         },
     *     });
     *     var example = Azure.Network.GetPublicIP.Invoke(new()
     *     {
     *         Name = examplePublicIp.Name,
     *         ResourceGroupName = exampleVirtualMachine.ResourceGroupName,
     *     });
     *     return new Dictionary
     *     {
     *         ["publicIpAddress"] = example.Apply(getPublicIPResult => getPublicIPResult.IpAddress),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/compute"
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
     * 			Name:     pulumi.String("test-resources"),
     * 			Location: pulumi.String("West Europe"),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
     * 			Name: pulumi.String("test-network"),
     * 			AddressSpaces: pulumi.StringArray{
     * 				pulumi.String("10.0.0.0/16"),
     * 			},
     * 			Location:          exampleResourceGroup.Location,
     * 			ResourceGroupName: exampleResourceGroup.Name,
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
     * 			Name:               pulumi.String("acctsub"),
     * 			ResourceGroupName:  exampleResourceGroup.Name,
     * 			VirtualNetworkName: exampleVirtualNetwork.Name,
     * 			AddressPrefixes: pulumi.StringArray{
     * 				pulumi.String("10.0.2.0/24"),
     * 			},
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		examplePublicIp, err := network.NewPublicIp(ctx, "example", &network.PublicIpArgs{
     * 			Name:                 pulumi.String("test-pip"),
     * 			Location:             exampleResourceGroup.Location,
     * 			ResourceGroupName:    exampleResourceGroup.Name,
     * 			AllocationMethod:     pulumi.String("Dynamic"),
     * 			IdleTimeoutInMinutes: pulumi.Int(30),
     * 			Tags: pulumi.StringMap{
     * 				"environment": pulumi.String("test"),
     * 			},
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleNetworkInterface, err := network.NewNetworkInterface(ctx, "example", &network.NetworkInterfaceArgs{
     * 			Name:              pulumi.String("test-nic"),
     * 			Location:          exampleResourceGroup.Location,
     * 			ResourceGroupName: exampleResourceGroup.Name,
     * 			IpConfigurations: network.NetworkInterfaceIpConfigurationArray{
     * 				&network.NetworkInterfaceIpConfigurationArgs{
     * 					Name:                       pulumi.String("testconfiguration1"),
     * 					SubnetId:                   exampleSubnet.ID(),
     * 					PrivateIpAddressAllocation: pulumi.String("Static"),
     * 					PrivateIpAddress:           pulumi.String("10.0.2.5"),
     * 					PublicIpAddressId:          examplePublicIp.ID(),
     * 				},
     * 			},
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleVirtualMachine, err := compute.NewVirtualMachine(ctx, "example", &compute.VirtualMachineArgs{
     * 			Name:              pulumi.String("test-vm"),
     * 			Location:          exampleResourceGroup.Location,
     * 			ResourceGroupName: exampleResourceGroup.Name,
     * 			NetworkInterfaceIds: pulumi.StringArray{
     * 				exampleNetworkInterface.ID(),
     * 			},
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		example := network.GetPublicIPOutput(ctx, network.GetPublicIPOutputArgs{
     * 			Name:              examplePublicIp.Name,
     * 			ResourceGroupName: exampleVirtualMachine.ResourceGroupName,
     * 		}, nil)
     * 		ctx.Export("publicIpAddress", example.ApplyT(func(example network.GetPublicIPResult) (*string, error) {
     * 			return &example.IpAddress, nil
     * 		}).(pulumi.StringPtrOutput))
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.core.ResourceGroup;
     * import com.pulumi.azure.core.ResourceGroupArgs;
     * import com.pulumi.azure.network.VirtualNetwork;
     * import com.pulumi.azure.network.VirtualNetworkArgs;
     * import com.pulumi.azure.network.Subnet;
     * import com.pulumi.azure.network.SubnetArgs;
     * import com.pulumi.azure.network.PublicIp;
     * import com.pulumi.azure.network.PublicIpArgs;
     * import com.pulumi.azure.network.NetworkInterface;
     * import com.pulumi.azure.network.NetworkInterfaceArgs;
     * import com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;
     * import com.pulumi.azure.compute.VirtualMachine;
     * import com.pulumi.azure.compute.VirtualMachineArgs;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetPublicIPArgs;
     * 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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
     *             .name("test-resources")
     *             .location("West Europe")
     *             .build());
     *         var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
     *             .name("test-network")
     *             .addressSpaces("10.0.0.0/16")
     *             .location(exampleResourceGroup.location())
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .build());
     *         var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
     *             .name("acctsub")
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .virtualNetworkName(exampleVirtualNetwork.name())
     *             .addressPrefixes("10.0.2.0/24")
     *             .build());
     *         var examplePublicIp = new PublicIp("examplePublicIp", PublicIpArgs.builder()
     *             .name("test-pip")
     *             .location(exampleResourceGroup.location())
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .allocationMethod("Dynamic")
     *             .idleTimeoutInMinutes(30)
     *             .tags(Map.of("environment", "test"))
     *             .build());
     *         var exampleNetworkInterface = new NetworkInterface("exampleNetworkInterface", NetworkInterfaceArgs.builder()
     *             .name("test-nic")
     *             .location(exampleResourceGroup.location())
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()
     *                 .name("testconfiguration1")
     *                 .subnetId(exampleSubnet.id())
     *                 .privateIpAddressAllocation("Static")
     *                 .privateIpAddress("10.0.2.5")
     *                 .publicIpAddressId(examplePublicIp.id())
     *                 .build())
     *             .build());
     *         var exampleVirtualMachine = new VirtualMachine("exampleVirtualMachine", VirtualMachineArgs.builder()
     *             .name("test-vm")
     *             .location(exampleResourceGroup.location())
     *             .resourceGroupName(exampleResourceGroup.name())
     *             .networkInterfaceIds(exampleNetworkInterface.id())
     *             .build());
     *         final var example = NetworkFunctions.getPublicIP(GetPublicIPArgs.builder()
     *             .name(examplePublicIp.name())
     *             .resourceGroupName(exampleVirtualMachine.resourceGroupName())
     *             .build());
     *         ctx.export("publicIpAddress", example.applyValue(getPublicIPResult -> getPublicIPResult).applyValue(example -> example.applyValue(getPublicIPResult -> getPublicIPResult.ipAddress())));
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   exampleResourceGroup:
     *     type: azure:core:ResourceGroup
     *     name: example
     *     properties:
     *       name: test-resources
     *       location: West Europe
     *   exampleVirtualNetwork:
     *     type: azure:network:VirtualNetwork
     *     name: example
     *     properties:
     *       name: test-network
     *       addressSpaces:
     *         - 10.0.0.0/16
     *       location: ${exampleResourceGroup.location}
     *       resourceGroupName: ${exampleResourceGroup.name}
     *   exampleSubnet:
     *     type: azure:network:Subnet
     *     name: example
     *     properties:
     *       name: acctsub
     *       resourceGroupName: ${exampleResourceGroup.name}
     *       virtualNetworkName: ${exampleVirtualNetwork.name}
     *       addressPrefixes:
     *         - 10.0.2.0/24
     *   examplePublicIp:
     *     type: azure:network:PublicIp
     *     name: example
     *     properties:
     *       name: test-pip
     *       location: ${exampleResourceGroup.location}
     *       resourceGroupName: ${exampleResourceGroup.name}
     *       allocationMethod: Dynamic
     *       idleTimeoutInMinutes: 30
     *       tags:
     *         environment: test
     *   exampleNetworkInterface:
     *     type: azure:network:NetworkInterface
     *     name: example
     *     properties:
     *       name: test-nic
     *       location: ${exampleResourceGroup.location}
     *       resourceGroupName: ${exampleResourceGroup.name}
     *       ipConfigurations:
     *         - name: testconfiguration1
     *           subnetId: ${exampleSubnet.id}
     *           privateIpAddressAllocation: Static
     *           privateIpAddress: 10.0.2.5
     *           publicIpAddressId: ${examplePublicIp.id}
     *   exampleVirtualMachine:
     *     type: azure:compute:VirtualMachine
     *     name: example
     *     properties:
     *       name: test-vm
     *       location: ${exampleResourceGroup.location}
     *       resourceGroupName: ${exampleResourceGroup.name}
     *       networkInterfaceIds: # ...
     *         - ${exampleNetworkInterface.id}
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getPublicIP
     *       Arguments:
     *         name: ${examplePublicIp.name}
     *         resourceGroupName: ${exampleVirtualMachine.resourceGroupName}
     * outputs:
     *   publicIpAddress: ${example.ipAddress}
     * ```
     * 
     * @param argument A collection of arguments for invoking getPublicIP.
     * @return A collection of values returned by getPublicIP.
     */
    public suspend fun getPublicIP(argument: GetPublicIPPlainArgs): GetPublicIPResult =
        getPublicIPResultToKotlin(getPublicIPPlain(argument.toJava()).await())

    /**
     * @see [getPublicIP].
     * @param name Specifies the name of the public IP address.
     * @param resourceGroupName Specifies the name of the resource group.
     * @return A collection of values returned by getPublicIP.
     */
    public suspend fun getPublicIP(name: String, resourceGroupName: String): GetPublicIPResult {
        val argument = GetPublicIPPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getPublicIPResultToKotlin(getPublicIPPlain(argument.toJava()).await())
    }

    /**
     * @see [getPublicIP].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetPublicIPPlainArgs].
     * @return A collection of values returned by getPublicIP.
     */
    public suspend fun getPublicIP(argument: suspend GetPublicIPPlainArgsBuilder.() -> Unit):
        GetPublicIPResult {
        val builder = GetPublicIPPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPublicIPResultToKotlin(getPublicIPPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about a set of existing Public IP Addresses.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getPublicIPs({
     *     resourceGroupName: "pip-test",
     *     attachmentStatus: "Attached",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_public_i_ps(resource_group_name="pip-test",
     *     attachment_status="Attached")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetPublicIPs.Invoke(new()
     *     {
     *         ResourceGroupName = "pip-test",
     *         AttachmentStatus = "Attached",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := network.GetPublicIPs(ctx, &network.GetPublicIPsArgs{
     * 			ResourceGroupName: "pip-test",
     * 			AttachmentStatus:  pulumi.StringRef("Attached"),
     * 		}, 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetPublicIPsArgs;
     * 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 = NetworkFunctions.getPublicIPs(GetPublicIPsArgs.builder()
     *             .resourceGroupName("pip-test")
     *             .attachmentStatus("Attached")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getPublicIPs
     *       Arguments:
     *         resourceGroupName: pip-test
     *         attachmentStatus: Attached
     * ```
     * 
     * @param argument A collection of arguments for invoking getPublicIPs.
     * @return A collection of values returned by getPublicIPs.
     */
    public suspend fun getPublicIPs(argument: GetPublicIPsPlainArgs): GetPublicIPsResult =
        getPublicIPsResultToKotlin(getPublicIPsPlain(argument.toJava()).await())

    /**
     * @see [getPublicIPs].
     * @param allocationType The Allocation Type for the Public IP Address. Possible values include `Static` or `Dynamic`.
     * @param attachmentStatus Filter to include IP Addresses which are attached to a device, such as a VM/LB (`Attached`) or unattached (`Unattached`).
     * @param namePrefix A prefix match used for the IP Addresses `name` field, case sensitive.
     * @param resourceGroupName Specifies the name of the resource group.
     * @return A collection of values returned by getPublicIPs.
     */
    public suspend fun getPublicIPs(
        allocationType: String? = null,
        attachmentStatus: String? = null,
        namePrefix: String? = null,
        resourceGroupName: String,
    ): GetPublicIPsResult {
        val argument = GetPublicIPsPlainArgs(
            allocationType = allocationType,
            attachmentStatus = attachmentStatus,
            namePrefix = namePrefix,
            resourceGroupName = resourceGroupName,
        )
        return getPublicIPsResultToKotlin(getPublicIPsPlain(argument.toJava()).await())
    }

    /**
     * @see [getPublicIPs].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetPublicIPsPlainArgs].
     * @return A collection of values returned by getPublicIPs.
     */
    public suspend fun getPublicIPs(argument: suspend GetPublicIPsPlainArgsBuilder.() -> Unit):
        GetPublicIPsResult {
        val builder = GetPublicIPsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPublicIPsResultToKotlin(getPublicIPsPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Public IP Prefix.
     * ## Example Usage
     * ### Reference An Existing)
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getPublicIpPrefix({
     *     name: "name_of_public_ip",
     *     resourceGroupName: "name_of_resource_group",
     * });
     * export const publicIpPrefix = example.then(example => example.ipPrefix);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_public_ip_prefix(name="name_of_public_ip",
     *     resource_group_name="name_of_resource_group")
     * pulumi.export("publicIpPrefix", example.ip_prefix)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetPublicIpPrefix.Invoke(new()
     *     {
     *         Name = "name_of_public_ip",
     *         ResourceGroupName = "name_of_resource_group",
     *     });
     *     return new Dictionary
     *     {
     *         ["publicIpPrefix"] = example.Apply(getPublicIpPrefixResult => getPublicIpPrefixResult.IpPrefix),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupPublicIpPrefix(ctx, &network.LookupPublicIpPrefixArgs{
     * 			Name:              "name_of_public_ip",
     * 			ResourceGroupName: "name_of_resource_group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("publicIpPrefix", example.IpPrefix)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetPublicIpPrefixArgs;
     * 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 = NetworkFunctions.getPublicIpPrefix(GetPublicIpPrefixArgs.builder()
     *             .name("name_of_public_ip")
     *             .resourceGroupName("name_of_resource_group")
     *             .build());
     *         ctx.export("publicIpPrefix", example.applyValue(getPublicIpPrefixResult -> getPublicIpPrefixResult.ipPrefix()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getPublicIpPrefix
     *       Arguments:
     *         name: name_of_public_ip
     *         resourceGroupName: name_of_resource_group
     * outputs:
     *   publicIpPrefix: ${example.ipPrefix}
     * ```
     * 
     * @param argument A collection of arguments for invoking getPublicIpPrefix.
     * @return A collection of values returned by getPublicIpPrefix.
     */
    public suspend fun getPublicIpPrefix(argument: GetPublicIpPrefixPlainArgs):
        GetPublicIpPrefixResult =
        getPublicIpPrefixResultToKotlin(getPublicIpPrefixPlain(argument.toJava()).await())

    /**
     * @see [getPublicIpPrefix].
     * @param name Specifies the name of the public IP prefix.
     * @param resourceGroupName Specifies the name of the resource group.
     * @return A collection of values returned by getPublicIpPrefix.
     */
    public suspend fun getPublicIpPrefix(name: String, resourceGroupName: String):
        GetPublicIpPrefixResult {
        val argument = GetPublicIpPrefixPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getPublicIpPrefixResultToKotlin(getPublicIpPrefixPlain(argument.toJava()).await())
    }

    /**
     * @see [getPublicIpPrefix].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetPublicIpPrefixPlainArgs].
     * @return A collection of values returned by getPublicIpPrefix.
     */
    public suspend
    fun getPublicIpPrefix(argument: suspend GetPublicIpPrefixPlainArgsBuilder.() -> Unit):
        GetPublicIpPrefixResult {
        val builder = GetPublicIpPrefixPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPublicIpPrefixResultToKotlin(getPublicIpPrefixPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Route Filter.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getRouteFilter({
     *     name: "existing",
     *     resourceGroupName: "existing",
     * });
     * export const id = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_route_filter(name="existing",
     *     resource_group_name="existing")
     * pulumi.export("id", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetRouteFilter.Invoke(new()
     *     {
     *         Name = "existing",
     *         ResourceGroupName = "existing",
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = example.Apply(getRouteFilterResult => getRouteFilterResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupRouteFilter(ctx, &network.LookupRouteFilterArgs{
     * 			Name:              "existing",
     * 			ResourceGroupName: "existing",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetRouteFilterArgs;
     * 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 = NetworkFunctions.getRouteFilter(GetRouteFilterArgs.builder()
     *             .name("existing")
     *             .resourceGroupName("existing")
     *             .build());
     *         ctx.export("id", example.applyValue(getRouteFilterResult -> getRouteFilterResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getRouteFilter
     *       Arguments:
     *         name: existing
     *         resourceGroupName: existing
     * outputs:
     *   id: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getRouteFilter.
     * @return A collection of values returned by getRouteFilter.
     */
    public suspend fun getRouteFilter(argument: GetRouteFilterPlainArgs): GetRouteFilterResult =
        getRouteFilterResultToKotlin(getRouteFilterPlain(argument.toJava()).await())

    /**
     * @see [getRouteFilter].
     * @param name The Name of this Route Filter.
     * @param resourceGroupName The name of the Resource Group where the Route Filter exists.
     * @return A collection of values returned by getRouteFilter.
     */
    public suspend fun getRouteFilter(name: String, resourceGroupName: String): GetRouteFilterResult {
        val argument = GetRouteFilterPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getRouteFilterResultToKotlin(getRouteFilterPlain(argument.toJava()).await())
    }

    /**
     * @see [getRouteFilter].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetRouteFilterPlainArgs].
     * @return A collection of values returned by getRouteFilter.
     */
    public suspend fun getRouteFilter(argument: suspend GetRouteFilterPlainArgsBuilder.() -> Unit):
        GetRouteFilterResult {
        val builder = GetRouteFilterPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getRouteFilterResultToKotlin(getRouteFilterPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Route Table.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getRouteTable({
     *     name: "myroutetable",
     *     resourceGroupName: "some-resource-group",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_route_table(name="myroutetable",
     *     resource_group_name="some-resource-group")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetRouteTable.Invoke(new()
     *     {
     *         Name = "myroutetable",
     *         ResourceGroupName = "some-resource-group",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := network.LookupRouteTable(ctx, &network.LookupRouteTableArgs{
     * 			Name:              "myroutetable",
     * 			ResourceGroupName: "some-resource-group",
     * 		}, 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetRouteTableArgs;
     * 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 = NetworkFunctions.getRouteTable(GetRouteTableArgs.builder()
     *             .name("myroutetable")
     *             .resourceGroupName("some-resource-group")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getRouteTable
     *       Arguments:
     *         name: myroutetable
     *         resourceGroupName: some-resource-group
     * ```
     * 
     * @param argument A collection of arguments for invoking getRouteTable.
     * @return A collection of values returned by getRouteTable.
     */
    public suspend fun getRouteTable(argument: GetRouteTablePlainArgs): GetRouteTableResult =
        getRouteTableResultToKotlin(getRouteTablePlain(argument.toJava()).await())

    /**
     * @see [getRouteTable].
     * @param name The name of the Route Table.
     * @param resourceGroupName The name of the Resource Group in which the Route Table exists.
     * @return A collection of values returned by getRouteTable.
     */
    public suspend fun getRouteTable(name: String, resourceGroupName: String): GetRouteTableResult {
        val argument = GetRouteTablePlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getRouteTableResultToKotlin(getRouteTablePlain(argument.toJava()).await())
    }

    /**
     * @see [getRouteTable].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetRouteTablePlainArgs].
     * @return A collection of values returned by getRouteTable.
     */
    public suspend fun getRouteTable(argument: suspend GetRouteTablePlainArgsBuilder.() -> Unit):
        GetRouteTableResult {
        val builder = GetRouteTablePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getRouteTableResultToKotlin(getRouteTablePlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about Service Tags.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getServiceTags({
     *     location: "westcentralus",
     *     service: "AzureKeyVault",
     *     locationFilter: "northeurope",
     * });
     * export const addressPrefixes = example.then(example => example.addressPrefixes);
     * export const ipv4Cidrs = example.then(example => example.ipv4Cidrs);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_service_tags(location="westcentralus",
     *     service="AzureKeyVault",
     *     location_filter="northeurope")
     * pulumi.export("addressPrefixes", example.address_prefixes)
     * pulumi.export("ipv4Cidrs", example.ipv4_cidrs)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetServiceTags.Invoke(new()
     *     {
     *         Location = "westcentralus",
     *         Service = "AzureKeyVault",
     *         LocationFilter = "northeurope",
     *     });
     *     return new Dictionary
     *     {
     *         ["addressPrefixes"] = example.Apply(getServiceTagsResult => getServiceTagsResult.AddressPrefixes),
     *         ["ipv4Cidrs"] = example.Apply(getServiceTagsResult => getServiceTagsResult.Ipv4Cidrs),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetServiceTags(ctx, &network.GetServiceTagsArgs{
     * 			Location:       "westcentralus",
     * 			Service:        "AzureKeyVault",
     * 			LocationFilter: pulumi.StringRef("northeurope"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("addressPrefixes", example.AddressPrefixes)
     * 		ctx.Export("ipv4Cidrs", example.Ipv4Cidrs)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetServiceTagsArgs;
     * 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 = NetworkFunctions.getServiceTags(GetServiceTagsArgs.builder()
     *             .location("westcentralus")
     *             .service("AzureKeyVault")
     *             .locationFilter("northeurope")
     *             .build());
     *         ctx.export("addressPrefixes", example.applyValue(getServiceTagsResult -> getServiceTagsResult.addressPrefixes()));
     *         ctx.export("ipv4Cidrs", example.applyValue(getServiceTagsResult -> getServiceTagsResult.ipv4Cidrs()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getServiceTags
     *       Arguments:
     *         location: westcentralus
     *         service: AzureKeyVault
     *         locationFilter: northeurope
     * outputs:
     *   addressPrefixes: ${example.addressPrefixes}
     *   ipv4Cidrs: ${example.ipv4Cidrs}
     * ```
     * 
     * @param argument A collection of arguments for invoking getServiceTags.
     * @return A collection of values returned by getServiceTags.
     */
    public suspend fun getServiceTags(argument: GetServiceTagsPlainArgs): GetServiceTagsResult =
        getServiceTagsResultToKotlin(getServiceTagsPlain(argument.toJava()).await())

    /**
     * @see [getServiceTags].
     * @param location The Azure Region where the Service Tags exists. This value is not used to filter the results but for specifying the region to request. For filtering by region use `location_filter` instead.  More information can be found here: [Service Tags URL parameters](https://docs.microsoft.com/rest/api/virtualnetwork/servicetags/list#uri-parameters).
     * @param locationFilter Changes the scope of the service tags. Can be any value that is also valid for `location`. If this field is empty then all address prefixes are considered instead of only location specific ones.
     * @param service The type of the service for which address prefixes will be fetched. Available service tags can be found here: [Available service tags](https://docs.microsoft.com/azure/virtual-network/service-tags-overview#available-service-tags).
     * @return A collection of values returned by getServiceTags.
     */
    public suspend fun getServiceTags(
        location: String,
        locationFilter: String? = null,
        service: String,
    ): GetServiceTagsResult {
        val argument = GetServiceTagsPlainArgs(
            location = location,
            locationFilter = locationFilter,
            service = service,
        )
        return getServiceTagsResultToKotlin(getServiceTagsPlain(argument.toJava()).await())
    }

    /**
     * @see [getServiceTags].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetServiceTagsPlainArgs].
     * @return A collection of values returned by getServiceTags.
     */
    public suspend fun getServiceTags(argument: suspend GetServiceTagsPlainArgsBuilder.() -> Unit):
        GetServiceTagsResult {
        val builder = GetServiceTagsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getServiceTagsResultToKotlin(getServiceTagsPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Subnet within a Virtual Network.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getSubnet({
     *     name: "backend",
     *     virtualNetworkName: "production",
     *     resourceGroupName: "networking",
     * });
     * export const subnetId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_subnet(name="backend",
     *     virtual_network_name="production",
     *     resource_group_name="networking")
     * pulumi.export("subnetId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetSubnet.Invoke(new()
     *     {
     *         Name = "backend",
     *         VirtualNetworkName = "production",
     *         ResourceGroupName = "networking",
     *     });
     *     return new Dictionary
     *     {
     *         ["subnetId"] = example.Apply(getSubnetResult => getSubnetResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupSubnet(ctx, &network.LookupSubnetArgs{
     * 			Name:               "backend",
     * 			VirtualNetworkName: "production",
     * 			ResourceGroupName:  "networking",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("subnetId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetSubnetArgs;
     * 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 = NetworkFunctions.getSubnet(GetSubnetArgs.builder()
     *             .name("backend")
     *             .virtualNetworkName("production")
     *             .resourceGroupName("networking")
     *             .build());
     *         ctx.export("subnetId", example.applyValue(getSubnetResult -> getSubnetResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getSubnet
     *       Arguments:
     *         name: backend
     *         virtualNetworkName: production
     *         resourceGroupName: networking
     * outputs:
     *   subnetId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getSubnet.
     * @return A collection of values returned by getSubnet.
     */
    public suspend fun getSubnet(argument: GetSubnetPlainArgs): GetSubnetResult =
        getSubnetResultToKotlin(getSubnetPlain(argument.toJava()).await())

    /**
     * @see [getSubnet].
     * @param name Specifies the name of the Subnet.
     * @param resourceGroupName Specifies the name of the resource group the Virtual Network is located in.
     * @param virtualNetworkName Specifies the name of the Virtual Network this Subnet is located within.
     * @return A collection of values returned by getSubnet.
     */
    public suspend fun getSubnet(
        name: String,
        resourceGroupName: String,
        virtualNetworkName: String,
    ): GetSubnetResult {
        val argument = GetSubnetPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            virtualNetworkName = virtualNetworkName,
        )
        return getSubnetResultToKotlin(getSubnetPlain(argument.toJava()).await())
    }

    /**
     * @see [getSubnet].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetSubnetPlainArgs].
     * @return A collection of values returned by getSubnet.
     */
    public suspend fun getSubnet(argument: suspend GetSubnetPlainArgsBuilder.() -> Unit):
        GetSubnetResult {
        val builder = GetSubnetPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSubnetResultToKotlin(getSubnetPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access the ID of a specified Traffic Manager Geographical Location within the Geographical Hierarchy.
     * ## Example Usage
     * ### World)
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getTrafficManager({
     *     name: "World",
     * });
     * export const locationCode = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_traffic_manager(name="World")
     * pulumi.export("locationCode", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetTrafficManager.Invoke(new()
     *     {
     *         Name = "World",
     *     });
     *     return new Dictionary
     *     {
     *         ["locationCode"] = example.Apply(getTrafficManagerResult => getTrafficManagerResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.GetTrafficManager(ctx, &network.GetTrafficManagerArgs{
     * 			Name: "World",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("locationCode", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetTrafficManagerArgs;
     * 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 = NetworkFunctions.getTrafficManager(GetTrafficManagerArgs.builder()
     *             .name("World")
     *             .build());
     *         ctx.export("locationCode", example.applyValue(getTrafficManagerResult -> getTrafficManagerResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getTrafficManager
     *       Arguments:
     *         name: World
     * outputs:
     *   locationCode: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getTrafficManager.
     * @return A collection of values returned by getTrafficManager.
     */
    public suspend fun getTrafficManager(argument: GetTrafficManagerPlainArgs):
        GetTrafficManagerResult =
        getTrafficManagerResultToKotlin(getTrafficManagerPlain(argument.toJava()).await())

    /**
     * @see [getTrafficManager].
     * @param name Specifies the name of the Location, for example `World`, `Europe` or `Germany`.
     * @return A collection of values returned by getTrafficManager.
     */
    public suspend fun getTrafficManager(name: String): GetTrafficManagerResult {
        val argument = GetTrafficManagerPlainArgs(
            name = name,
        )
        return getTrafficManagerResultToKotlin(getTrafficManagerPlain(argument.toJava()).await())
    }

    /**
     * @see [getTrafficManager].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetTrafficManagerPlainArgs].
     * @return A collection of values returned by getTrafficManager.
     */
    public suspend
    fun getTrafficManager(argument: suspend GetTrafficManagerPlainArgsBuilder.() -> Unit):
        GetTrafficManagerResult {
        val builder = GetTrafficManagerPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTrafficManagerResultToKotlin(getTrafficManagerPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Traffic Manager Profile.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getTrafficManagerProfile({
     *     name: "test",
     *     resourceGroupName: "test",
     * });
     * export const trafficRoutingMethod = example.then(example => example.trafficRoutingMethod);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_traffic_manager_profile(name="test",
     *     resource_group_name="test")
     * pulumi.export("trafficRoutingMethod", example.traffic_routing_method)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetTrafficManagerProfile.Invoke(new()
     *     {
     *         Name = "test",
     *         ResourceGroupName = "test",
     *     });
     *     return new Dictionary
     *     {
     *         ["trafficRoutingMethod"] = example.Apply(getTrafficManagerProfileResult => getTrafficManagerProfileResult.TrafficRoutingMethod),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupTrafficManagerProfile(ctx, &network.LookupTrafficManagerProfileArgs{
     * 			Name:              "test",
     * 			ResourceGroupName: "test",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("trafficRoutingMethod", example.TrafficRoutingMethod)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetTrafficManagerProfileArgs;
     * 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 = NetworkFunctions.getTrafficManagerProfile(GetTrafficManagerProfileArgs.builder()
     *             .name("test")
     *             .resourceGroupName("test")
     *             .build());
     *         ctx.export("trafficRoutingMethod", example.applyValue(getTrafficManagerProfileResult -> getTrafficManagerProfileResult.trafficRoutingMethod()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getTrafficManagerProfile
     *       Arguments:
     *         name: test
     *         resourceGroupName: test
     * outputs:
     *   trafficRoutingMethod: ${example.trafficRoutingMethod}
     * ```
     * 
     * @param argument A collection of arguments for invoking getTrafficManagerProfile.
     * @return A collection of values returned by getTrafficManagerProfile.
     */
    public suspend fun getTrafficManagerProfile(argument: GetTrafficManagerProfilePlainArgs):
        GetTrafficManagerProfileResult =
        getTrafficManagerProfileResultToKotlin(getTrafficManagerProfilePlain(argument.toJava()).await())

    /**
     * @see [getTrafficManagerProfile].
     * @param name Specifies the name of the Traffic Manager Profile.
     * @param resourceGroupName Specifies the name of the resource group the Traffic Manager Profile is located in.
     * @param tags A mapping of tags to assign to the resource.
     * @param trafficViewEnabled Indicates whether Traffic View is enabled for the Traffic Manager profile.
     * @return A collection of values returned by getTrafficManagerProfile.
     */
    public suspend fun getTrafficManagerProfile(
        name: String,
        resourceGroupName: String,
        tags: Map? = null,
        trafficViewEnabled: Boolean? = null,
    ): GetTrafficManagerProfileResult {
        val argument = GetTrafficManagerProfilePlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            tags = tags,
            trafficViewEnabled = trafficViewEnabled,
        )
        return getTrafficManagerProfileResultToKotlin(getTrafficManagerProfilePlain(argument.toJava()).await())
    }

    /**
     * @see [getTrafficManagerProfile].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetTrafficManagerProfilePlainArgs].
     * @return A collection of values returned by getTrafficManagerProfile.
     */
    public suspend
    fun getTrafficManagerProfile(argument: suspend GetTrafficManagerProfilePlainArgsBuilder.() -> Unit):
        GetTrafficManagerProfileResult {
        val builder = GetTrafficManagerProfilePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getTrafficManagerProfileResultToKotlin(getTrafficManagerProfilePlain(builtArgument.toJava()).await())
    }

    /**
     * Uses this data source to access information about an existing Virtual Hub.
     * ## Virtual Hub Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getVirtualHub({
     *     name: "example-hub",
     *     resourceGroupName: "example-resources",
     * });
     * export const virtualHubId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_virtual_hub(name="example-hub",
     *     resource_group_name="example-resources")
     * pulumi.export("virtualHubId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetVirtualHub.Invoke(new()
     *     {
     *         Name = "example-hub",
     *         ResourceGroupName = "example-resources",
     *     });
     *     return new Dictionary
     *     {
     *         ["virtualHubId"] = example.Apply(getVirtualHubResult => getVirtualHubResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupVirtualHub(ctx, &network.LookupVirtualHubArgs{
     * 			Name:              "example-hub",
     * 			ResourceGroupName: "example-resources",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("virtualHubId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetVirtualHubArgs;
     * 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 = NetworkFunctions.getVirtualHub(GetVirtualHubArgs.builder()
     *             .name("example-hub")
     *             .resourceGroupName("example-resources")
     *             .build());
     *         ctx.export("virtualHubId", example.applyValue(getVirtualHubResult -> getVirtualHubResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getVirtualHub
     *       Arguments:
     *         name: example-hub
     *         resourceGroupName: example-resources
     * outputs:
     *   virtualHubId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVirtualHub.
     * @return A collection of values returned by getVirtualHub.
     */
    public suspend fun getVirtualHub(argument: GetVirtualHubPlainArgs): GetVirtualHubResult =
        getVirtualHubResultToKotlin(getVirtualHubPlain(argument.toJava()).await())

    /**
     * @see [getVirtualHub].
     * @param name The name of the Virtual Hub.
     * @param resourceGroupName The Name of the Resource Group where the Virtual Hub exists.
     * @return A collection of values returned by getVirtualHub.
     */
    public suspend fun getVirtualHub(name: String, resourceGroupName: String): GetVirtualHubResult {
        val argument = GetVirtualHubPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getVirtualHubResultToKotlin(getVirtualHubPlain(argument.toJava()).await())
    }

    /**
     * @see [getVirtualHub].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVirtualHubPlainArgs].
     * @return A collection of values returned by getVirtualHub.
     */
    public suspend fun getVirtualHub(argument: suspend GetVirtualHubPlainArgsBuilder.() -> Unit):
        GetVirtualHubResult {
        val builder = GetVirtualHubPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVirtualHubResultToKotlin(getVirtualHubPlain(builtArgument.toJava()).await())
    }

    /**
     * Uses this data source to access information about an existing Virtual Hub Connection.
     * ## Virtual Hub Connection Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getVirtualHubConnection({
     *     name: "example-connection",
     *     resourceGroupName: "example-resources",
     *     virtualHubName: "example-hub-name",
     * });
     * export const virtualHubConnectionId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_virtual_hub_connection(name="example-connection",
     *     resource_group_name="example-resources",
     *     virtual_hub_name="example-hub-name")
     * pulumi.export("virtualHubConnectionId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetVirtualHubConnection.Invoke(new()
     *     {
     *         Name = "example-connection",
     *         ResourceGroupName = "example-resources",
     *         VirtualHubName = "example-hub-name",
     *     });
     *     return new Dictionary
     *     {
     *         ["virtualHubConnectionId"] = example.Apply(getVirtualHubConnectionResult => getVirtualHubConnectionResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupVirtualHubConnection(ctx, &network.LookupVirtualHubConnectionArgs{
     * 			Name:              "example-connection",
     * 			ResourceGroupName: "example-resources",
     * 			VirtualHubName:    "example-hub-name",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("virtualHubConnectionId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetVirtualHubConnectionArgs;
     * 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 = NetworkFunctions.getVirtualHubConnection(GetVirtualHubConnectionArgs.builder()
     *             .name("example-connection")
     *             .resourceGroupName("example-resources")
     *             .virtualHubName("example-hub-name")
     *             .build());
     *         ctx.export("virtualHubConnectionId", example.applyValue(getVirtualHubConnectionResult -> getVirtualHubConnectionResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getVirtualHubConnection
     *       Arguments:
     *         name: example-connection
     *         resourceGroupName: example-resources
     *         virtualHubName: example-hub-name
     * outputs:
     *   virtualHubConnectionId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVirtualHubConnection.
     * @return A collection of values returned by getVirtualHubConnection.
     */
    public suspend fun getVirtualHubConnection(argument: GetVirtualHubConnectionPlainArgs):
        GetVirtualHubConnectionResult =
        getVirtualHubConnectionResultToKotlin(getVirtualHubConnectionPlain(argument.toJava()).await())

    /**
     * @see [getVirtualHubConnection].
     * @param name The name of the Connection which should be retrieved.
     * @param resourceGroupName The Name of the Resource Group where the Virtual Hub Connection exists.
     * @param virtualHubName The name of the Virtual Hub where this Connection exists.
     * @return A collection of values returned by getVirtualHubConnection.
     */
    public suspend fun getVirtualHubConnection(
        name: String,
        resourceGroupName: String,
        virtualHubName: String,
    ): GetVirtualHubConnectionResult {
        val argument = GetVirtualHubConnectionPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            virtualHubName = virtualHubName,
        )
        return getVirtualHubConnectionResultToKotlin(getVirtualHubConnectionPlain(argument.toJava()).await())
    }

    /**
     * @see [getVirtualHubConnection].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVirtualHubConnectionPlainArgs].
     * @return A collection of values returned by getVirtualHubConnection.
     */
    public suspend
    fun getVirtualHubConnection(argument: suspend GetVirtualHubConnectionPlainArgsBuilder.() -> Unit):
        GetVirtualHubConnectionResult {
        val builder = GetVirtualHubConnectionPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVirtualHubConnectionResultToKotlin(getVirtualHubConnectionPlain(builtArgument.toJava()).await())
    }

    /**
     * Uses this data source to access information about an existing Virtual Hub Route Table.
     * ## Virtual Hub Route Table Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getVirtualHubRouteTable({
     *     name: "example-hub-route-table",
     *     resourceGroupName: "example-resources",
     *     virtualHubName: "example-hub-name",
     * });
     * export const virtualHubRouteTableId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_virtual_hub_route_table(name="example-hub-route-table",
     *     resource_group_name="example-resources",
     *     virtual_hub_name="example-hub-name")
     * pulumi.export("virtualHubRouteTableId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetVirtualHubRouteTable.Invoke(new()
     *     {
     *         Name = "example-hub-route-table",
     *         ResourceGroupName = "example-resources",
     *         VirtualHubName = "example-hub-name",
     *     });
     *     return new Dictionary
     *     {
     *         ["virtualHubRouteTableId"] = example.Apply(getVirtualHubRouteTableResult => getVirtualHubRouteTableResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupVirtualHubRouteTable(ctx, &network.LookupVirtualHubRouteTableArgs{
     * 			Name:              "example-hub-route-table",
     * 			ResourceGroupName: "example-resources",
     * 			VirtualHubName:    "example-hub-name",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("virtualHubRouteTableId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetVirtualHubRouteTableArgs;
     * 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 = NetworkFunctions.getVirtualHubRouteTable(GetVirtualHubRouteTableArgs.builder()
     *             .name("example-hub-route-table")
     *             .resourceGroupName("example-resources")
     *             .virtualHubName("example-hub-name")
     *             .build());
     *         ctx.export("virtualHubRouteTableId", example.applyValue(getVirtualHubRouteTableResult -> getVirtualHubRouteTableResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getVirtualHubRouteTable
     *       Arguments:
     *         name: example-hub-route-table
     *         resourceGroupName: example-resources
     *         virtualHubName: example-hub-name
     * outputs:
     *   virtualHubRouteTableId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVirtualHubRouteTable.
     * @return A collection of values returned by getVirtualHubRouteTable.
     */
    public suspend fun getVirtualHubRouteTable(argument: GetVirtualHubRouteTablePlainArgs):
        GetVirtualHubRouteTableResult =
        getVirtualHubRouteTableResultToKotlin(getVirtualHubRouteTablePlain(argument.toJava()).await())

    /**
     * @see [getVirtualHubRouteTable].
     * @param name The name of the Virtual Hub Route Table.
     * @param resourceGroupName The Name of the Resource Group where the Virtual Hub Route Table exists.
     * @param virtualHubName The name which should be used for Virtual Hub Route Table.
     * @return A collection of values returned by getVirtualHubRouteTable.
     */
    public suspend fun getVirtualHubRouteTable(
        name: String,
        resourceGroupName: String,
        virtualHubName: String,
    ): GetVirtualHubRouteTableResult {
        val argument = GetVirtualHubRouteTablePlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
            virtualHubName = virtualHubName,
        )
        return getVirtualHubRouteTableResultToKotlin(getVirtualHubRouteTablePlain(argument.toJava()).await())
    }

    /**
     * @see [getVirtualHubRouteTable].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVirtualHubRouteTablePlainArgs].
     * @return A collection of values returned by getVirtualHubRouteTable.
     */
    public suspend
    fun getVirtualHubRouteTable(argument: suspend GetVirtualHubRouteTablePlainArgsBuilder.() -> Unit):
        GetVirtualHubRouteTableResult {
        val builder = GetVirtualHubRouteTablePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVirtualHubRouteTableResultToKotlin(getVirtualHubRouteTablePlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Virtual Network.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getVirtualNetwork({
     *     name: "production",
     *     resourceGroupName: "networking",
     * });
     * export const virtualNetworkId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_virtual_network(name="production",
     *     resource_group_name="networking")
     * pulumi.export("virtualNetworkId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetVirtualNetwork.Invoke(new()
     *     {
     *         Name = "production",
     *         ResourceGroupName = "networking",
     *     });
     *     return new Dictionary
     *     {
     *         ["virtualNetworkId"] = example.Apply(getVirtualNetworkResult => getVirtualNetworkResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupVirtualNetwork(ctx, &network.LookupVirtualNetworkArgs{
     * 			Name:              "production",
     * 			ResourceGroupName: "networking",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("virtualNetworkId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetVirtualNetworkArgs;
     * 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 = NetworkFunctions.getVirtualNetwork(GetVirtualNetworkArgs.builder()
     *             .name("production")
     *             .resourceGroupName("networking")
     *             .build());
     *         ctx.export("virtualNetworkId", example.applyValue(getVirtualNetworkResult -> getVirtualNetworkResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getVirtualNetwork
     *       Arguments:
     *         name: production
     *         resourceGroupName: networking
     * outputs:
     *   virtualNetworkId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVirtualNetwork.
     * @return A collection of values returned by getVirtualNetwork.
     */
    public suspend fun getVirtualNetwork(argument: GetVirtualNetworkPlainArgs):
        GetVirtualNetworkResult =
        getVirtualNetworkResultToKotlin(getVirtualNetworkPlain(argument.toJava()).await())

    /**
     * @see [getVirtualNetwork].
     * @param name Specifies the name of the Virtual Network.
     * @param resourceGroupName Specifies the name of the resource group the Virtual Network is located in.
     * @return A collection of values returned by getVirtualNetwork.
     */
    public suspend fun getVirtualNetwork(name: String, resourceGroupName: String):
        GetVirtualNetworkResult {
        val argument = GetVirtualNetworkPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getVirtualNetworkResultToKotlin(getVirtualNetworkPlain(argument.toJava()).await())
    }

    /**
     * @see [getVirtualNetwork].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVirtualNetworkPlainArgs].
     * @return A collection of values returned by getVirtualNetwork.
     */
    public suspend
    fun getVirtualNetwork(argument: suspend GetVirtualNetworkPlainArgsBuilder.() -> Unit):
        GetVirtualNetworkResult {
        val builder = GetVirtualNetworkPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVirtualNetworkResultToKotlin(getVirtualNetworkPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Virtual Network Gateway.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getVirtualNetworkGateway({
     *     name: "production",
     *     resourceGroupName: "networking",
     * });
     * export const virtualNetworkGatewayId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_virtual_network_gateway(name="production",
     *     resource_group_name="networking")
     * pulumi.export("virtualNetworkGatewayId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetVirtualNetworkGateway.Invoke(new()
     *     {
     *         Name = "production",
     *         ResourceGroupName = "networking",
     *     });
     *     return new Dictionary
     *     {
     *         ["virtualNetworkGatewayId"] = example.Apply(getVirtualNetworkGatewayResult => getVirtualNetworkGatewayResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupVirtualNetworkGateway(ctx, &network.LookupVirtualNetworkGatewayArgs{
     * 			Name:              "production",
     * 			ResourceGroupName: "networking",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("virtualNetworkGatewayId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetVirtualNetworkGatewayArgs;
     * 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 = NetworkFunctions.getVirtualNetworkGateway(GetVirtualNetworkGatewayArgs.builder()
     *             .name("production")
     *             .resourceGroupName("networking")
     *             .build());
     *         ctx.export("virtualNetworkGatewayId", example.applyValue(getVirtualNetworkGatewayResult -> getVirtualNetworkGatewayResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getVirtualNetworkGateway
     *       Arguments:
     *         name: production
     *         resourceGroupName: networking
     * outputs:
     *   virtualNetworkGatewayId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVirtualNetworkGateway.
     * @return A collection of values returned by getVirtualNetworkGateway.
     */
    public suspend fun getVirtualNetworkGateway(argument: GetVirtualNetworkGatewayPlainArgs):
        GetVirtualNetworkGatewayResult =
        getVirtualNetworkGatewayResultToKotlin(getVirtualNetworkGatewayPlain(argument.toJava()).await())

    /**
     * @see [getVirtualNetworkGateway].
     * @param name Specifies the name of the Virtual Network Gateway.
     * @param resourceGroupName Specifies the name of the resource group the Virtual Network Gateway is located in.
     * @return A collection of values returned by getVirtualNetworkGateway.
     */
    public suspend fun getVirtualNetworkGateway(name: String, resourceGroupName: String):
        GetVirtualNetworkGatewayResult {
        val argument = GetVirtualNetworkGatewayPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getVirtualNetworkGatewayResultToKotlin(getVirtualNetworkGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getVirtualNetworkGateway].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVirtualNetworkGatewayPlainArgs].
     * @return A collection of values returned by getVirtualNetworkGateway.
     */
    public suspend
    fun getVirtualNetworkGateway(argument: suspend GetVirtualNetworkGatewayPlainArgsBuilder.() -> Unit):
        GetVirtualNetworkGatewayResult {
        val builder = GetVirtualNetworkGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVirtualNetworkGatewayResultToKotlin(getVirtualNetworkGatewayPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Virtual Wan.
     * @param argument A collection of arguments for invoking getVirtualWan.
     * @return A collection of values returned by getVirtualWan.
     */
    public suspend fun getVirtualWan(argument: GetVirtualWanPlainArgs): GetVirtualWanResult =
        getVirtualWanResultToKotlin(getVirtualWanPlain(argument.toJava()).await())

    /**
     * @see [getVirtualWan].
     * @param name The name of this Virtual Wan.
     * @param resourceGroupName The name of the Resource Group where the Virtual Wan exists.
     * @return A collection of values returned by getVirtualWan.
     */
    public suspend fun getVirtualWan(name: String, resourceGroupName: String): GetVirtualWanResult {
        val argument = GetVirtualWanPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getVirtualWanResultToKotlin(getVirtualWanPlain(argument.toJava()).await())
    }

    /**
     * @see [getVirtualWan].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVirtualWanPlainArgs].
     * @return A collection of values returned by getVirtualWan.
     */
    public suspend fun getVirtualWan(argument: suspend GetVirtualWanPlainArgsBuilder.() -> Unit):
        GetVirtualWanResult {
        val builder = GetVirtualWanPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVirtualWanResultToKotlin(getVirtualWanPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing VPN Gateway within a Virtual Hub.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.network.getVpnGateway({
     *     name: "existing-local-vpn_gateway",
     *     resourceGroupName: "existing-vpn_gateway",
     * });
     * export const azurermVpnGatewayId = example.then(example => example.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.network.get_vpn_gateway(name="existing-local-vpn_gateway",
     *     resource_group_name="existing-vpn_gateway")
     * pulumi.export("azurermVpnGatewayId", example.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.Network.GetVpnGateway.Invoke(new()
     *     {
     *         Name = "existing-local-vpn_gateway",
     *         ResourceGroupName = "existing-vpn_gateway",
     *     });
     *     return new Dictionary
     *     {
     *         ["azurermVpnGatewayId"] = example.Apply(getVpnGatewayResult => getVpnGatewayResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := network.LookupVpnGateway(ctx, &network.LookupVpnGatewayArgs{
     * 			Name:              "existing-local-vpn_gateway",
     * 			ResourceGroupName: "existing-vpn_gateway",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("azurermVpnGatewayId", 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.network.NetworkFunctions;
     * import com.pulumi.azure.network.inputs.GetVpnGatewayArgs;
     * 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 = NetworkFunctions.getVpnGateway(GetVpnGatewayArgs.builder()
     *             .name("existing-local-vpn_gateway")
     *             .resourceGroupName("existing-vpn_gateway")
     *             .build());
     *         ctx.export("azurermVpnGatewayId", example.applyValue(getVpnGatewayResult -> getVpnGatewayResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:network:getVpnGateway
     *       Arguments:
     *         name: existing-local-vpn_gateway
     *         resourceGroupName: existing-vpn_gateway
     * outputs:
     *   azurermVpnGatewayId: ${example.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getVpnGateway.
     * @return A collection of values returned by getVpnGateway.
     */
    public suspend fun getVpnGateway(argument: GetVpnGatewayPlainArgs): GetVpnGatewayResult =
        getVpnGatewayResultToKotlin(getVpnGatewayPlain(argument.toJava()).await())

    /**
     * @see [getVpnGateway].
     * @param name The Name of the VPN Gateway.
     * @param resourceGroupName The name of the Resource Group where the VPN Gateway exists.
     * @return A collection of values returned by getVpnGateway.
     */
    public suspend fun getVpnGateway(name: String, resourceGroupName: String): GetVpnGatewayResult {
        val argument = GetVpnGatewayPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getVpnGatewayResultToKotlin(getVpnGatewayPlain(argument.toJava()).await())
    }

    /**
     * @see [getVpnGateway].
     * @param argument Builder for [com.pulumi.azure.network.kotlin.inputs.GetVpnGatewayPlainArgs].
     * @return A collection of values returned by getVpnGateway.
     */
    public suspend fun getVpnGateway(argument: suspend GetVpnGatewayPlainArgsBuilder.() -> Unit):
        GetVpnGatewayResult {
        val builder = GetVpnGatewayPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getVpnGatewayResultToKotlin(getVpnGatewayPlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy