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

com.pulumi.awsnative.vpclattice.kotlin.inputs.TargetGroupConfigArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.vpclattice.kotlin.inputs

import com.pulumi.awsnative.vpclattice.inputs.TargetGroupConfigArgs.builder
import com.pulumi.awsnative.vpclattice.kotlin.enums.TargetGroupConfigIpAddressType
import com.pulumi.awsnative.vpclattice.kotlin.enums.TargetGroupConfigLambdaEventStructureVersion
import com.pulumi.awsnative.vpclattice.kotlin.enums.TargetGroupConfigProtocol
import com.pulumi.awsnative.vpclattice.kotlin.enums.TargetGroupConfigProtocolVersion
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.jvm.JvmName

/**
 *
 * @property healthCheck The health check configuration. Not supported if the target group type is `LAMBDA` or `ALB` .
 * @property ipAddressType The type of IP address used for the target group. Supported only if the target group type is `IP` . The default is `IPV4` .
 * @property lambdaEventStructureVersion The version of the event structure that your Lambda function receives. Supported only if the target group type is `LAMBDA` . The default is `V1` .
 * @property port The port on which the targets are listening. For HTTP, the default is 80. For HTTPS, the default is 443. Not supported if the target group type is `LAMBDA` .
 * @property protocol The protocol to use for routing traffic to the targets. The default is the protocol of the target group. Not supported if the target group type is `LAMBDA` .
 * @property protocolVersion The protocol version. The default is `HTTP1` . Not supported if the target group type is `LAMBDA` .
 * @property vpcIdentifier The ID of the VPC. Not supported if the target group type is `LAMBDA` .
 */
public data class TargetGroupConfigArgs(
    public val healthCheck: Output? = null,
    public val ipAddressType: Output? = null,
    public val lambdaEventStructureVersion: Output? =
        null,
    public val port: Output? = null,
    public val protocol: Output? = null,
    public val protocolVersion: Output? = null,
    public val vpcIdentifier: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.vpclattice.inputs.TargetGroupConfigArgs =
        com.pulumi.awsnative.vpclattice.inputs.TargetGroupConfigArgs.builder()
            .healthCheck(healthCheck?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .ipAddressType(ipAddressType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .lambdaEventStructureVersion(
                lambdaEventStructureVersion?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .port(port?.applyValue({ args0 -> args0 }))
            .protocol(protocol?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .protocolVersion(protocolVersion?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .vpcIdentifier(vpcIdentifier?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [TargetGroupConfigArgs].
 */
@PulumiTagMarker
public class TargetGroupConfigArgsBuilder internal constructor() {
    private var healthCheck: Output? = null

    private var ipAddressType: Output? = null

    private var lambdaEventStructureVersion: Output? =
        null

    private var port: Output? = null

    private var protocol: Output? = null

    private var protocolVersion: Output? = null

    private var vpcIdentifier: Output? = null

    /**
     * @param value The health check configuration. Not supported if the target group type is `LAMBDA` or `ALB` .
     */
    @JvmName("pmnrwrucamqheasu")
    public suspend fun healthCheck(`value`: Output) {
        this.healthCheck = value
    }

    /**
     * @param value The type of IP address used for the target group. Supported only if the target group type is `IP` . The default is `IPV4` .
     */
    @JvmName("spsqtkskwewtrfed")
    public suspend fun ipAddressType(`value`: Output) {
        this.ipAddressType = value
    }

    /**
     * @param value The version of the event structure that your Lambda function receives. Supported only if the target group type is `LAMBDA` . The default is `V1` .
     */
    @JvmName("niqxtovvvyuugsam")
    public suspend fun lambdaEventStructureVersion(`value`: Output) {
        this.lambdaEventStructureVersion = value
    }

    /**
     * @param value The port on which the targets are listening. For HTTP, the default is 80. For HTTPS, the default is 443. Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("crvdwedvxyvmoccs")
    public suspend fun port(`value`: Output) {
        this.port = value
    }

    /**
     * @param value The protocol to use for routing traffic to the targets. The default is the protocol of the target group. Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("hqpfbywwpulmwbwc")
    public suspend fun protocol(`value`: Output) {
        this.protocol = value
    }

    /**
     * @param value The protocol version. The default is `HTTP1` . Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("bpmyrlalbwyyogef")
    public suspend fun protocolVersion(`value`: Output) {
        this.protocolVersion = value
    }

    /**
     * @param value The ID of the VPC. Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("ovdhtqddbgtjoupa")
    public suspend fun vpcIdentifier(`value`: Output) {
        this.vpcIdentifier = value
    }

    /**
     * @param value The health check configuration. Not supported if the target group type is `LAMBDA` or `ALB` .
     */
    @JvmName("vqghakdnabrpmybp")
    public suspend fun healthCheck(`value`: TargetGroupHealthCheckConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.healthCheck = mapped
    }

    /**
     * @param argument The health check configuration. Not supported if the target group type is `LAMBDA` or `ALB` .
     */
    @JvmName("odjuvtmsubtkhjbh")
    public suspend fun healthCheck(argument: suspend TargetGroupHealthCheckConfigArgsBuilder.() -> Unit) {
        val toBeMapped = TargetGroupHealthCheckConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.healthCheck = mapped
    }

    /**
     * @param value The type of IP address used for the target group. Supported only if the target group type is `IP` . The default is `IPV4` .
     */
    @JvmName("ccsclycggmsyvgyj")
    public suspend fun ipAddressType(`value`: TargetGroupConfigIpAddressType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipAddressType = mapped
    }

    /**
     * @param value The version of the event structure that your Lambda function receives. Supported only if the target group type is `LAMBDA` . The default is `V1` .
     */
    @JvmName("rccuqqxasysijlfe")
    public suspend fun lambdaEventStructureVersion(`value`: TargetGroupConfigLambdaEventStructureVersion?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lambdaEventStructureVersion = mapped
    }

    /**
     * @param value The port on which the targets are listening. For HTTP, the default is 80. For HTTPS, the default is 443. Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("ourpacmglgfkpcbo")
    public suspend fun port(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.port = mapped
    }

    /**
     * @param value The protocol to use for routing traffic to the targets. The default is the protocol of the target group. Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("prlxresrucjfqlau")
    public suspend fun protocol(`value`: TargetGroupConfigProtocol?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protocol = mapped
    }

    /**
     * @param value The protocol version. The default is `HTTP1` . Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("ebhthvewsykjquvr")
    public suspend fun protocolVersion(`value`: TargetGroupConfigProtocolVersion?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protocolVersion = mapped
    }

    /**
     * @param value The ID of the VPC. Not supported if the target group type is `LAMBDA` .
     */
    @JvmName("adfvalsscnfncbsl")
    public suspend fun vpcIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcIdentifier = mapped
    }

    internal fun build(): TargetGroupConfigArgs = TargetGroupConfigArgs(
        healthCheck = healthCheck,
        ipAddressType = ipAddressType,
        lambdaEventStructureVersion = lambdaEventStructureVersion,
        port = port,
        protocol = protocol,
        protocolVersion = protocolVersion,
        vpcIdentifier = vpcIdentifier,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy