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

com.pulumi.awsnative.codeartifact.kotlin.inputs.PackageGroupRestrictionsArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.codeartifact.kotlin.inputs

import com.pulumi.awsnative.codeartifact.inputs.PackageGroupRestrictionsArgs.builder
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.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property externalUpstream The external upstream restriction determines if new package versions can be ingested or retained from external connections.
 * @property internalUpstream The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories.
 * @property publish The publish restriction determines if new package versions can be published.
 */
public data class PackageGroupRestrictionsArgs(
    public val externalUpstream: Output? = null,
    public val internalUpstream: Output? = null,
    public val publish: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.codeartifact.inputs.PackageGroupRestrictionsArgs =
        com.pulumi.awsnative.codeartifact.inputs.PackageGroupRestrictionsArgs.builder()
            .externalUpstream(externalUpstream?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .internalUpstream(internalUpstream?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .publish(publish?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [PackageGroupRestrictionsArgs].
 */
@PulumiTagMarker
public class PackageGroupRestrictionsArgsBuilder internal constructor() {
    private var externalUpstream: Output? = null

    private var internalUpstream: Output? = null

    private var publish: Output? = null

    /**
     * @param value The external upstream restriction determines if new package versions can be ingested or retained from external connections.
     */
    @JvmName("wmaxmjmmokuvebaa")
    public suspend fun externalUpstream(`value`: Output) {
        this.externalUpstream = value
    }

    /**
     * @param value The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories.
     */
    @JvmName("wgqmrcigowdtyesl")
    public suspend fun internalUpstream(`value`: Output) {
        this.internalUpstream = value
    }

    /**
     * @param value The publish restriction determines if new package versions can be published.
     */
    @JvmName("jyydaugqdpvkjacj")
    public suspend fun publish(`value`: Output) {
        this.publish = value
    }

    /**
     * @param value The external upstream restriction determines if new package versions can be ingested or retained from external connections.
     */
    @JvmName("wxihyytcierurpac")
    public suspend fun externalUpstream(`value`: PackageGroupRestrictionTypeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalUpstream = mapped
    }

    /**
     * @param argument The external upstream restriction determines if new package versions can be ingested or retained from external connections.
     */
    @JvmName("dyohnbcedpeviswd")
    public suspend fun externalUpstream(argument: suspend PackageGroupRestrictionTypeArgsBuilder.() -> Unit) {
        val toBeMapped = PackageGroupRestrictionTypeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.externalUpstream = mapped
    }

    /**
     * @param value The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories.
     */
    @JvmName("ankrikfodmynfrjg")
    public suspend fun internalUpstream(`value`: PackageGroupRestrictionTypeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.internalUpstream = mapped
    }

    /**
     * @param argument The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories.
     */
    @JvmName("rhjwvcwxaqvddxsi")
    public suspend fun internalUpstream(argument: suspend PackageGroupRestrictionTypeArgsBuilder.() -> Unit) {
        val toBeMapped = PackageGroupRestrictionTypeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.internalUpstream = mapped
    }

    /**
     * @param value The publish restriction determines if new package versions can be published.
     */
    @JvmName("vnvootdggxpntxgq")
    public suspend fun publish(`value`: PackageGroupRestrictionTypeArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publish = mapped
    }

    /**
     * @param argument The publish restriction determines if new package versions can be published.
     */
    @JvmName("jffbtuklilubvidv")
    public suspend fun publish(argument: suspend PackageGroupRestrictionTypeArgsBuilder.() -> Unit) {
        val toBeMapped = PackageGroupRestrictionTypeArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.publish = mapped
    }

    internal fun build(): PackageGroupRestrictionsArgs = PackageGroupRestrictionsArgs(
        externalUpstream = externalUpstream,
        internalUpstream = internalUpstream,
        publish = publish,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy