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

com.pulumi.azurenative.domainregistration.DomainArgs 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.domainregistration;

import com.pulumi.azurenative.domainregistration.enums.DnsType;
import com.pulumi.azurenative.domainregistration.inputs.ContactArgs;
import com.pulumi.azurenative.domainregistration.inputs.DomainPurchaseConsentArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DomainArgs Empty = new DomainArgs();

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

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

    /**
     * <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>.
     * 
     */
    @Import(name="autoRenew")
    private @Nullable Output autoRenew;

    /**
     * @return <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>.
     * 
     */
    public Optional> autoRenew() {
        return Optional.ofNullable(this.autoRenew);
    }

    /**
     * Legal agreement consent.
     * 
     */
    @Import(name="consent", required=true)
    private Output consent;

    /**
     * @return Legal agreement consent.
     * 
     */
    public Output consent() {
        return this.consent;
    }

    /**
     * Administrative contact.
     * 
     */
    @Import(name="contactAdmin", required=true)
    private Output contactAdmin;

    /**
     * @return Administrative contact.
     * 
     */
    public Output contactAdmin() {
        return this.contactAdmin;
    }

    /**
     * Billing contact.
     * 
     */
    @Import(name="contactBilling", required=true)
    private Output contactBilling;

    /**
     * @return Billing contact.
     * 
     */
    public Output contactBilling() {
        return this.contactBilling;
    }

    /**
     * Registrant contact.
     * 
     */
    @Import(name="contactRegistrant", required=true)
    private Output contactRegistrant;

    /**
     * @return Registrant contact.
     * 
     */
    public Output contactRegistrant() {
        return this.contactRegistrant;
    }

    /**
     * Technical contact.
     * 
     */
    @Import(name="contactTech", required=true)
    private Output contactTech;

    /**
     * @return Technical contact.
     * 
     */
    public Output contactTech() {
        return this.contactTech;
    }

    /**
     * Current DNS type
     * 
     */
    @Import(name="dnsType")
    private @Nullable Output dnsType;

    /**
     * @return Current DNS type
     * 
     */
    public Optional> dnsType() {
        return Optional.ofNullable(this.dnsType);
    }

    /**
     * Azure DNS Zone to use
     * 
     */
    @Import(name="dnsZoneId")
    private @Nullable Output dnsZoneId;

    /**
     * @return Azure DNS Zone to use
     * 
     */
    public Optional> dnsZoneId() {
        return Optional.ofNullable(this.dnsZoneId);
    }

    /**
     * Name of the domain.
     * 
     */
    @Import(name="domainName")
    private @Nullable Output domainName;

    /**
     * @return Name of the domain.
     * 
     */
    public Optional> domainName() {
        return Optional.ofNullable(this.domainName);
    }

    /**
     * Kind of resource.
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return Kind of resource.
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * Resource Location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource Location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>.
     * 
     */
    @Import(name="privacy")
    private @Nullable Output privacy;

    /**
     * @return <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>.
     * 
     */
    public Optional> privacy() {
        return Optional.ofNullable(this.privacy);
    }

    /**
     * Name of the resource group to which the resource belongs.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Name of the resource group to which the resource belongs.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Target DNS type (would be used for migration)
     * 
     */
    @Import(name="targetDnsType")
    private @Nullable Output targetDnsType;

    /**
     * @return Target DNS type (would be used for migration)
     * 
     */
    public Optional> targetDnsType() {
        return Optional.ofNullable(this.targetDnsType);
    }

    private DomainArgs() {}

    private DomainArgs(DomainArgs $) {
        this.authCode = $.authCode;
        this.autoRenew = $.autoRenew;
        this.consent = $.consent;
        this.contactAdmin = $.contactAdmin;
        this.contactBilling = $.contactBilling;
        this.contactRegistrant = $.contactRegistrant;
        this.contactTech = $.contactTech;
        this.dnsType = $.dnsType;
        this.dnsZoneId = $.dnsZoneId;
        this.domainName = $.domainName;
        this.kind = $.kind;
        this.location = $.location;
        this.privacy = $.privacy;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.targetDnsType = $.targetDnsType;
    }

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

    public static final class Builder {
        private DomainArgs $;

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

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

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

        public Builder authCode(String authCode) {
            return authCode(Output.of(authCode));
        }

        /**
         * @param autoRenew <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>.
         * 
         * @return builder
         * 
         */
        public Builder autoRenew(@Nullable Output autoRenew) {
            $.autoRenew = autoRenew;
            return this;
        }

        /**
         * @param autoRenew <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>.
         * 
         * @return builder
         * 
         */
        public Builder autoRenew(Boolean autoRenew) {
            return autoRenew(Output.of(autoRenew));
        }

        /**
         * @param consent Legal agreement consent.
         * 
         * @return builder
         * 
         */
        public Builder consent(Output consent) {
            $.consent = consent;
            return this;
        }

        /**
         * @param consent Legal agreement consent.
         * 
         * @return builder
         * 
         */
        public Builder consent(DomainPurchaseConsentArgs consent) {
            return consent(Output.of(consent));
        }

        /**
         * @param contactAdmin Administrative contact.
         * 
         * @return builder
         * 
         */
        public Builder contactAdmin(Output contactAdmin) {
            $.contactAdmin = contactAdmin;
            return this;
        }

        /**
         * @param contactAdmin Administrative contact.
         * 
         * @return builder
         * 
         */
        public Builder contactAdmin(ContactArgs contactAdmin) {
            return contactAdmin(Output.of(contactAdmin));
        }

        /**
         * @param contactBilling Billing contact.
         * 
         * @return builder
         * 
         */
        public Builder contactBilling(Output contactBilling) {
            $.contactBilling = contactBilling;
            return this;
        }

        /**
         * @param contactBilling Billing contact.
         * 
         * @return builder
         * 
         */
        public Builder contactBilling(ContactArgs contactBilling) {
            return contactBilling(Output.of(contactBilling));
        }

        /**
         * @param contactRegistrant Registrant contact.
         * 
         * @return builder
         * 
         */
        public Builder contactRegistrant(Output contactRegistrant) {
            $.contactRegistrant = contactRegistrant;
            return this;
        }

        /**
         * @param contactRegistrant Registrant contact.
         * 
         * @return builder
         * 
         */
        public Builder contactRegistrant(ContactArgs contactRegistrant) {
            return contactRegistrant(Output.of(contactRegistrant));
        }

        /**
         * @param contactTech Technical contact.
         * 
         * @return builder
         * 
         */
        public Builder contactTech(Output contactTech) {
            $.contactTech = contactTech;
            return this;
        }

        /**
         * @param contactTech Technical contact.
         * 
         * @return builder
         * 
         */
        public Builder contactTech(ContactArgs contactTech) {
            return contactTech(Output.of(contactTech));
        }

        /**
         * @param dnsType Current DNS type
         * 
         * @return builder
         * 
         */
        public Builder dnsType(@Nullable Output dnsType) {
            $.dnsType = dnsType;
            return this;
        }

        /**
         * @param dnsType Current DNS type
         * 
         * @return builder
         * 
         */
        public Builder dnsType(DnsType dnsType) {
            return dnsType(Output.of(dnsType));
        }

        /**
         * @param dnsZoneId Azure DNS Zone to use
         * 
         * @return builder
         * 
         */
        public Builder dnsZoneId(@Nullable Output dnsZoneId) {
            $.dnsZoneId = dnsZoneId;
            return this;
        }

        /**
         * @param dnsZoneId Azure DNS Zone to use
         * 
         * @return builder
         * 
         */
        public Builder dnsZoneId(String dnsZoneId) {
            return dnsZoneId(Output.of(dnsZoneId));
        }

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

        /**
         * @param domainName Name of the domain.
         * 
         * @return builder
         * 
         */
        public Builder domainName(String domainName) {
            return domainName(Output.of(domainName));
        }

        /**
         * @param kind Kind of resource.
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Kind of resource.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param location Resource Location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource Location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param privacy <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>.
         * 
         * @return builder
         * 
         */
        public Builder privacy(@Nullable Output privacy) {
            $.privacy = privacy;
            return this;
        }

        /**
         * @param privacy <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>.
         * 
         * @return builder
         * 
         */
        public Builder privacy(Boolean privacy) {
            return privacy(Output.of(privacy));
        }

        /**
         * @param resourceGroupName Name of the resource group to which the resource belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Name of the resource group to which the resource belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetDnsType Target DNS type (would be used for migration)
         * 
         * @return builder
         * 
         */
        public Builder targetDnsType(@Nullable Output targetDnsType) {
            $.targetDnsType = targetDnsType;
            return this;
        }

        /**
         * @param targetDnsType Target DNS type (would be used for migration)
         * 
         * @return builder
         * 
         */
        public Builder targetDnsType(DnsType targetDnsType) {
            return targetDnsType(Output.of(targetDnsType));
        }

        public DomainArgs build() {
            $.autoRenew = Codegen.booleanProp("autoRenew").output().arg($.autoRenew).def(true).getNullable();
            if ($.consent == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "consent");
            }
            if ($.contactAdmin == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "contactAdmin");
            }
            if ($.contactBilling == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "contactBilling");
            }
            if ($.contactRegistrant == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "contactRegistrant");
            }
            if ($.contactTech == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "contactTech");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy