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

com.pulumi.azurenative.databox.inputs.ContactDetailsArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.databox.inputs;

import com.pulumi.azurenative.databox.inputs.NotificationPreferenceArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Contact Details.
 * 
 */
public final class ContactDetailsArgs extends com.pulumi.resources.ResourceArgs {

    public static final ContactDetailsArgs Empty = new ContactDetailsArgs();

    /**
     * Contact name of the person.
     * 
     */
    @Import(name="contactName", required=true)
    private Output contactName;

    /**
     * @return Contact name of the person.
     * 
     */
    public Output contactName() {
        return this.contactName;
    }

    /**
     * List of Email-ids to be notified about job progress.
     * 
     */
    @Import(name="emailList", required=true)
    private Output> emailList;

    /**
     * @return List of Email-ids to be notified about job progress.
     * 
     */
    public Output> emailList() {
        return this.emailList;
    }

    /**
     * Mobile number of the contact person.
     * 
     */
    @Import(name="mobile")
    private @Nullable Output mobile;

    /**
     * @return Mobile number of the contact person.
     * 
     */
    public Optional> mobile() {
        return Optional.ofNullable(this.mobile);
    }

    /**
     * Notification preference for a job stage.
     * 
     */
    @Import(name="notificationPreference")
    private @Nullable Output> notificationPreference;

    /**
     * @return Notification preference for a job stage.
     * 
     */
    public Optional>> notificationPreference() {
        return Optional.ofNullable(this.notificationPreference);
    }

    /**
     * Phone number of the contact person.
     * 
     */
    @Import(name="phone", required=true)
    private Output phone;

    /**
     * @return Phone number of the contact person.
     * 
     */
    public Output phone() {
        return this.phone;
    }

    /**
     * Phone extension number of the contact person.
     * 
     */
    @Import(name="phoneExtension")
    private @Nullable Output phoneExtension;

    /**
     * @return Phone extension number of the contact person.
     * 
     */
    public Optional> phoneExtension() {
        return Optional.ofNullable(this.phoneExtension);
    }

    private ContactDetailsArgs() {}

    private ContactDetailsArgs(ContactDetailsArgs $) {
        this.contactName = $.contactName;
        this.emailList = $.emailList;
        this.mobile = $.mobile;
        this.notificationPreference = $.notificationPreference;
        this.phone = $.phone;
        this.phoneExtension = $.phoneExtension;
    }

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

    public static final class Builder {
        private ContactDetailsArgs $;

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

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

        /**
         * @param contactName Contact name of the person.
         * 
         * @return builder
         * 
         */
        public Builder contactName(Output contactName) {
            $.contactName = contactName;
            return this;
        }

        /**
         * @param contactName Contact name of the person.
         * 
         * @return builder
         * 
         */
        public Builder contactName(String contactName) {
            return contactName(Output.of(contactName));
        }

        /**
         * @param emailList List of Email-ids to be notified about job progress.
         * 
         * @return builder
         * 
         */
        public Builder emailList(Output> emailList) {
            $.emailList = emailList;
            return this;
        }

        /**
         * @param emailList List of Email-ids to be notified about job progress.
         * 
         * @return builder
         * 
         */
        public Builder emailList(List emailList) {
            return emailList(Output.of(emailList));
        }

        /**
         * @param emailList List of Email-ids to be notified about job progress.
         * 
         * @return builder
         * 
         */
        public Builder emailList(String... emailList) {
            return emailList(List.of(emailList));
        }

        /**
         * @param mobile Mobile number of the contact person.
         * 
         * @return builder
         * 
         */
        public Builder mobile(@Nullable Output mobile) {
            $.mobile = mobile;
            return this;
        }

        /**
         * @param mobile Mobile number of the contact person.
         * 
         * @return builder
         * 
         */
        public Builder mobile(String mobile) {
            return mobile(Output.of(mobile));
        }

        /**
         * @param notificationPreference Notification preference for a job stage.
         * 
         * @return builder
         * 
         */
        public Builder notificationPreference(@Nullable Output> notificationPreference) {
            $.notificationPreference = notificationPreference;
            return this;
        }

        /**
         * @param notificationPreference Notification preference for a job stage.
         * 
         * @return builder
         * 
         */
        public Builder notificationPreference(List notificationPreference) {
            return notificationPreference(Output.of(notificationPreference));
        }

        /**
         * @param notificationPreference Notification preference for a job stage.
         * 
         * @return builder
         * 
         */
        public Builder notificationPreference(NotificationPreferenceArgs... notificationPreference) {
            return notificationPreference(List.of(notificationPreference));
        }

        /**
         * @param phone Phone number of the contact person.
         * 
         * @return builder
         * 
         */
        public Builder phone(Output phone) {
            $.phone = phone;
            return this;
        }

        /**
         * @param phone Phone number of the contact person.
         * 
         * @return builder
         * 
         */
        public Builder phone(String phone) {
            return phone(Output.of(phone));
        }

        /**
         * @param phoneExtension Phone extension number of the contact person.
         * 
         * @return builder
         * 
         */
        public Builder phoneExtension(@Nullable Output phoneExtension) {
            $.phoneExtension = phoneExtension;
            return this;
        }

        /**
         * @param phoneExtension Phone extension number of the contact person.
         * 
         * @return builder
         * 
         */
        public Builder phoneExtension(String phoneExtension) {
            return phoneExtension(Output.of(phoneExtension));
        }

        public ContactDetailsArgs build() {
            if ($.contactName == null) {
                throw new MissingRequiredPropertyException("ContactDetailsArgs", "contactName");
            }
            if ($.emailList == null) {
                throw new MissingRequiredPropertyException("ContactDetailsArgs", "emailList");
            }
            if ($.phone == null) {
                throw new MissingRequiredPropertyException("ContactDetailsArgs", "phone");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy