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

com.pulumi.vault.identity.kotlin.IdentityFunctions.kt Maven / Gradle / Ivy

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

package com.pulumi.vault.identity.kotlin

import com.pulumi.vault.identity.IdentityFunctions.getEntityPlain
import com.pulumi.vault.identity.IdentityFunctions.getGroupPlain
import com.pulumi.vault.identity.IdentityFunctions.getOidcClientCredsPlain
import com.pulumi.vault.identity.IdentityFunctions.getOidcOpenidConfigPlain
import com.pulumi.vault.identity.IdentityFunctions.getOidcPublicKeysPlain
import com.pulumi.vault.identity.kotlin.inputs.GetEntityPlainArgs
import com.pulumi.vault.identity.kotlin.inputs.GetEntityPlainArgsBuilder
import com.pulumi.vault.identity.kotlin.inputs.GetGroupPlainArgs
import com.pulumi.vault.identity.kotlin.inputs.GetGroupPlainArgsBuilder
import com.pulumi.vault.identity.kotlin.inputs.GetOidcClientCredsPlainArgs
import com.pulumi.vault.identity.kotlin.inputs.GetOidcClientCredsPlainArgsBuilder
import com.pulumi.vault.identity.kotlin.inputs.GetOidcOpenidConfigPlainArgs
import com.pulumi.vault.identity.kotlin.inputs.GetOidcOpenidConfigPlainArgsBuilder
import com.pulumi.vault.identity.kotlin.inputs.GetOidcPublicKeysPlainArgs
import com.pulumi.vault.identity.kotlin.inputs.GetOidcPublicKeysPlainArgsBuilder
import com.pulumi.vault.identity.kotlin.outputs.GetEntityResult
import com.pulumi.vault.identity.kotlin.outputs.GetGroupResult
import com.pulumi.vault.identity.kotlin.outputs.GetOidcClientCredsResult
import com.pulumi.vault.identity.kotlin.outputs.GetOidcOpenidConfigResult
import com.pulumi.vault.identity.kotlin.outputs.GetOidcPublicKeysResult
import kotlinx.coroutines.future.await
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import com.pulumi.vault.identity.kotlin.outputs.GetEntityResult.Companion.toKotlin as getEntityResultToKotlin
import com.pulumi.vault.identity.kotlin.outputs.GetGroupResult.Companion.toKotlin as getGroupResultToKotlin
import com.pulumi.vault.identity.kotlin.outputs.GetOidcClientCredsResult.Companion.toKotlin as getOidcClientCredsResultToKotlin
import com.pulumi.vault.identity.kotlin.outputs.GetOidcOpenidConfigResult.Companion.toKotlin as getOidcOpenidConfigResultToKotlin
import com.pulumi.vault.identity.kotlin.outputs.GetOidcPublicKeysResult.Companion.toKotlin as getOidcPublicKeysResultToKotlin

public object IdentityFunctions {
    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as vault from "@pulumi/vault";
     * const entity = vault.identity.getEntity({
     *     entityName: "entity_12345",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_vault as vault
     * entity = vault.identity.get_entity(entity_name="entity_12345")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Vault = Pulumi.Vault;
     * return await Deployment.RunAsync(() =>
     * {
     *     var entity = Vault.Identity.GetEntity.Invoke(new()
     *     {
     *         EntityName = "entity_12345",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault/identity"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := identity.LookupEntity(ctx, &identity.LookupEntityArgs{
     * 			EntityName: pulumi.StringRef("entity_12345"),
     * 		}, 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.vault.identity.IdentityFunctions;
     * import com.pulumi.vault.identity.inputs.GetEntityArgs;
     * 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 entity = IdentityFunctions.getEntity(GetEntityArgs.builder()
     *             .entityName("entity_12345")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   entity:
     *     fn::invoke:
     *       Function: vault:identity:getEntity
     *       Arguments:
     *         entityName: entity_12345
     * ```
     * 
     * ## Required Vault Capabilities
     * Use of this resource requires the `update` capability on `/identity/lookup/entity`.
     * @param argument A collection of arguments for invoking getEntity.
     * @return A collection of values returned by getEntity.
     */
    public suspend fun getEntity(argument: GetEntityPlainArgs): GetEntityResult =
        getEntityResultToKotlin(getEntityPlain(argument.toJava()).await())

    /**
     * @see [getEntity].
     * @param aliasId ID of the alias.
     * @param aliasMountAccessor Accessor of the mount to which the alias belongs to.
     * This should be supplied in conjunction with `alias_name`.
     * The lookup criteria can be `entity_name`, `entity_id`, `alias_id`, or a combination of
     * `alias_name` and `alias_mount_accessor`.
     * @param aliasName Name of the alias. This should be supplied in conjunction with
     * `alias_mount_accessor`.
     * @param entityId ID of the entity.
     * @param entityName Name of the entity.
     * @param namespace The namespace of the target resource.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * @return A collection of values returned by getEntity.
     */
    public suspend fun getEntity(
        aliasId: String? = null,
        aliasMountAccessor: String? = null,
        aliasName: String? = null,
        entityId: String? = null,
        entityName: String? = null,
        namespace: String? = null,
    ): GetEntityResult {
        val argument = GetEntityPlainArgs(
            aliasId = aliasId,
            aliasMountAccessor = aliasMountAccessor,
            aliasName = aliasName,
            entityId = entityId,
            entityName = entityName,
            namespace = namespace,
        )
        return getEntityResultToKotlin(getEntityPlain(argument.toJava()).await())
    }

    /**
     * @see [getEntity].
     * @param argument Builder for [com.pulumi.vault.identity.kotlin.inputs.GetEntityPlainArgs].
     * @return A collection of values returned by getEntity.
     */
    public suspend fun getEntity(argument: suspend GetEntityPlainArgsBuilder.() -> Unit): GetEntityResult {
        val builder = GetEntityPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getEntityResultToKotlin(getEntityPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as vault from "@pulumi/vault";
     * const group = vault.identity.getGroup({
     *     groupName: "user",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_vault as vault
     * group = vault.identity.get_group(group_name="user")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Vault = Pulumi.Vault;
     * return await Deployment.RunAsync(() =>
     * {
     *     var @group = Vault.Identity.GetGroup.Invoke(new()
     *     {
     *         GroupName = "user",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault/identity"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := identity.LookupGroup(ctx, &identity.LookupGroupArgs{
     * 			GroupName: pulumi.StringRef("user"),
     * 		}, 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.vault.identity.IdentityFunctions;
     * import com.pulumi.vault.identity.inputs.GetGroupArgs;
     * 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 group = IdentityFunctions.getGroup(GetGroupArgs.builder()
     *             .groupName("user")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   group:
     *     fn::invoke:
     *       Function: vault:identity:getGroup
     *       Arguments:
     *         groupName: user
     * ```
     * 
     * ## Required Vault Capabilities
     * Use of this resource requires the `create` capability on `/identity/lookup/group`.
     * @param argument A collection of arguments for invoking getGroup.
     * @return A collection of values returned by getGroup.
     */
    public suspend fun getGroup(argument: GetGroupPlainArgs): GetGroupResult =
        getGroupResultToKotlin(getGroupPlain(argument.toJava()).await())

    /**
     * @see [getGroup].
     * @param aliasId ID of the alias.
     * @param aliasMountAccessor Accessor of the mount to which the alias belongs to.
     * This should be supplied in conjunction with `alias_name`.
     * The lookup criteria can be `group_name`, `group_id`, `alias_id`, or a combination of
     * `alias_name` and `alias_mount_accessor`.
     * @param aliasName Name of the alias. This should be supplied in conjunction with
     * `alias_mount_accessor`.
     * @param groupId ID of the group.
     * @param groupName Name of the group.
     * @param namespace The namespace of the target resource.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * @return A collection of values returned by getGroup.
     */
    public suspend fun getGroup(
        aliasId: String? = null,
        aliasMountAccessor: String? = null,
        aliasName: String? = null,
        groupId: String? = null,
        groupName: String? = null,
        namespace: String? = null,
    ): GetGroupResult {
        val argument = GetGroupPlainArgs(
            aliasId = aliasId,
            aliasMountAccessor = aliasMountAccessor,
            aliasName = aliasName,
            groupId = groupId,
            groupName = groupName,
            namespace = namespace,
        )
        return getGroupResultToKotlin(getGroupPlain(argument.toJava()).await())
    }

    /**
     * @see [getGroup].
     * @param argument Builder for [com.pulumi.vault.identity.kotlin.inputs.GetGroupPlainArgs].
     * @return A collection of values returned by getGroup.
     */
    public suspend fun getGroup(argument: suspend GetGroupPlainArgsBuilder.() -> Unit): GetGroupResult {
        val builder = GetGroupPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getGroupResultToKotlin(getGroupPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as vault from "@pulumi/vault";
     * const app = new vault.identity.OidcClient("app", {
     *     name: "application",
     *     redirectUris: [
     *         "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *         "http://127.0.0.1:8251/callback",
     *         "http://127.0.0.1:8080/callback",
     *     ],
     *     idTokenTtl: 2400,
     *     accessTokenTtl: 7200,
     * });
     * const creds = vault.identity.getOidcClientCredsOutput({
     *     name: app.name,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_vault as vault
     * app = vault.identity.OidcClient("app",
     *     name="application",
     *     redirect_uris=[
     *         "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *         "http://127.0.0.1:8251/callback",
     *         "http://127.0.0.1:8080/callback",
     *     ],
     *     id_token_ttl=2400,
     *     access_token_ttl=7200)
     * creds = vault.identity.get_oidc_client_creds_output(name=app.name)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Vault = Pulumi.Vault;
     * return await Deployment.RunAsync(() =>
     * {
     *     var app = new Vault.Identity.OidcClient("app", new()
     *     {
     *         Name = "application",
     *         RedirectUris = new[]
     *         {
     *             "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *             "http://127.0.0.1:8251/callback",
     *             "http://127.0.0.1:8080/callback",
     *         },
     *         IdTokenTtl = 2400,
     *         AccessTokenTtl = 7200,
     *     });
     *     var creds = Vault.Identity.GetOidcClientCreds.Invoke(new()
     *     {
     *         Name = app.Name,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault/identity"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		app, err := identity.NewOidcClient(ctx, "app", &identity.OidcClientArgs{
     * 			Name: pulumi.String("application"),
     * 			RedirectUris: pulumi.StringArray{
     * 				pulumi.String("http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback"),
     * 				pulumi.String("http://127.0.0.1:8251/callback"),
     * 				pulumi.String("http://127.0.0.1:8080/callback"),
     * 			},
     * 			IdTokenTtl:     pulumi.Int(2400),
     * 			AccessTokenTtl: pulumi.Int(7200),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_ = identity.GetOidcClientCredsOutput(ctx, identity.GetOidcClientCredsOutputArgs{
     * 			Name: app.Name,
     * 		}, nil)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.vault.identity.OidcClient;
     * import com.pulumi.vault.identity.OidcClientArgs;
     * import com.pulumi.vault.identity.IdentityFunctions;
     * import com.pulumi.vault.identity.inputs.GetOidcClientCredsArgs;
     * 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 app = new OidcClient("app", OidcClientArgs.builder()
     *             .name("application")
     *             .redirectUris(
     *                 "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *                 "http://127.0.0.1:8251/callback",
     *                 "http://127.0.0.1:8080/callback")
     *             .idTokenTtl(2400)
     *             .accessTokenTtl(7200)
     *             .build());
     *         final var creds = IdentityFunctions.getOidcClientCreds(GetOidcClientCredsArgs.builder()
     *             .name(app.name())
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   app:
     *     type: vault:identity:OidcClient
     *     properties:
     *       name: application
     *       redirectUris:
     *         - http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback
     *         - http://127.0.0.1:8251/callback
     *         - http://127.0.0.1:8080/callback
     *       idTokenTtl: 2400
     *       accessTokenTtl: 7200
     * variables:
     *   creds:
     *     fn::invoke:
     *       Function: vault:identity:getOidcClientCreds
     *       Arguments:
     *         name: ${app.name}
     * ```
     * 
     * @param argument A collection of arguments for invoking getOidcClientCreds.
     * @return A collection of values returned by getOidcClientCreds.
     */
    public suspend fun getOidcClientCreds(argument: GetOidcClientCredsPlainArgs): GetOidcClientCredsResult =
        getOidcClientCredsResultToKotlin(getOidcClientCredsPlain(argument.toJava()).await())

    /**
     * @see [getOidcClientCreds].
     * @param name The name of the OIDC Client in Vault.
     * @param namespace The namespace of the target resource.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * @return A collection of values returned by getOidcClientCreds.
     */
    public suspend fun getOidcClientCreds(name: String, namespace: String? = null): GetOidcClientCredsResult {
        val argument = GetOidcClientCredsPlainArgs(
            name = name,
            namespace = namespace,
        )
        return getOidcClientCredsResultToKotlin(getOidcClientCredsPlain(argument.toJava()).await())
    }

    /**
     * @see [getOidcClientCreds].
     * @param argument Builder for [com.pulumi.vault.identity.kotlin.inputs.GetOidcClientCredsPlainArgs].
     * @return A collection of values returned by getOidcClientCreds.
     */
    public suspend fun getOidcClientCreds(argument: suspend GetOidcClientCredsPlainArgsBuilder.() -> Unit): GetOidcClientCredsResult {
        val builder = GetOidcClientCredsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getOidcClientCredsResultToKotlin(getOidcClientCredsPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as vault from "@pulumi/vault";
     * const key = new vault.identity.OidcKey("key", {
     *     name: "key",
     *     allowedClientIds: ["*"],
     *     rotationPeriod: 3600,
     *     verificationTtl: 3600,
     * });
     * const app = new vault.identity.OidcClient("app", {
     *     name: "application",
     *     key: key.name,
     *     redirectUris: [
     *         "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *         "http://127.0.0.1:8251/callback",
     *         "http://127.0.0.1:8080/callback",
     *     ],
     *     idTokenTtl: 2400,
     *     accessTokenTtl: 7200,
     * });
     * const provider = new vault.identity.OidcProvider("provider", {
     *     name: "provider",
     *     allowedClientIds: [test.clientId],
     * });
     * const config = vault.identity.getOidcOpenidConfigOutput({
     *     name: provider.name,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_vault as vault
     * key = vault.identity.OidcKey("key",
     *     name="key",
     *     allowed_client_ids=["*"],
     *     rotation_period=3600,
     *     verification_ttl=3600)
     * app = vault.identity.OidcClient("app",
     *     name="application",
     *     key=key.name,
     *     redirect_uris=[
     *         "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *         "http://127.0.0.1:8251/callback",
     *         "http://127.0.0.1:8080/callback",
     *     ],
     *     id_token_ttl=2400,
     *     access_token_ttl=7200)
     * provider = vault.identity.OidcProvider("provider",
     *     name="provider",
     *     allowed_client_ids=[test["clientId"]])
     * config = vault.identity.get_oidc_openid_config_output(name=provider.name)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Vault = Pulumi.Vault;
     * return await Deployment.RunAsync(() =>
     * {
     *     var key = new Vault.Identity.OidcKey("key", new()
     *     {
     *         Name = "key",
     *         AllowedClientIds = new[]
     *         {
     *             "*",
     *         },
     *         RotationPeriod = 3600,
     *         VerificationTtl = 3600,
     *     });
     *     var app = new Vault.Identity.OidcClient("app", new()
     *     {
     *         Name = "application",
     *         Key = key.Name,
     *         RedirectUris = new[]
     *         {
     *             "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *             "http://127.0.0.1:8251/callback",
     *             "http://127.0.0.1:8080/callback",
     *         },
     *         IdTokenTtl = 2400,
     *         AccessTokenTtl = 7200,
     *     });
     *     var provider = new Vault.Identity.OidcProvider("provider", new()
     *     {
     *         Name = "provider",
     *         AllowedClientIds = new[]
     *         {
     *             test.ClientId,
     *         },
     *     });
     *     var config = Vault.Identity.GetOidcOpenidConfig.Invoke(new()
     *     {
     *         Name = provider.Name,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault/identity"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		key, err := identity.NewOidcKey(ctx, "key", &identity.OidcKeyArgs{
     * 			Name: pulumi.String("key"),
     * 			AllowedClientIds: pulumi.StringArray{
     * 				pulumi.String("*"),
     * 			},
     * 			RotationPeriod:  pulumi.Int(3600),
     * 			VerificationTtl: pulumi.Int(3600),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_, err = identity.NewOidcClient(ctx, "app", &identity.OidcClientArgs{
     * 			Name: pulumi.String("application"),
     * 			Key:  key.Name,
     * 			RedirectUris: pulumi.StringArray{
     * 				pulumi.String("http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback"),
     * 				pulumi.String("http://127.0.0.1:8251/callback"),
     * 				pulumi.String("http://127.0.0.1:8080/callback"),
     * 			},
     * 			IdTokenTtl:     pulumi.Int(2400),
     * 			AccessTokenTtl: pulumi.Int(7200),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		provider, err := identity.NewOidcProvider(ctx, "provider", &identity.OidcProviderArgs{
     * 			Name: pulumi.String("provider"),
     * 			AllowedClientIds: pulumi.StringArray{
     * 				test.ClientId,
     * 			},
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_ = identity.GetOidcOpenidConfigOutput(ctx, identity.GetOidcOpenidConfigOutputArgs{
     * 			Name: provider.Name,
     * 		}, nil)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.vault.identity.OidcKey;
     * import com.pulumi.vault.identity.OidcKeyArgs;
     * import com.pulumi.vault.identity.OidcClient;
     * import com.pulumi.vault.identity.OidcClientArgs;
     * import com.pulumi.vault.identity.OidcProvider;
     * import com.pulumi.vault.identity.OidcProviderArgs;
     * import com.pulumi.vault.identity.IdentityFunctions;
     * import com.pulumi.vault.identity.inputs.GetOidcOpenidConfigArgs;
     * 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 key = new OidcKey("key", OidcKeyArgs.builder()
     *             .name("key")
     *             .allowedClientIds("*")
     *             .rotationPeriod(3600)
     *             .verificationTtl(3600)
     *             .build());
     *         var app = new OidcClient("app", OidcClientArgs.builder()
     *             .name("application")
     *             .key(key.name())
     *             .redirectUris(
     *                 "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *                 "http://127.0.0.1:8251/callback",
     *                 "http://127.0.0.1:8080/callback")
     *             .idTokenTtl(2400)
     *             .accessTokenTtl(7200)
     *             .build());
     *         var provider = new OidcProvider("provider", OidcProviderArgs.builder()
     *             .name("provider")
     *             .allowedClientIds(test.clientId())
     *             .build());
     *         final var config = IdentityFunctions.getOidcOpenidConfig(GetOidcOpenidConfigArgs.builder()
     *             .name(provider.name())
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   key:
     *     type: vault:identity:OidcKey
     *     properties:
     *       name: key
     *       allowedClientIds:
     *         - '*'
     *       rotationPeriod: 3600
     *       verificationTtl: 3600
     *   app:
     *     type: vault:identity:OidcClient
     *     properties:
     *       name: application
     *       key: ${key.name}
     *       redirectUris:
     *         - http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback
     *         - http://127.0.0.1:8251/callback
     *         - http://127.0.0.1:8080/callback
     *       idTokenTtl: 2400
     *       accessTokenTtl: 7200
     *   provider:
     *     type: vault:identity:OidcProvider
     *     properties:
     *       name: provider
     *       allowedClientIds:
     *         - ${test.clientId}
     * variables:
     *   config:
     *     fn::invoke:
     *       Function: vault:identity:getOidcOpenidConfig
     *       Arguments:
     *         name: ${provider.name}
     * ```
     * 
     * @param argument A collection of arguments for invoking getOidcOpenidConfig.
     * @return A collection of values returned by getOidcOpenidConfig.
     */
    public suspend fun getOidcOpenidConfig(argument: GetOidcOpenidConfigPlainArgs): GetOidcOpenidConfigResult =
        getOidcOpenidConfigResultToKotlin(getOidcOpenidConfigPlain(argument.toJava()).await())

    /**
     * @see [getOidcOpenidConfig].
     * @param name The name of the OIDC Provider in Vault.
     * @param namespace The namespace of the target resource.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * @return A collection of values returned by getOidcOpenidConfig.
     */
    public suspend fun getOidcOpenidConfig(name: String, namespace: String? = null): GetOidcOpenidConfigResult {
        val argument = GetOidcOpenidConfigPlainArgs(
            name = name,
            namespace = namespace,
        )
        return getOidcOpenidConfigResultToKotlin(getOidcOpenidConfigPlain(argument.toJava()).await())
    }

    /**
     * @see [getOidcOpenidConfig].
     * @param argument Builder for [com.pulumi.vault.identity.kotlin.inputs.GetOidcOpenidConfigPlainArgs].
     * @return A collection of values returned by getOidcOpenidConfig.
     */
    public suspend fun getOidcOpenidConfig(argument: suspend GetOidcOpenidConfigPlainArgsBuilder.() -> Unit): GetOidcOpenidConfigResult {
        val builder = GetOidcOpenidConfigPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getOidcOpenidConfigResultToKotlin(getOidcOpenidConfigPlain(builtArgument.toJava()).await())
    }

    /**
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as vault from "@pulumi/vault";
     * const key = new vault.identity.OidcKey("key", {
     *     name: "key",
     *     allowedClientIds: ["*"],
     *     rotationPeriod: 3600,
     *     verificationTtl: 3600,
     * });
     * const app = new vault.identity.OidcClient("app", {
     *     name: "application",
     *     key: key.name,
     *     redirectUris: [
     *         "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *         "http://127.0.0.1:8251/callback",
     *         "http://127.0.0.1:8080/callback",
     *     ],
     *     idTokenTtl: 2400,
     *     accessTokenTtl: 7200,
     * });
     * const provider = new vault.identity.OidcProvider("provider", {
     *     name: "provider",
     *     allowedClientIds: [test.clientId],
     * });
     * const publicKeys = vault.identity.getOidcPublicKeysOutput({
     *     name: provider.name,
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_vault as vault
     * key = vault.identity.OidcKey("key",
     *     name="key",
     *     allowed_client_ids=["*"],
     *     rotation_period=3600,
     *     verification_ttl=3600)
     * app = vault.identity.OidcClient("app",
     *     name="application",
     *     key=key.name,
     *     redirect_uris=[
     *         "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *         "http://127.0.0.1:8251/callback",
     *         "http://127.0.0.1:8080/callback",
     *     ],
     *     id_token_ttl=2400,
     *     access_token_ttl=7200)
     * provider = vault.identity.OidcProvider("provider",
     *     name="provider",
     *     allowed_client_ids=[test["clientId"]])
     * public_keys = vault.identity.get_oidc_public_keys_output(name=provider.name)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Vault = Pulumi.Vault;
     * return await Deployment.RunAsync(() =>
     * {
     *     var key = new Vault.Identity.OidcKey("key", new()
     *     {
     *         Name = "key",
     *         AllowedClientIds = new[]
     *         {
     *             "*",
     *         },
     *         RotationPeriod = 3600,
     *         VerificationTtl = 3600,
     *     });
     *     var app = new Vault.Identity.OidcClient("app", new()
     *     {
     *         Name = "application",
     *         Key = key.Name,
     *         RedirectUris = new[]
     *         {
     *             "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *             "http://127.0.0.1:8251/callback",
     *             "http://127.0.0.1:8080/callback",
     *         },
     *         IdTokenTtl = 2400,
     *         AccessTokenTtl = 7200,
     *     });
     *     var provider = new Vault.Identity.OidcProvider("provider", new()
     *     {
     *         Name = "provider",
     *         AllowedClientIds = new[]
     *         {
     *             test.ClientId,
     *         },
     *     });
     *     var publicKeys = Vault.Identity.GetOidcPublicKeys.Invoke(new()
     *     {
     *         Name = provider.Name,
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault/identity"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		key, err := identity.NewOidcKey(ctx, "key", &identity.OidcKeyArgs{
     * 			Name: pulumi.String("key"),
     * 			AllowedClientIds: pulumi.StringArray{
     * 				pulumi.String("*"),
     * 			},
     * 			RotationPeriod:  pulumi.Int(3600),
     * 			VerificationTtl: pulumi.Int(3600),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_, err = identity.NewOidcClient(ctx, "app", &identity.OidcClientArgs{
     * 			Name: pulumi.String("application"),
     * 			Key:  key.Name,
     * 			RedirectUris: pulumi.StringArray{
     * 				pulumi.String("http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback"),
     * 				pulumi.String("http://127.0.0.1:8251/callback"),
     * 				pulumi.String("http://127.0.0.1:8080/callback"),
     * 			},
     * 			IdTokenTtl:     pulumi.Int(2400),
     * 			AccessTokenTtl: pulumi.Int(7200),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		provider, err := identity.NewOidcProvider(ctx, "provider", &identity.OidcProviderArgs{
     * 			Name: pulumi.String("provider"),
     * 			AllowedClientIds: pulumi.StringArray{
     * 				test.ClientId,
     * 			},
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_ = identity.GetOidcPublicKeysOutput(ctx, identity.GetOidcPublicKeysOutputArgs{
     * 			Name: provider.Name,
     * 		}, nil)
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.vault.identity.OidcKey;
     * import com.pulumi.vault.identity.OidcKeyArgs;
     * import com.pulumi.vault.identity.OidcClient;
     * import com.pulumi.vault.identity.OidcClientArgs;
     * import com.pulumi.vault.identity.OidcProvider;
     * import com.pulumi.vault.identity.OidcProviderArgs;
     * import com.pulumi.vault.identity.IdentityFunctions;
     * import com.pulumi.vault.identity.inputs.GetOidcPublicKeysArgs;
     * 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 key = new OidcKey("key", OidcKeyArgs.builder()
     *             .name("key")
     *             .allowedClientIds("*")
     *             .rotationPeriod(3600)
     *             .verificationTtl(3600)
     *             .build());
     *         var app = new OidcClient("app", OidcClientArgs.builder()
     *             .name("application")
     *             .key(key.name())
     *             .redirectUris(
     *                 "http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback",
     *                 "http://127.0.0.1:8251/callback",
     *                 "http://127.0.0.1:8080/callback")
     *             .idTokenTtl(2400)
     *             .accessTokenTtl(7200)
     *             .build());
     *         var provider = new OidcProvider("provider", OidcProviderArgs.builder()
     *             .name("provider")
     *             .allowedClientIds(test.clientId())
     *             .build());
     *         final var publicKeys = IdentityFunctions.getOidcPublicKeys(GetOidcPublicKeysArgs.builder()
     *             .name(provider.name())
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   key:
     *     type: vault:identity:OidcKey
     *     properties:
     *       name: key
     *       allowedClientIds:
     *         - '*'
     *       rotationPeriod: 3600
     *       verificationTtl: 3600
     *   app:
     *     type: vault:identity:OidcClient
     *     properties:
     *       name: application
     *       key: ${key.name}
     *       redirectUris:
     *         - http://127.0.0.1:9200/v1/auth-methods/oidc:authenticate:callback
     *         - http://127.0.0.1:8251/callback
     *         - http://127.0.0.1:8080/callback
     *       idTokenTtl: 2400
     *       accessTokenTtl: 7200
     *   provider:
     *     type: vault:identity:OidcProvider
     *     properties:
     *       name: provider
     *       allowedClientIds:
     *         - ${test.clientId}
     * variables:
     *   publicKeys:
     *     fn::invoke:
     *       Function: vault:identity:getOidcPublicKeys
     *       Arguments:
     *         name: ${provider.name}
     * ```
     * 
     * @param argument A collection of arguments for invoking getOidcPublicKeys.
     * @return A collection of values returned by getOidcPublicKeys.
     */
    public suspend fun getOidcPublicKeys(argument: GetOidcPublicKeysPlainArgs): GetOidcPublicKeysResult =
        getOidcPublicKeysResultToKotlin(getOidcPublicKeysPlain(argument.toJava()).await())

    /**
     * @see [getOidcPublicKeys].
     * @param name The name of the OIDC Provider in Vault.
     * @param namespace The namespace of the target resource.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * @return A collection of values returned by getOidcPublicKeys.
     */
    public suspend fun getOidcPublicKeys(name: String, namespace: String? = null): GetOidcPublicKeysResult {
        val argument = GetOidcPublicKeysPlainArgs(
            name = name,
            namespace = namespace,
        )
        return getOidcPublicKeysResultToKotlin(getOidcPublicKeysPlain(argument.toJava()).await())
    }

    /**
     * @see [getOidcPublicKeys].
     * @param argument Builder for [com.pulumi.vault.identity.kotlin.inputs.GetOidcPublicKeysPlainArgs].
     * @return A collection of values returned by getOidcPublicKeys.
     */
    public suspend fun getOidcPublicKeys(argument: suspend GetOidcPublicKeysPlainArgsBuilder.() -> Unit): GetOidcPublicKeysResult {
        val builder = GetOidcPublicKeysPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getOidcPublicKeysResultToKotlin(getOidcPublicKeysPlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy