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

com.pulumi.azurenative.datafactory.kotlin.inputs.AmazonS3CompatibleLinkedServiceArgs.kt Maven / Gradle / Ivy

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

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

import com.pulumi.azurenative.datafactory.inputs.AmazonS3CompatibleLinkedServiceArgs.builder
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

/**
 * Linked service for Amazon S3 Compatible.
 * @property accessKeyId The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
 * @property annotations List of tags that can be used for describing the linked service.
 * @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 forcePathStyle If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean).
 * @property parameters Parameters for linked service.
 * @property secretAccessKey The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
 * @property serviceUrl This value specifies the endpoint to access with the Amazon S3 Compatible Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
 * @property type Type of linked service.
 * Expected value is 'AmazonS3Compatible'.
 * @property version Version of the linked service.
 */
public data class AmazonS3CompatibleLinkedServiceArgs(
    public val accessKeyId: Output? = null,
    public val annotations: Output>? = null,
    public val connectVia: Output? = null,
    public val description: Output? = null,
    public val encryptedCredential: Output? = null,
    public val forcePathStyle: Output? = null,
    public val parameters: Output>? = null,
    public val secretAccessKey: Output>? =
        null,
    public val serviceUrl: Output? = null,
    public val type: Output,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.datafactory.inputs.AmazonS3CompatibleLinkedServiceArgs =
        com.pulumi.azurenative.datafactory.inputs.AmazonS3CompatibleLinkedServiceArgs.builder()
            .accessKeyId(accessKeyId?.applyValue({ args0 -> args0 }))
            .annotations(annotations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .connectVia(connectVia?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .encryptedCredential(encryptedCredential?.applyValue({ args0 -> args0 }))
            .forcePathStyle(forcePathStyle?.applyValue({ args0 -> args0 }))
            .parameters(
                parameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            )
            .secretAccessKey(
                secretAccessKey?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .serviceUrl(serviceUrl?.applyValue({ args0 -> args0 }))
            .type(type.applyValue({ args0 -> args0 }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [AmazonS3CompatibleLinkedServiceArgs].
 */
@PulumiTagMarker
public class AmazonS3CompatibleLinkedServiceArgsBuilder internal constructor() {
    private var accessKeyId: Output? = null

    private var annotations: Output>? = null

    private var connectVia: Output? = null

    private var description: Output? = null

    private var encryptedCredential: Output? = null

    private var forcePathStyle: Output? = null

    private var parameters: Output>? = null

    private var secretAccessKey: Output>? =
        null

    private var serviceUrl: Output? = null

    private var type: Output? = null

    private var version: Output? = null

    /**
     * @param value The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
     */
    @JvmName("aoxtjhpkaxbjgdxl")
    public suspend fun accessKeyId(`value`: Output) {
        this.accessKeyId = value
    }

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

    @JvmName("vdtiakvoqrryirlt")
    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("nxrciajarajpkubv")
    public suspend fun annotations(values: List>) {
        this.annotations = Output.all(values)
    }

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

    /**
     * @param value Linked service description.
     */
    @JvmName("bxkufdryaqvssnak")
    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("umuqdkdnlfbeukwc")
    public suspend fun encryptedCredential(`value`: Output) {
        this.encryptedCredential = value
    }

    /**
     * @param value If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean).
     */
    @JvmName("bwmfqdihoyjkmxtm")
    public suspend fun forcePathStyle(`value`: Output) {
        this.forcePathStyle = value
    }

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

    /**
     * @param value The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
     */
    @JvmName("eqsnpdilllhkedbp")
    public suspend fun secretAccessKey(`value`: Output>) {
        this.secretAccessKey = value
    }

    /**
     * @param value This value specifies the endpoint to access with the Amazon S3 Compatible Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
     */
    @JvmName("fbunnvulhbwxhnea")
    public suspend fun serviceUrl(`value`: Output) {
        this.serviceUrl = value
    }

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

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

    /**
     * @param value The access key identifier of the Amazon S3 Compatible Identity and Access Management (IAM) user. Type: string (or Expression with resultType string).
     */
    @JvmName("peqsunkvolbmddvx")
    public suspend fun accessKeyId(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessKeyId = mapped
    }

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

    /**
     * @param value The integration runtime reference.
     */
    @JvmName("dmtfrpfrfietiwsx")
    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("ssifuydxsxkcguly")
    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("scvodktvbxjvahkx")
    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("xmfsuwastbkonyun")
    public suspend fun encryptedCredential(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptedCredential = mapped
    }

    /**
     * @param value If true, use S3 path-style access instead of virtual hosted-style access. Default value is false. Type: boolean (or Expression with resultType boolean).
     */
    @JvmName("ogkmkedcsjcoetgm")
    public suspend fun forcePathStyle(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forcePathStyle = mapped
    }

    /**
     * @param value Parameters for linked service.
     */
    @JvmName("qxvlohnnyykhlsyg")
    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("uflnhsbjwwrkufvx")
    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("bpxoaweuwyxslmaf")
    public fun parameters(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param value The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
     */
    @JvmName("rjoqpoergenwcqvy")
    public suspend fun secretAccessKey(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secretAccessKey = mapped
    }

    /**
     * @param value The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
     */
    @JvmName("mxbxvfsktlbdnwrm")
    public fun secretAccessKey(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secretAccessKey = mapped
    }

    /**
     * @param value The secret access key of the Amazon S3 Compatible Identity and Access Management (IAM) user.
     */
    @JvmName("bkjscvlkvexrlsce")
    public fun secretAccessKey(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secretAccessKey = mapped
    }

    /**
     * @param value This value specifies the endpoint to access with the Amazon S3 Compatible Connector. This is an optional property; change it only if you want to try a different service endpoint or want to switch between https and http. Type: string (or Expression with resultType string).
     */
    @JvmName("iikyhpwaxsgiunxu")
    public suspend fun serviceUrl(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceUrl = mapped
    }

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

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

    internal fun build(): AmazonS3CompatibleLinkedServiceArgs = AmazonS3CompatibleLinkedServiceArgs(
        accessKeyId = accessKeyId,
        annotations = annotations,
        connectVia = connectVia,
        description = description,
        encryptedCredential = encryptedCredential,
        forcePathStyle = forcePathStyle,
        parameters = parameters,
        secretAccessKey = secretAccessKey,
        serviceUrl = serviceUrl,
        type = type ?: throw PulumiNullFieldException("type"),
        version = version,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy