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

com.pulumi.azurenative.hybridcontainerservice.inputs.NetworkProfileArgs 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.azurenative.hybridcontainerservice.inputs;

import com.pulumi.azurenative.hybridcontainerservice.enums.LoadBalancerSku;
import com.pulumi.azurenative.hybridcontainerservice.enums.NetworkPolicy;
import com.pulumi.azurenative.hybridcontainerservice.inputs.LoadBalancerProfileArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * NetworkProfile - Profile of network configuration.
 * 
 */
public final class NetworkProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final NetworkProfileArgs Empty = new NetworkProfileArgs();

    /**
     * DNSServiceIP - An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
     * 
     */
    @Import(name="dnsServiceIP")
    private @Nullable Output dnsServiceIP;

    /**
     * @return DNSServiceIP - An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
     * 
     */
    public Optional> dnsServiceIP() {
        return Optional.ofNullable(this.dnsServiceIP);
    }

    /**
     * LoadBalancerProfile - Profile of the cluster load balancer.
     * 
     */
    @Import(name="loadBalancerProfile")
    private @Nullable Output loadBalancerProfile;

    /**
     * @return LoadBalancerProfile - Profile of the cluster load balancer.
     * 
     */
    public Optional> loadBalancerProfile() {
        return Optional.ofNullable(this.loadBalancerProfile);
    }

    /**
     * LoadBalancerSku - The load balancer sku for the provisioned cluster. Possible values: 'unstacked-haproxy', 'stacked-kube-vip', 'stacked-metallb', 'unmanaged'. The default is 'unmanaged'.
     * 
     */
    @Import(name="loadBalancerSku")
    private @Nullable Output> loadBalancerSku;

    /**
     * @return LoadBalancerSku - The load balancer sku for the provisioned cluster. Possible values: 'unstacked-haproxy', 'stacked-kube-vip', 'stacked-metallb', 'unmanaged'. The default is 'unmanaged'.
     * 
     */
    public Optional>> loadBalancerSku() {
        return Optional.ofNullable(this.loadBalancerSku);
    }

    /**
     * NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'calico', 'flannel'. Default is 'calico'
     * 
     */
    @Import(name="networkPolicy")
    private @Nullable Output> networkPolicy;

    /**
     * @return NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'calico', 'flannel'. Default is 'calico'
     * 
     */
    public Optional>> networkPolicy() {
        return Optional.ofNullable(this.networkPolicy);
    }

    /**
     * PodCidr - A CIDR notation IP range from which to assign pod IPs when kubenet is used.
     * 
     */
    @Import(name="podCidr")
    private @Nullable Output podCidr;

    /**
     * @return PodCidr - A CIDR notation IP range from which to assign pod IPs when kubenet is used.
     * 
     */
    public Optional> podCidr() {
        return Optional.ofNullable(this.podCidr);
    }

    /**
     * The CIDR notation IP ranges from which to assign pod IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking.
     * 
     */
    @Import(name="podCidrs")
    private @Nullable Output> podCidrs;

    /**
     * @return The CIDR notation IP ranges from which to assign pod IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking.
     * 
     */
    public Optional>> podCidrs() {
        return Optional.ofNullable(this.podCidrs);
    }

    /**
     * ServiceCidr - A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
     * 
     */
    @Import(name="serviceCidr")
    private @Nullable Output serviceCidr;

    /**
     * @return ServiceCidr - A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
     * 
     */
    public Optional> serviceCidr() {
        return Optional.ofNullable(this.serviceCidr);
    }

    /**
     * The CIDR notation IP ranges from which to assign service cluster IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking. They must not overlap with any Subnet IP ranges.
     * 
     */
    @Import(name="serviceCidrs")
    private @Nullable Output> serviceCidrs;

    /**
     * @return The CIDR notation IP ranges from which to assign service cluster IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking. They must not overlap with any Subnet IP ranges.
     * 
     */
    public Optional>> serviceCidrs() {
        return Optional.ofNullable(this.serviceCidrs);
    }

    private NetworkProfileArgs() {}

    private NetworkProfileArgs(NetworkProfileArgs $) {
        this.dnsServiceIP = $.dnsServiceIP;
        this.loadBalancerProfile = $.loadBalancerProfile;
        this.loadBalancerSku = $.loadBalancerSku;
        this.networkPolicy = $.networkPolicy;
        this.podCidr = $.podCidr;
        this.podCidrs = $.podCidrs;
        this.serviceCidr = $.serviceCidr;
        this.serviceCidrs = $.serviceCidrs;
    }

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

    public static final class Builder {
        private NetworkProfileArgs $;

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

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

        /**
         * @param dnsServiceIP DNSServiceIP - An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
         * 
         * @return builder
         * 
         */
        public Builder dnsServiceIP(@Nullable Output dnsServiceIP) {
            $.dnsServiceIP = dnsServiceIP;
            return this;
        }

        /**
         * @param dnsServiceIP DNSServiceIP - An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
         * 
         * @return builder
         * 
         */
        public Builder dnsServiceIP(String dnsServiceIP) {
            return dnsServiceIP(Output.of(dnsServiceIP));
        }

        /**
         * @param loadBalancerProfile LoadBalancerProfile - Profile of the cluster load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerProfile(@Nullable Output loadBalancerProfile) {
            $.loadBalancerProfile = loadBalancerProfile;
            return this;
        }

        /**
         * @param loadBalancerProfile LoadBalancerProfile - Profile of the cluster load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerProfile(LoadBalancerProfileArgs loadBalancerProfile) {
            return loadBalancerProfile(Output.of(loadBalancerProfile));
        }

        /**
         * @param loadBalancerSku LoadBalancerSku - The load balancer sku for the provisioned cluster. Possible values: 'unstacked-haproxy', 'stacked-kube-vip', 'stacked-metallb', 'unmanaged'. The default is 'unmanaged'.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerSku(@Nullable Output> loadBalancerSku) {
            $.loadBalancerSku = loadBalancerSku;
            return this;
        }

        /**
         * @param loadBalancerSku LoadBalancerSku - The load balancer sku for the provisioned cluster. Possible values: 'unstacked-haproxy', 'stacked-kube-vip', 'stacked-metallb', 'unmanaged'. The default is 'unmanaged'.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerSku(Either loadBalancerSku) {
            return loadBalancerSku(Output.of(loadBalancerSku));
        }

        /**
         * @param loadBalancerSku LoadBalancerSku - The load balancer sku for the provisioned cluster. Possible values: 'unstacked-haproxy', 'stacked-kube-vip', 'stacked-metallb', 'unmanaged'. The default is 'unmanaged'.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerSku(String loadBalancerSku) {
            return loadBalancerSku(Either.ofLeft(loadBalancerSku));
        }

        /**
         * @param loadBalancerSku LoadBalancerSku - The load balancer sku for the provisioned cluster. Possible values: 'unstacked-haproxy', 'stacked-kube-vip', 'stacked-metallb', 'unmanaged'. The default is 'unmanaged'.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerSku(LoadBalancerSku loadBalancerSku) {
            return loadBalancerSku(Either.ofRight(loadBalancerSku));
        }

        /**
         * @param networkPolicy NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'calico', 'flannel'. Default is 'calico'
         * 
         * @return builder
         * 
         */
        public Builder networkPolicy(@Nullable Output> networkPolicy) {
            $.networkPolicy = networkPolicy;
            return this;
        }

        /**
         * @param networkPolicy NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'calico', 'flannel'. Default is 'calico'
         * 
         * @return builder
         * 
         */
        public Builder networkPolicy(Either networkPolicy) {
            return networkPolicy(Output.of(networkPolicy));
        }

        /**
         * @param networkPolicy NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'calico', 'flannel'. Default is 'calico'
         * 
         * @return builder
         * 
         */
        public Builder networkPolicy(String networkPolicy) {
            return networkPolicy(Either.ofLeft(networkPolicy));
        }

        /**
         * @param networkPolicy NetworkPolicy - Network policy used for building Kubernetes network. Possible values include: 'calico', 'flannel'. Default is 'calico'
         * 
         * @return builder
         * 
         */
        public Builder networkPolicy(NetworkPolicy networkPolicy) {
            return networkPolicy(Either.ofRight(networkPolicy));
        }

        /**
         * @param podCidr PodCidr - A CIDR notation IP range from which to assign pod IPs when kubenet is used.
         * 
         * @return builder
         * 
         */
        public Builder podCidr(@Nullable Output podCidr) {
            $.podCidr = podCidr;
            return this;
        }

        /**
         * @param podCidr PodCidr - A CIDR notation IP range from which to assign pod IPs when kubenet is used.
         * 
         * @return builder
         * 
         */
        public Builder podCidr(String podCidr) {
            return podCidr(Output.of(podCidr));
        }

        /**
         * @param podCidrs The CIDR notation IP ranges from which to assign pod IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking.
         * 
         * @return builder
         * 
         */
        public Builder podCidrs(@Nullable Output> podCidrs) {
            $.podCidrs = podCidrs;
            return this;
        }

        /**
         * @param podCidrs The CIDR notation IP ranges from which to assign pod IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking.
         * 
         * @return builder
         * 
         */
        public Builder podCidrs(List podCidrs) {
            return podCidrs(Output.of(podCidrs));
        }

        /**
         * @param podCidrs The CIDR notation IP ranges from which to assign pod IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking.
         * 
         * @return builder
         * 
         */
        public Builder podCidrs(String... podCidrs) {
            return podCidrs(List.of(podCidrs));
        }

        /**
         * @param serviceCidr ServiceCidr - A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
         * 
         * @return builder
         * 
         */
        public Builder serviceCidr(@Nullable Output serviceCidr) {
            $.serviceCidr = serviceCidr;
            return this;
        }

        /**
         * @param serviceCidr ServiceCidr - A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
         * 
         * @return builder
         * 
         */
        public Builder serviceCidr(String serviceCidr) {
            return serviceCidr(Output.of(serviceCidr));
        }

        /**
         * @param serviceCidrs The CIDR notation IP ranges from which to assign service cluster IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking. They must not overlap with any Subnet IP ranges.
         * 
         * @return builder
         * 
         */
        public Builder serviceCidrs(@Nullable Output> serviceCidrs) {
            $.serviceCidrs = serviceCidrs;
            return this;
        }

        /**
         * @param serviceCidrs The CIDR notation IP ranges from which to assign service cluster IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking. They must not overlap with any Subnet IP ranges.
         * 
         * @return builder
         * 
         */
        public Builder serviceCidrs(List serviceCidrs) {
            return serviceCidrs(Output.of(serviceCidrs));
        }

        /**
         * @param serviceCidrs The CIDR notation IP ranges from which to assign service cluster IPs. One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is expected for dual-stack networking. They must not overlap with any Subnet IP ranges.
         * 
         * @return builder
         * 
         */
        public Builder serviceCidrs(String... serviceCidrs) {
            return serviceCidrs(List.of(serviceCidrs));
        }

        public NetworkProfileArgs build() {
            $.loadBalancerSku = Codegen.stringProp("loadBalancerSku").left(LoadBalancerSku.class).output().arg($.loadBalancerSku).def("unmanaged").getNullable();
            $.networkPolicy = Codegen.stringProp("networkPolicy").left(NetworkPolicy.class).output().arg($.networkPolicy).def("calico").getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy