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

com.pulumi.kubernetes.flowcontrol.v1alpha1.kotlin.outputs.FlowSchemaSpec.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.kubernetes.flowcontrol.v1alpha1.kotlin.outputs

import kotlin.Int
import kotlin.Suppress
import kotlin.collections.List

/**
 * FlowSchemaSpec describes how the FlowSchema's specification looks like.
 * @property distinguisherMethod `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.
 * @property matchingPrecedence `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be non-negative. Note that if the precedence is not specified or zero, it will be set to 1000 as default.
 * @property priorityLevelConfiguration `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.
 * @property rules `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.
 */
public data class FlowSchemaSpec(
    public val distinguisherMethod: FlowDistinguisherMethod? = null,
    public val matchingPrecedence: Int? = null,
    public val priorityLevelConfiguration: PriorityLevelConfigurationReference,
    public val rules: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.kubernetes.flowcontrol.v1alpha1.outputs.FlowSchemaSpec): FlowSchemaSpec = FlowSchemaSpec(
            distinguisherMethod = javaType.distinguisherMethod().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.kubernetes.flowcontrol.v1alpha1.kotlin.outputs.FlowDistinguisherMethod.Companion.toKotlin(args0)
                })
            }).orElse(null),
            matchingPrecedence = javaType.matchingPrecedence().map({ args0 -> args0 }).orElse(null),
            priorityLevelConfiguration = javaType.priorityLevelConfiguration().let({ args0 ->
                com.pulumi.kubernetes.flowcontrol.v1alpha1.kotlin.outputs.PriorityLevelConfigurationReference.Companion.toKotlin(args0)
            }),
            rules = javaType.rules().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.kubernetes.flowcontrol.v1alpha1.kotlin.outputs.PolicyRulesWithSubjects.Companion.toKotlin(args0)
                })
            }),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy