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

com.pulumi.slack.ConversationArgs Maven / Gradle / Ivy

There is a newer version: 0.5.0-alpha.1728108414
Show 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.slack;

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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ConversationArgs Empty = new ConversationArgs();

    /**
     * indicates whether the
     * conversation should be archived or left behind on destroy. Valid values are
     * `archive | none`. Note that when set to `none` the conversation will be left
     * as it is  and as a result any subsequent runs of pulumi up with the same
     * name  will fail.
     * 
     */
    @Import(name="actionOnDestroy")
    private @Nullable Output actionOnDestroy;

    /**
     * @return indicates whether the
     * conversation should be archived or left behind on destroy. Valid values are
     * `archive | none`. Note that when set to `none` the conversation will be left
     * as it is  and as a result any subsequent runs of pulumi up with the same
     * name  will fail.
     * 
     */
    public Optional> actionOnDestroy() {
        return Optional.ofNullable(this.actionOnDestroy);
    }

    /**
     * indicate
     * whether the members should be kick of the channel when removed from
     * `permanent_members`. When set to `none` the user are never kicked, this prevent
     * a side effect on public channels where user that joined the channel are kicked.
     * 
     */
    @Import(name="actionOnUpdatePermanentMembers")
    private @Nullable Output actionOnUpdatePermanentMembers;

    /**
     * @return indicate
     * whether the members should be kick of the channel when removed from
     * `permanent_members`. When set to `none` the user are never kicked, this prevent
     * a side effect on public channels where user that joined the channel are kicked.
     * 
     */
    public Optional> actionOnUpdatePermanentMembers() {
        return Optional.ofNullable(this.actionOnUpdatePermanentMembers);
    }

    @Import(name="adoptExistingChannel")
    private @Nullable Output adoptExistingChannel;

    public Optional> adoptExistingChannel() {
        return Optional.ofNullable(this.adoptExistingChannel);
    }

    /**
     * indicates a conversation is archived. Frozen in time.
     * 
     */
    @Import(name="isArchived")
    private @Nullable Output isArchived;

    /**
     * @return indicates a conversation is archived. Frozen in time.
     * 
     */
    public Optional> isArchived() {
        return Optional.ofNullable(this.isArchived);
    }

    /**
     * create a private channel instead of a public one.
     * 
     */
    @Import(name="isPrivate", required=true)
    private Output isPrivate;

    /**
     * @return create a private channel instead of a public one.
     * 
     */
    public Output isPrivate() {
        return this.isPrivate;
    }

    /**
     * name of the public or private channel.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return name of the public or private channel.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * user IDs to add to the channel.
     * 
     */
    @Import(name="permanentMembers")
    private @Nullable Output> permanentMembers;

    /**
     * @return user IDs to add to the channel.
     * 
     */
    public Optional>> permanentMembers() {
        return Optional.ofNullable(this.permanentMembers);
    }

    /**
     * purpose of the channel.
     * 
     */
    @Import(name="purpose")
    private @Nullable Output purpose;

    /**
     * @return purpose of the channel.
     * 
     */
    public Optional> purpose() {
        return Optional.ofNullable(this.purpose);
    }

    /**
     * topic for the channel.
     * 
     */
    @Import(name="topic")
    private @Nullable Output topic;

    /**
     * @return topic for the channel.
     * 
     */
    public Optional> topic() {
        return Optional.ofNullable(this.topic);
    }

    private ConversationArgs() {}

    private ConversationArgs(ConversationArgs $) {
        this.actionOnDestroy = $.actionOnDestroy;
        this.actionOnUpdatePermanentMembers = $.actionOnUpdatePermanentMembers;
        this.adoptExistingChannel = $.adoptExistingChannel;
        this.isArchived = $.isArchived;
        this.isPrivate = $.isPrivate;
        this.name = $.name;
        this.permanentMembers = $.permanentMembers;
        this.purpose = $.purpose;
        this.topic = $.topic;
    }

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

    public static final class Builder {
        private ConversationArgs $;

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

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

        /**
         * @param actionOnDestroy indicates whether the
         * conversation should be archived or left behind on destroy. Valid values are
         * `archive | none`. Note that when set to `none` the conversation will be left
         * as it is  and as a result any subsequent runs of pulumi up with the same
         * name  will fail.
         * 
         * @return builder
         * 
         */
        public Builder actionOnDestroy(@Nullable Output actionOnDestroy) {
            $.actionOnDestroy = actionOnDestroy;
            return this;
        }

        /**
         * @param actionOnDestroy indicates whether the
         * conversation should be archived or left behind on destroy. Valid values are
         * `archive | none`. Note that when set to `none` the conversation will be left
         * as it is  and as a result any subsequent runs of pulumi up with the same
         * name  will fail.
         * 
         * @return builder
         * 
         */
        public Builder actionOnDestroy(String actionOnDestroy) {
            return actionOnDestroy(Output.of(actionOnDestroy));
        }

        /**
         * @param actionOnUpdatePermanentMembers indicate
         * whether the members should be kick of the channel when removed from
         * `permanent_members`. When set to `none` the user are never kicked, this prevent
         * a side effect on public channels where user that joined the channel are kicked.
         * 
         * @return builder
         * 
         */
        public Builder actionOnUpdatePermanentMembers(@Nullable Output actionOnUpdatePermanentMembers) {
            $.actionOnUpdatePermanentMembers = actionOnUpdatePermanentMembers;
            return this;
        }

        /**
         * @param actionOnUpdatePermanentMembers indicate
         * whether the members should be kick of the channel when removed from
         * `permanent_members`. When set to `none` the user are never kicked, this prevent
         * a side effect on public channels where user that joined the channel are kicked.
         * 
         * @return builder
         * 
         */
        public Builder actionOnUpdatePermanentMembers(String actionOnUpdatePermanentMembers) {
            return actionOnUpdatePermanentMembers(Output.of(actionOnUpdatePermanentMembers));
        }

        public Builder adoptExistingChannel(@Nullable Output adoptExistingChannel) {
            $.adoptExistingChannel = adoptExistingChannel;
            return this;
        }

        public Builder adoptExistingChannel(Boolean adoptExistingChannel) {
            return adoptExistingChannel(Output.of(adoptExistingChannel));
        }

        /**
         * @param isArchived indicates a conversation is archived. Frozen in time.
         * 
         * @return builder
         * 
         */
        public Builder isArchived(@Nullable Output isArchived) {
            $.isArchived = isArchived;
            return this;
        }

        /**
         * @param isArchived indicates a conversation is archived. Frozen in time.
         * 
         * @return builder
         * 
         */
        public Builder isArchived(Boolean isArchived) {
            return isArchived(Output.of(isArchived));
        }

        /**
         * @param isPrivate create a private channel instead of a public one.
         * 
         * @return builder
         * 
         */
        public Builder isPrivate(Output isPrivate) {
            $.isPrivate = isPrivate;
            return this;
        }

        /**
         * @param isPrivate create a private channel instead of a public one.
         * 
         * @return builder
         * 
         */
        public Builder isPrivate(Boolean isPrivate) {
            return isPrivate(Output.of(isPrivate));
        }

        /**
         * @param name name of the public or private channel.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name name of the public or private channel.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param permanentMembers user IDs to add to the channel.
         * 
         * @return builder
         * 
         */
        public Builder permanentMembers(@Nullable Output> permanentMembers) {
            $.permanentMembers = permanentMembers;
            return this;
        }

        /**
         * @param permanentMembers user IDs to add to the channel.
         * 
         * @return builder
         * 
         */
        public Builder permanentMembers(List permanentMembers) {
            return permanentMembers(Output.of(permanentMembers));
        }

        /**
         * @param permanentMembers user IDs to add to the channel.
         * 
         * @return builder
         * 
         */
        public Builder permanentMembers(String... permanentMembers) {
            return permanentMembers(List.of(permanentMembers));
        }

        /**
         * @param purpose purpose of the channel.
         * 
         * @return builder
         * 
         */
        public Builder purpose(@Nullable Output purpose) {
            $.purpose = purpose;
            return this;
        }

        /**
         * @param purpose purpose of the channel.
         * 
         * @return builder
         * 
         */
        public Builder purpose(String purpose) {
            return purpose(Output.of(purpose));
        }

        /**
         * @param topic topic for the channel.
         * 
         * @return builder
         * 
         */
        public Builder topic(@Nullable Output topic) {
            $.topic = topic;
            return this;
        }

        /**
         * @param topic topic for the channel.
         * 
         * @return builder
         * 
         */
        public Builder topic(String topic) {
            return topic(Output.of(topic));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy