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

com.pulumi.googlenative.gkeonprem.v1.inputs.BareMetalLoadBalancerAddressPoolArgs Maven / Gradle / Ivy

// *** 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.googlenative.gkeonprem.v1.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Represents an IP pool used by the load balancer.
 * 
 */
public final class BareMetalLoadBalancerAddressPoolArgs extends com.pulumi.resources.ResourceArgs {

    public static final BareMetalLoadBalancerAddressPoolArgs Empty = new BareMetalLoadBalancerAddressPoolArgs();

    /**
     * The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
     * 
     */
    @Import(name="addresses", required=true)
    private Output> addresses;

    /**
     * @return The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
     * 
     */
    public Output> addresses() {
        return this.addresses;
    }

    /**
     * If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
     * 
     */
    @Import(name="avoidBuggyIps")
    private @Nullable Output avoidBuggyIps;

    /**
     * @return If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
     * 
     */
    public Optional> avoidBuggyIps() {
        return Optional.ofNullable(this.avoidBuggyIps);
    }

    /**
     * If true, prevent IP addresses from being automatically assigned.
     * 
     */
    @Import(name="manualAssign")
    private @Nullable Output manualAssign;

    /**
     * @return If true, prevent IP addresses from being automatically assigned.
     * 
     */
    public Optional> manualAssign() {
        return Optional.ofNullable(this.manualAssign);
    }

    /**
     * The name of the address pool.
     * 
     */
    @Import(name="pool", required=true)
    private Output pool;

    /**
     * @return The name of the address pool.
     * 
     */
    public Output pool() {
        return this.pool;
    }

    private BareMetalLoadBalancerAddressPoolArgs() {}

    private BareMetalLoadBalancerAddressPoolArgs(BareMetalLoadBalancerAddressPoolArgs $) {
        this.addresses = $.addresses;
        this.avoidBuggyIps = $.avoidBuggyIps;
        this.manualAssign = $.manualAssign;
        this.pool = $.pool;
    }

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

    public static final class Builder {
        private BareMetalLoadBalancerAddressPoolArgs $;

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

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

        /**
         * @param addresses The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
         * 
         * @return builder
         * 
         */
        public Builder addresses(Output> addresses) {
            $.addresses = addresses;
            return this;
        }

        /**
         * @param addresses The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
         * 
         * @return builder
         * 
         */
        public Builder addresses(List addresses) {
            return addresses(Output.of(addresses));
        }

        /**
         * @param addresses The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
         * 
         * @return builder
         * 
         */
        public Builder addresses(String... addresses) {
            return addresses(List.of(addresses));
        }

        /**
         * @param avoidBuggyIps If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder avoidBuggyIps(@Nullable Output avoidBuggyIps) {
            $.avoidBuggyIps = avoidBuggyIps;
            return this;
        }

        /**
         * @param avoidBuggyIps If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder avoidBuggyIps(Boolean avoidBuggyIps) {
            return avoidBuggyIps(Output.of(avoidBuggyIps));
        }

        /**
         * @param manualAssign If true, prevent IP addresses from being automatically assigned.
         * 
         * @return builder
         * 
         */
        public Builder manualAssign(@Nullable Output manualAssign) {
            $.manualAssign = manualAssign;
            return this;
        }

        /**
         * @param manualAssign If true, prevent IP addresses from being automatically assigned.
         * 
         * @return builder
         * 
         */
        public Builder manualAssign(Boolean manualAssign) {
            return manualAssign(Output.of(manualAssign));
        }

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

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

        public BareMetalLoadBalancerAddressPoolArgs build() {
            $.addresses = Objects.requireNonNull($.addresses, "expected parameter 'addresses' to be non-null");
            $.pool = Objects.requireNonNull($.pool, "expected parameter 'pool' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy