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

com.pulumi.awsnative.datasync.kotlin.LocationHdfsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.datasync.kotlin

import com.pulumi.awsnative.datasync.LocationHdfsArgs.builder
import com.pulumi.awsnative.datasync.kotlin.enums.LocationHdfsAuthenticationType
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsNameNodeArgs
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsNameNodeArgsBuilder
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsQopConfigurationArgs
import com.pulumi.awsnative.datasync.kotlin.inputs.LocationHdfsQopConfigurationArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::DataSync::LocationHDFS.
 * @property agentArns ARN(s) of the agent(s) to use for an HDFS location.
 * @property authenticationType The authentication mode used to determine identity of user.
 * @property blockSize Size of chunks (blocks) in bytes that the data is divided into when stored in the HDFS cluster.
 * @property kerberosKeytab The Base64 string representation of the Keytab file.
 * @property kerberosKrb5Conf The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket.
 * @property kerberosPrincipal The unique identity, or principal, to which Kerberos can assign tickets.
 * @property kmsKeyProviderUri The identifier for the Key Management Server where the encryption keys that encrypt data inside HDFS clusters are stored.
 * @property nameNodes An array of Name Node(s) of the HDFS location.
 * @property qopConfiguration The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
 * @property replicationFactor Number of copies of each block that exists inside the HDFS cluster.
 * @property simpleUser The user name that has read and write permissions on the specified HDFS cluster.
 * @property subdirectory The subdirectory in HDFS that is used to read data from the HDFS source location or write data to the HDFS destination.
 * @property tags An array of key-value pairs to apply to this resource.
 */
public data class LocationHdfsArgs(
    public val agentArns: Output>? = null,
    public val authenticationType: Output? = null,
    public val blockSize: Output? = null,
    public val kerberosKeytab: Output? = null,
    public val kerberosKrb5Conf: Output? = null,
    public val kerberosPrincipal: Output? = null,
    public val kmsKeyProviderUri: Output? = null,
    public val nameNodes: Output>? = null,
    public val qopConfiguration: Output? = null,
    public val replicationFactor: Output? = null,
    public val simpleUser: Output? = null,
    public val subdirectory: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.datasync.LocationHdfsArgs =
        com.pulumi.awsnative.datasync.LocationHdfsArgs.builder()
            .agentArns(agentArns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .authenticationType(
                authenticationType?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .blockSize(blockSize?.applyValue({ args0 -> args0 }))
            .kerberosKeytab(kerberosKeytab?.applyValue({ args0 -> args0 }))
            .kerberosKrb5Conf(kerberosKrb5Conf?.applyValue({ args0 -> args0 }))
            .kerberosPrincipal(kerberosPrincipal?.applyValue({ args0 -> args0 }))
            .kmsKeyProviderUri(kmsKeyProviderUri?.applyValue({ args0 -> args0 }))
            .nameNodes(
                nameNodes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .qopConfiguration(qopConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .replicationFactor(replicationFactor?.applyValue({ args0 -> args0 }))
            .simpleUser(simpleUser?.applyValue({ args0 -> args0 }))
            .subdirectory(subdirectory?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [LocationHdfsArgs].
 */
@PulumiTagMarker
public class LocationHdfsArgsBuilder internal constructor() {
    private var agentArns: Output>? = null

    private var authenticationType: Output? = null

    private var blockSize: Output? = null

    private var kerberosKeytab: Output? = null

    private var kerberosKrb5Conf: Output? = null

    private var kerberosPrincipal: Output? = null

    private var kmsKeyProviderUri: Output? = null

    private var nameNodes: Output>? = null

    private var qopConfiguration: Output? = null

    private var replicationFactor: Output? = null

    private var simpleUser: Output? = null

    private var subdirectory: Output? = null

    private var tags: Output>? = null

    /**
     * @param value ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("ookgthgvghsfwfri")
    public suspend fun agentArns(`value`: Output>) {
        this.agentArns = value
    }

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

    /**
     * @param values ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("ihlrmrovsxhyodvu")
    public suspend fun agentArns(values: List>) {
        this.agentArns = Output.all(values)
    }

    /**
     * @param value The authentication mode used to determine identity of user.
     */
    @JvmName("edsqavhhmgwpdsvq")
    public suspend fun authenticationType(`value`: Output) {
        this.authenticationType = value
    }

    /**
     * @param value Size of chunks (blocks) in bytes that the data is divided into when stored in the HDFS cluster.
     */
    @JvmName("nbgpoifiyfvephio")
    public suspend fun blockSize(`value`: Output) {
        this.blockSize = value
    }

    /**
     * @param value The Base64 string representation of the Keytab file.
     */
    @JvmName("kddifgcvrgskunbd")
    public suspend fun kerberosKeytab(`value`: Output) {
        this.kerberosKeytab = value
    }

    /**
     * @param value The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket.
     */
    @JvmName("yebujdprnnsoqsws")
    public suspend fun kerberosKrb5Conf(`value`: Output) {
        this.kerberosKrb5Conf = value
    }

    /**
     * @param value The unique identity, or principal, to which Kerberos can assign tickets.
     */
    @JvmName("tqkdvppdccysiwlt")
    public suspend fun kerberosPrincipal(`value`: Output) {
        this.kerberosPrincipal = value
    }

    /**
     * @param value The identifier for the Key Management Server where the encryption keys that encrypt data inside HDFS clusters are stored.
     */
    @JvmName("uyabukdmsbwjkkio")
    public suspend fun kmsKeyProviderUri(`value`: Output) {
        this.kmsKeyProviderUri = value
    }

    /**
     * @param value An array of Name Node(s) of the HDFS location.
     */
    @JvmName("bkgpyhcxgxfvljhi")
    public suspend fun nameNodes(`value`: Output>) {
        this.nameNodes = value
    }

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

    /**
     * @param values An array of Name Node(s) of the HDFS location.
     */
    @JvmName("yakpuktmmgyllyma")
    public suspend fun nameNodes(values: List>) {
        this.nameNodes = Output.all(values)
    }

    /**
     * @param value The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
     */
    @JvmName("cotkbshaxmucnwsa")
    public suspend fun qopConfiguration(`value`: Output) {
        this.qopConfiguration = value
    }

    /**
     * @param value Number of copies of each block that exists inside the HDFS cluster.
     */
    @JvmName("xfherenheftvejyb")
    public suspend fun replicationFactor(`value`: Output) {
        this.replicationFactor = value
    }

    /**
     * @param value The user name that has read and write permissions on the specified HDFS cluster.
     */
    @JvmName("vspiquayhbiqisdw")
    public suspend fun simpleUser(`value`: Output) {
        this.simpleUser = value
    }

    /**
     * @param value The subdirectory in HDFS that is used to read data from the HDFS source location or write data to the HDFS destination.
     */
    @JvmName("byakvdyahsglyenh")
    public suspend fun subdirectory(`value`: Output) {
        this.subdirectory = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("dwweynsbqngkbikq")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("uvugesmwbnfrkplj")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("eipnxwjfapfkqwmh")
    public suspend fun agentArns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.agentArns = mapped
    }

    /**
     * @param values ARN(s) of the agent(s) to use for an HDFS location.
     */
    @JvmName("pkpumjspnrbcoqjp")
    public suspend fun agentArns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.agentArns = mapped
    }

    /**
     * @param value The authentication mode used to determine identity of user.
     */
    @JvmName("jvnurntvwnkuhgdn")
    public suspend fun authenticationType(`value`: LocationHdfsAuthenticationType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Size of chunks (blocks) in bytes that the data is divided into when stored in the HDFS cluster.
     */
    @JvmName("fulijpbilqawgbrd")
    public suspend fun blockSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.blockSize = mapped
    }

    /**
     * @param value The Base64 string representation of the Keytab file.
     */
    @JvmName("qipdwpctbxwpuhmy")
    public suspend fun kerberosKeytab(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberosKeytab = mapped
    }

    /**
     * @param value The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket.
     */
    @JvmName("vixebpkafqvykmcg")
    public suspend fun kerberosKrb5Conf(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberosKrb5Conf = mapped
    }

    /**
     * @param value The unique identity, or principal, to which Kerberos can assign tickets.
     */
    @JvmName("fklmuqmpxcvcnyea")
    public suspend fun kerberosPrincipal(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberosPrincipal = mapped
    }

    /**
     * @param value The identifier for the Key Management Server where the encryption keys that encrypt data inside HDFS clusters are stored.
     */
    @JvmName("lhcaklmrrbbecjrl")
    public suspend fun kmsKeyProviderUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyProviderUri = mapped
    }

    /**
     * @param value An array of Name Node(s) of the HDFS location.
     */
    @JvmName("dgedwweqyykogasr")
    public suspend fun nameNodes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nameNodes = mapped
    }

    /**
     * @param argument An array of Name Node(s) of the HDFS location.
     */
    @JvmName("vlocywolokqubwrf")
    public suspend fun nameNodes(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LocationHdfsNameNodeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.nameNodes = mapped
    }

    /**
     * @param argument An array of Name Node(s) of the HDFS location.
     */
    @JvmName("bnjfsffhkpedjyow")
    public suspend fun nameNodes(vararg argument: suspend LocationHdfsNameNodeArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LocationHdfsNameNodeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.nameNodes = mapped
    }

    /**
     * @param argument An array of Name Node(s) of the HDFS location.
     */
    @JvmName("qmqugkvxrpvdsrsl")
    public suspend fun nameNodes(argument: suspend LocationHdfsNameNodeArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(LocationHdfsNameNodeArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.nameNodes = mapped
    }

    /**
     * @param values An array of Name Node(s) of the HDFS location.
     */
    @JvmName("bfscceaopxtjqqsd")
    public suspend fun nameNodes(vararg values: LocationHdfsNameNodeArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.nameNodes = mapped
    }

    /**
     * @param value The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
     */
    @JvmName("nghwaagpooixdvxl")
    public suspend fun qopConfiguration(`value`: LocationHdfsQopConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.qopConfiguration = mapped
    }

    /**
     * @param argument The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY` . If you set `RpcProtection` or `DataTransferProtection` , the other parameter assumes the same value.
     */
    @JvmName("acujiaygxklibimc")
    public suspend fun qopConfiguration(argument: suspend LocationHdfsQopConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = LocationHdfsQopConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.qopConfiguration = mapped
    }

    /**
     * @param value Number of copies of each block that exists inside the HDFS cluster.
     */
    @JvmName("phdosirjnferyiuy")
    public suspend fun replicationFactor(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.replicationFactor = mapped
    }

    /**
     * @param value The user name that has read and write permissions on the specified HDFS cluster.
     */
    @JvmName("mcqgndotvxofdarb")
    public suspend fun simpleUser(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.simpleUser = mapped
    }

    /**
     * @param value The subdirectory in HDFS that is used to read data from the HDFS source location or write data to the HDFS destination.
     */
    @JvmName("wgmhvxuymvbxpwas")
    public suspend fun subdirectory(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subdirectory = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("weeghsfukcqsnckw")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("uuxcoasqqwffiwtb")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("mrfgegxpeaqhtevf")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("krmyayrmslgvrori")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("orxenhbttvxmkruu")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): LocationHdfsArgs = LocationHdfsArgs(
        agentArns = agentArns,
        authenticationType = authenticationType,
        blockSize = blockSize,
        kerberosKeytab = kerberosKeytab,
        kerberosKrb5Conf = kerberosKrb5Conf,
        kerberosPrincipal = kerberosPrincipal,
        kmsKeyProviderUri = kmsKeyProviderUri,
        nameNodes = nameNodes,
        qopConfiguration = qopConfiguration,
        replicationFactor = replicationFactor,
        simpleUser = simpleUser,
        subdirectory = subdirectory,
        tags = tags,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy