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

com.pulumi.azurenative.networkcloud.inputs.IpAddressPoolArgs Maven / Gradle / Ivy

There is a newer version: 2.82.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.networkcloud.inputs;

import com.pulumi.azurenative.networkcloud.enums.BfdEnabled;
import com.pulumi.core.Either;
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.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final IpAddressPoolArgs Empty = new IpAddressPoolArgs();

    /**
     * The list of IP address ranges. Each range can be a either a subnet in CIDR format or an explicit start-end range of IP addresses.
     * 
     */
    @Import(name="addresses", required=true)
    private Output> addresses;

    /**
     * @return The list of IP address ranges. Each range can be a either a subnet in CIDR format or an explicit start-end range of IP addresses.
     * 
     */
    public Output> addresses() {
        return this.addresses;
    }

    /**
     * The indicator to determine if automatic allocation from the pool should occur.
     * 
     */
    @Import(name="autoAssign")
    private @Nullable Output> autoAssign;

    /**
     * @return The indicator to determine if automatic allocation from the pool should occur.
     * 
     */
    public Optional>> autoAssign() {
        return Optional.ofNullable(this.autoAssign);
    }

    /**
     * The name used to identify this IP address pool for association with a BGP advertisement.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The name used to identify this IP address pool for association with a BGP advertisement.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * The indicator to prevent the use of IP addresses ending with .0 and .255 for this pool. Enabling this option will only use IP addresses between .1 and .254 inclusive.
     * 
     */
    @Import(name="onlyUseHostIps")
    private @Nullable Output> onlyUseHostIps;

    /**
     * @return The indicator to prevent the use of IP addresses ending with .0 and .255 for this pool. Enabling this option will only use IP addresses between .1 and .254 inclusive.
     * 
     */
    public Optional>> onlyUseHostIps() {
        return Optional.ofNullable(this.onlyUseHostIps);
    }

    private IpAddressPoolArgs() {}

    private IpAddressPoolArgs(IpAddressPoolArgs $) {
        this.addresses = $.addresses;
        this.autoAssign = $.autoAssign;
        this.name = $.name;
        this.onlyUseHostIps = $.onlyUseHostIps;
    }

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

    public static final class Builder {
        private IpAddressPoolArgs $;

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

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

        /**
         * @param addresses The list of IP address ranges. Each range can be a either a subnet in CIDR format or an explicit start-end range of IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder addresses(Output> addresses) {
            $.addresses = addresses;
            return this;
        }

        /**
         * @param addresses The list of IP address ranges. Each range can be a either a subnet in CIDR format or an explicit start-end range of IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder addresses(List addresses) {
            return addresses(Output.of(addresses));
        }

        /**
         * @param addresses The list of IP address ranges. Each range can be a either a subnet in CIDR format or an explicit start-end range of IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder addresses(String... addresses) {
            return addresses(List.of(addresses));
        }

        /**
         * @param autoAssign The indicator to determine if automatic allocation from the pool should occur.
         * 
         * @return builder
         * 
         */
        public Builder autoAssign(@Nullable Output> autoAssign) {
            $.autoAssign = autoAssign;
            return this;
        }

        /**
         * @param autoAssign The indicator to determine if automatic allocation from the pool should occur.
         * 
         * @return builder
         * 
         */
        public Builder autoAssign(Either autoAssign) {
            return autoAssign(Output.of(autoAssign));
        }

        /**
         * @param autoAssign The indicator to determine if automatic allocation from the pool should occur.
         * 
         * @return builder
         * 
         */
        public Builder autoAssign(String autoAssign) {
            return autoAssign(Either.ofLeft(autoAssign));
        }

        /**
         * @param autoAssign The indicator to determine if automatic allocation from the pool should occur.
         * 
         * @return builder
         * 
         */
        public Builder autoAssign(BfdEnabled autoAssign) {
            return autoAssign(Either.ofRight(autoAssign));
        }

        /**
         * @param name The name used to identify this IP address pool for association with a BGP advertisement.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name used to identify this IP address pool for association with a BGP advertisement.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param onlyUseHostIps The indicator to prevent the use of IP addresses ending with .0 and .255 for this pool. Enabling this option will only use IP addresses between .1 and .254 inclusive.
         * 
         * @return builder
         * 
         */
        public Builder onlyUseHostIps(@Nullable Output> onlyUseHostIps) {
            $.onlyUseHostIps = onlyUseHostIps;
            return this;
        }

        /**
         * @param onlyUseHostIps The indicator to prevent the use of IP addresses ending with .0 and .255 for this pool. Enabling this option will only use IP addresses between .1 and .254 inclusive.
         * 
         * @return builder
         * 
         */
        public Builder onlyUseHostIps(Either onlyUseHostIps) {
            return onlyUseHostIps(Output.of(onlyUseHostIps));
        }

        /**
         * @param onlyUseHostIps The indicator to prevent the use of IP addresses ending with .0 and .255 for this pool. Enabling this option will only use IP addresses between .1 and .254 inclusive.
         * 
         * @return builder
         * 
         */
        public Builder onlyUseHostIps(String onlyUseHostIps) {
            return onlyUseHostIps(Either.ofLeft(onlyUseHostIps));
        }

        /**
         * @param onlyUseHostIps The indicator to prevent the use of IP addresses ending with .0 and .255 for this pool. Enabling this option will only use IP addresses between .1 and .254 inclusive.
         * 
         * @return builder
         * 
         */
        public Builder onlyUseHostIps(BfdEnabled onlyUseHostIps) {
            return onlyUseHostIps(Either.ofRight(onlyUseHostIps));
        }

        public IpAddressPoolArgs build() {
            if ($.addresses == null) {
                throw new MissingRequiredPropertyException("IpAddressPoolArgs", "addresses");
            }
            $.autoAssign = Codegen.stringProp("autoAssign").left(BfdEnabled.class).output().arg($.autoAssign).def("True").getNullable();
            if ($.name == null) {
                throw new MissingRequiredPropertyException("IpAddressPoolArgs", "name");
            }
            $.onlyUseHostIps = Codegen.stringProp("onlyUseHostIps").left(BfdEnabled.class).output().arg($.onlyUseHostIps).def("True").getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy