com.pulumi.cloudflare.kotlin.AccessGroupArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-cloudflare-kotlin Show documentation
Show all versions of pulumi-cloudflare-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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.cloudflare.kotlin
import com.pulumi.cloudflare.AccessGroupArgs.builder
import com.pulumi.cloudflare.kotlin.inputs.AccessGroupExcludeArgs
import com.pulumi.cloudflare.kotlin.inputs.AccessGroupExcludeArgsBuilder
import com.pulumi.cloudflare.kotlin.inputs.AccessGroupIncludeArgs
import com.pulumi.cloudflare.kotlin.inputs.AccessGroupIncludeArgsBuilder
import com.pulumi.cloudflare.kotlin.inputs.AccessGroupRequireArgs
import com.pulumi.cloudflare.kotlin.inputs.AccessGroupRequireArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Provides a Cloudflare Access Group resource. Access Groups are used
* in conjunction with Access Policies to restrict access to a
* particular resource based on group membership.
* > It's required that an `account_id` or `zone_id` is provided and in
* most cases using either is fine. However, if you're using a scoped
* access token, you must provide the argument that matches the token's
* scope. For example, an access token that is scoped to the "example.com"
* zone needs to use the `zone_id` argument.
* ## Import
* ```sh
* $ pulumi import cloudflare:index/accessGroup:AccessGroup example /
* ```
* @property accountId The account identifier to target for the resource. Conflicts with `zone_id`. **Modifying this attribute will force creation of a new resource.**
* @property excludes
* @property includes
* @property name
* @property requires
* @property zoneId The zone identifier to target for the resource. Conflicts with `account_id`.
*/
public data class AccessGroupArgs(
public val accountId: Output? = null,
public val excludes: Output>? = null,
public val includes: Output>? = null,
public val name: Output? = null,
public val requires: Output>? = null,
public val zoneId: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.cloudflare.AccessGroupArgs =
com.pulumi.cloudflare.AccessGroupArgs.builder()
.accountId(accountId?.applyValue({ args0 -> args0 }))
.excludes(
excludes?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.includes(
includes?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.name(name?.applyValue({ args0 -> args0 }))
.requires(
requires?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.zoneId(zoneId?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [AccessGroupArgs].
*/
@PulumiTagMarker
public class AccessGroupArgsBuilder internal constructor() {
private var accountId: Output? = null
private var excludes: Output>? = null
private var includes: Output>? = null
private var name: Output? = null
private var requires: Output>? = null
private var zoneId: Output? = null
/**
* @param value The account identifier to target for the resource. Conflicts with `zone_id`. **Modifying this attribute will force creation of a new resource.**
*/
@JvmName("lepphghgfwabnxdq")
public suspend fun accountId(`value`: Output) {
this.accountId = value
}
/**
* @param value
*/
@JvmName("pmyxnsegvgsxrbvl")
public suspend fun excludes(`value`: Output>) {
this.excludes = value
}
@JvmName("tdpifbmmygnxkooi")
public suspend fun excludes(vararg values: Output) {
this.excludes = Output.all(values.asList())
}
/**
* @param values
*/
@JvmName("ceecnpfufmournmu")
public suspend fun excludes(values: List