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

com.pulumi.gitlab.kotlin.ProjectLevelNotificationsArgs.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: 8.4.2.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gitlab.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gitlab.ProjectLevelNotificationsArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * The `gitlab.ProjectLevelNotifications` resource allows to manage notifications for a project.
 * > While the API supports both groups and projects, this resource only supports projects currently.
 * **Upstream API**: [GitLab REST API docs](https://docs.gitlab.com/ee/api/notification_settings.html#group--project-level-notification-settings)
 * @property closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`.
 * @property closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
 * @property failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
 * @property fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
 * @property issueDue Enable notifications for due issues. Can only be used when `level` is `custom`.
 * @property level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
 * @property mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
 * @property mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
 * @property movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`.
 * @property newIssue Enable notifications for new issues. Can only be used when `level` is `custom`.
 * @property newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`.
 * @property newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
 * @property project The ID or URL-encoded path of a project where notifications will be configured.
 * @property pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
 * @property reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
 * @property reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
 * @property reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`.
 * @property reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
 * @property successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
 */
public data class ProjectLevelNotificationsArgs(
    public val closeIssue: Output? = null,
    public val closeMergeRequest: Output? = null,
    public val failedPipeline: Output? = null,
    public val fixedPipeline: Output? = null,
    public val issueDue: Output? = null,
    public val level: Output? = null,
    public val mergeMergeRequest: Output? = null,
    public val mergeWhenPipelineSucceeds: Output? = null,
    public val movedProject: Output? = null,
    public val newIssue: Output? = null,
    public val newMergeRequest: Output? = null,
    public val newNote: Output? = null,
    public val project: Output? = null,
    public val pushToMergeRequest: Output? = null,
    public val reassignIssue: Output? = null,
    public val reassignMergeRequest: Output? = null,
    public val reopenIssue: Output? = null,
    public val reopenMergeRequest: Output? = null,
    public val successPipeline: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gitlab.ProjectLevelNotificationsArgs =
        com.pulumi.gitlab.ProjectLevelNotificationsArgs.builder()
            .closeIssue(closeIssue?.applyValue({ args0 -> args0 }))
            .closeMergeRequest(closeMergeRequest?.applyValue({ args0 -> args0 }))
            .failedPipeline(failedPipeline?.applyValue({ args0 -> args0 }))
            .fixedPipeline(fixedPipeline?.applyValue({ args0 -> args0 }))
            .issueDue(issueDue?.applyValue({ args0 -> args0 }))
            .level(level?.applyValue({ args0 -> args0 }))
            .mergeMergeRequest(mergeMergeRequest?.applyValue({ args0 -> args0 }))
            .mergeWhenPipelineSucceeds(mergeWhenPipelineSucceeds?.applyValue({ args0 -> args0 }))
            .movedProject(movedProject?.applyValue({ args0 -> args0 }))
            .newIssue(newIssue?.applyValue({ args0 -> args0 }))
            .newMergeRequest(newMergeRequest?.applyValue({ args0 -> args0 }))
            .newNote(newNote?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .pushToMergeRequest(pushToMergeRequest?.applyValue({ args0 -> args0 }))
            .reassignIssue(reassignIssue?.applyValue({ args0 -> args0 }))
            .reassignMergeRequest(reassignMergeRequest?.applyValue({ args0 -> args0 }))
            .reopenIssue(reopenIssue?.applyValue({ args0 -> args0 }))
            .reopenMergeRequest(reopenMergeRequest?.applyValue({ args0 -> args0 }))
            .successPipeline(successPipeline?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ProjectLevelNotificationsArgs].
 */
@PulumiTagMarker
public class ProjectLevelNotificationsArgsBuilder internal constructor() {
    private var closeIssue: Output? = null

    private var closeMergeRequest: Output? = null

    private var failedPipeline: Output? = null

    private var fixedPipeline: Output? = null

    private var issueDue: Output? = null

    private var level: Output? = null

    private var mergeMergeRequest: Output? = null

    private var mergeWhenPipelineSucceeds: Output? = null

    private var movedProject: Output? = null

    private var newIssue: Output? = null

    private var newMergeRequest: Output? = null

    private var newNote: Output? = null

    private var project: Output? = null

    private var pushToMergeRequest: Output? = null

    private var reassignIssue: Output? = null

    private var reassignMergeRequest: Output? = null

    private var reopenIssue: Output? = null

    private var reopenMergeRequest: Output? = null

    private var successPipeline: Output? = null

    /**
     * @param value Enable notifications for closed issues. Can only be used when `level` is `custom`.
     */
    @JvmName("fegwlcibqeaixish")
    public suspend fun closeIssue(`value`: Output) {
        this.closeIssue = value
    }

    /**
     * @param value Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("qwyhdboeiqibyasn")
    public suspend fun closeMergeRequest(`value`: Output) {
        this.closeMergeRequest = value
    }

    /**
     * @param value Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
     */
    @JvmName("xahrykemmvioydnl")
    public suspend fun failedPipeline(`value`: Output) {
        this.failedPipeline = value
    }

    /**
     * @param value Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
     */
    @JvmName("lurmdcsxphumoxgm")
    public suspend fun fixedPipeline(`value`: Output) {
        this.fixedPipeline = value
    }

    /**
     * @param value Enable notifications for due issues. Can only be used when `level` is `custom`.
     */
    @JvmName("ukctgocfrjuwwqdu")
    public suspend fun issueDue(`value`: Output) {
        this.issueDue = value
    }

    /**
     * @param value The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
     */
    @JvmName("fehwonfankutoptv")
    public suspend fun level(`value`: Output) {
        this.level = value
    }

    /**
     * @param value Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("wgpqjcpgermaerda")
    public suspend fun mergeMergeRequest(`value`: Output) {
        this.mergeMergeRequest = value
    }

    /**
     * @param value Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
     */
    @JvmName("klnpisirwmjcsngr")
    public suspend fun mergeWhenPipelineSucceeds(`value`: Output) {
        this.mergeWhenPipelineSucceeds = value
    }

    /**
     * @param value Enable notifications for moved projects. Can only be used when `level` is `custom`.
     */
    @JvmName("pucfxgmwkfnoflgt")
    public suspend fun movedProject(`value`: Output) {
        this.movedProject = value
    }

    /**
     * @param value Enable notifications for new issues. Can only be used when `level` is `custom`.
     */
    @JvmName("lkjhgvejodemmbwe")
    public suspend fun newIssue(`value`: Output) {
        this.newIssue = value
    }

    /**
     * @param value Enable notifications for new merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("sqyntdokwnuymmgt")
    public suspend fun newMergeRequest(`value`: Output) {
        this.newMergeRequest = value
    }

    /**
     * @param value Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("sscdxkfohdcyrakj")
    public suspend fun newNote(`value`: Output) {
        this.newNote = value
    }

    /**
     * @param value The ID or URL-encoded path of a project where notifications will be configured.
     */
    @JvmName("fxbgiybmkfjwrpto")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
     */
    @JvmName("qljtdglwlbaynwya")
    public suspend fun pushToMergeRequest(`value`: Output) {
        this.pushToMergeRequest = value
    }

    /**
     * @param value Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
     */
    @JvmName("ismlujlfaxdskvhp")
    public suspend fun reassignIssue(`value`: Output) {
        this.reassignIssue = value
    }

    /**
     * @param value Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
     */
    @JvmName("subgllfehlmipiks")
    public suspend fun reassignMergeRequest(`value`: Output) {
        this.reassignMergeRequest = value
    }

    /**
     * @param value Enable notifications for reopened issues. Can only be used when `level` is `custom`.
     */
    @JvmName("icdtquvgaoommykg")
    public suspend fun reopenIssue(`value`: Output) {
        this.reopenIssue = value
    }

    /**
     * @param value Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("amiruwieexwaxjii")
    public suspend fun reopenMergeRequest(`value`: Output) {
        this.reopenMergeRequest = value
    }

    /**
     * @param value Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
     */
    @JvmName("prtkceabbxndewni")
    public suspend fun successPipeline(`value`: Output) {
        this.successPipeline = value
    }

    /**
     * @param value Enable notifications for closed issues. Can only be used when `level` is `custom`.
     */
    @JvmName("aucrloouoysyrlbu")
    public suspend fun closeIssue(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.closeIssue = mapped
    }

    /**
     * @param value Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("ropredvqryjroucv")
    public suspend fun closeMergeRequest(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.closeMergeRequest = mapped
    }

    /**
     * @param value Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
     */
    @JvmName("crhsdjvrkovbnnap")
    public suspend fun failedPipeline(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.failedPipeline = mapped
    }

    /**
     * @param value Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
     */
    @JvmName("lmavjjjgixilmxrh")
    public suspend fun fixedPipeline(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fixedPipeline = mapped
    }

    /**
     * @param value Enable notifications for due issues. Can only be used when `level` is `custom`.
     */
    @JvmName("rpmrxfqpifhqtenq")
    public suspend fun issueDue(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.issueDue = mapped
    }

    /**
     * @param value The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
     */
    @JvmName("txeagqfefxowdegf")
    public suspend fun level(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.level = mapped
    }

    /**
     * @param value Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("cqxwphxnugkbiirp")
    public suspend fun mergeMergeRequest(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mergeMergeRequest = mapped
    }

    /**
     * @param value Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
     */
    @JvmName("yrugiepmyblxxvdr")
    public suspend fun mergeWhenPipelineSucceeds(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mergeWhenPipelineSucceeds = mapped
    }

    /**
     * @param value Enable notifications for moved projects. Can only be used when `level` is `custom`.
     */
    @JvmName("njfuujcmvyuxbxpi")
    public suspend fun movedProject(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.movedProject = mapped
    }

    /**
     * @param value Enable notifications for new issues. Can only be used when `level` is `custom`.
     */
    @JvmName("ibtqxnvwwosrcfqa")
    public suspend fun newIssue(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.newIssue = mapped
    }

    /**
     * @param value Enable notifications for new merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("jwmtdykeqlmonxbf")
    public suspend fun newMergeRequest(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.newMergeRequest = mapped
    }

    /**
     * @param value Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("gifckqcsqyqprstr")
    public suspend fun newNote(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.newNote = mapped
    }

    /**
     * @param value The ID or URL-encoded path of a project where notifications will be configured.
     */
    @JvmName("jjrieharwsygkcxq")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
     */
    @JvmName("odidksoiaispgmib")
    public suspend fun pushToMergeRequest(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pushToMergeRequest = mapped
    }

    /**
     * @param value Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
     */
    @JvmName("huvqfuljrwjofsui")
    public suspend fun reassignIssue(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reassignIssue = mapped
    }

    /**
     * @param value Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
     */
    @JvmName("fnyfxqwtfjuuokdt")
    public suspend fun reassignMergeRequest(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reassignMergeRequest = mapped
    }

    /**
     * @param value Enable notifications for reopened issues. Can only be used when `level` is `custom`.
     */
    @JvmName("lxxfbbksmsndivyr")
    public suspend fun reopenIssue(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reopenIssue = mapped
    }

    /**
     * @param value Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
     */
    @JvmName("nsbubgldkeiktktu")
    public suspend fun reopenMergeRequest(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reopenMergeRequest = mapped
    }

    /**
     * @param value Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
     */
    @JvmName("typaelkgoyjfweqq")
    public suspend fun successPipeline(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.successPipeline = mapped
    }

    internal fun build(): ProjectLevelNotificationsArgs = ProjectLevelNotificationsArgs(
        closeIssue = closeIssue,
        closeMergeRequest = closeMergeRequest,
        failedPipeline = failedPipeline,
        fixedPipeline = fixedPipeline,
        issueDue = issueDue,
        level = level,
        mergeMergeRequest = mergeMergeRequest,
        mergeWhenPipelineSucceeds = mergeWhenPipelineSucceeds,
        movedProject = movedProject,
        newIssue = newIssue,
        newMergeRequest = newMergeRequest,
        newNote = newNote,
        project = project,
        pushToMergeRequest = pushToMergeRequest,
        reassignIssue = reassignIssue,
        reassignMergeRequest = reassignMergeRequest,
        reopenIssue = reopenIssue,
        reopenMergeRequest = reopenMergeRequest,
        successPipeline = successPipeline,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy