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

com.pulumi.gitlab.ProjectLevelNotificationsArgs Maven / Gradle / Ivy

The newest version!
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.gitlab;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ProjectLevelNotificationsArgs extends com.pulumi.resources.ResourceArgs {

    public static final ProjectLevelNotificationsArgs Empty = new ProjectLevelNotificationsArgs();

    /**
     * Enable notifications for closed issues. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="closeIssue")
    private @Nullable Output closeIssue;

    /**
     * @return Enable notifications for closed issues. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> closeIssue() {
        return Optional.ofNullable(this.closeIssue);
    }

    /**
     * Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="closeMergeRequest")
    private @Nullable Output closeMergeRequest;

    /**
     * @return Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> closeMergeRequest() {
        return Optional.ofNullable(this.closeMergeRequest);
    }

    /**
     * Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="failedPipeline")
    private @Nullable Output failedPipeline;

    /**
     * @return Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> failedPipeline() {
        return Optional.ofNullable(this.failedPipeline);
    }

    /**
     * Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="fixedPipeline")
    private @Nullable Output fixedPipeline;

    /**
     * @return Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> fixedPipeline() {
        return Optional.ofNullable(this.fixedPipeline);
    }

    /**
     * Enable notifications for due issues. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="issueDue")
    private @Nullable Output issueDue;

    /**
     * @return Enable notifications for due issues. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> issueDue() {
        return Optional.ofNullable(this.issueDue);
    }

    /**
     * The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
     * 
     */
    @Import(name="level")
    private @Nullable Output level;

    /**
     * @return The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
     * 
     */
    public Optional> level() {
        return Optional.ofNullable(this.level);
    }

    /**
     * Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="mergeMergeRequest")
    private @Nullable Output mergeMergeRequest;

    /**
     * @return Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> mergeMergeRequest() {
        return Optional.ofNullable(this.mergeMergeRequest);
    }

    /**
     * Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="mergeWhenPipelineSucceeds")
    private @Nullable Output mergeWhenPipelineSucceeds;

    /**
     * @return Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> mergeWhenPipelineSucceeds() {
        return Optional.ofNullable(this.mergeWhenPipelineSucceeds);
    }

    /**
     * Enable notifications for moved projects. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="movedProject")
    private @Nullable Output movedProject;

    /**
     * @return Enable notifications for moved projects. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> movedProject() {
        return Optional.ofNullable(this.movedProject);
    }

    /**
     * Enable notifications for new issues. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="newIssue")
    private @Nullable Output newIssue;

    /**
     * @return Enable notifications for new issues. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> newIssue() {
        return Optional.ofNullable(this.newIssue);
    }

    /**
     * Enable notifications for new merge requests. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="newMergeRequest")
    private @Nullable Output newMergeRequest;

    /**
     * @return Enable notifications for new merge requests. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> newMergeRequest() {
        return Optional.ofNullable(this.newMergeRequest);
    }

    /**
     * Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="newNote")
    private @Nullable Output newNote;

    /**
     * @return Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> newNote() {
        return Optional.ofNullable(this.newNote);
    }

    /**
     * The ID or URL-encoded path of a project where notifications will be configured.
     * 
     */
    @Import(name="project", required=true)
    private Output project;

    /**
     * @return The ID or URL-encoded path of a project where notifications will be configured.
     * 
     */
    public Output project() {
        return this.project;
    }

    /**
     * Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="pushToMergeRequest")
    private @Nullable Output pushToMergeRequest;

    /**
     * @return Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> pushToMergeRequest() {
        return Optional.ofNullable(this.pushToMergeRequest);
    }

    /**
     * Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="reassignIssue")
    private @Nullable Output reassignIssue;

    /**
     * @return Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> reassignIssue() {
        return Optional.ofNullable(this.reassignIssue);
    }

    /**
     * Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="reassignMergeRequest")
    private @Nullable Output reassignMergeRequest;

    /**
     * @return Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> reassignMergeRequest() {
        return Optional.ofNullable(this.reassignMergeRequest);
    }

    /**
     * Enable notifications for reopened issues. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="reopenIssue")
    private @Nullable Output reopenIssue;

    /**
     * @return Enable notifications for reopened issues. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> reopenIssue() {
        return Optional.ofNullable(this.reopenIssue);
    }

    /**
     * Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="reopenMergeRequest")
    private @Nullable Output reopenMergeRequest;

    /**
     * @return Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> reopenMergeRequest() {
        return Optional.ofNullable(this.reopenMergeRequest);
    }

    /**
     * Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
     * 
     */
    @Import(name="successPipeline")
    private @Nullable Output successPipeline;

    /**
     * @return Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
     * 
     */
    public Optional> successPipeline() {
        return Optional.ofNullable(this.successPipeline);
    }

    private ProjectLevelNotificationsArgs() {}

    private ProjectLevelNotificationsArgs(ProjectLevelNotificationsArgs $) {
        this.closeIssue = $.closeIssue;
        this.closeMergeRequest = $.closeMergeRequest;
        this.failedPipeline = $.failedPipeline;
        this.fixedPipeline = $.fixedPipeline;
        this.issueDue = $.issueDue;
        this.level = $.level;
        this.mergeMergeRequest = $.mergeMergeRequest;
        this.mergeWhenPipelineSucceeds = $.mergeWhenPipelineSucceeds;
        this.movedProject = $.movedProject;
        this.newIssue = $.newIssue;
        this.newMergeRequest = $.newMergeRequest;
        this.newNote = $.newNote;
        this.project = $.project;
        this.pushToMergeRequest = $.pushToMergeRequest;
        this.reassignIssue = $.reassignIssue;
        this.reassignMergeRequest = $.reassignMergeRequest;
        this.reopenIssue = $.reopenIssue;
        this.reopenMergeRequest = $.reopenMergeRequest;
        this.successPipeline = $.successPipeline;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ProjectLevelNotificationsArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ProjectLevelNotificationsArgs $;

        public Builder() {
            $ = new ProjectLevelNotificationsArgs();
        }

        public Builder(ProjectLevelNotificationsArgs defaults) {
            $ = new ProjectLevelNotificationsArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder closeIssue(@Nullable Output closeIssue) {
            $.closeIssue = closeIssue;
            return this;
        }

        /**
         * @param closeIssue Enable notifications for closed issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder closeIssue(Boolean closeIssue) {
            return closeIssue(Output.of(closeIssue));
        }

        /**
         * @param closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder closeMergeRequest(@Nullable Output closeMergeRequest) {
            $.closeMergeRequest = closeMergeRequest;
            return this;
        }

        /**
         * @param closeMergeRequest Enable notifications for closed merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder closeMergeRequest(Boolean closeMergeRequest) {
            return closeMergeRequest(Output.of(closeMergeRequest));
        }

        /**
         * @param failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder failedPipeline(@Nullable Output failedPipeline) {
            $.failedPipeline = failedPipeline;
            return this;
        }

        /**
         * @param failedPipeline Enable notifications for failed pipelines. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder failedPipeline(Boolean failedPipeline) {
            return failedPipeline(Output.of(failedPipeline));
        }

        /**
         * @param fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder fixedPipeline(@Nullable Output fixedPipeline) {
            $.fixedPipeline = fixedPipeline;
            return this;
        }

        /**
         * @param fixedPipeline Enable notifications for fixed pipelines. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder fixedPipeline(Boolean fixedPipeline) {
            return fixedPipeline(Output.of(fixedPipeline));
        }

        /**
         * @param issueDue Enable notifications for due issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder issueDue(@Nullable Output issueDue) {
            $.issueDue = issueDue;
            return this;
        }

        /**
         * @param issueDue Enable notifications for due issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder issueDue(Boolean issueDue) {
            return issueDue(Output.of(issueDue));
        }

        /**
         * @param level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
         * 
         * @return builder
         * 
         */
        public Builder level(@Nullable Output level) {
            $.level = level;
            return this;
        }

        /**
         * @param level The level of the notification. Valid values are: `disabled`, `participating`, `watch`, `global`, `mention`, `custom`.
         * 
         * @return builder
         * 
         */
        public Builder level(String level) {
            return level(Output.of(level));
        }

        /**
         * @param mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder mergeMergeRequest(@Nullable Output mergeMergeRequest) {
            $.mergeMergeRequest = mergeMergeRequest;
            return this;
        }

        /**
         * @param mergeMergeRequest Enable notifications for merged merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder mergeMergeRequest(Boolean mergeMergeRequest) {
            return mergeMergeRequest(Output.of(mergeMergeRequest));
        }

        /**
         * @param mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder mergeWhenPipelineSucceeds(@Nullable Output mergeWhenPipelineSucceeds) {
            $.mergeWhenPipelineSucceeds = mergeWhenPipelineSucceeds;
            return this;
        }

        /**
         * @param mergeWhenPipelineSucceeds Enable notifications for merged merge requests when the pipeline succeeds. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder mergeWhenPipelineSucceeds(Boolean mergeWhenPipelineSucceeds) {
            return mergeWhenPipelineSucceeds(Output.of(mergeWhenPipelineSucceeds));
        }

        /**
         * @param movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder movedProject(@Nullable Output movedProject) {
            $.movedProject = movedProject;
            return this;
        }

        /**
         * @param movedProject Enable notifications for moved projects. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder movedProject(Boolean movedProject) {
            return movedProject(Output.of(movedProject));
        }

        /**
         * @param newIssue Enable notifications for new issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder newIssue(@Nullable Output newIssue) {
            $.newIssue = newIssue;
            return this;
        }

        /**
         * @param newIssue Enable notifications for new issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder newIssue(Boolean newIssue) {
            return newIssue(Output.of(newIssue));
        }

        /**
         * @param newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder newMergeRequest(@Nullable Output newMergeRequest) {
            $.newMergeRequest = newMergeRequest;
            return this;
        }

        /**
         * @param newMergeRequest Enable notifications for new merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder newMergeRequest(Boolean newMergeRequest) {
            return newMergeRequest(Output.of(newMergeRequest));
        }

        /**
         * @param newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder newNote(@Nullable Output newNote) {
            $.newNote = newNote;
            return this;
        }

        /**
         * @param newNote Enable notifications for new notes on merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder newNote(Boolean newNote) {
            return newNote(Output.of(newNote));
        }

        /**
         * @param project The ID or URL-encoded path of a project where notifications will be configured.
         * 
         * @return builder
         * 
         */
        public Builder project(Output project) {
            $.project = project;
            return this;
        }

        /**
         * @param project The ID or URL-encoded path of a project where notifications will be configured.
         * 
         * @return builder
         * 
         */
        public Builder project(String project) {
            return project(Output.of(project));
        }

        /**
         * @param pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder pushToMergeRequest(@Nullable Output pushToMergeRequest) {
            $.pushToMergeRequest = pushToMergeRequest;
            return this;
        }

        /**
         * @param pushToMergeRequest Enable notifications for push to merge request branches. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder pushToMergeRequest(Boolean pushToMergeRequest) {
            return pushToMergeRequest(Output.of(pushToMergeRequest));
        }

        /**
         * @param reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reassignIssue(@Nullable Output reassignIssue) {
            $.reassignIssue = reassignIssue;
            return this;
        }

        /**
         * @param reassignIssue Enable notifications for issue reassignments. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reassignIssue(Boolean reassignIssue) {
            return reassignIssue(Output.of(reassignIssue));
        }

        /**
         * @param reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reassignMergeRequest(@Nullable Output reassignMergeRequest) {
            $.reassignMergeRequest = reassignMergeRequest;
            return this;
        }

        /**
         * @param reassignMergeRequest Enable notifications for merge request reassignments. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reassignMergeRequest(Boolean reassignMergeRequest) {
            return reassignMergeRequest(Output.of(reassignMergeRequest));
        }

        /**
         * @param reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reopenIssue(@Nullable Output reopenIssue) {
            $.reopenIssue = reopenIssue;
            return this;
        }

        /**
         * @param reopenIssue Enable notifications for reopened issues. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reopenIssue(Boolean reopenIssue) {
            return reopenIssue(Output.of(reopenIssue));
        }

        /**
         * @param reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reopenMergeRequest(@Nullable Output reopenMergeRequest) {
            $.reopenMergeRequest = reopenMergeRequest;
            return this;
        }

        /**
         * @param reopenMergeRequest Enable notifications for reopened merge requests. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder reopenMergeRequest(Boolean reopenMergeRequest) {
            return reopenMergeRequest(Output.of(reopenMergeRequest));
        }

        /**
         * @param successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder successPipeline(@Nullable Output successPipeline) {
            $.successPipeline = successPipeline;
            return this;
        }

        /**
         * @param successPipeline Enable notifications for successful pipelines. Can only be used when `level` is `custom`.
         * 
         * @return builder
         * 
         */
        public Builder successPipeline(Boolean successPipeline) {
            return successPipeline(Output.of(successPipeline));
        }

        public ProjectLevelNotificationsArgs build() {
            if ($.project == null) {
                throw new MissingRequiredPropertyException("ProjectLevelNotificationsArgs", "project");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy