sdk/java/src/main/java/com/pulumi/ovh/CloudProject/inputs/GetKubeArgs.java
<filename>sdk/java/src/main/java/com/pulumi/ovh/CloudProject/inputs/GetKubeArgs.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 com.pulumi.ovh.CloudProject.inputs.GetKubeCustomizationApiserverArgs;
import com.pulumi.ovh.CloudProject.inputs.GetKubeCustomizationArgs;
import com.pulumi.ovh.CloudProject.inputs.GetKubeCustomizationKubeProxyArgs;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class GetKubeArgs extends com.pulumi.resources.InvokeArgs {

    public static final GetKubeArgs Empty = new GetKubeArgs();

    /**
     * Kubernetes API server customization
     * 
     */
    @Import(name="customizationApiservers")
    private @Nullable Output<List<GetKubeCustomizationApiserverArgs>> customizationApiservers;

    /**
     * @return Kubernetes API server customization
     * 
     */
    public Optional<Output<List<GetKubeCustomizationApiserverArgs>>> customizationApiservers() {
        return Optional.ofNullable(this.customizationApiservers);
    }

    /**
     * Kubernetes kube-proxy customization
     * 
     */
    @Import(name="customizationKubeProxy")
    private @Nullable Output<GetKubeCustomizationKubeProxyArgs> customizationKubeProxy;

    /**
     * @return Kubernetes kube-proxy customization
     * 
     */
    public Optional<Output<GetKubeCustomizationKubeProxyArgs>> customizationKubeProxy() {
        return Optional.ofNullable(this.customizationKubeProxy);
    }

    /**
     * **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization
     * 
     * @deprecated
     * Use customization_apiserver instead
     * 
     */
    @Deprecated /* Use customization_apiserver instead */
    @Import(name="customizations")
    private @Nullable Output<List<GetKubeCustomizationArgs>> customizations;

    /**
     * @return **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization
     * 
     * @deprecated
     * Use customization_apiserver instead
     * 
     */
    @Deprecated /* Use customization_apiserver instead */
    public Optional<Output<List<GetKubeCustomizationArgs>>> customizations() {
        return Optional.ofNullable(this.customizations);
    }

    /**
     * The id of the managed kubernetes cluster.
     * 
     */
    @Import(name="kubeId", required=true)
    private Output<String> kubeId;

    /**
     * @return The id of the managed kubernetes cluster.
     * 
     */
    public Output<String> kubeId() {
        return this.kubeId;
    }

    /**
     * Selected mode for kube-proxy.
     * 
     */
    @Import(name="kubeProxyMode")
    private @Nullable Output<String> kubeProxyMode;

    /**
     * @return Selected mode for kube-proxy.
     * 
     */
    public Optional<Output<String>> kubeProxyMode() {
        return Optional.ofNullable(this.kubeProxyMode);
    }

    /**
     * The name of the managed kubernetes cluster.
     * 
     */
    @Import(name="name")
    private @Nullable Output<String> name;

    /**
     * @return The name of the managed kubernetes cluster.
     * 
     */
    public Optional<Output<String>> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The OVHcloud public cloud region ID of the managed kubernetes cluster.
     * 
     */
    @Import(name="region")
    private @Nullable Output<String> region;

    /**
     * @return The OVHcloud public cloud region ID of the managed kubernetes cluster.
     * 
     */
    public Optional<Output<String>> region() {
        return Optional.ofNullable(this.region);
    }

    /**
     * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.
     * 
     */
    @Import(name="serviceName", required=true)
    private Output<String> serviceName;

    /**
     * @return The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.
     * 
     */
    public Output<String> serviceName() {
        return this.serviceName;
    }

    /**
     * Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]&#39;.
     * 
     */
    @Import(name="updatePolicy")
    private @Nullable Output<String> updatePolicy;

    /**
     * @return Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]&#39;.
     * 
     */
    public Optional<Output<String>> updatePolicy() {
        return Optional.ofNullable(this.updatePolicy);
    }

    /**
     * Kubernetes version of the managed kubernetes cluster.
     * 
     */
    @Import(name="version")
    private @Nullable Output<String> version;

    /**
     * @return Kubernetes version of the managed kubernetes cluster.
     * 
     */
    public Optional<Output<String>> version() {
        return Optional.ofNullable(this.version);
    }

    private GetKubeArgs() {}

    private GetKubeArgs(GetKubeArgs $) {
        this.customizationApiservers = $.customizationApiservers;
        this.customizationKubeProxy = $.customizationKubeProxy;
        this.customizations = $.customizations;
        this.kubeId = $.kubeId;
        this.kubeProxyMode = $.kubeProxyMode;
        this.name = $.name;
        this.region = $.region;
        this.serviceName = $.serviceName;
        this.updatePolicy = $.updatePolicy;
        this.version = $.version;
    }

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

    public static final class Builder {
        private GetKubeArgs $;

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

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

        /**
         * @param customizationApiservers Kubernetes API server customization
         * 
         * @return builder
         * 
         */
        public Builder customizationApiservers(@Nullable Output<List<GetKubeCustomizationApiserverArgs>> customizationApiservers) {
            $.customizationApiservers = customizationApiservers;
            return this;
        }

        /**
         * @param customizationApiservers Kubernetes API server customization
         * 
         * @return builder
         * 
         */
        public Builder customizationApiservers(List<GetKubeCustomizationApiserverArgs> customizationApiservers) {
            return customizationApiservers(Output.of(customizationApiservers));
        }

        /**
         * @param customizationApiservers Kubernetes API server customization
         * 
         * @return builder
         * 
         */
        public Builder customizationApiservers(GetKubeCustomizationApiserverArgs... customizationApiservers) {
            return customizationApiservers(List.of(customizationApiservers));
        }

        /**
         * @param customizationKubeProxy Kubernetes kube-proxy customization
         * 
         * @return builder
         * 
         */
        public Builder customizationKubeProxy(@Nullable Output<GetKubeCustomizationKubeProxyArgs> customizationKubeProxy) {
            $.customizationKubeProxy = customizationKubeProxy;
            return this;
        }

        /**
         * @param customizationKubeProxy Kubernetes kube-proxy customization
         * 
         * @return builder
         * 
         */
        public Builder customizationKubeProxy(GetKubeCustomizationKubeProxyArgs customizationKubeProxy) {
            return customizationKubeProxy(Output.of(customizationKubeProxy));
        }

        /**
         * @param customizations **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization
         * 
         * @return builder
         * 
         * @deprecated
         * Use customization_apiserver instead
         * 
         */
        @Deprecated /* Use customization_apiserver instead */
        public Builder customizations(@Nullable Output<List<GetKubeCustomizationArgs>> customizations) {
            $.customizations = customizations;
            return this;
        }

        /**
         * @param customizations **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization
         * 
         * @return builder
         * 
         * @deprecated
         * Use customization_apiserver instead
         * 
         */
        @Deprecated /* Use customization_apiserver instead */
        public Builder customizations(List<GetKubeCustomizationArgs> customizations) {
            return customizations(Output.of(customizations));
        }

        /**
         * @param customizations **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization
         * 
         * @return builder
         * 
         * @deprecated
         * Use customization_apiserver instead
         * 
         */
        @Deprecated /* Use customization_apiserver instead */
        public Builder customizations(GetKubeCustomizationArgs... customizations) {
            return customizations(List.of(customizations));
        }

        /**
         * @param kubeId The id of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder kubeId(Output<String> kubeId) {
            $.kubeId = kubeId;
            return this;
        }

        /**
         * @param kubeId The id of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder kubeId(String kubeId) {
            return kubeId(Output.of(kubeId));
        }

        /**
         * @param kubeProxyMode Selected mode for kube-proxy.
         * 
         * @return builder
         * 
         */
        public Builder kubeProxyMode(@Nullable Output<String> kubeProxyMode) {
            $.kubeProxyMode = kubeProxyMode;
            return this;
        }

        /**
         * @param kubeProxyMode Selected mode for kube-proxy.
         * 
         * @return builder
         * 
         */
        public Builder kubeProxyMode(String kubeProxyMode) {
            return kubeProxyMode(Output.of(kubeProxyMode));
        }

        /**
         * @param name The name of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output<String> name) {
            $.name = name;
            return this;
        }

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

        /**
         * @param region The OVHcloud public cloud region ID of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder region(@Nullable Output<String> region) {
            $.region = region;
            return this;
        }

        /**
         * @param region The OVHcloud public cloud region ID of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder region(String region) {
            return region(Output.of(region));
        }

        /**
         * @param serviceName The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.
         * 
         * @return builder
         * 
         */
        public Builder serviceName(Output<String> serviceName) {
            $.serviceName = serviceName;
            return this;
        }

        /**
         * @param serviceName The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used.
         * 
         * @return builder
         * 
         */
        public Builder serviceName(String serviceName) {
            return serviceName(Output.of(serviceName));
        }

        /**
         * @param updatePolicy Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]&#39;.
         * 
         * @return builder
         * 
         */
        public Builder updatePolicy(@Nullable Output<String> updatePolicy) {
            $.updatePolicy = updatePolicy;
            return this;
        }

        /**
         * @param updatePolicy Cluster update policy. Choose between [ALWAYS_UPDATE,MINIMAL_DOWNTIME,NEVER_UPDATE]&#39;.
         * 
         * @return builder
         * 
         */
        public Builder updatePolicy(String updatePolicy) {
            return updatePolicy(Output.of(updatePolicy));
        }

        /**
         * @param version Kubernetes version of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder version(@Nullable Output<String> version) {
            $.version = version;
            return this;
        }

        /**
         * @param version Kubernetes version of the managed kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder version(String version) {
            return version(Output.of(version));
        }

        public GetKubeArgs build() {
            $.kubeId = Objects.requireNonNull($.kubeId, "expected parameter 'kubeId' to be non-null");
            $.serviceName = Objects.requireNonNull($.serviceName, "expected parameter 'serviceName' to be non-null");
            return $;
        }
    }

}
