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

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

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

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

import com.pulumi.azurenative.datafactory.inputs.RestServiceLinkedServiceArgs.builder
import com.pulumi.azurenative.datafactory.kotlin.enums.RestServiceAuthenticationType
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

/**
 * Rest Service linked service.
 * @property aadResourceId The resource you are requesting authorization to use. Type: string (or Expression with resultType string).
 * @property annotations List of tags that can be used for describing the linked service.
 * @property authHeaders The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
 * @property authenticationType Type of authentication used to connect to the REST service.
 * @property azureCloudType Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
 * @property clientId The client ID associated with your application. Type: string (or Expression with resultType string).
 * @property clientSecret The client secret associated with your application.
 * @property connectVia The integration runtime reference.
 * @property credential The credential reference containing authentication information.
 * @property description Linked service description.
 * @property enableServerCertificateValidation Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean).
 * @property encryptedCredential The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
 * @property parameters Parameters for linked service.
 * @property password The password used in Basic authentication type.
 * @property resource The target service or resource to which the access will be requested. Type: string (or Expression with resultType string).
 * @property scope The scope of the access required. It describes what kind of access will be requested. Type: string (or Expression with resultType string).
 * @property servicePrincipalCredentialType The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
 * @property servicePrincipalEmbeddedCert Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
 * @property servicePrincipalEmbeddedCertPassword Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
 * @property servicePrincipalId The application's client ID used in AadServicePrincipal authentication type. Type: string (or Expression with resultType string).
 * @property servicePrincipalKey The application's key used in AadServicePrincipal authentication type.
 * @property tenant The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides. Type: string (or Expression with resultType string).
 * @property tokenEndpoint The token endpoint of the authorization server to acquire access token. Type: string (or Expression with resultType string).
 * @property type Type of linked service.
 * Expected value is 'RestService'.
 * @property url The base URL of the REST service. Type: string (or Expression with resultType string).
 * @property userName The user name used in Basic authentication type. Type: string (or Expression with resultType string).
 * @property version Version of the linked service.
 */
public data class RestServiceLinkedServiceArgs(
    public val aadResourceId: Output? = null,
    public val annotations: Output>? = null,
    public val authHeaders: Output? = null,
    public val authenticationType: Output>,
    public val azureCloudType: Output? = null,
    public val clientId: Output? = null,
    public val clientSecret: Output>? =
        null,
    public val connectVia: Output? = null,
    public val credential: Output? = null,
    public val description: Output? = null,
    public val enableServerCertificateValidation: Output? = null,
    public val encryptedCredential: Output? = null,
    public val parameters: Output>? = null,
    public val password: Output>? = null,
    public val resource: Output? = null,
    public val scope: Output? = null,
    public val servicePrincipalCredentialType: Output? = null,
    public val servicePrincipalEmbeddedCert: Output>? = null,
    public val servicePrincipalEmbeddedCertPassword: Output>? = null,
    public val servicePrincipalId: Output? = null,
    public val servicePrincipalKey: Output>? = null,
    public val tenant: Output? = null,
    public val tokenEndpoint: Output? = null,
    public val type: Output,
    public val url: Output,
    public val userName: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.datafactory.inputs.RestServiceLinkedServiceArgs =
        com.pulumi.azurenative.datafactory.inputs.RestServiceLinkedServiceArgs.builder()
            .aadResourceId(aadResourceId?.applyValue({ args0 -> args0 }))
            .annotations(annotations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .authHeaders(authHeaders?.applyValue({ args0 -> args0 }))
            .authenticationType(
                authenticationType.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .azureCloudType(azureCloudType?.applyValue({ args0 -> args0 }))
            .clientId(clientId?.applyValue({ args0 -> args0 }))
            .clientSecret(
                clientSecret?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .connectVia(connectVia?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .credential(credential?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .enableServerCertificateValidation(
                enableServerCertificateValidation?.applyValue({ args0 ->
                    args0
                }),
            )
            .encryptedCredential(encryptedCredential?.applyValue({ args0 -> args0 }))
            .parameters(
                parameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            )
            .password(
                password?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .resource(resource?.applyValue({ args0 -> args0 }))
            .scope(scope?.applyValue({ args0 -> args0 }))
            .servicePrincipalCredentialType(servicePrincipalCredentialType?.applyValue({ args0 -> args0 }))
            .servicePrincipalEmbeddedCert(
                servicePrincipalEmbeddedCert?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0.let({ args0 -> args0.toJava() }) }, { args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .servicePrincipalEmbeddedCertPassword(
                servicePrincipalEmbeddedCertPassword?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0.let({ args0 -> args0.toJava() }) }, { args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .servicePrincipalId(servicePrincipalId?.applyValue({ args0 -> args0 }))
            .servicePrincipalKey(
                servicePrincipalKey?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .tenant(tenant?.applyValue({ args0 -> args0 }))
            .tokenEndpoint(tokenEndpoint?.applyValue({ args0 -> args0 }))
            .type(type.applyValue({ args0 -> args0 }))
            .url(url.applyValue({ args0 -> args0 }))
            .userName(userName?.applyValue({ args0 -> args0 }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [RestServiceLinkedServiceArgs].
 */
@PulumiTagMarker
public class RestServiceLinkedServiceArgsBuilder internal constructor() {
    private var aadResourceId: Output? = null

    private var annotations: Output>? = null

    private var authHeaders: Output? = null

    private var authenticationType: Output>? = null

    private var azureCloudType: Output? = null

    private var clientId: Output? = null

    private var clientSecret: Output>? =
        null

    private var connectVia: Output? = null

    private var credential: Output? = null

    private var description: Output? = null

    private var enableServerCertificateValidation: Output? = null

    private var encryptedCredential: Output? = null

    private var parameters: Output>? = null

    private var password: Output>? = null

    private var resource: Output? = null

    private var scope: Output? = null

    private var servicePrincipalCredentialType: Output? = null

    private var servicePrincipalEmbeddedCert:
        Output>? = null

    private var servicePrincipalEmbeddedCertPassword:
        Output>? = null

    private var servicePrincipalId: Output? = null

    private var servicePrincipalKey:
        Output>? = null

    private var tenant: Output? = null

    private var tokenEndpoint: Output? = null

    private var type: Output? = null

    private var url: Output? = null

    private var userName: Output? = null

    private var version: Output? = null

    /**
     * @param value The resource you are requesting authorization to use. Type: string (or Expression with resultType string).
     */
    @JvmName("mbmhjdeewasarnmd")
    public suspend fun aadResourceId(`value`: Output) {
        this.aadResourceId = value
    }

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

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

    /**
     * @param value The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
     */
    @JvmName("gqmunlmqiioqinff")
    public suspend fun authHeaders(`value`: Output) {
        this.authHeaders = value
    }

    /**
     * @param value Type of authentication used to connect to the REST service.
     */
    @JvmName("dqtjawnymqjksjal")
    public suspend fun authenticationType(`value`: Output>) {
        this.authenticationType = value
    }

    /**
     * @param value Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
     */
    @JvmName("xdqykdncsqvgqqjn")
    public suspend fun azureCloudType(`value`: Output) {
        this.azureCloudType = value
    }

    /**
     * @param value The client ID associated with your application. Type: string (or Expression with resultType string).
     */
    @JvmName("abtajstfolglglqb")
    public suspend fun clientId(`value`: Output) {
        this.clientId = value
    }

    /**
     * @param value The client secret associated with your application.
     */
    @JvmName("lcnnfjnnjvecwskw")
    public suspend fun clientSecret(`value`: Output>) {
        this.clientSecret = value
    }

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

    /**
     * @param value The credential reference containing authentication information.
     */
    @JvmName("txqcelmpbvbthavh")
    public suspend fun credential(`value`: Output) {
        this.credential = value
    }

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

    /**
     * @param value Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean).
     */
    @JvmName("ewqbpkixfkafiuko")
    public suspend fun enableServerCertificateValidation(`value`: Output) {
        this.enableServerCertificateValidation = value
    }

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

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

    /**
     * @param value The password used in Basic authentication type.
     */
    @JvmName("hncllakmctendhwq")
    public suspend fun password(`value`: Output>) {
        this.password = value
    }

    /**
     * @param value The target service or resource to which the access will be requested. Type: string (or Expression with resultType string).
     */
    @JvmName("gaxbdrminbvxhmdk")
    public suspend fun resource(`value`: Output) {
        this.resource = value
    }

    /**
     * @param value The scope of the access required. It describes what kind of access will be requested. Type: string (or Expression with resultType string).
     */
    @JvmName("cbxiswqhtxtovpqg")
    public suspend fun scope(`value`: Output) {
        this.scope = value
    }

    /**
     * @param value The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
     */
    @JvmName("tamidblafqrichpq")
    public suspend fun servicePrincipalCredentialType(`value`: Output) {
        this.servicePrincipalCredentialType = value
    }

    /**
     * @param value Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
     */
    @JvmName("vmfoytgylrhvbdcq")
    public suspend fun servicePrincipalEmbeddedCert(`value`: Output>) {
        this.servicePrincipalEmbeddedCert = value
    }

    /**
     * @param value Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
     */
    @JvmName("tvxbrfrrsnpajqjs")
    public suspend fun servicePrincipalEmbeddedCertPassword(`value`: Output>) {
        this.servicePrincipalEmbeddedCertPassword = value
    }

    /**
     * @param value The application's client ID used in AadServicePrincipal authentication type. Type: string (or Expression with resultType string).
     */
    @JvmName("gjxuradsjirjgmvg")
    public suspend fun servicePrincipalId(`value`: Output) {
        this.servicePrincipalId = value
    }

    /**
     * @param value The application's key used in AadServicePrincipal authentication type.
     */
    @JvmName("cynwmknwfkollujx")
    public suspend fun servicePrincipalKey(`value`: Output>) {
        this.servicePrincipalKey = value
    }

    /**
     * @param value The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides. Type: string (or Expression with resultType string).
     */
    @JvmName("vjwxyxefwmetvlrr")
    public suspend fun tenant(`value`: Output) {
        this.tenant = value
    }

    /**
     * @param value The token endpoint of the authorization server to acquire access token. Type: string (or Expression with resultType string).
     */
    @JvmName("yxokhhwpmsgbnnmu")
    public suspend fun tokenEndpoint(`value`: Output) {
        this.tokenEndpoint = value
    }

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

    /**
     * @param value The base URL of the REST service. Type: string (or Expression with resultType string).
     */
    @JvmName("ywvqwmiafvqfqabe")
    public suspend fun url(`value`: Output) {
        this.url = value
    }

    /**
     * @param value The user name used in Basic authentication type. Type: string (or Expression with resultType string).
     */
    @JvmName("frdimhjbmxrimtkv")
    public suspend fun userName(`value`: Output) {
        this.userName = value
    }

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

    /**
     * @param value The resource you are requesting authorization to use. Type: string (or Expression with resultType string).
     */
    @JvmName("pvdnrjdenbuaxntf")
    public suspend fun aadResourceId(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.aadResourceId = mapped
    }

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

    /**
     * @param value The additional HTTP headers in the request to RESTful API used for authorization. Type: object (or Expression with resultType object).
     */
    @JvmName("uctsmkvkcskgwcxv")
    public suspend fun authHeaders(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authHeaders = mapped
    }

    /**
     * @param value Type of authentication used to connect to the REST service.
     */
    @JvmName("dysdgedjubyvbjya")
    public suspend fun authenticationType(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Type of authentication used to connect to the REST service.
     */
    @JvmName("cogktqtjdgjdklve")
    public fun authenticationType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Type of authentication used to connect to the REST service.
     */
    @JvmName("fwvoemmijegenixj")
    public fun authenticationType(`value`: RestServiceAuthenticationType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Indicates the azure cloud type of the service principle auth. Allowed values are AzurePublic, AzureChina, AzureUsGovernment, AzureGermany. Default value is the data factory regions’ cloud type. Type: string (or Expression with resultType string).
     */
    @JvmName("rdmqqumqgahqings")
    public suspend fun azureCloudType(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azureCloudType = mapped
    }

    /**
     * @param value The client ID associated with your application. Type: string (or Expression with resultType string).
     */
    @JvmName("qsxalnebqbyqaffo")
    public suspend fun clientId(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientId = mapped
    }

    /**
     * @param value The client secret associated with your application.
     */
    @JvmName("idmrmkeojjbyxuvk")
    public suspend fun clientSecret(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSecret = mapped
    }

    /**
     * @param value The client secret associated with your application.
     */
    @JvmName("bbitxvxoxdqhwkls")
    public fun clientSecret(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clientSecret = mapped
    }

    /**
     * @param value The client secret associated with your application.
     */
    @JvmName("qkjnxjhhmuuthtul")
    public fun clientSecret(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clientSecret = mapped
    }

    /**
     * @param value The integration runtime reference.
     */
    @JvmName("qjsxohisipmkyatv")
    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("xxigsyspbqdvrjqq")
    public suspend fun connectVia(argument: suspend IntegrationRuntimeReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = IntegrationRuntimeReferenceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.connectVia = mapped
    }

    /**
     * @param value The credential reference containing authentication information.
     */
    @JvmName("icylqswcjnujytnb")
    public suspend fun credential(`value`: CredentialReferenceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.credential = mapped
    }

    /**
     * @param argument The credential reference containing authentication information.
     */
    @JvmName("lmoldefdpbrhhfnq")
    public suspend fun credential(argument: suspend CredentialReferenceArgsBuilder.() -> Unit) {
        val toBeMapped = CredentialReferenceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.credential = mapped
    }

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

    /**
     * @param value Whether to validate server side SSL certificate when connecting to the endpoint.The default value is true. Type: boolean (or Expression with resultType boolean).
     */
    @JvmName("nvsnxhgjybwmsyro")
    public suspend fun enableServerCertificateValidation(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableServerCertificateValidation = mapped
    }

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

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

    /**
     * @param value The password used in Basic authentication type.
     */
    @JvmName("pgsanltojtsvlnro")
    public suspend fun password(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The password used in Basic authentication type.
     */
    @JvmName("lncrcjfaksncoyjw")
    public fun password(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The password used in Basic authentication type.
     */
    @JvmName("oosanueqxogeowja")
    public fun password(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.password = mapped
    }

    /**
     * @param value The target service or resource to which the access will be requested. Type: string (or Expression with resultType string).
     */
    @JvmName("ktonyrvtuoupoies")
    public suspend fun resource(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resource = mapped
    }

    /**
     * @param value The scope of the access required. It describes what kind of access will be requested. Type: string (or Expression with resultType string).
     */
    @JvmName("cymvkihkdlkymscv")
    public suspend fun scope(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scope = mapped
    }

    /**
     * @param value The service principal credential type to use in Server-To-Server authentication. 'ServicePrincipalKey' for key/secret, 'ServicePrincipalCert' for certificate. Type: string (or Expression with resultType string).
     */
    @JvmName("djymmkoaxsovyeqp")
    public suspend fun servicePrincipalCredentialType(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servicePrincipalCredentialType = mapped
    }

    /**
     * @param value Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
     */
    @JvmName("gnrdfxctlsatfaqe")
    public suspend fun servicePrincipalEmbeddedCert(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servicePrincipalEmbeddedCert = mapped
    }

    /**
     * @param value Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
     */
    @JvmName("yfajvcnfwkcucejt")
    public fun servicePrincipalEmbeddedCert(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.servicePrincipalEmbeddedCert = mapped
    }

    /**
     * @param value Specify the base64 encoded certificate of your application registered in Azure Active Directory. Type: string (or Expression with resultType string).
     */
    @JvmName("unwnqxqpfjxtjsxo")
    public fun servicePrincipalEmbeddedCert(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.servicePrincipalEmbeddedCert = mapped
    }

    /**
     * @param value Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
     */
    @JvmName("eivubutnveysxsoe")
    public suspend fun servicePrincipalEmbeddedCertPassword(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servicePrincipalEmbeddedCertPassword = mapped
    }

    /**
     * @param value Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
     */
    @JvmName("dnopjcbrakuvwote")
    public fun servicePrincipalEmbeddedCertPassword(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.servicePrincipalEmbeddedCertPassword = mapped
    }

    /**
     * @param value Specify the password of your certificate if your certificate has a password and you are using AadServicePrincipal authentication. Type: string (or Expression with resultType string).
     */
    @JvmName("byjploxhyjjcedlb")
    public fun servicePrincipalEmbeddedCertPassword(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.servicePrincipalEmbeddedCertPassword = mapped
    }

    /**
     * @param value The application's client ID used in AadServicePrincipal authentication type. Type: string (or Expression with resultType string).
     */
    @JvmName("hbpojqkuhlqcqety")
    public suspend fun servicePrincipalId(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servicePrincipalId = mapped
    }

    /**
     * @param value The application's key used in AadServicePrincipal authentication type.
     */
    @JvmName("gwayidpvskccudgw")
    public suspend fun servicePrincipalKey(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servicePrincipalKey = mapped
    }

    /**
     * @param value The application's key used in AadServicePrincipal authentication type.
     */
    @JvmName("qognhwveohouiayd")
    public fun servicePrincipalKey(`value`: AzureKeyVaultSecretReferenceArgs) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.servicePrincipalKey = mapped
    }

    /**
     * @param value The application's key used in AadServicePrincipal authentication type.
     */
    @JvmName("eywwaxoyfuicvrfj")
    public fun servicePrincipalKey(`value`: SecureStringArgs) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.servicePrincipalKey = mapped
    }

    /**
     * @param value The tenant information (domain name or tenant ID) used in AadServicePrincipal authentication type under which your application resides. Type: string (or Expression with resultType string).
     */
    @JvmName("rgfddpaufyxgvgpb")
    public suspend fun tenant(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tenant = mapped
    }

    /**
     * @param value The token endpoint of the authorization server to acquire access token. Type: string (or Expression with resultType string).
     */
    @JvmName("jxrlmpybkmhbvycc")
    public suspend fun tokenEndpoint(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tokenEndpoint = mapped
    }

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

    /**
     * @param value The base URL of the REST service. Type: string (or Expression with resultType string).
     */
    @JvmName("tagtxtdbcflbyjto")
    public suspend fun url(`value`: Any) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.url = mapped
    }

    /**
     * @param value The user name used in Basic authentication type. Type: string (or Expression with resultType string).
     */
    @JvmName("upnohjhunwcjelqu")
    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("rutpngisdnqvpplo")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): RestServiceLinkedServiceArgs = RestServiceLinkedServiceArgs(
        aadResourceId = aadResourceId,
        annotations = annotations,
        authHeaders = authHeaders,
        authenticationType = authenticationType ?: throw PulumiNullFieldException("authenticationType"),
        azureCloudType = azureCloudType,
        clientId = clientId,
        clientSecret = clientSecret,
        connectVia = connectVia,
        credential = credential,
        description = description,
        enableServerCertificateValidation = enableServerCertificateValidation,
        encryptedCredential = encryptedCredential,
        parameters = parameters,
        password = password,
        resource = resource,
        scope = scope,
        servicePrincipalCredentialType = servicePrincipalCredentialType,
        servicePrincipalEmbeddedCert = servicePrincipalEmbeddedCert,
        servicePrincipalEmbeddedCertPassword = servicePrincipalEmbeddedCertPassword,
        servicePrincipalId = servicePrincipalId,
        servicePrincipalKey = servicePrincipalKey,
        tenant = tenant,
        tokenEndpoint = tokenEndpoint,
        type = type ?: throw PulumiNullFieldException("type"),
        url = url ?: throw PulumiNullFieldException("url"),
        userName = userName,
        version = version,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy