Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.cloudflare.kotlin.inputs
import com.pulumi.cloudflare.inputs.LoadBalancerSessionAffinityAttributeArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property drainDuration Configures the drain duration in seconds. This field is only used when session affinity is enabled on the load balancer. Defaults to `0`.
* @property headers Configures the HTTP header names to use when header session affinity is enabled.
* @property requireAllHeaders Configures how headers are used when header session affinity is enabled. Set to true to require all headers to be present on requests in order for sessions to be created or false to require at least one header to be present. Defaults to `false`.
* @property samesite Configures the SameSite attribute on session affinity cookie. Value `Auto` will be translated to `Lax` or `None` depending if Always Use HTTPS is enabled. Note: when using value `None`, then you can not set `secure="Never"`. Available values: `Auto`, `Lax`, `None`, `Strict`. Defaults to `Auto`.
* @property secure Configures the Secure attribute on session affinity cookie. Value `Always` indicates the Secure attribute will be set in the Set-Cookie header, `Never` indicates the Secure attribute will not be set, and `Auto` will set the Secure attribute depending if Always Use HTTPS is enabled. Available values: `Auto`, `Always`, `Never`. Defaults to `Auto`.
* @property zeroDowntimeFailover Configures the zero-downtime failover between origins within a pool when session affinity is enabled. Value `none` means no failover takes place for sessions pinned to the origin. Value `temporary` means traffic will be sent to another other healthy origin until the originally pinned origin is available; note that this can potentially result in heavy origin flapping. Value `sticky` means the session affinity cookie is updated and subsequent requests are sent to the new origin. This feature is currently incompatible with Argo, Tiered Cache, and Bandwidth Alliance. Available values: `none`, `temporary`, `sticky`. Defaults to `none`.
*/
public data class LoadBalancerSessionAffinityAttributeArgs(
public val drainDuration: Output? = null,
public val headers: Output>? = null,
public val requireAllHeaders: Output? = null,
public val samesite: Output? = null,
public val secure: Output? = null,
public val zeroDowntimeFailover: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.cloudflare.inputs.LoadBalancerSessionAffinityAttributeArgs =
com.pulumi.cloudflare.inputs.LoadBalancerSessionAffinityAttributeArgs.builder()
.drainDuration(drainDuration?.applyValue({ args0 -> args0 }))
.headers(headers?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.requireAllHeaders(requireAllHeaders?.applyValue({ args0 -> args0 }))
.samesite(samesite?.applyValue({ args0 -> args0 }))
.secure(secure?.applyValue({ args0 -> args0 }))
.zeroDowntimeFailover(zeroDowntimeFailover?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [LoadBalancerSessionAffinityAttributeArgs].
*/
@PulumiTagMarker
public class LoadBalancerSessionAffinityAttributeArgsBuilder internal constructor() {
private var drainDuration: Output? = null
private var headers: Output>? = null
private var requireAllHeaders: Output? = null
private var samesite: Output? = null
private var secure: Output? = null
private var zeroDowntimeFailover: Output? = null
/**
* @param value Configures the drain duration in seconds. This field is only used when session affinity is enabled on the load balancer. Defaults to `0`.
*/
@JvmName("ttllhohpriajtoed")
public suspend fun drainDuration(`value`: Output) {
this.drainDuration = value
}
/**
* @param value Configures the HTTP header names to use when header session affinity is enabled.
*/
@JvmName("mpehewocyanueujg")
public suspend fun headers(`value`: Output>) {
this.headers = value
}
@JvmName("nmmbwpcowvhahhps")
public suspend fun headers(vararg values: Output) {
this.headers = Output.all(values.asList())
}
/**
* @param values Configures the HTTP header names to use when header session affinity is enabled.
*/
@JvmName("gpynwynvpabkvdmg")
public suspend fun headers(values: List