
com.pulumi.googlenative.networksecurity.v1beta1.kotlin.RuleArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-google-native-kotlin Show documentation
Show all versions of pulumi-google-native-kotlin Show documentation
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.googlenative.networksecurity.v1beta1.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.networksecurity.v1beta1.RuleArgs.builder
import com.pulumi.googlenative.networksecurity.v1beta1.kotlin.enums.RuleBasicProfile
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName
/**
* Creates a new GatewaySecurityPolicy in a given project and location.
* Auto-naming is currently not supported for this resource.
* @property applicationMatcher Optional. CEL expression for matching on L7/application level criteria.
* @property basicProfile Profile which tells what the primitive action should be.
* @property description Optional. Free-text description of the resource.
* @property enabled Whether the rule is enforced.
* @property gatewaySecurityPolicyId
* @property gatewaySecurityPolicyRuleId The ID to use for the rule, which will become the final component of the rule's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.
* @property location
* @property name Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).
* @property priority Priority of the rule. Lower number corresponds to higher precedence.
* @property project
* @property sessionMatcher CEL expression for matching on session criteria.
* @property tlsInspectionEnabled Optional. Flag to enable TLS inspection of traffic matching on , can only be true if the parent GatewaySecurityPolicy references a TLSInspectionConfig.
*/
public data class RuleArgs(
public val applicationMatcher: Output? = null,
public val basicProfile: Output? = null,
public val description: Output? = null,
public val enabled: Output? = null,
public val gatewaySecurityPolicyId: Output? = null,
public val gatewaySecurityPolicyRuleId: Output? = null,
public val location: Output? = null,
public val name: Output? = null,
public val priority: Output? = null,
public val project: Output? = null,
public val sessionMatcher: Output? = null,
public val tlsInspectionEnabled: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.networksecurity.v1beta1.RuleArgs =
com.pulumi.googlenative.networksecurity.v1beta1.RuleArgs.builder()
.applicationMatcher(applicationMatcher?.applyValue({ args0 -> args0 }))
.basicProfile(basicProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.description(description?.applyValue({ args0 -> args0 }))
.enabled(enabled?.applyValue({ args0 -> args0 }))
.gatewaySecurityPolicyId(gatewaySecurityPolicyId?.applyValue({ args0 -> args0 }))
.gatewaySecurityPolicyRuleId(gatewaySecurityPolicyRuleId?.applyValue({ args0 -> args0 }))
.location(location?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.priority(priority?.applyValue({ args0 -> args0 }))
.project(project?.applyValue({ args0 -> args0 }))
.sessionMatcher(sessionMatcher?.applyValue({ args0 -> args0 }))
.tlsInspectionEnabled(tlsInspectionEnabled?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [RuleArgs].
*/
@PulumiTagMarker
public class RuleArgsBuilder internal constructor() {
private var applicationMatcher: Output? = null
private var basicProfile: Output? = null
private var description: Output? = null
private var enabled: Output? = null
private var gatewaySecurityPolicyId: Output? = null
private var gatewaySecurityPolicyRuleId: Output? = null
private var location: Output? = null
private var name: Output? = null
private var priority: Output? = null
private var project: Output? = null
private var sessionMatcher: Output? = null
private var tlsInspectionEnabled: Output? = null
/**
* @param value Optional. CEL expression for matching on L7/application level criteria.
*/
@JvmName("tkbtequrathbaiug")
public suspend fun applicationMatcher(`value`: Output) {
this.applicationMatcher = value
}
/**
* @param value Profile which tells what the primitive action should be.
*/
@JvmName("ebaespbgojolfexc")
public suspend fun basicProfile(`value`: Output) {
this.basicProfile = value
}
/**
* @param value Optional. Free-text description of the resource.
*/
@JvmName("ektbnmmxcxbdnfry")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value Whether the rule is enforced.
*/
@JvmName("lbxlmrsokallgdhc")
public suspend fun enabled(`value`: Output) {
this.enabled = value
}
/**
* @param value
*/
@JvmName("eftbfhcwxiqwlfmg")
public suspend fun gatewaySecurityPolicyId(`value`: Output) {
this.gatewaySecurityPolicyId = value
}
/**
* @param value The ID to use for the rule, which will become the final component of the rule's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.
*/
@JvmName("bjgksormgvcvsbvn")
public suspend fun gatewaySecurityPolicyRuleId(`value`: Output) {
this.gatewaySecurityPolicyRuleId = value
}
/**
* @param value
*/
@JvmName("jdageredfnivetku")
public suspend fun location(`value`: Output) {
this.location = value
}
/**
* @param value Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).
*/
@JvmName("jcptpqriamixkfba")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value Priority of the rule. Lower number corresponds to higher precedence.
*/
@JvmName("yhbrtmgrvhqgfiat")
public suspend fun priority(`value`: Output) {
this.priority = value
}
/**
* @param value
*/
@JvmName("axnmuioopvbnwjfx")
public suspend fun project(`value`: Output) {
this.project = value
}
/**
* @param value CEL expression for matching on session criteria.
*/
@JvmName("sdrndbicqxjpbikd")
public suspend fun sessionMatcher(`value`: Output) {
this.sessionMatcher = value
}
/**
* @param value Optional. Flag to enable TLS inspection of traffic matching on , can only be true if the parent GatewaySecurityPolicy references a TLSInspectionConfig.
*/
@JvmName("godfbskaejfebgck")
public suspend fun tlsInspectionEnabled(`value`: Output) {
this.tlsInspectionEnabled = value
}
/**
* @param value Optional. CEL expression for matching on L7/application level criteria.
*/
@JvmName("closjosktknajwub")
public suspend fun applicationMatcher(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.applicationMatcher = mapped
}
/**
* @param value Profile which tells what the primitive action should be.
*/
@JvmName("wneqhnnodorhqkod")
public suspend fun basicProfile(`value`: RuleBasicProfile?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.basicProfile = mapped
}
/**
* @param value Optional. Free-text description of the resource.
*/
@JvmName("clajbqbhebtbibss")
public suspend fun description(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.description = mapped
}
/**
* @param value Whether the rule is enforced.
*/
@JvmName("gdxpnlsjuqhpltrx")
public suspend fun enabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.enabled = mapped
}
/**
* @param value
*/
@JvmName("vpscxcoeafysyjwl")
public suspend fun gatewaySecurityPolicyId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.gatewaySecurityPolicyId = mapped
}
/**
* @param value The ID to use for the rule, which will become the final component of the rule's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.
*/
@JvmName("grqidlvdaiyakfta")
public suspend fun gatewaySecurityPolicyRuleId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.gatewaySecurityPolicyRuleId = mapped
}
/**
* @param value
*/
@JvmName("vypedgnifrdawxaf")
public suspend fun location(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.location = mapped
}
/**
* @param value Immutable. Name of the resource. ame is the full resource name so projects/{project}/locations/{location}/gatewaySecurityPolicies/{gateway_security_policy}/rules/{rule} rule should match the pattern: (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$).
*/
@JvmName("syjbghxtfbttakli")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value Priority of the rule. Lower number corresponds to higher precedence.
*/
@JvmName("qioggdivbcfjqcgw")
public suspend fun priority(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.priority = mapped
}
/**
* @param value
*/
@JvmName("mkmqfdrsxiljugsq")
public suspend fun project(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.project = mapped
}
/**
* @param value CEL expression for matching on session criteria.
*/
@JvmName("pjxvdjkiynasdfvc")
public suspend fun sessionMatcher(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.sessionMatcher = mapped
}
/**
* @param value Optional. Flag to enable TLS inspection of traffic matching on , can only be true if the parent GatewaySecurityPolicy references a TLSInspectionConfig.
*/
@JvmName("qddwjdgilsapscdh")
public suspend fun tlsInspectionEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tlsInspectionEnabled = mapped
}
internal fun build(): RuleArgs = RuleArgs(
applicationMatcher = applicationMatcher,
basicProfile = basicProfile,
description = description,
enabled = enabled,
gatewaySecurityPolicyId = gatewaySecurityPolicyId,
gatewaySecurityPolicyRuleId = gatewaySecurityPolicyRuleId,
location = location,
name = name,
priority = priority,
project = project,
sessionMatcher = sessionMatcher,
tlsInspectionEnabled = tlsInspectionEnabled,
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy