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

com.pulumi.kubernetes.admissionregistration.v1.kotlin.inputs.RuleWithOperationsArgs.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: 4.18.2.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.kubernetes.admissionregistration.v1.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kubernetes.admissionregistration.v1.inputs.RuleWithOperationsArgs.builder
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *  /* /*
 * RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.
 * @property apiGroups APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.
 * @property apiVersions APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.
 * @property operations Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.
 * @property resources Resources is a list of resources this rule applies to.
 * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.
 * If wildcard is present, the validation rule will ensure resources do not overlap with each other.
 * Depending on the enclosing object, subresources might not be allowed. Required.
 * @property scope scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*".
 * */
 */
public data class RuleWithOperationsArgs(
    public val apiGroups: Output>? = null,
    public val apiVersions: Output>? = null,
    public val operations: Output>? = null,
    public val resources: Output>? = null,
    public val scope: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.kubernetes.admissionregistration.v1.inputs.RuleWithOperationsArgs =
        com.pulumi.kubernetes.admissionregistration.v1.inputs.RuleWithOperationsArgs.builder()
            .apiGroups(apiGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .apiVersions(apiVersions?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .operations(operations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .resources(resources?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .scope(scope?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [RuleWithOperationsArgs].
 */
@PulumiTagMarker
public class RuleWithOperationsArgsBuilder internal constructor() {
    private var apiGroups: Output>? = null

    private var apiVersions: Output>? = null

    private var operations: Output>? = null

    private var resources: Output>? = null

    private var scope: Output? = null

    /**
     * @param value APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("msjqchnuqecguvty")
    public suspend fun apiGroups(`value`: Output>) {
        this.apiGroups = value
    }

    @JvmName("jnukkjjtpynabceh")
    public suspend fun apiGroups(vararg values: Output) {
        this.apiGroups = Output.all(values.asList())
    }

    /**
     * @param values APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("ehcjmmknjcofyeak")
    public suspend fun apiGroups(values: List>) {
        this.apiGroups = Output.all(values)
    }

    /**
     * @param value APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("iagcdemlstkwpxws")
    public suspend fun apiVersions(`value`: Output>) {
        this.apiVersions = value
    }

    @JvmName("iuucarhpdvanepbl")
    public suspend fun apiVersions(vararg values: Output) {
        this.apiVersions = Output.all(values.asList())
    }

    /**
     * @param values APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("rsmcgkfjtwxyuscy")
    public suspend fun apiVersions(values: List>) {
        this.apiVersions = Output.all(values)
    }

    /**
     * @param value Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("intnltwdqxuvnnmr")
    public suspend fun operations(`value`: Output>) {
        this.operations = value
    }

    @JvmName("iunjsilpswnkqmoo")
    public suspend fun operations(vararg values: Output) {
        this.operations = Output.all(values.asList())
    }

    /**
     * @param values Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("jkampyeloqkbdxvr")
    public suspend fun operations(values: List>) {
        this.operations = Output.all(values)
    }

    /**
     *  /* /*
     * @param value Resources is a list of resources this rule applies to.
     * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.
     * If wildcard is present, the validation rule will ensure resources do not overlap with each other.
     * Depending on the enclosing object, subresources might not be allowed. Required.
     * */
     */
    @JvmName("llqbofvjaqcqfugy")
    public suspend fun resources(`value`: Output>) {
        this.resources = value
    }

    @JvmName("pxkdyxbwytcxxneh")
    public suspend fun resources(vararg values: Output) {
        this.resources = Output.all(values.asList())
    }

    /**
     *  /* /*
     * @param values Resources is a list of resources this rule applies to.
     * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.
     * If wildcard is present, the validation rule will ensure resources do not overlap with each other.
     * Depending on the enclosing object, subresources might not be allowed. Required.
     * */
     */
    @JvmName("hllfenqsquuujmry")
    public suspend fun resources(values: List>) {
        this.resources = Output.all(values)
    }

    /**
     * @param value scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*".
     */
    @JvmName("pyayetegubbmphoq")
    public suspend fun scope(`value`: Output) {
        this.scope = value
    }

    /**
     * @param value APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("dhyeykbtkedxyion")
    public suspend fun apiGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.apiGroups = mapped
    }

    /**
     * @param values APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("cqqbprbapxnnncgk")
    public suspend fun apiGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.apiGroups = mapped
    }

    /**
     * @param value APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("aoxpjyjxqbtxfwtd")
    public suspend fun apiVersions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.apiVersions = mapped
    }

    /**
     * @param values APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("wqilxlyxmrbtagcf")
    public suspend fun apiVersions(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.apiVersions = mapped
    }

    /**
     * @param value Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("ydwbjdjmrusodsba")
    public suspend fun operations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.operations = mapped
    }

    /**
     * @param values Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.
     */
    @JvmName("wmlxjbwqsxlxpqka")
    public suspend fun operations(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.operations = mapped
    }

    /**
     *  /* /*
     * @param value Resources is a list of resources this rule applies to.
     * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.
     * If wildcard is present, the validation rule will ensure resources do not overlap with each other.
     * Depending on the enclosing object, subresources might not be allowed. Required.
     * */
     */
    @JvmName("kuogioxltakdinus")
    public suspend fun resources(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resources = mapped
    }

    /**
     *  /* /*
     * @param values Resources is a list of resources this rule applies to.
     * For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.
     * If wildcard is present, the validation rule will ensure resources do not overlap with each other.
     * Depending on the enclosing object, subresources might not be allowed. Required.
     * */
     */
    @JvmName("bsswbjnfnrfwqafo")
    public suspend fun resources(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resources = mapped
    }

    /**
     * @param value scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "*" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "*" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "*".
     */
    @JvmName("yidrbulrhdnjkrnd")
    public suspend fun scope(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scope = mapped
    }

    internal fun build(): RuleWithOperationsArgs = RuleWithOperationsArgs(
        apiGroups = apiGroups,
        apiVersions = apiVersions,
        operations = operations,
        resources = resources,
        scope = scope,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy