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

com.pulumi.azurenative.datafactory.kotlin.inputs.SftpServerLinkedServiceArgs.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: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.datafactory.kotlin.inputs

import com.pulumi.azurenative.datafactory.inputs.SftpServerLinkedServiceArgs.builder
import com.pulumi.azurenative.datafactory.kotlin.enums.SftpAuthenticationType
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * A linked service for an SSH File Transfer Protocol (SFTP) server.
 * @property annotations List of tags that can be used for describing the linked service.
 * @property authenticationType The authentication type to be used to connect to the FTP server.
 * @property connectVia The integration runtime reference.
 * @property description Linked service description.
 * @property encryptedCredential The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
 * @property host The SFTP server host name. Type: string (or Expression with resultType string).
 * @property hostKeyFingerprint The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string).
 * @property parameters Parameters for linked service.
 * @property passPhrase The password to decrypt the SSH private key if the SSH private key is encrypted.
 * @property password Password to logon the SFTP server for Basic authentication.
 * @property port The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0.
 * @property privateKeyContent Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.
 * @property privateKeyPath The SSH private key file path for SshPublicKey authentication. Only valid for on-premises copy. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. Type: string (or Expression with resultType string).
 * @property skipHostKeyValidation If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean).
 * @property type Type of linked service.
 * Expected value is 'Sftp'.
 * @property userName The username used to log on to the SFTP server. Type: string (or Expression with resultType string).
 * @property version Version of the linked service.
 */
public data class SftpServerLinkedServiceArgs(
    public val annotations: Output>? = null,
    public val authenticationType: Output>? = null,
    public val connectVia: Output? = null,
    public val description: Output? = null,
    public val encryptedCredential: Output? = null,
    public val host: Output,
    public val hostKeyFingerprint: Output? = null,
    public val parameters: Output>? = null,
    public val passPhrase: Output>? = null,
    public val password: Output>? = null,
    public val port: Output? = null,
    public val privateKeyContent: Output>? =
        null,
    public val privateKeyPath: Output? = null,
    public val skipHostKeyValidation: Output? = null,
    public val type: Output,
    public val userName: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.datafactory.inputs.SftpServerLinkedServiceArgs =
        com.pulumi.azurenative.datafactory.inputs.SftpServerLinkedServiceArgs.builder()
            .annotations(annotations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .authenticationType(
                authenticationType?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .connectVia(connectVia?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .encryptedCredential(encryptedCredential?.applyValue({ args0 -> args0 }))
            .host(host.applyValue({ args0 -> args0 }))
            .hostKeyFingerprint(hostKeyFingerprint?.applyValue({ args0 -> args0 }))
            .parameters(
                parameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            )
            .passPhrase(
                passPhrase?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .password(
                password?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .port(port?.applyValue({ args0 -> args0 }))
            .privateKeyContent(
                privateKeyContent?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .privateKeyPath(privateKeyPath?.applyValue({ args0 -> args0 }))
            .skipHostKeyValidation(skipHostKeyValidation?.applyValue({ args0 -> args0 }))
            .type(type.applyValue({ args0 -> args0 }))
            .userName(userName?.applyValue({ args0 -> args0 }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

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

    private var authenticationType: Output>? = null

    private var connectVia: Output? = null

    private var description: Output? = null

    private var encryptedCredential: Output? = null

    private var host: Output? = null

    private var hostKeyFingerprint: Output? = null

    private var parameters: Output>? = null

    private var passPhrase: Output>? = null

    private var password: Output>? = null

    private var port: Output? = null

    private var privateKeyContent: Output>? =
        null

    private var privateKeyPath: Output? = null

    private var skipHostKeyValidation: Output? = null

    private var type: Output? = null

    private var userName: Output? = null

    private var version: Output? = null

    /**
     * @param value List of tags that can be used for describing the linked service.
     */
    @JvmName("pjotvxcbexoflvsh")
    public suspend fun annotations(`value`: Output>) {
        this.annotations = value
    }

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

    /**
     * @param values List of tags that can be used for describing the linked service.
     */
    @JvmName("nuhvrswkhhjtbifh")
    public suspend fun annotations(values: List>) {
        this.annotations = Output.all(values)
    }

    /**
     * @param value The authentication type to be used to connect to the FTP server.
     */
    @JvmName("qotuxadyckvbvtjk")
    public suspend fun authenticationType(`value`: Output>) {
        this.authenticationType = value
    }

    /**
     * @param value The integration runtime reference.
     */
    @JvmName("bxuihrdgiparjrhh")
    public suspend fun connectVia(`value`: Output) {
        this.connectVia = value
    }

    /**
     * @param value Linked service description.
     */
    @JvmName("mtdvuhcwelengrrm")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     */
    @JvmName("xtrnghhaqjtqhlij")
    public suspend fun encryptedCredential(`value`: Output) {
        this.encryptedCredential = value
    }

    /**
     * @param value The SFTP server host name. Type: string (or Expression with resultType string).
     */
    @JvmName("fbvjktpblsbkkqni")
    public suspend fun host(`value`: Output) {
        this.host = value
    }

    /**
     * @param value The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string).
     */
    @JvmName("opbkpfxcawhkshfx")
    public suspend fun hostKeyFingerprint(`value`: Output) {
        this.hostKeyFingerprint = value
    }

    /**
     * @param value Parameters for linked service.
     */
    @JvmName("hmhcfgrbqixeaoow")
    public suspend fun parameters(`value`: Output>) {
        this.parameters = value
    }

    /**
     * @param value The password to decrypt the SSH private key if the SSH private key is encrypted.
     */
    @JvmName("sxtqxarywqkrnjub")
    public suspend fun passPhrase(`value`: Output>) {
        this.passPhrase = value
    }

    /**
     * @param value Password to logon the SFTP server for Basic authentication.
     */
    @JvmName("etthprvykrofmlvk")
    public suspend fun password(`value`: Output>) {
        this.password = value
    }

    /**
     * @param value The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0.
     */
    @JvmName("eqfighnqsghvqxie")
    public suspend fun port(`value`: Output) {
        this.port = value
    }

    /**
     * @param value Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.
     */
    @JvmName("vwkurbnlwlmidvgw")
    public suspend fun privateKeyContent(`value`: Output>) {
        this.privateKeyContent = value
    }

    /**
     * @param value The SSH private key file path for SshPublicKey authentication. Only valid for on-premises copy. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. Type: string (or Expression with resultType string).
     */
    @JvmName("qbasqjlocbmnjdpj")
    public suspend fun privateKeyPath(`value`: Output) {
        this.privateKeyPath = value
    }

    /**
     * @param value If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean).
     */
    @JvmName("lhexrqggbtjtpnde")
    public suspend fun skipHostKeyValidation(`value`: Output) {
        this.skipHostKeyValidation = value
    }

    /**
     * @param value Type of linked service.
     * Expected value is 'Sftp'.
     */
    @JvmName("tlulenhgivnalhkp")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value The username used to log on to the SFTP server. Type: string (or Expression with resultType string).
     */
    @JvmName("nljitvissvgtgjnp")
    public suspend fun userName(`value`: Output) {
        this.userName = value
    }

    /**
     * @param value Version of the linked service.
     */
    @JvmName("semhpprialaxooto")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value List of tags that can be used for describing the linked service.
     */
    @JvmName("psfelujthdprytfv")
    public suspend fun annotations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param values List of tags that can be used for describing the linked service.
     */
    @JvmName("kbjhcbwhqrxdbesi")
    public suspend fun annotations(vararg values: Any) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.annotations = mapped
    }

    /**
     * @param value The authentication type to be used to connect to the FTP server.
     */
    @JvmName("yqgkrvrhennblklu")
    public suspend fun authenticationType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value The authentication type to be used to connect to the FTP server.
     */
    @JvmName("bxibacowuuogkmdc")
    public fun authenticationType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value The authentication type to be used to connect to the FTP server.
     */
    @JvmName("inimorriovrtaoct")
    public fun authenticationType(`value`: SftpAuthenticationType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value The integration runtime reference.
     */
    @JvmName("vmfsamhvfhnwegdd")
    public suspend fun connectVia(`value`: IntegrationRuntimeReferenceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connectVia = mapped
    }

    /**
     * @param argument The integration runtime reference.
     */
    @JvmName("clilfwvkebtugmxd")
    public suspend fun connectVia(argument: suspend IntegrationRuntimeReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = IntegrationRuntimeReferenceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.connectVia = mapped
    }

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

    /**
     * @param value The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     */
    @JvmName("gwmpvlweqtxfboqr")
    public suspend fun encryptedCredential(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptedCredential = mapped
    }

    /**
     * @param value The SFTP server host name. Type: string (or Expression with resultType string).
     */
    @JvmName("wlycxhgnmfpkxlix")
    public suspend fun host(`value`: Any) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.host = mapped
    }

    /**
     * @param value The host key finger-print of the SFTP server. When SkipHostKeyValidation is false, HostKeyFingerprint should be specified. Type: string (or Expression with resultType string).
     */
    @JvmName("khusglcrluwylhll")
    public suspend fun hostKeyFingerprint(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostKeyFingerprint = mapped
    }

    /**
     * @param value Parameters for linked service.
     */
    @JvmName("chwimvsrkxotfpal")
    public suspend fun parameters(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param argument Parameters for linked service.
     */
    @JvmName("qwrmsqdonkinxvhf")
    public suspend fun parameters(vararg argument: Pair Unit>) {
        val toBeMapped = argument.toList().map { (left, right) ->
            left to
                ParameterSpecificationArgsBuilder().applySuspend { right() }.build()
        }.toMap()
        val mapped = of(toBeMapped)
        this.parameters = mapped
    }

    /**
     * @param values Parameters for linked service.
     */
    @JvmName("rmqloftfyyvflscl")
    public fun parameters(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param value The password to decrypt the SSH private key if the SSH private key is encrypted.
     */
    @JvmName("mklgbmydajmndkei")
    public suspend fun passPhrase(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.passPhrase = mapped
    }

    /**
     * @param value The password to decrypt the SSH private key if the SSH private key is encrypted.
     */
    @JvmName("svybqtjbekbknpun")
    public fun passPhrase(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.passPhrase = mapped
    }

    /**
     * @param value The password to decrypt the SSH private key if the SSH private key is encrypted.
     */
    @JvmName("soecqvwsncsrikhn")
    public fun passPhrase(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.passPhrase = mapped
    }

    /**
     * @param value Password to logon the SFTP server for Basic authentication.
     */
    @JvmName("iobnaeobofsepexv")
    public suspend fun password(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value Password to logon the SFTP server for Basic authentication.
     */
    @JvmName("rwocawhebhfpifyu")
    public fun password(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value Password to logon the SFTP server for Basic authentication.
     */
    @JvmName("xnfsfbyvguhrisbr")
    public fun password(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The TCP port number that the SFTP server uses to listen for client connections. Default value is 22. Type: integer (or Expression with resultType integer), minimum: 0.
     */
    @JvmName("sxxraghtalqadmur")
    public suspend fun port(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.port = mapped
    }

    /**
     * @param value Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.
     */
    @JvmName("llyhfygqempgcvmd")
    public suspend fun privateKeyContent(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateKeyContent = mapped
    }

    /**
     * @param value Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.
     */
    @JvmName("smxwlmweryptmlor")
    public fun privateKeyContent(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.privateKeyContent = mapped
    }

    /**
     * @param value Base64 encoded SSH private key content for SshPublicKey authentication. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format.
     */
    @JvmName("wjnmprnevfloiiin")
    public fun privateKeyContent(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.privateKeyContent = mapped
    }

    /**
     * @param value The SSH private key file path for SshPublicKey authentication. Only valid for on-premises copy. For on-premises copy with SshPublicKey authentication, either PrivateKeyPath or PrivateKeyContent should be specified. SSH private key should be OpenSSH format. Type: string (or Expression with resultType string).
     */
    @JvmName("tuptaonrnjnippti")
    public suspend fun privateKeyPath(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateKeyPath = mapped
    }

    /**
     * @param value If true, skip the SSH host key validation. Default value is false. Type: boolean (or Expression with resultType boolean).
     */
    @JvmName("trwrmrlxvryiihfg")
    public suspend fun skipHostKeyValidation(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipHostKeyValidation = mapped
    }

    /**
     * @param value Type of linked service.
     * Expected value is 'Sftp'.
     */
    @JvmName("hhwionecqktyaplk")
    public suspend fun type(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.type = mapped
    }

    /**
     * @param value The username used to log on to the SFTP server. Type: string (or Expression with resultType string).
     */
    @JvmName("ufklomenctderdyx")
    public suspend fun userName(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userName = mapped
    }

    /**
     * @param value Version of the linked service.
     */
    @JvmName("auoogbntpfvgwiha")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): SftpServerLinkedServiceArgs = SftpServerLinkedServiceArgs(
        annotations = annotations,
        authenticationType = authenticationType,
        connectVia = connectVia,
        description = description,
        encryptedCredential = encryptedCredential,
        host = host ?: throw PulumiNullFieldException("host"),
        hostKeyFingerprint = hostKeyFingerprint,
        parameters = parameters,
        passPhrase = passPhrase,
        password = password,
        port = port,
        privateKeyContent = privateKeyContent,
        privateKeyPath = privateKeyPath,
        skipHostKeyValidation = skipHostKeyValidation,
        type = type ?: throw PulumiNullFieldException("type"),
        userName = userName,
        version = version,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy