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

com.pulumi.gcp.compute.kotlin.outputs.RegionBackendServiceOutlierDetection.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.compute.kotlin.outputs

import kotlin.Int
import kotlin.Suppress

/**
 *
 * @property baseEjectionTime The base time that a host is ejected for. The real time is equal to the base
 * time multiplied by the number of times the host has been ejected. Defaults to
 * 30000ms or 30s.
 * Structure is documented below.
 * @property consecutiveErrors Number of errors before a host is ejected from the connection pool. When the
 * backend host is accessed over HTTP, a 5xx return code qualifies as an error.
 * Defaults to 5.
 * @property consecutiveGatewayFailure The number of consecutive gateway failures (502, 503, 504 status or connection
 * errors that are mapped to one of those status codes) before a consecutive
 * gateway failure ejection occurs. Defaults to 5.
 * @property enforcingConsecutiveErrors The percentage chance that a host will be actually ejected when an outlier
 * status is detected through consecutive 5xx. This setting can be used to disable
 * ejection or to ramp it up slowly. Defaults to 100.
 * @property enforcingConsecutiveGatewayFailure The percentage chance that a host will be actually ejected when an outlier
 * status is detected through consecutive gateway failures. This setting can be
 * used to disable ejection or to ramp it up slowly. Defaults to 0.
 * @property enforcingSuccessRate The percentage chance that a host will be actually ejected when an outlier
 * status is detected through success rate statistics. This setting can be used to
 * disable ejection or to ramp it up slowly. Defaults to 100.
 * @property interval Time interval between ejection sweep analysis. This can result in both new
 * ejections as well as hosts being returned to service. Defaults to 10 seconds.
 * Structure is documented below.
 * @property maxEjectionPercent Maximum percentage of hosts in the load balancing pool for the backend service
 * that can be ejected. Defaults to 10%.
 * @property successRateMinimumHosts The number of hosts in a cluster that must have enough request volume to detect
 * success rate outliers. If the number of hosts is less than this setting, outlier
 * detection via success rate statistics is not performed for any host in the
 * cluster. Defaults to 5.
 * @property successRateRequestVolume The minimum number of total requests that must be collected in one interval (as
 * defined by the interval duration above) to include this host in success rate
 * based outlier detection. If the volume is lower than this setting, outlier
 * detection via success rate statistics is not performed for that host. Defaults
 * to 100.
 * @property successRateStdevFactor This factor is used to determine the ejection threshold for success rate outlier
 * ejection. The ejection threshold is the difference between the mean success
 * rate, and the product of this factor and the standard deviation of the mean
 * success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided
 * by a thousand to get a double. That is, if the desired factor is 1.9, the
 * runtime value should be 1900. Defaults to 1900.
 */
public data class RegionBackendServiceOutlierDetection(
    public val baseEjectionTime: RegionBackendServiceOutlierDetectionBaseEjectionTime? = null,
    public val consecutiveErrors: Int? = null,
    public val consecutiveGatewayFailure: Int? = null,
    public val enforcingConsecutiveErrors: Int? = null,
    public val enforcingConsecutiveGatewayFailure: Int? = null,
    public val enforcingSuccessRate: Int? = null,
    public val interval: RegionBackendServiceOutlierDetectionInterval? = null,
    public val maxEjectionPercent: Int? = null,
    public val successRateMinimumHosts: Int? = null,
    public val successRateRequestVolume: Int? = null,
    public val successRateStdevFactor: Int? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.compute.outputs.RegionBackendServiceOutlierDetection): RegionBackendServiceOutlierDetection = RegionBackendServiceOutlierDetection(
            baseEjectionTime = javaType.baseEjectionTime().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.RegionBackendServiceOutlierDetectionBaseEjectionTime.Companion.toKotlin(args0)
                })
            }).orElse(null),
            consecutiveErrors = javaType.consecutiveErrors().map({ args0 -> args0 }).orElse(null),
            consecutiveGatewayFailure = javaType.consecutiveGatewayFailure().map({ args0 ->
                args0
            }).orElse(null),
            enforcingConsecutiveErrors = javaType.enforcingConsecutiveErrors().map({ args0 ->
                args0
            }).orElse(null),
            enforcingConsecutiveGatewayFailure = javaType.enforcingConsecutiveGatewayFailure().map({ args0 ->
                args0
            }).orElse(null),
            enforcingSuccessRate = javaType.enforcingSuccessRate().map({ args0 -> args0 }).orElse(null),
            interval = javaType.interval().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.RegionBackendServiceOutlierDetectionInterval.Companion.toKotlin(args0)
                })
            }).orElse(null),
            maxEjectionPercent = javaType.maxEjectionPercent().map({ args0 -> args0 }).orElse(null),
            successRateMinimumHosts = javaType.successRateMinimumHosts().map({ args0 -> args0 }).orElse(null),
            successRateRequestVolume = javaType.successRateRequestVolume().map({ args0 -> args0 }).orElse(null),
            successRateStdevFactor = javaType.successRateStdevFactor().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy