sdk/java/src/main/java/com/pulumi/ovh/CloudProject/inputs/KubePrivateNetworkConfigurationArgs.java
// *** 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.ovh.CloudProject.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;


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

    public static final KubePrivateNetworkConfigurationArgs Empty = new KubePrivateNetworkConfigurationArgs();

    /**
     * If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.
     * 
     */
    @Import(name="defaultVrackGateway", required=true)
    private Output<String> defaultVrackGateway;

    /**
     * @return If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.
     * 
     */
    public Output<String> defaultVrackGateway() {
        return this.defaultVrackGateway;
    }

    /**
     * Defines whether routing should default to using the nodes&#39; private interface, instead of their public interface. Default is false.
     * 
     */
    @Import(name="privateNetworkRoutingAsDefault", required=true)
    private Output<Boolean> privateNetworkRoutingAsDefault;

    /**
     * @return Defines whether routing should default to using the nodes&#39; private interface, instead of their public interface. Default is false.
     * 
     */
    public Output<Boolean> privateNetworkRoutingAsDefault() {
        return this.privateNetworkRoutingAsDefault;
    }

    private KubePrivateNetworkConfigurationArgs() {}

    private KubePrivateNetworkConfigurationArgs(KubePrivateNetworkConfigurationArgs $) {
        this.defaultVrackGateway = $.defaultVrackGateway;
        this.privateNetworkRoutingAsDefault = $.privateNetworkRoutingAsDefault;
    }

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

    public static final class Builder {
        private KubePrivateNetworkConfigurationArgs $;

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

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

        /**
         * @param defaultVrackGateway If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.
         * 
         * @return builder
         * 
         */
        public Builder defaultVrackGateway(Output<String> defaultVrackGateway) {
            $.defaultVrackGateway = defaultVrackGateway;
            return this;
        }

        /**
         * @param defaultVrackGateway If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.
         * 
         * @return builder
         * 
         */
        public Builder defaultVrackGateway(String defaultVrackGateway) {
            return defaultVrackGateway(Output.of(defaultVrackGateway));
        }

        /**
         * @param privateNetworkRoutingAsDefault Defines whether routing should default to using the nodes&#39; private interface, instead of their public interface. Default is false.
         * 
         * @return builder
         * 
         */
        public Builder privateNetworkRoutingAsDefault(Output<Boolean> privateNetworkRoutingAsDefault) {
            $.privateNetworkRoutingAsDefault = privateNetworkRoutingAsDefault;
            return this;
        }

        /**
         * @param privateNetworkRoutingAsDefault Defines whether routing should default to using the nodes&#39; private interface, instead of their public interface. Default is false.
         * 
         * @return builder
         * 
         */
        public Builder privateNetworkRoutingAsDefault(Boolean privateNetworkRoutingAsDefault) {
            return privateNetworkRoutingAsDefault(Output.of(privateNetworkRoutingAsDefault));
        }

        public KubePrivateNetworkConfigurationArgs build() {
            $.defaultVrackGateway = Objects.requireNonNull($.defaultVrackGateway, "expected parameter 'defaultVrackGateway' to be non-null");
            $.privateNetworkRoutingAsDefault = Objects.requireNonNull($.privateNetworkRoutingAsDefault, "expected parameter 'privateNetworkRoutingAsDefault' to be non-null");
            return $;
        }
    }

}
