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

com.pulumi.gcp.netapp.kotlin.ActiveDirectoryArgs.kt Maven / Gradle / Ivy

Go to download

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

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

package com.pulumi.gcp.netapp.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.netapp.ActiveDirectoryArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * ActiveDirectory is the public representation of the active directory config.
 * To get more information about activeDirectory, see:
 * * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.activeDirectories)
 * * How-to Guides
 *     * [Official Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/active-directory/about-ad)
 * ## Example Usage
 * ### Netapp Active Directory Full
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const testActiveDirectoryFull = new gcp.netapp.ActiveDirectory("test_active_directory_full", {
 *     name: "test-active-directory-full",
 *     location: "us-central1",
 *     domain: "ad.internal",
 *     dns: "172.30.64.3",
 *     netBiosPrefix: "smbserver",
 *     username: "user",
 *     password: "pass",
 *     aesEncryption: false,
 *     backupOperators: [
 *         "test1",
 *         "test2",
 *     ],
 *     description: "ActiveDirectory is the public representation of the active directory config.",
 *     encryptDcConnections: false,
 *     kdcHostname: "hostname",
 *     kdcIp: "10.10.0.11",
 *     labels: {
 *         foo: "bar",
 *     },
 *     ldapSigning: false,
 *     nfsUsersWithLdap: false,
 *     organizationalUnit: "CN=Computers",
 *     securityOperators: [
 *         "test1",
 *         "test2",
 *     ],
 *     site: "test-site",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * test_active_directory_full = gcp.netapp.ActiveDirectory("test_active_directory_full",
 *     name="test-active-directory-full",
 *     location="us-central1",
 *     domain="ad.internal",
 *     dns="172.30.64.3",
 *     net_bios_prefix="smbserver",
 *     username="user",
 *     password="pass",
 *     aes_encryption=False,
 *     backup_operators=[
 *         "test1",
 *         "test2",
 *     ],
 *     description="ActiveDirectory is the public representation of the active directory config.",
 *     encrypt_dc_connections=False,
 *     kdc_hostname="hostname",
 *     kdc_ip="10.10.0.11",
 *     labels={
 *         "foo": "bar",
 *     },
 *     ldap_signing=False,
 *     nfs_users_with_ldap=False,
 *     organizational_unit="CN=Computers",
 *     security_operators=[
 *         "test1",
 *         "test2",
 *     ],
 *     site="test-site")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var testActiveDirectoryFull = new Gcp.Netapp.ActiveDirectory("test_active_directory_full", new()
 *     {
 *         Name = "test-active-directory-full",
 *         Location = "us-central1",
 *         Domain = "ad.internal",
 *         Dns = "172.30.64.3",
 *         NetBiosPrefix = "smbserver",
 *         Username = "user",
 *         Password = "pass",
 *         AesEncryption = false,
 *         BackupOperators = new[]
 *         {
 *             "test1",
 *             "test2",
 *         },
 *         Description = "ActiveDirectory is the public representation of the active directory config.",
 *         EncryptDcConnections = false,
 *         KdcHostname = "hostname",
 *         KdcIp = "10.10.0.11",
 *         Labels =
 *         {
 *             { "foo", "bar" },
 *         },
 *         LdapSigning = false,
 *         NfsUsersWithLdap = false,
 *         OrganizationalUnit = "CN=Computers",
 *         SecurityOperators = new[]
 *         {
 *             "test1",
 *             "test2",
 *         },
 *         Site = "test-site",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/netapp"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := netapp.NewActiveDirectory(ctx, "test_active_directory_full", &netapp.ActiveDirectoryArgs{
 * 			Name:          pulumi.String("test-active-directory-full"),
 * 			Location:      pulumi.String("us-central1"),
 * 			Domain:        pulumi.String("ad.internal"),
 * 			Dns:           pulumi.String("172.30.64.3"),
 * 			NetBiosPrefix: pulumi.String("smbserver"),
 * 			Username:      pulumi.String("user"),
 * 			Password:      pulumi.String("pass"),
 * 			AesEncryption: pulumi.Bool(false),
 * 			BackupOperators: pulumi.StringArray{
 * 				pulumi.String("test1"),
 * 				pulumi.String("test2"),
 * 			},
 * 			Description:          pulumi.String("ActiveDirectory is the public representation of the active directory config."),
 * 			EncryptDcConnections: pulumi.Bool(false),
 * 			KdcHostname:          pulumi.String("hostname"),
 * 			KdcIp:                pulumi.String("10.10.0.11"),
 * 			Labels: pulumi.StringMap{
 * 				"foo": pulumi.String("bar"),
 * 			},
 * 			LdapSigning:        pulumi.Bool(false),
 * 			NfsUsersWithLdap:   pulumi.Bool(false),
 * 			OrganizationalUnit: pulumi.String("CN=Computers"),
 * 			SecurityOperators: pulumi.StringArray{
 * 				pulumi.String("test1"),
 * 				pulumi.String("test2"),
 * 			},
 * 			Site: pulumi.String("test-site"),
 * 		})
 * 		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.gcp.netapp.ActiveDirectory;
 * import com.pulumi.gcp.netapp.ActiveDirectoryArgs;
 * 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 testActiveDirectoryFull = new ActiveDirectory("testActiveDirectoryFull", ActiveDirectoryArgs.builder()
 *             .name("test-active-directory-full")
 *             .location("us-central1")
 *             .domain("ad.internal")
 *             .dns("172.30.64.3")
 *             .netBiosPrefix("smbserver")
 *             .username("user")
 *             .password("pass")
 *             .aesEncryption(false)
 *             .backupOperators(
 *                 "test1",
 *                 "test2")
 *             .description("ActiveDirectory is the public representation of the active directory config.")
 *             .encryptDcConnections(false)
 *             .kdcHostname("hostname")
 *             .kdcIp("10.10.0.11")
 *             .labels(Map.of("foo", "bar"))
 *             .ldapSigning(false)
 *             .nfsUsersWithLdap(false)
 *             .organizationalUnit("CN=Computers")
 *             .securityOperators(
 *                 "test1",
 *                 "test2")
 *             .site("test-site")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   testActiveDirectoryFull:
 *     type: gcp:netapp:ActiveDirectory
 *     name: test_active_directory_full
 *     properties:
 *       name: test-active-directory-full
 *       location: us-central1
 *       domain: ad.internal
 *       dns: 172.30.64.3
 *       netBiosPrefix: smbserver
 *       username: user
 *       password: pass
 *       aesEncryption: false
 *       backupOperators:
 *         - test1
 *         - test2
 *       description: ActiveDirectory is the public representation of the active directory config.
 *       encryptDcConnections: false
 *       kdcHostname: hostname
 *       kdcIp: 10.10.0.11
 *       labels:
 *         foo: bar
 *       ldapSigning: false
 *       nfsUsersWithLdap: false
 *       organizationalUnit: CN=Computers
 *       securityOperators:
 *         - test1
 *         - test2
 *       site: test-site
 * ```
 * 
 * ## Import
 * activeDirectory can be imported using any of these accepted formats:
 * * `projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}`
 * * `{{project}}/{{location}}/{{name}}`
 * * `{{location}}/{{name}}`
 * When using the `pulumi import` command, activeDirectory can be imported using one of the formats above. For example:
 * ```sh
 * $ pulumi import gcp:netapp/activeDirectory:ActiveDirectory default projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:netapp/activeDirectory:ActiveDirectory default {{project}}/{{location}}/{{name}}
 * ```
 * ```sh
 * $ pulumi import gcp:netapp/activeDirectory:ActiveDirectory default {{location}}/{{name}}
 * ```
 * @property aesEncryption Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.
 * @property backupOperators Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
 * @property description An optional description of this resource.
 * @property dns Comma separated list of DNS server IP addresses for the Active Directory domain.
 * @property domain Fully qualified domain name for the Active Directory domain.
 * @property encryptDcConnections If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.
 * @property kdcHostname Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only requried for volumes using kerberized NFSv4.1
 * @property kdcIp IP address of the Active Directory server used as Kerberos Key Distribution Center.
 * @property labels Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
 * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
 * Please refer to the field `effective_labels` for all of the labels present on the resource.
 * @property ldapSigning Specifies whether or not the LDAP traffic needs to be signed.
 * @property location Name of the region for the policy to apply to.
 * @property name The resource name of the Active Directory pool. Needs to be unique per location.
 * - - -
 * @property netBiosPrefix NetBIOS name prefix of the server to be created.
 * A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format:
 * `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`
 * @property nfsUsersWithLdap Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes.
 * This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).
 * @property organizationalUnit Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes.
 * Defaults to `CN=Computers` if left empty.
 * @property password
 * @property project The ID of the project in which the resource belongs.
 * If it is not provided, the provider project is used.
 * @property securityOperators Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
 * @property site Specifies an Active Directory site to manage domain controller selection.
 * Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.
 * @property username Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.
 */
public data class ActiveDirectoryArgs(
    public val aesEncryption: Output? = null,
    public val backupOperators: Output>? = null,
    public val description: Output? = null,
    public val dns: Output? = null,
    public val domain: Output? = null,
    public val encryptDcConnections: Output? = null,
    public val kdcHostname: Output? = null,
    public val kdcIp: Output? = null,
    public val labels: Output>? = null,
    public val ldapSigning: Output? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val netBiosPrefix: Output? = null,
    public val nfsUsersWithLdap: Output? = null,
    public val organizationalUnit: Output? = null,
    public val password: Output? = null,
    public val project: Output? = null,
    public val securityOperators: Output>? = null,
    public val site: Output? = null,
    public val username: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.netapp.ActiveDirectoryArgs =
        com.pulumi.gcp.netapp.ActiveDirectoryArgs.builder()
            .aesEncryption(aesEncryption?.applyValue({ args0 -> args0 }))
            .backupOperators(backupOperators?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .dns(dns?.applyValue({ args0 -> args0 }))
            .domain(domain?.applyValue({ args0 -> args0 }))
            .encryptDcConnections(encryptDcConnections?.applyValue({ args0 -> args0 }))
            .kdcHostname(kdcHostname?.applyValue({ args0 -> args0 }))
            .kdcIp(kdcIp?.applyValue({ args0 -> args0 }))
            .labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .ldapSigning(ldapSigning?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .netBiosPrefix(netBiosPrefix?.applyValue({ args0 -> args0 }))
            .nfsUsersWithLdap(nfsUsersWithLdap?.applyValue({ args0 -> args0 }))
            .organizationalUnit(organizationalUnit?.applyValue({ args0 -> args0 }))
            .password(password?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .securityOperators(securityOperators?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .site(site?.applyValue({ args0 -> args0 }))
            .username(username?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ActiveDirectoryArgs].
 */
@PulumiTagMarker
public class ActiveDirectoryArgsBuilder internal constructor() {
    private var aesEncryption: Output? = null

    private var backupOperators: Output>? = null

    private var description: Output? = null

    private var dns: Output? = null

    private var domain: Output? = null

    private var encryptDcConnections: Output? = null

    private var kdcHostname: Output? = null

    private var kdcIp: Output? = null

    private var labels: Output>? = null

    private var ldapSigning: Output? = null

    private var location: Output? = null

    private var name: Output? = null

    private var netBiosPrefix: Output? = null

    private var nfsUsersWithLdap: Output? = null

    private var organizationalUnit: Output? = null

    private var password: Output? = null

    private var project: Output? = null

    private var securityOperators: Output>? = null

    private var site: Output? = null

    private var username: Output? = null

    /**
     * @param value Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.
     */
    @JvmName("finjmdlkeqtredwt")
    public suspend fun aesEncryption(`value`: Output) {
        this.aesEncryption = value
    }

    /**
     * @param value Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
     */
    @JvmName("fjrvdmnwmhdpumyr")
    public suspend fun backupOperators(`value`: Output>) {
        this.backupOperators = value
    }

    @JvmName("oevbfsrcgnbtrpqn")
    public suspend fun backupOperators(vararg values: Output) {
        this.backupOperators = Output.all(values.asList())
    }

    /**
     * @param values Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
     */
    @JvmName("urqoayvgujdygunw")
    public suspend fun backupOperators(values: List>) {
        this.backupOperators = Output.all(values)
    }

    /**
     * @param value An optional description of this resource.
     */
    @JvmName("gvcreedwgkpgobev")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Comma separated list of DNS server IP addresses for the Active Directory domain.
     */
    @JvmName("gkvdqjiivqfrcsjw")
    public suspend fun dns(`value`: Output) {
        this.dns = value
    }

    /**
     * @param value Fully qualified domain name for the Active Directory domain.
     */
    @JvmName("qfderrdkeshuhjeq")
    public suspend fun domain(`value`: Output) {
        this.domain = value
    }

    /**
     * @param value If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.
     */
    @JvmName("rdlcvtgrsholdmnq")
    public suspend fun encryptDcConnections(`value`: Output) {
        this.encryptDcConnections = value
    }

    /**
     * @param value Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only requried for volumes using kerberized NFSv4.1
     */
    @JvmName("dlfbredqgnensddg")
    public suspend fun kdcHostname(`value`: Output) {
        this.kdcHostname = value
    }

    /**
     * @param value IP address of the Active Directory server used as Kerberos Key Distribution Center.
     */
    @JvmName("rerwriophpyddxip")
    public suspend fun kdcIp(`value`: Output) {
        this.kdcIp = value
    }

    /**
     * @param value Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effective_labels` for all of the labels present on the resource.
     */
    @JvmName("yutqmujdxjunewjg")
    public suspend fun labels(`value`: Output>) {
        this.labels = value
    }

    /**
     * @param value Specifies whether or not the LDAP traffic needs to be signed.
     */
    @JvmName("amscumtevckqsktr")
    public suspend fun ldapSigning(`value`: Output) {
        this.ldapSigning = value
    }

    /**
     * @param value Name of the region for the policy to apply to.
     */
    @JvmName("vprafmkvwyibvsyt")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The resource name of the Active Directory pool. Needs to be unique per location.
     * - - -
     */
    @JvmName("okpuvvvjarekdyxf")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value NetBIOS name prefix of the server to be created.
     * A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format:
     * `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`
     */
    @JvmName("yswbyolrvymqiiwa")
    public suspend fun netBiosPrefix(`value`: Output) {
        this.netBiosPrefix = value
    }

    /**
     * @param value Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes.
     * This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).
     */
    @JvmName("semmiitlhclxmcrw")
    public suspend fun nfsUsersWithLdap(`value`: Output) {
        this.nfsUsersWithLdap = value
    }

    /**
     * @param value Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes.
     * Defaults to `CN=Computers` if left empty.
     */
    @JvmName("vuybciyjraoxedbf")
    public suspend fun organizationalUnit(`value`: Output) {
        this.organizationalUnit = value
    }

    /**
     * @param value
     */
    @JvmName("bsbxrwaujjdeyqqf")
    public suspend fun password(`value`: Output) {
        this.password = value
    }

    /**
     * @param value The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    @JvmName("sfakgcrivbgdldvg")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
     */
    @JvmName("pvmslwirahqjdlsm")
    public suspend fun securityOperators(`value`: Output>) {
        this.securityOperators = value
    }

    @JvmName("wdrudrkkrxjquumt")
    public suspend fun securityOperators(vararg values: Output) {
        this.securityOperators = Output.all(values.asList())
    }

    /**
     * @param values Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
     */
    @JvmName("ywrfwjfymyiofurq")
    public suspend fun securityOperators(values: List>) {
        this.securityOperators = Output.all(values)
    }

    /**
     * @param value Specifies an Active Directory site to manage domain controller selection.
     * Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.
     */
    @JvmName("myiddeiuwuvokrom")
    public suspend fun site(`value`: Output) {
        this.site = value
    }

    /**
     * @param value Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.
     */
    @JvmName("umnghqhloajbxwrf")
    public suspend fun username(`value`: Output) {
        this.username = value
    }

    /**
     * @param value Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.
     */
    @JvmName("aeigajhnijvrvcaq")
    public suspend fun aesEncryption(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.aesEncryption = mapped
    }

    /**
     * @param value Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
     */
    @JvmName("rgnudorxdrrdrdvn")
    public suspend fun backupOperators(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.backupOperators = mapped
    }

    /**
     * @param values Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
     */
    @JvmName("hmvcyjxercvatkaw")
    public suspend fun backupOperators(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.backupOperators = mapped
    }

    /**
     * @param value An optional description of this resource.
     */
    @JvmName("oduobdxixxlbafrk")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Comma separated list of DNS server IP addresses for the Active Directory domain.
     */
    @JvmName("iksfumeqfyildhoa")
    public suspend fun dns(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dns = mapped
    }

    /**
     * @param value Fully qualified domain name for the Active Directory domain.
     */
    @JvmName("trlcjhdcrjcgmdop")
    public suspend fun domain(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domain = mapped
    }

    /**
     * @param value If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.
     */
    @JvmName("xjydaemsbucjwyaq")
    public suspend fun encryptDcConnections(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptDcConnections = mapped
    }

    /**
     * @param value Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only requried for volumes using kerberized NFSv4.1
     */
    @JvmName("oqujtfsdpawlomnu")
    public suspend fun kdcHostname(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kdcHostname = mapped
    }

    /**
     * @param value IP address of the Active Directory server used as Kerberos Key Distribution Center.
     */
    @JvmName("rdvdpyjdqksejxmb")
    public suspend fun kdcIp(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kdcIp = mapped
    }

    /**
     * @param value Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effective_labels` for all of the labels present on the resource.
     */
    @JvmName("jelvkqdiirjomfcn")
    public suspend fun labels(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param values Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effective_labels` for all of the labels present on the resource.
     */
    @JvmName("inmngbibswpnjfyd")
    public fun labels(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param value Specifies whether or not the LDAP traffic needs to be signed.
     */
    @JvmName("lxmjaxybtswrfpcn")
    public suspend fun ldapSigning(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ldapSigning = mapped
    }

    /**
     * @param value Name of the region for the policy to apply to.
     */
    @JvmName("wysblwanisnxcufs")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The resource name of the Active Directory pool. Needs to be unique per location.
     * - - -
     */
    @JvmName("ksbpnwtiajsscnpr")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value NetBIOS name prefix of the server to be created.
     * A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format:
     * `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`
     */
    @JvmName("drysskwywtfwlaee")
    public suspend fun netBiosPrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.netBiosPrefix = mapped
    }

    /**
     * @param value Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes.
     * This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).
     */
    @JvmName("pqbomtmhjiivaime")
    public suspend fun nfsUsersWithLdap(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nfsUsersWithLdap = mapped
    }

    /**
     * @param value Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes.
     * Defaults to `CN=Computers` if left empty.
     */
    @JvmName("fvyfnifwjcyytqtl")
    public suspend fun organizationalUnit(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.organizationalUnit = mapped
    }

    /**
     * @param value
     */
    @JvmName("roywtgpsmduttneg")
    public suspend fun password(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    @JvmName("smcqeghnowxluiut")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
     */
    @JvmName("cglxdbpttfmhypfc")
    public suspend fun securityOperators(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityOperators = mapped
    }

    /**
     * @param values Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
     */
    @JvmName("gqsdsfgulalnegxd")
    public suspend fun securityOperators(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.securityOperators = mapped
    }

    /**
     * @param value Specifies an Active Directory site to manage domain controller selection.
     * Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.
     */
    @JvmName("tbxnjfveetxwcyib")
    public suspend fun site(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.site = mapped
    }

    /**
     * @param value Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.
     */
    @JvmName("uxvtpmmotwckdbxn")
    public suspend fun username(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.username = mapped
    }

    internal fun build(): ActiveDirectoryArgs = ActiveDirectoryArgs(
        aesEncryption = aesEncryption,
        backupOperators = backupOperators,
        description = description,
        dns = dns,
        domain = domain,
        encryptDcConnections = encryptDcConnections,
        kdcHostname = kdcHostname,
        kdcIp = kdcIp,
        labels = labels,
        ldapSigning = ldapSigning,
        location = location,
        name = name,
        netBiosPrefix = netBiosPrefix,
        nfsUsersWithLdap = nfsUsersWithLdap,
        organizationalUnit = organizationalUnit,
        password = password,
        project = project,
        securityOperators = securityOperators,
        site = site,
        username = username,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy