sdk/java/src/main/java/com/pulumi/ovh/CloudProject/outputs/GetKubeNodePoolResult.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.outputs;

import com.pulumi.core.annotations.CustomType;
import com.pulumi.ovh.CloudProject.outputs.GetKubeNodePoolTemplate;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class GetKubeNodePoolResult {
    /**
     * @return (Optional) should the pool use the anti-affinity feature. Default to `false`.
     * 
     */
    private Boolean antiAffinity;
    /**
     * @return (Optional) Enable auto-scaling for the pool. Default to `false`.
     * 
     */
    private Boolean autoscale;
    /**
     * @return Number of nodes which are actually ready in the pool
     * 
     */
    private Integer availableNodes;
    /**
     * @return Creation date
     * 
     */
    private String createdAt;
    /**
     * @return Number of nodes present in the pool
     * 
     */
    private Integer currentNodes;
    /**
     * @return Number of nodes you desire in the pool
     * 
     */
    private Integer desiredNodes;
    /**
     * @return Flavor name
     * 
     */
    private String flavor;
    /**
     * @return a valid OVHcloud public cloud flavor ID in which the nodes will be started.
     * Ex: &#34;b2-7&#34;. Changing this value recreates the resource.
     * You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/
     * 
     */
    private String flavorName;
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    private String id;
    /**
     * @return See Argument Reference above.
     * 
     */
    private String kubeId;
    /**
     * @return maximum number of nodes allowed in the pool.
     * Setting `desired_nodes` over this value will raise an error.
     * 
     */
    private Integer maxNodes;
    /**
     * @return minimum number of nodes allowed in the pool.
     * Setting `desired_nodes` under this value will raise an error.
     * 
     */
    private Integer minNodes;
    /**
     * @return (Optional) should the nodes be billed on a monthly basis. Default to `false`.
     * 
     */
    private Boolean monthlyBilled;
    /**
     * @return (Optional) The name of the nodepool.
     * Changing this value recreates the resource.
     * Warning: &#34;_&#34; char is not allowed!
     * 
     */
    private String name;
    /**
     * @return Project id
     * 
     */
    private String projectId;
    /**
     * @return See Argument Reference above.
     * 
     */
    private String serviceName;
    /**
     * @return Status describing the state between number of nodes wanted and available ones
     * 
     */
    private String sizeStatus;
    /**
     * @return Current status
     * 
     */
    private String status;
    private @Nullable GetKubeNodePoolTemplate template;
    /**
     * @return Number of nodes with the latest version installed in the pool
     * 
     */
    private Integer upToDateNodes;
    /**
     * @return Last update date
     * 
     */
    private String updatedAt;

    private GetKubeNodePoolResult() {}
    /**
     * @return (Optional) should the pool use the anti-affinity feature. Default to `false`.
     * 
     */
    public Boolean antiAffinity() {
        return this.antiAffinity;
    }
    /**
     * @return (Optional) Enable auto-scaling for the pool. Default to `false`.
     * 
     */
    public Boolean autoscale() {
        return this.autoscale;
    }
    /**
     * @return Number of nodes which are actually ready in the pool
     * 
     */
    public Integer availableNodes() {
        return this.availableNodes;
    }
    /**
     * @return Creation date
     * 
     */
    public String createdAt() {
        return this.createdAt;
    }
    /**
     * @return Number of nodes present in the pool
     * 
     */
    public Integer currentNodes() {
        return this.currentNodes;
    }
    /**
     * @return Number of nodes you desire in the pool
     * 
     */
    public Integer desiredNodes() {
        return this.desiredNodes;
    }
    /**
     * @return Flavor name
     * 
     */
    public String flavor() {
        return this.flavor;
    }
    /**
     * @return a valid OVHcloud public cloud flavor ID in which the nodes will be started.
     * Ex: &#34;b2-7&#34;. Changing this value recreates the resource.
     * You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/
     * 
     */
    public String flavorName() {
        return this.flavorName;
    }
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return See Argument Reference above.
     * 
     */
    public String kubeId() {
        return this.kubeId;
    }
    /**
     * @return maximum number of nodes allowed in the pool.
     * Setting `desired_nodes` over this value will raise an error.
     * 
     */
    public Integer maxNodes() {
        return this.maxNodes;
    }
    /**
     * @return minimum number of nodes allowed in the pool.
     * Setting `desired_nodes` under this value will raise an error.
     * 
     */
    public Integer minNodes() {
        return this.minNodes;
    }
    /**
     * @return (Optional) should the nodes be billed on a monthly basis. Default to `false`.
     * 
     */
    public Boolean monthlyBilled() {
        return this.monthlyBilled;
    }
    /**
     * @return (Optional) The name of the nodepool.
     * Changing this value recreates the resource.
     * Warning: &#34;_&#34; char is not allowed!
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Project id
     * 
     */
    public String projectId() {
        return this.projectId;
    }
    /**
     * @return See Argument Reference above.
     * 
     */
    public String serviceName() {
        return this.serviceName;
    }
    /**
     * @return Status describing the state between number of nodes wanted and available ones
     * 
     */
    public String sizeStatus() {
        return this.sizeStatus;
    }
    /**
     * @return Current status
     * 
     */
    public String status() {
        return this.status;
    }
    public Optional<GetKubeNodePoolTemplate> template() {
        return Optional.ofNullable(this.template);
    }
    /**
     * @return Number of nodes with the latest version installed in the pool
     * 
     */
    public Integer upToDateNodes() {
        return this.upToDateNodes;
    }
    /**
     * @return Last update date
     * 
     */
    public String updatedAt() {
        return this.updatedAt;
    }

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

    public static Builder builder(GetKubeNodePoolResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private Boolean antiAffinity;
        private Boolean autoscale;
        private Integer availableNodes;
        private String createdAt;
        private Integer currentNodes;
        private Integer desiredNodes;
        private String flavor;
        private String flavorName;
        private String id;
        private String kubeId;
        private Integer maxNodes;
        private Integer minNodes;
        private Boolean monthlyBilled;
        private String name;
        private String projectId;
        private String serviceName;
        private String sizeStatus;
        private String status;
        private @Nullable GetKubeNodePoolTemplate template;
        private Integer upToDateNodes;
        private String updatedAt;
        public Builder() {}
        public Builder(GetKubeNodePoolResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.antiAffinity = defaults.antiAffinity;
    	      this.autoscale = defaults.autoscale;
    	      this.availableNodes = defaults.availableNodes;
    	      this.createdAt = defaults.createdAt;
    	      this.currentNodes = defaults.currentNodes;
    	      this.desiredNodes = defaults.desiredNodes;
    	      this.flavor = defaults.flavor;
    	      this.flavorName = defaults.flavorName;
    	      this.id = defaults.id;
    	      this.kubeId = defaults.kubeId;
    	      this.maxNodes = defaults.maxNodes;
    	      this.minNodes = defaults.minNodes;
    	      this.monthlyBilled = defaults.monthlyBilled;
    	      this.name = defaults.name;
    	      this.projectId = defaults.projectId;
    	      this.serviceName = defaults.serviceName;
    	      this.sizeStatus = defaults.sizeStatus;
    	      this.status = defaults.status;
    	      this.template = defaults.template;
    	      this.upToDateNodes = defaults.upToDateNodes;
    	      this.updatedAt = defaults.updatedAt;
        }

        @CustomType.Setter
        public Builder antiAffinity(Boolean antiAffinity) {
            this.antiAffinity = Objects.requireNonNull(antiAffinity);
            return this;
        }
        @CustomType.Setter
        public Builder autoscale(Boolean autoscale) {
            this.autoscale = Objects.requireNonNull(autoscale);
            return this;
        }
        @CustomType.Setter
        public Builder availableNodes(Integer availableNodes) {
            this.availableNodes = Objects.requireNonNull(availableNodes);
            return this;
        }
        @CustomType.Setter
        public Builder createdAt(String createdAt) {
            this.createdAt = Objects.requireNonNull(createdAt);
            return this;
        }
        @CustomType.Setter
        public Builder currentNodes(Integer currentNodes) {
            this.currentNodes = Objects.requireNonNull(currentNodes);
            return this;
        }
        @CustomType.Setter
        public Builder desiredNodes(Integer desiredNodes) {
            this.desiredNodes = Objects.requireNonNull(desiredNodes);
            return this;
        }
        @CustomType.Setter
        public Builder flavor(String flavor) {
            this.flavor = Objects.requireNonNull(flavor);
            return this;
        }
        @CustomType.Setter
        public Builder flavorName(String flavorName) {
            this.flavorName = Objects.requireNonNull(flavorName);
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            this.id = Objects.requireNonNull(id);
            return this;
        }
        @CustomType.Setter
        public Builder kubeId(String kubeId) {
            this.kubeId = Objects.requireNonNull(kubeId);
            return this;
        }
        @CustomType.Setter
        public Builder maxNodes(Integer maxNodes) {
            this.maxNodes = Objects.requireNonNull(maxNodes);
            return this;
        }
        @CustomType.Setter
        public Builder minNodes(Integer minNodes) {
            this.minNodes = Objects.requireNonNull(minNodes);
            return this;
        }
        @CustomType.Setter
        public Builder monthlyBilled(Boolean monthlyBilled) {
            this.monthlyBilled = Objects.requireNonNull(monthlyBilled);
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            this.name = Objects.requireNonNull(name);
            return this;
        }
        @CustomType.Setter
        public Builder projectId(String projectId) {
            this.projectId = Objects.requireNonNull(projectId);
            return this;
        }
        @CustomType.Setter
        public Builder serviceName(String serviceName) {
            this.serviceName = Objects.requireNonNull(serviceName);
            return this;
        }
        @CustomType.Setter
        public Builder sizeStatus(String sizeStatus) {
            this.sizeStatus = Objects.requireNonNull(sizeStatus);
            return this;
        }
        @CustomType.Setter
        public Builder status(String status) {
            this.status = Objects.requireNonNull(status);
            return this;
        }
        @CustomType.Setter
        public Builder template(@Nullable GetKubeNodePoolTemplate template) {
            this.template = template;
            return this;
        }
        @CustomType.Setter
        public Builder upToDateNodes(Integer upToDateNodes) {
            this.upToDateNodes = Objects.requireNonNull(upToDateNodes);
            return this;
        }
        @CustomType.Setter
        public Builder updatedAt(String updatedAt) {
            this.updatedAt = Objects.requireNonNull(updatedAt);
            return this;
        }
        public GetKubeNodePoolResult build() {
            final var o = new GetKubeNodePoolResult();
            o.antiAffinity = antiAffinity;
            o.autoscale = autoscale;
            o.availableNodes = availableNodes;
            o.createdAt = createdAt;
            o.currentNodes = currentNodes;
            o.desiredNodes = desiredNodes;
            o.flavor = flavor;
            o.flavorName = flavorName;
            o.id = id;
            o.kubeId = kubeId;
            o.maxNodes = maxNodes;
            o.minNodes = minNodes;
            o.monthlyBilled = monthlyBilled;
            o.name = name;
            o.projectId = projectId;
            o.serviceName = serviceName;
            o.sizeStatus = sizeStatus;
            o.status = status;
            o.template = template;
            o.upToDateNodes = upToDateNodes;
            o.updatedAt = updatedAt;
            return o;
        }
    }
}
