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

com.pulumi.azure.keyvault.kotlin.KeyvaultFunctions.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.keyvault.kotlin

import com.pulumi.azure.keyvault.KeyvaultFunctions.getAccessPolicyPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getCertificateDataPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getCertificateIssuerPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getCertificatePlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getCertificatesPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getEncryptedValuePlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getKeyPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getKeyVaultPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getManagedHardwareSecurityModulePlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getManagedHardwareSecurityModuleRoleDefinitionPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getSecretPlain
import com.pulumi.azure.keyvault.KeyvaultFunctions.getSecretsPlain
import com.pulumi.azure.keyvault.kotlin.inputs.GetAccessPolicyPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetAccessPolicyPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificateDataPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificateDataPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificateIssuerPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificateIssuerPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificatePlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificatePlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificatesPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetCertificatesPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetEncryptedValuePlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetEncryptedValuePlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetKeyPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetKeyPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetKeyVaultPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetKeyVaultPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetManagedHardwareSecurityModulePlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetManagedHardwareSecurityModulePlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetManagedHardwareSecurityModuleRoleDefinitionPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetManagedHardwareSecurityModuleRoleDefinitionPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetSecretPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetSecretPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.inputs.GetSecretsPlainArgs
import com.pulumi.azure.keyvault.kotlin.inputs.GetSecretsPlainArgsBuilder
import com.pulumi.azure.keyvault.kotlin.outputs.GetAccessPolicyResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificateDataResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificateIssuerResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificateResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificatesResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetEncryptedValueResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetKeyResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetKeyVaultResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetManagedHardwareSecurityModuleResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetManagedHardwareSecurityModuleRoleDefinitionResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetSecretResult
import com.pulumi.azure.keyvault.kotlin.outputs.GetSecretsResult
import kotlinx.coroutines.future.await
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import com.pulumi.azure.keyvault.kotlin.outputs.GetAccessPolicyResult.Companion.toKotlin as getAccessPolicyResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificateDataResult.Companion.toKotlin as getCertificateDataResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificateIssuerResult.Companion.toKotlin as getCertificateIssuerResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificateResult.Companion.toKotlin as getCertificateResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetCertificatesResult.Companion.toKotlin as getCertificatesResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetEncryptedValueResult.Companion.toKotlin as getEncryptedValueResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetKeyResult.Companion.toKotlin as getKeyResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetKeyVaultResult.Companion.toKotlin as getKeyVaultResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetManagedHardwareSecurityModuleResult.Companion.toKotlin as getManagedHardwareSecurityModuleResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetManagedHardwareSecurityModuleRoleDefinitionResult.Companion.toKotlin as getManagedHardwareSecurityModuleRoleDefinitionResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetSecretResult.Companion.toKotlin as getSecretResultToKotlin
import com.pulumi.azure.keyvault.kotlin.outputs.GetSecretsResult.Companion.toKotlin as getSecretsResultToKotlin

public object KeyvaultFunctions {
    /**
     * Use this data source to access information about the permissions from the Management Key Vault Templates.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const contributor = azure.keyvault.getAccessPolicy({
     *     name: "Key Management",
     * });
     * export const accessPolicyKeyPermissions = contributor.then(contributor => contributor.keyPermissions);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * contributor = azure.keyvault.get_access_policy(name="Key Management")
     * pulumi.export("accessPolicyKeyPermissions", contributor.key_permissions)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var contributor = Azure.KeyVault.GetAccessPolicy.Invoke(new()
     *     {
     *         Name = "Key Management",
     *     });
     *     return new Dictionary
     *     {
     *         ["accessPolicyKeyPermissions"] = contributor.Apply(getAccessPolicyResult => getAccessPolicyResult.KeyPermissions),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		contributor, err := keyvault.LookupAccessPolicy(ctx, &keyvault.LookupAccessPolicyArgs{
     * 			Name: "Key Management",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("accessPolicyKeyPermissions", contributor.KeyPermissions)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetAccessPolicyArgs;
     * 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 contributor = KeyvaultFunctions.getAccessPolicy(GetAccessPolicyArgs.builder()
     *             .name("Key Management")
     *             .build());
     *         ctx.export("accessPolicyKeyPermissions", contributor.applyValue(getAccessPolicyResult -> getAccessPolicyResult.keyPermissions()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   contributor:
     *     fn::invoke:
     *       Function: azure:keyvault:getAccessPolicy
     *       Arguments:
     *         name: Key Management
     * outputs:
     *   accessPolicyKeyPermissions: ${contributor.keyPermissions}
     * ```
     * 
     * @param argument A collection of arguments for invoking getAccessPolicy.
     * @return A collection of values returned by getAccessPolicy.
     */
    public suspend fun getAccessPolicy(argument: GetAccessPolicyPlainArgs): GetAccessPolicyResult =
        getAccessPolicyResultToKotlin(getAccessPolicyPlain(argument.toJava()).await())

    /**
     * @see [getAccessPolicy].
     * @param name Specifies the name of the Management Template. Possible values are: `Key Management`,
     * `Secret Management`, `Certificate Management`, `Key & Secret Management`, `Key & Certificate Management`,
     * `Secret & Certificate Management`,  `Key, Secret, & Certificate Management`
     * @return A collection of values returned by getAccessPolicy.
     */
    public suspend fun getAccessPolicy(name: String): GetAccessPolicyResult {
        val argument = GetAccessPolicyPlainArgs(
            name = name,
        )
        return getAccessPolicyResultToKotlin(getAccessPolicyPlain(argument.toJava()).await())
    }

    /**
     * @see [getAccessPolicy].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetAccessPolicyPlainArgs].
     * @return A collection of values returned by getAccessPolicy.
     */
    public suspend fun getAccessPolicy(argument: suspend GetAccessPolicyPlainArgsBuilder.() -> Unit):
        GetAccessPolicyResult {
        val builder = GetAccessPolicyPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAccessPolicyResultToKotlin(getAccessPolicyPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Key Vault Certificate.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getKeyVault({
     *     name: "examplekv",
     *     resourceGroupName: "some-resource-group",
     * });
     * const exampleGetCertificate = example.then(example => azure.keyvault.getCertificate({
     *     name: "secret-sauce",
     *     keyVaultId: example.id,
     * }));
     * export const certificateThumbprint = exampleGetCertificate.then(exampleGetCertificate => exampleGetCertificate.thumbprint);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_key_vault(name="examplekv",
     *     resource_group_name="some-resource-group")
     * example_get_certificate = azure.keyvault.get_certificate(name="secret-sauce",
     *     key_vault_id=example.id)
     * pulumi.export("certificateThumbprint", example_get_certificate.thumbprint)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetKeyVault.Invoke(new()
     *     {
     *         Name = "examplekv",
     *         ResourceGroupName = "some-resource-group",
     *     });
     *     var exampleGetCertificate = Azure.KeyVault.GetCertificate.Invoke(new()
     *     {
     *         Name = "secret-sauce",
     *         KeyVaultId = example.Apply(getKeyVaultResult => getKeyVaultResult.Id),
     *     });
     *     return new Dictionary
     *     {
     *         ["certificateThumbprint"] = exampleGetCertificate.Apply(getCertificateResult => getCertificateResult.Thumbprint),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupKeyVault(ctx, &keyvault.LookupKeyVaultArgs{
     * 			Name:              "examplekv",
     * 			ResourceGroupName: "some-resource-group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleGetCertificate, err := keyvault.LookupCertificate(ctx, &keyvault.LookupCertificateArgs{
     * 			Name:       "secret-sauce",
     * 			KeyVaultId: example.Id,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("certificateThumbprint", exampleGetCertificate.Thumbprint)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetKeyVaultArgs;
     * import com.pulumi.azure.keyvault.inputs.GetCertificateArgs;
     * 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 = KeyvaultFunctions.getKeyVault(GetKeyVaultArgs.builder()
     *             .name("examplekv")
     *             .resourceGroupName("some-resource-group")
     *             .build());
     *         final var exampleGetCertificate = KeyvaultFunctions.getCertificate(GetCertificateArgs.builder()
     *             .name("secret-sauce")
     *             .keyVaultId(example.applyValue(getKeyVaultResult -> getKeyVaultResult.id()))
     *             .build());
     *         ctx.export("certificateThumbprint", exampleGetCertificate.applyValue(getCertificateResult -> getCertificateResult.thumbprint()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getKeyVault
     *       Arguments:
     *         name: examplekv
     *         resourceGroupName: some-resource-group
     *   exampleGetCertificate:
     *     fn::invoke:
     *       Function: azure:keyvault:getCertificate
     *       Arguments:
     *         name: secret-sauce
     *         keyVaultId: ${example.id}
     * outputs:
     *   certificateThumbprint: ${exampleGetCertificate.thumbprint}
     * ```
     * 
     * @param argument A collection of arguments for invoking getCertificate.
     * @return A collection of values returned by getCertificate.
     */
    public suspend fun getCertificate(argument: GetCertificatePlainArgs): GetCertificateResult =
        getCertificateResultToKotlin(getCertificatePlain(argument.toJava()).await())

    /**
     * @see [getCertificate].
     * @param keyVaultId Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.
     * @param name Specifies the name of the Key Vault Certificate.
     * @param version Specifies the version of the certificate to look up.  (Defaults to latest)
     * **NOTE:** The vault must be in the same subscription as the provider. If the vault is in another subscription, you must create an aliased provider for that subscription.
     * @return A collection of values returned by getCertificate.
     */
    public suspend fun getCertificate(
        keyVaultId: String,
        name: String,
        version: String? = null,
    ): GetCertificateResult {
        val argument = GetCertificatePlainArgs(
            keyVaultId = keyVaultId,
            name = name,
            version = version,
        )
        return getCertificateResultToKotlin(getCertificatePlain(argument.toJava()).await())
    }

    /**
     * @see [getCertificate].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetCertificatePlainArgs].
     * @return A collection of values returned by getCertificate.
     */
    public suspend fun getCertificate(argument: suspend GetCertificatePlainArgsBuilder.() -> Unit):
        GetCertificateResult {
        val builder = GetCertificatePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCertificateResultToKotlin(getCertificatePlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access data stored in an existing Key Vault Certificate.
     * > **Note:** This data source uses the `GetSecret` function of the Azure API, to get the key of the certificate. Therefore you need secret/get permission
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getKeyVault({
     *     name: "examplekv",
     *     resourceGroupName: "some-resource-group",
     * });
     * const exampleGetCertificateData = example.then(example => azure.keyvault.getCertificateData({
     *     name: "secret-sauce",
     *     keyVaultId: example.id,
     * }));
     * export const examplePem = exampleGetCertificateData.then(exampleGetCertificateData => exampleGetCertificateData.pem);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_key_vault(name="examplekv",
     *     resource_group_name="some-resource-group")
     * example_get_certificate_data = azure.keyvault.get_certificate_data(name="secret-sauce",
     *     key_vault_id=example.id)
     * pulumi.export("examplePem", example_get_certificate_data.pem)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetKeyVault.Invoke(new()
     *     {
     *         Name = "examplekv",
     *         ResourceGroupName = "some-resource-group",
     *     });
     *     var exampleGetCertificateData = Azure.KeyVault.GetCertificateData.Invoke(new()
     *     {
     *         Name = "secret-sauce",
     *         KeyVaultId = example.Apply(getKeyVaultResult => getKeyVaultResult.Id),
     *     });
     *     return new Dictionary
     *     {
     *         ["examplePem"] = exampleGetCertificateData.Apply(getCertificateDataResult => getCertificateDataResult.Pem),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupKeyVault(ctx, &keyvault.LookupKeyVaultArgs{
     * 			Name:              "examplekv",
     * 			ResourceGroupName: "some-resource-group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleGetCertificateData, err := keyvault.GetCertificateData(ctx, &keyvault.GetCertificateDataArgs{
     * 			Name:       "secret-sauce",
     * 			KeyVaultId: example.Id,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("examplePem", exampleGetCertificateData.Pem)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetKeyVaultArgs;
     * import com.pulumi.azure.keyvault.inputs.GetCertificateDataArgs;
     * 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 = KeyvaultFunctions.getKeyVault(GetKeyVaultArgs.builder()
     *             .name("examplekv")
     *             .resourceGroupName("some-resource-group")
     *             .build());
     *         final var exampleGetCertificateData = KeyvaultFunctions.getCertificateData(GetCertificateDataArgs.builder()
     *             .name("secret-sauce")
     *             .keyVaultId(example.applyValue(getKeyVaultResult -> getKeyVaultResult.id()))
     *             .build());
     *         ctx.export("examplePem", exampleGetCertificateData.applyValue(getCertificateDataResult -> getCertificateDataResult.pem()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getKeyVault
     *       Arguments:
     *         name: examplekv
     *         resourceGroupName: some-resource-group
     *   exampleGetCertificateData:
     *     fn::invoke:
     *       Function: azure:keyvault:getCertificateData
     *       Arguments:
     *         name: secret-sauce
     *         keyVaultId: ${example.id}
     * outputs:
     *   examplePem: ${exampleGetCertificateData.pem}
     * ```
     * 
     * @param argument A collection of arguments for invoking getCertificateData.
     * @return A collection of values returned by getCertificateData.
     */
    public suspend fun getCertificateData(argument: GetCertificateDataPlainArgs):
        GetCertificateDataResult =
        getCertificateDataResultToKotlin(getCertificateDataPlain(argument.toJava()).await())

    /**
     * @see [getCertificateData].
     * @param keyVaultId Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.
     * @param name Specifies the name of the Key Vault Secret.
     * @param version Specifies the version of the certificate to look up.  (Defaults to latest)
     * > **NOTE:** The vault must be in the same subscription as the provider. If the vault is in another subscription, you must create an aliased provider for that subscription.
     * @return A collection of values returned by getCertificateData.
     */
    public suspend fun getCertificateData(
        keyVaultId: String,
        name: String,
        version: String? = null,
    ): GetCertificateDataResult {
        val argument = GetCertificateDataPlainArgs(
            keyVaultId = keyVaultId,
            name = name,
            version = version,
        )
        return getCertificateDataResultToKotlin(getCertificateDataPlain(argument.toJava()).await())
    }

    /**
     * @see [getCertificateData].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetCertificateDataPlainArgs].
     * @return A collection of values returned by getCertificateData.
     */
    public suspend
    fun getCertificateData(argument: suspend GetCertificateDataPlainArgsBuilder.() -> Unit):
        GetCertificateDataResult {
        val builder = GetCertificateDataPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCertificateDataResultToKotlin(getCertificateDataPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Key Vault Certificate Issuer.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getKeyVault({
     *     name: "mykeyvault",
     *     resourceGroupName: "some-resource-group",
     * });
     * const exampleGetCertificateIssuer = example.then(example => azure.keyvault.getCertificateIssuer({
     *     name: "existing",
     *     keyVaultId: example.id,
     * }));
     * export const id = exampleGetCertificateIssuer.then(exampleGetCertificateIssuer => exampleGetCertificateIssuer.id);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_key_vault(name="mykeyvault",
     *     resource_group_name="some-resource-group")
     * example_get_certificate_issuer = azure.keyvault.get_certificate_issuer(name="existing",
     *     key_vault_id=example.id)
     * pulumi.export("id", example_get_certificate_issuer.id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetKeyVault.Invoke(new()
     *     {
     *         Name = "mykeyvault",
     *         ResourceGroupName = "some-resource-group",
     *     });
     *     var exampleGetCertificateIssuer = Azure.KeyVault.GetCertificateIssuer.Invoke(new()
     *     {
     *         Name = "existing",
     *         KeyVaultId = example.Apply(getKeyVaultResult => getKeyVaultResult.Id),
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = exampleGetCertificateIssuer.Apply(getCertificateIssuerResult => getCertificateIssuerResult.Id),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupKeyVault(ctx, &keyvault.LookupKeyVaultArgs{
     * 			Name:              "mykeyvault",
     * 			ResourceGroupName: "some-resource-group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		exampleGetCertificateIssuer, err := keyvault.LookupCertificateIssuer(ctx, &keyvault.LookupCertificateIssuerArgs{
     * 			Name:       "existing",
     * 			KeyVaultId: example.Id,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", exampleGetCertificateIssuer.Id)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetKeyVaultArgs;
     * import com.pulumi.azure.keyvault.inputs.GetCertificateIssuerArgs;
     * 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 = KeyvaultFunctions.getKeyVault(GetKeyVaultArgs.builder()
     *             .name("mykeyvault")
     *             .resourceGroupName("some-resource-group")
     *             .build());
     *         final var exampleGetCertificateIssuer = KeyvaultFunctions.getCertificateIssuer(GetCertificateIssuerArgs.builder()
     *             .name("existing")
     *             .keyVaultId(example.applyValue(getKeyVaultResult -> getKeyVaultResult.id()))
     *             .build());
     *         ctx.export("id", exampleGetCertificateIssuer.applyValue(getCertificateIssuerResult -> getCertificateIssuerResult.id()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getKeyVault
     *       Arguments:
     *         name: mykeyvault
     *         resourceGroupName: some-resource-group
     *   exampleGetCertificateIssuer:
     *     fn::invoke:
     *       Function: azure:keyvault:getCertificateIssuer
     *       Arguments:
     *         name: existing
     *         keyVaultId: ${example.id}
     * outputs:
     *   id: ${exampleGetCertificateIssuer.id}
     * ```
     * 
     * @param argument A collection of arguments for invoking getCertificateIssuer.
     * @return A collection of values returned by getCertificateIssuer.
     */
    public suspend fun getCertificateIssuer(argument: GetCertificateIssuerPlainArgs):
        GetCertificateIssuerResult =
        getCertificateIssuerResultToKotlin(getCertificateIssuerPlain(argument.toJava()).await())

    /**
     * @see [getCertificateIssuer].
     * @param keyVaultId The ID of the Key Vault in which to locate the Certificate Issuer.
     * @param name The name of the Key Vault Certificate Issuer.
     * @return A collection of values returned by getCertificateIssuer.
     */
    public suspend fun getCertificateIssuer(keyVaultId: String, name: String):
        GetCertificateIssuerResult {
        val argument = GetCertificateIssuerPlainArgs(
            keyVaultId = keyVaultId,
            name = name,
        )
        return getCertificateIssuerResultToKotlin(getCertificateIssuerPlain(argument.toJava()).await())
    }

    /**
     * @see [getCertificateIssuer].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetCertificateIssuerPlainArgs].
     * @return A collection of values returned by getCertificateIssuer.
     */
    public suspend
    fun getCertificateIssuer(argument: suspend GetCertificateIssuerPlainArgsBuilder.() -> Unit):
        GetCertificateIssuerResult {
        val builder = GetCertificateIssuerPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCertificateIssuerResultToKotlin(getCertificateIssuerPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to retrieve a list of certificate names from an existing Key Vault.
     * @param argument A collection of arguments for invoking getCertificates.
     * @return A collection of values returned by getCertificates.
     */
    public suspend fun getCertificates(argument: GetCertificatesPlainArgs): GetCertificatesResult =
        getCertificatesResultToKotlin(getCertificatesPlain(argument.toJava()).await())

    /**
     * @see [getCertificates].
     * @param includePending Specifies whether to include certificates which are not completely provisioned. Defaults to true.
     * @param keyVaultId Specifies the ID of the Key Vault instance to fetch certificate names from, available on the `azure.keyvault.KeyVault` Data Source / Resource.
     * **NOTE:** The vault must be in the same subscription as the provider. If the vault is in another subscription, you must create an aliased provider for that subscription.
     * @return A collection of values returned by getCertificates.
     */
    public suspend fun getCertificates(includePending: Boolean? = null, keyVaultId: String):
        GetCertificatesResult {
        val argument = GetCertificatesPlainArgs(
            includePending = includePending,
            keyVaultId = keyVaultId,
        )
        return getCertificatesResultToKotlin(getCertificatesPlain(argument.toJava()).await())
    }

    /**
     * @see [getCertificates].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetCertificatesPlainArgs].
     * @return A collection of values returned by getCertificates.
     */
    public suspend fun getCertificates(argument: suspend GetCertificatesPlainArgsBuilder.() -> Unit):
        GetCertificatesResult {
        val builder = GetCertificatesPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCertificatesResultToKotlin(getCertificatesPlain(builtArgument.toJava()).await())
    }

    /**
     * Encrypts or Decrypts a value using a Key Vault Key.
     * @param argument A collection of arguments for invoking getEncryptedValue.
     * @return A collection of values returned by getEncryptedValue.
     */
    public suspend fun getEncryptedValue(argument: GetEncryptedValuePlainArgs):
        GetEncryptedValueResult =
        getEncryptedValueResultToKotlin(getEncryptedValuePlain(argument.toJava()).await())

    /**
     * @see [getEncryptedValue].
     * @param algorithm The Algorithm which should be used to Decrypt/Encrypt this Value. Possible values are `RSA1_5`, `RSA-OAEP` and `RSA-OAEP-256`.
     * @param encryptedData The Base64 URL Encoded Encrypted Data which should be decrypted into `plain_text_value`.
     * @param keyVaultKeyId The ID of the Key Vault Key which should be used to Decrypt/Encrypt this Value.
     * @param plainTextValue The plain-text value which should be Encrypted into `encrypted_data`.
     * > **Note:** One of either `encrypted_data` or `plain_text_value` must be specified and is used to populate the encrypted/decrypted value for the other field.
     * @return A collection of values returned by getEncryptedValue.
     */
    public suspend fun getEncryptedValue(
        algorithm: String,
        encryptedData: String? = null,
        keyVaultKeyId: String,
        plainTextValue: String? = null,
    ): GetEncryptedValueResult {
        val argument = GetEncryptedValuePlainArgs(
            algorithm = algorithm,
            encryptedData = encryptedData,
            keyVaultKeyId = keyVaultKeyId,
            plainTextValue = plainTextValue,
        )
        return getEncryptedValueResultToKotlin(getEncryptedValuePlain(argument.toJava()).await())
    }

    /**
     * @see [getEncryptedValue].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetEncryptedValuePlainArgs].
     * @return A collection of values returned by getEncryptedValue.
     */
    public suspend
    fun getEncryptedValue(argument: suspend GetEncryptedValuePlainArgsBuilder.() -> Unit):
        GetEncryptedValueResult {
        val builder = GetEncryptedValuePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEncryptedValueResultToKotlin(getEncryptedValuePlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Key Vault Key.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getKey({
     *     name: "secret-sauce",
     *     keyVaultId: existing.id,
     * });
     * export const keyType = example.then(example => example.keyType);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_key(name="secret-sauce",
     *     key_vault_id=existing["id"])
     * pulumi.export("keyType", example.key_type)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetKey.Invoke(new()
     *     {
     *         Name = "secret-sauce",
     *         KeyVaultId = existing.Id,
     *     });
     *     return new Dictionary
     *     {
     *         ["keyType"] = example.Apply(getKeyResult => getKeyResult.KeyType),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupKey(ctx, &keyvault.LookupKeyArgs{
     * 			Name:       "secret-sauce",
     * 			KeyVaultId: existing.Id,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("keyType", example.KeyType)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetKeyArgs;
     * 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 = KeyvaultFunctions.getKey(GetKeyArgs.builder()
     *             .name("secret-sauce")
     *             .keyVaultId(existing.id())
     *             .build());
     *         ctx.export("keyType", example.applyValue(getKeyResult -> getKeyResult.keyType()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getKey
     *       Arguments:
     *         name: secret-sauce
     *         keyVaultId: ${existing.id}
     * outputs:
     *   keyType: ${example.keyType}
     * ```
     * 
     * @param argument A collection of arguments for invoking getKey.
     * @return A collection of values returned by getKey.
     */
    public suspend fun getKey(argument: GetKeyPlainArgs): GetKeyResult =
        getKeyResultToKotlin(getKeyPlain(argument.toJava()).await())

    /**
     * @see [getKey].
     * @param keyVaultId Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.
     * **NOTE:** The vault must be in the same subscription as the provider. If the vault is in another subscription, you must create an aliased provider for that subscription.
     * @param name Specifies the name of the Key Vault Key.
     * @return A collection of values returned by getKey.
     */
    public suspend fun getKey(keyVaultId: String, name: String): GetKeyResult {
        val argument = GetKeyPlainArgs(
            keyVaultId = keyVaultId,
            name = name,
        )
        return getKeyResultToKotlin(getKeyPlain(argument.toJava()).await())
    }

    /**
     * @see [getKey].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetKeyPlainArgs].
     * @return A collection of values returned by getKey.
     */
    public suspend fun getKey(argument: suspend GetKeyPlainArgsBuilder.() -> Unit): GetKeyResult {
        val builder = GetKeyPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getKeyResultToKotlin(getKeyPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Key Vault.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getKeyVault({
     *     name: "mykeyvault",
     *     resourceGroupName: "some-resource-group",
     * });
     * export const vaultUri = example.then(example => example.vaultUri);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_key_vault(name="mykeyvault",
     *     resource_group_name="some-resource-group")
     * pulumi.export("vaultUri", example.vault_uri)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetKeyVault.Invoke(new()
     *     {
     *         Name = "mykeyvault",
     *         ResourceGroupName = "some-resource-group",
     *     });
     *     return new Dictionary
     *     {
     *         ["vaultUri"] = example.Apply(getKeyVaultResult => getKeyVaultResult.VaultUri),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupKeyVault(ctx, &keyvault.LookupKeyVaultArgs{
     * 			Name:              "mykeyvault",
     * 			ResourceGroupName: "some-resource-group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("vaultUri", example.VaultUri)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetKeyVaultArgs;
     * 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 = KeyvaultFunctions.getKeyVault(GetKeyVaultArgs.builder()
     *             .name("mykeyvault")
     *             .resourceGroupName("some-resource-group")
     *             .build());
     *         ctx.export("vaultUri", example.applyValue(getKeyVaultResult -> getKeyVaultResult.vaultUri()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getKeyVault
     *       Arguments:
     *         name: mykeyvault
     *         resourceGroupName: some-resource-group
     * outputs:
     *   vaultUri: ${example.vaultUri}
     * ```
     * 
     * @param argument A collection of arguments for invoking getKeyVault.
     * @return A collection of values returned by getKeyVault.
     */
    public suspend fun getKeyVault(argument: GetKeyVaultPlainArgs): GetKeyVaultResult =
        getKeyVaultResultToKotlin(getKeyVaultPlain(argument.toJava()).await())

    /**
     * @see [getKeyVault].
     * @param name Specifies the name of the Key Vault.
     * @param resourceGroupName The name of the Resource Group in which the Key Vault exists.
     * @return A collection of values returned by getKeyVault.
     */
    public suspend fun getKeyVault(name: String, resourceGroupName: String): GetKeyVaultResult {
        val argument = GetKeyVaultPlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getKeyVaultResultToKotlin(getKeyVaultPlain(argument.toJava()).await())
    }

    /**
     * @see [getKeyVault].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetKeyVaultPlainArgs].
     * @return A collection of values returned by getKeyVault.
     */
    public suspend fun getKeyVault(argument: suspend GetKeyVaultPlainArgsBuilder.() -> Unit):
        GetKeyVaultResult {
        val builder = GetKeyVaultPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getKeyVaultResultToKotlin(getKeyVaultPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Key Vault Managed Hardware Security Module.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getManagedHardwareSecurityModule({
     *     name: "mykeyvaultHsm",
     *     resourceGroupName: "some-resource-group",
     * });
     * export const hsmUri = example.then(example => example.hsmUri);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_managed_hardware_security_module(name="mykeyvaultHsm",
     *     resource_group_name="some-resource-group")
     * pulumi.export("hsmUri", example.hsm_uri)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetManagedHardwareSecurityModule.Invoke(new()
     *     {
     *         Name = "mykeyvaultHsm",
     *         ResourceGroupName = "some-resource-group",
     *     });
     *     return new Dictionary
     *     {
     *         ["hsmUri"] = example.Apply(getManagedHardwareSecurityModuleResult => getManagedHardwareSecurityModuleResult.HsmUri),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupManagedHardwareSecurityModule(ctx, &keyvault.LookupManagedHardwareSecurityModuleArgs{
     * 			Name:              "mykeyvaultHsm",
     * 			ResourceGroupName: "some-resource-group",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("hsmUri", example.HsmUri)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetManagedHardwareSecurityModuleArgs;
     * 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 = KeyvaultFunctions.getManagedHardwareSecurityModule(GetManagedHardwareSecurityModuleArgs.builder()
     *             .name("mykeyvaultHsm")
     *             .resourceGroupName("some-resource-group")
     *             .build());
     *         ctx.export("hsmUri", example.applyValue(getManagedHardwareSecurityModuleResult -> getManagedHardwareSecurityModuleResult.hsmUri()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getManagedHardwareSecurityModule
     *       Arguments:
     *         name: mykeyvaultHsm
     *         resourceGroupName: some-resource-group
     * outputs:
     *   hsmUri: ${example.hsmUri}
     * ```
     * 
     * @param argument A collection of arguments for invoking getManagedHardwareSecurityModule.
     * @return A collection of values returned by getManagedHardwareSecurityModule.
     */
    public suspend
    fun getManagedHardwareSecurityModule(argument: GetManagedHardwareSecurityModulePlainArgs):
        GetManagedHardwareSecurityModuleResult =
        getManagedHardwareSecurityModuleResultToKotlin(getManagedHardwareSecurityModulePlain(argument.toJava()).await())

    /**
     * @see [getManagedHardwareSecurityModule].
     * @param name The name of the Key Vault Managed Hardware Security Module.
     * @param resourceGroupName The name of the Resource Group in which the Key Vault Managed Hardware Security Module exists.
     * @return A collection of values returned by getManagedHardwareSecurityModule.
     */
    public suspend fun getManagedHardwareSecurityModule(name: String, resourceGroupName: String):
        GetManagedHardwareSecurityModuleResult {
        val argument = GetManagedHardwareSecurityModulePlainArgs(
            name = name,
            resourceGroupName = resourceGroupName,
        )
        return getManagedHardwareSecurityModuleResultToKotlin(getManagedHardwareSecurityModulePlain(argument.toJava()).await())
    }

    /**
     * @see [getManagedHardwareSecurityModule].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetManagedHardwareSecurityModulePlainArgs].
     * @return A collection of values returned by getManagedHardwareSecurityModule.
     */
    public suspend
    fun getManagedHardwareSecurityModule(argument: suspend GetManagedHardwareSecurityModulePlainArgsBuilder.() -> Unit):
        GetManagedHardwareSecurityModuleResult {
        val builder = GetManagedHardwareSecurityModulePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getManagedHardwareSecurityModuleResultToKotlin(getManagedHardwareSecurityModulePlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing KeyVault Role Definition.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getManagedHardwareSecurityModuleRoleDefinition({
     *     vaultBaseUrl: test.hsmUri,
     *     name: "21dbd100-6940-42c2-9190-5d6cb909625b",
     * });
     * export const id = example.then(example => example.resourceManagerId);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_managed_hardware_security_module_role_definition(vault_base_url=test["hsmUri"],
     *     name="21dbd100-6940-42c2-9190-5d6cb909625b")
     * pulumi.export("id", example.resource_manager_id)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetManagedHardwareSecurityModuleRoleDefinition.Invoke(new()
     *     {
     *         VaultBaseUrl = test.HsmUri,
     *         Name = "21dbd100-6940-42c2-9190-5d6cb909625b",
     *     });
     *     return new Dictionary
     *     {
     *         ["id"] = example.Apply(getManagedHardwareSecurityModuleRoleDefinitionResult => getManagedHardwareSecurityModuleRoleDefinitionResult.ResourceManagerId),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupManagedHardwareSecurityModuleRoleDefinition(ctx, &keyvault.LookupManagedHardwareSecurityModuleRoleDefinitionArgs{
     * 			VaultBaseUrl: pulumi.StringRef(test.HsmUri),
     * 			Name:         "21dbd100-6940-42c2-9190-5d6cb909625b",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("id", example.ResourceManagerId)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetManagedHardwareSecurityModuleRoleDefinitionArgs;
     * 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 = KeyvaultFunctions.getManagedHardwareSecurityModuleRoleDefinition(GetManagedHardwareSecurityModuleRoleDefinitionArgs.builder()
     *             .vaultBaseUrl(test.hsmUri())
     *             .name("21dbd100-6940-42c2-9190-5d6cb909625b")
     *             .build());
     *         ctx.export("id", example.applyValue(getManagedHardwareSecurityModuleRoleDefinitionResult -> getManagedHardwareSecurityModuleRoleDefinitionResult.resourceManagerId()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getManagedHardwareSecurityModuleRoleDefinition
     *       Arguments:
     *         vaultBaseUrl: ${test.hsmUri}
     *         name: 21dbd100-6940-42c2-9190-5d6cb909625b
     * outputs:
     *   id: ${example.resourceManagerId}
     * ```
     * 
     * @param argument A collection of arguments for invoking getManagedHardwareSecurityModuleRoleDefinition.
     * @return A collection of values returned by getManagedHardwareSecurityModuleRoleDefinition.
     */
    public suspend
    fun getManagedHardwareSecurityModuleRoleDefinition(argument: GetManagedHardwareSecurityModuleRoleDefinitionPlainArgs):
        GetManagedHardwareSecurityModuleRoleDefinitionResult =
        getManagedHardwareSecurityModuleRoleDefinitionResultToKotlin(getManagedHardwareSecurityModuleRoleDefinitionPlain(argument.toJava()).await())

    /**
     * @see [getManagedHardwareSecurityModuleRoleDefinition].
     * @param managedHsmId
     * @param name The name in UUID notation of this KeyVault Role Definition.
     * @param vaultBaseUrl Specify the base URL of the Managed HSM resource.
     * @return A collection of values returned by getManagedHardwareSecurityModuleRoleDefinition.
     */
    public suspend fun getManagedHardwareSecurityModuleRoleDefinition(
        managedHsmId: String? = null,
        name: String,
        vaultBaseUrl: String? = null,
    ): GetManagedHardwareSecurityModuleRoleDefinitionResult {
        val argument = GetManagedHardwareSecurityModuleRoleDefinitionPlainArgs(
            managedHsmId = managedHsmId,
            name = name,
            vaultBaseUrl = vaultBaseUrl,
        )
        return getManagedHardwareSecurityModuleRoleDefinitionResultToKotlin(getManagedHardwareSecurityModuleRoleDefinitionPlain(argument.toJava()).await())
    }

    /**
     * @see [getManagedHardwareSecurityModuleRoleDefinition].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetManagedHardwareSecurityModuleRoleDefinitionPlainArgs].
     * @return A collection of values returned by getManagedHardwareSecurityModuleRoleDefinition.
     */
    public suspend
    fun getManagedHardwareSecurityModuleRoleDefinition(argument: suspend GetManagedHardwareSecurityModuleRoleDefinitionPlainArgsBuilder.() -> Unit):
        GetManagedHardwareSecurityModuleRoleDefinitionResult {
        val builder = GetManagedHardwareSecurityModuleRoleDefinitionPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getManagedHardwareSecurityModuleRoleDefinitionResultToKotlin(getManagedHardwareSecurityModuleRoleDefinitionPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to access information about an existing Key Vault Secret.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as azure from "@pulumi/azure";
     * const example = azure.keyvault.getSecret({
     *     name: "secret-sauce",
     *     keyVaultId: existing.id,
     * });
     * export const secretValue = example.then(example => example.value);
     * ```
     * ```python
     * import pulumi
     * import pulumi_azure as azure
     * example = azure.keyvault.get_secret(name="secret-sauce",
     *     key_vault_id=existing["id"])
     * pulumi.export("secretValue", example.value)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Azure = Pulumi.Azure;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Azure.KeyVault.GetSecret.Invoke(new()
     *     {
     *         Name = "secret-sauce",
     *         KeyVaultId = existing.Id,
     *     });
     *     return new Dictionary
     *     {
     *         ["secretValue"] = example.Apply(getSecretResult => getSecretResult.Value),
     *     };
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := keyvault.LookupSecret(ctx, &keyvault.LookupSecretArgs{
     * 			Name:       "secret-sauce",
     * 			KeyVaultId: existing.Id,
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		ctx.Export("secretValue", example.Value)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.azure.keyvault.KeyvaultFunctions;
     * import com.pulumi.azure.keyvault.inputs.GetSecretArgs;
     * 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 = KeyvaultFunctions.getSecret(GetSecretArgs.builder()
     *             .name("secret-sauce")
     *             .keyVaultId(existing.id())
     *             .build());
     *         ctx.export("secretValue", example.applyValue(getSecretResult -> getSecretResult.value()));
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: azure:keyvault:getSecret
     *       Arguments:
     *         name: secret-sauce
     *         keyVaultId: ${existing.id}
     * outputs:
     *   secretValue: ${example.value}
     * ```
     * 
     * @param argument A collection of arguments for invoking getSecret.
     * @return A collection of values returned by getSecret.
     */
    public suspend fun getSecret(argument: GetSecretPlainArgs): GetSecretResult =
        getSecretResultToKotlin(getSecretPlain(argument.toJava()).await())

    /**
     * @see [getSecret].
     * @param keyVaultId Specifies the ID of the Key Vault instance to fetch secret names from, available on the `azure.keyvault.KeyVault` Data Source / Resource.
     * @param name Specifies the name of the Key Vault Secret.
     * @param version Specifies the version of the Key Vault Secret. Defaults to the current version of the Key Vault Secret.
     * **NOTE:** The vault must be in the same subscription as the provider. If the vault is in another subscription, you must create an aliased provider for that subscription.
     * @return A collection of values returned by getSecret.
     */
    public suspend fun getSecret(
        keyVaultId: String,
        name: String,
        version: String? = null,
    ): GetSecretResult {
        val argument = GetSecretPlainArgs(
            keyVaultId = keyVaultId,
            name = name,
            version = version,
        )
        return getSecretResultToKotlin(getSecretPlain(argument.toJava()).await())
    }

    /**
     * @see [getSecret].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetSecretPlainArgs].
     * @return A collection of values returned by getSecret.
     */
    public suspend fun getSecret(argument: suspend GetSecretPlainArgsBuilder.() -> Unit):
        GetSecretResult {
        val builder = GetSecretPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSecretResultToKotlin(getSecretPlain(builtArgument.toJava()).await())
    }

    /**
     * Use this data source to retrieve a list of secret names from an existing Key Vault Secret.
     * @param argument A collection of arguments for invoking getSecrets.
     * @return A collection of values returned by getSecrets.
     */
    public suspend fun getSecrets(argument: GetSecretsPlainArgs): GetSecretsResult =
        getSecretsResultToKotlin(getSecretsPlain(argument.toJava()).await())

    /**
     * @see [getSecrets].
     * @param keyVaultId Specifies the ID of the Key Vault instance to fetch secret names from, available on the `azure.keyvault.KeyVault` Data Source / Resource.
     * **NOTE:** The vault must be in the same subscription as the provider. If the vault is in another subscription, you must create an aliased provider for that subscription.
     * @return A collection of values returned by getSecrets.
     */
    public suspend fun getSecrets(keyVaultId: String): GetSecretsResult {
        val argument = GetSecretsPlainArgs(
            keyVaultId = keyVaultId,
        )
        return getSecretsResultToKotlin(getSecretsPlain(argument.toJava()).await())
    }

    /**
     * @see [getSecrets].
     * @param argument Builder for [com.pulumi.azure.keyvault.kotlin.inputs.GetSecretsPlainArgs].
     * @return A collection of values returned by getSecrets.
     */
    public suspend fun getSecrets(argument: suspend GetSecretsPlainArgsBuilder.() -> Unit):
        GetSecretsResult {
        val builder = GetSecretsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getSecretsResultToKotlin(getSecretsPlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy