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

com.pulumi.azurenative.network.PrivateRecordSetArgs 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.network;

import com.pulumi.azurenative.network.inputs.ARecordArgs;
import com.pulumi.azurenative.network.inputs.AaaaRecordArgs;
import com.pulumi.azurenative.network.inputs.CnameRecordArgs;
import com.pulumi.azurenative.network.inputs.MxRecordArgs;
import com.pulumi.azurenative.network.inputs.PtrRecordArgs;
import com.pulumi.azurenative.network.inputs.SoaRecordArgs;
import com.pulumi.azurenative.network.inputs.SrvRecordArgs;
import com.pulumi.azurenative.network.inputs.TxtRecordArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Double;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final PrivateRecordSetArgs Empty = new PrivateRecordSetArgs();

    /**
     * The list of A records in the record set.
     * 
     */
    @Import(name="aRecords")
    private @Nullable Output> aRecords;

    /**
     * @return The list of A records in the record set.
     * 
     */
    public Optional>> aRecords() {
        return Optional.ofNullable(this.aRecords);
    }

    /**
     * The list of AAAA records in the record set.
     * 
     */
    @Import(name="aaaaRecords")
    private @Nullable Output> aaaaRecords;

    /**
     * @return The list of AAAA records in the record set.
     * 
     */
    public Optional>> aaaaRecords() {
        return Optional.ofNullable(this.aaaaRecords);
    }

    /**
     * The CNAME record in the record set.
     * 
     */
    @Import(name="cnameRecord")
    private @Nullable Output cnameRecord;

    /**
     * @return The CNAME record in the record set.
     * 
     */
    public Optional> cnameRecord() {
        return Optional.ofNullable(this.cnameRecord);
    }

    /**
     * The metadata attached to the record set.
     * 
     */
    @Import(name="metadata")
    private @Nullable Output> metadata;

    /**
     * @return The metadata attached to the record set.
     * 
     */
    public Optional>> metadata() {
        return Optional.ofNullable(this.metadata);
    }

    /**
     * The list of MX records in the record set.
     * 
     */
    @Import(name="mxRecords")
    private @Nullable Output> mxRecords;

    /**
     * @return The list of MX records in the record set.
     * 
     */
    public Optional>> mxRecords() {
        return Optional.ofNullable(this.mxRecords);
    }

    /**
     * The name of the Private DNS zone (without a terminating dot).
     * 
     */
    @Import(name="privateZoneName", required=true)
    private Output privateZoneName;

    /**
     * @return The name of the Private DNS zone (without a terminating dot).
     * 
     */
    public Output privateZoneName() {
        return this.privateZoneName;
    }

    /**
     * The list of PTR records in the record set.
     * 
     */
    @Import(name="ptrRecords")
    private @Nullable Output> ptrRecords;

    /**
     * @return The list of PTR records in the record set.
     * 
     */
    public Optional>> ptrRecords() {
        return Optional.ofNullable(this.ptrRecords);
    }

    /**
     * The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created).
     * 
     */
    @Import(name="recordType", required=true)
    private Output recordType;

    /**
     * @return The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created).
     * 
     */
    public Output recordType() {
        return this.recordType;
    }

    /**
     * The name of the record set, relative to the name of the zone.
     * 
     */
    @Import(name="relativeRecordSetName")
    private @Nullable Output relativeRecordSetName;

    /**
     * @return The name of the record set, relative to the name of the zone.
     * 
     */
    public Optional> relativeRecordSetName() {
        return Optional.ofNullable(this.relativeRecordSetName);
    }

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

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The SOA record in the record set.
     * 
     */
    @Import(name="soaRecord")
    private @Nullable Output soaRecord;

    /**
     * @return The SOA record in the record set.
     * 
     */
    public Optional> soaRecord() {
        return Optional.ofNullable(this.soaRecord);
    }

    /**
     * The list of SRV records in the record set.
     * 
     */
    @Import(name="srvRecords")
    private @Nullable Output> srvRecords;

    /**
     * @return The list of SRV records in the record set.
     * 
     */
    public Optional>> srvRecords() {
        return Optional.ofNullable(this.srvRecords);
    }

    /**
     * The TTL (time-to-live) of the records in the record set.
     * 
     */
    @Import(name="ttl")
    private @Nullable Output ttl;

    /**
     * @return The TTL (time-to-live) of the records in the record set.
     * 
     */
    public Optional> ttl() {
        return Optional.ofNullable(this.ttl);
    }

    /**
     * The list of TXT records in the record set.
     * 
     */
    @Import(name="txtRecords")
    private @Nullable Output> txtRecords;

    /**
     * @return The list of TXT records in the record set.
     * 
     */
    public Optional>> txtRecords() {
        return Optional.ofNullable(this.txtRecords);
    }

    private PrivateRecordSetArgs() {}

    private PrivateRecordSetArgs(PrivateRecordSetArgs $) {
        this.aRecords = $.aRecords;
        this.aaaaRecords = $.aaaaRecords;
        this.cnameRecord = $.cnameRecord;
        this.metadata = $.metadata;
        this.mxRecords = $.mxRecords;
        this.privateZoneName = $.privateZoneName;
        this.ptrRecords = $.ptrRecords;
        this.recordType = $.recordType;
        this.relativeRecordSetName = $.relativeRecordSetName;
        this.resourceGroupName = $.resourceGroupName;
        this.soaRecord = $.soaRecord;
        this.srvRecords = $.srvRecords;
        this.ttl = $.ttl;
        this.txtRecords = $.txtRecords;
    }

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

    public static final class Builder {
        private PrivateRecordSetArgs $;

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

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

        /**
         * @param aRecords The list of A records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder aRecords(@Nullable Output> aRecords) {
            $.aRecords = aRecords;
            return this;
        }

        /**
         * @param aRecords The list of A records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder aRecords(List aRecords) {
            return aRecords(Output.of(aRecords));
        }

        /**
         * @param aRecords The list of A records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder aRecords(ARecordArgs... aRecords) {
            return aRecords(List.of(aRecords));
        }

        /**
         * @param aaaaRecords The list of AAAA records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder aaaaRecords(@Nullable Output> aaaaRecords) {
            $.aaaaRecords = aaaaRecords;
            return this;
        }

        /**
         * @param aaaaRecords The list of AAAA records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder aaaaRecords(List aaaaRecords) {
            return aaaaRecords(Output.of(aaaaRecords));
        }

        /**
         * @param aaaaRecords The list of AAAA records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder aaaaRecords(AaaaRecordArgs... aaaaRecords) {
            return aaaaRecords(List.of(aaaaRecords));
        }

        /**
         * @param cnameRecord The CNAME record in the record set.
         * 
         * @return builder
         * 
         */
        public Builder cnameRecord(@Nullable Output cnameRecord) {
            $.cnameRecord = cnameRecord;
            return this;
        }

        /**
         * @param cnameRecord The CNAME record in the record set.
         * 
         * @return builder
         * 
         */
        public Builder cnameRecord(CnameRecordArgs cnameRecord) {
            return cnameRecord(Output.of(cnameRecord));
        }

        /**
         * @param metadata The metadata attached to the record set.
         * 
         * @return builder
         * 
         */
        public Builder metadata(@Nullable Output> metadata) {
            $.metadata = metadata;
            return this;
        }

        /**
         * @param metadata The metadata attached to the record set.
         * 
         * @return builder
         * 
         */
        public Builder metadata(Map metadata) {
            return metadata(Output.of(metadata));
        }

        /**
         * @param mxRecords The list of MX records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder mxRecords(@Nullable Output> mxRecords) {
            $.mxRecords = mxRecords;
            return this;
        }

        /**
         * @param mxRecords The list of MX records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder mxRecords(List mxRecords) {
            return mxRecords(Output.of(mxRecords));
        }

        /**
         * @param mxRecords The list of MX records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder mxRecords(MxRecordArgs... mxRecords) {
            return mxRecords(List.of(mxRecords));
        }

        /**
         * @param privateZoneName The name of the Private DNS zone (without a terminating dot).
         * 
         * @return builder
         * 
         */
        public Builder privateZoneName(Output privateZoneName) {
            $.privateZoneName = privateZoneName;
            return this;
        }

        /**
         * @param privateZoneName The name of the Private DNS zone (without a terminating dot).
         * 
         * @return builder
         * 
         */
        public Builder privateZoneName(String privateZoneName) {
            return privateZoneName(Output.of(privateZoneName));
        }

        /**
         * @param ptrRecords The list of PTR records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder ptrRecords(@Nullable Output> ptrRecords) {
            $.ptrRecords = ptrRecords;
            return this;
        }

        /**
         * @param ptrRecords The list of PTR records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder ptrRecords(List ptrRecords) {
            return ptrRecords(Output.of(ptrRecords));
        }

        /**
         * @param ptrRecords The list of PTR records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder ptrRecords(PtrRecordArgs... ptrRecords) {
            return ptrRecords(List.of(ptrRecords));
        }

        /**
         * @param recordType The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created).
         * 
         * @return builder
         * 
         */
        public Builder recordType(Output recordType) {
            $.recordType = recordType;
            return this;
        }

        /**
         * @param recordType The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created).
         * 
         * @return builder
         * 
         */
        public Builder recordType(String recordType) {
            return recordType(Output.of(recordType));
        }

        /**
         * @param relativeRecordSetName The name of the record set, relative to the name of the zone.
         * 
         * @return builder
         * 
         */
        public Builder relativeRecordSetName(@Nullable Output relativeRecordSetName) {
            $.relativeRecordSetName = relativeRecordSetName;
            return this;
        }

        /**
         * @param relativeRecordSetName The name of the record set, relative to the name of the zone.
         * 
         * @return builder
         * 
         */
        public Builder relativeRecordSetName(String relativeRecordSetName) {
            return relativeRecordSetName(Output.of(relativeRecordSetName));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param soaRecord The SOA record in the record set.
         * 
         * @return builder
         * 
         */
        public Builder soaRecord(@Nullable Output soaRecord) {
            $.soaRecord = soaRecord;
            return this;
        }

        /**
         * @param soaRecord The SOA record in the record set.
         * 
         * @return builder
         * 
         */
        public Builder soaRecord(SoaRecordArgs soaRecord) {
            return soaRecord(Output.of(soaRecord));
        }

        /**
         * @param srvRecords The list of SRV records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder srvRecords(@Nullable Output> srvRecords) {
            $.srvRecords = srvRecords;
            return this;
        }

        /**
         * @param srvRecords The list of SRV records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder srvRecords(List srvRecords) {
            return srvRecords(Output.of(srvRecords));
        }

        /**
         * @param srvRecords The list of SRV records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder srvRecords(SrvRecordArgs... srvRecords) {
            return srvRecords(List.of(srvRecords));
        }

        /**
         * @param ttl The TTL (time-to-live) of the records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder ttl(@Nullable Output ttl) {
            $.ttl = ttl;
            return this;
        }

        /**
         * @param ttl The TTL (time-to-live) of the records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder ttl(Double ttl) {
            return ttl(Output.of(ttl));
        }

        /**
         * @param txtRecords The list of TXT records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder txtRecords(@Nullable Output> txtRecords) {
            $.txtRecords = txtRecords;
            return this;
        }

        /**
         * @param txtRecords The list of TXT records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder txtRecords(List txtRecords) {
            return txtRecords(Output.of(txtRecords));
        }

        /**
         * @param txtRecords The list of TXT records in the record set.
         * 
         * @return builder
         * 
         */
        public Builder txtRecords(TxtRecordArgs... txtRecords) {
            return txtRecords(List.of(txtRecords));
        }

        public PrivateRecordSetArgs build() {
            if ($.privateZoneName == null) {
                throw new MissingRequiredPropertyException("PrivateRecordSetArgs", "privateZoneName");
            }
            if ($.recordType == null) {
                throw new MissingRequiredPropertyException("PrivateRecordSetArgs", "recordType");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("PrivateRecordSetArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy