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

import com.pulumi.core.annotations.CustomType;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;

@CustomType
public final class GetVpsResult {
    /**
     * @return The OVHcloud cluster the vps is in
     * 
     */
    private String cluster;
    /**
     * @return The datacenter in which the vps is located
     * * `datacenter.longname` - The fullname of the datacenter (ex: &#34;Strasbourg SBG1&#34;)
     * * `datacenter.name` - The short name of the datacenter (ex: &#34;sbg1)
     * 
     */
    private Map<String,String> datacenter;
    /**
     * @return The displayed name in the OVHcloud web admin
     * 
     */
    private String displayname;
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    private String id;
    /**
     * @return The list of IPs addresses attached to the vps
     * 
     */
    private List<String> ips;
    /**
     * @return The keymap for the ip kvm, valid values &#34;&#34;, &#34;fr&#34;, &#34;us&#34;
     * 
     */
    private String keymap;
    /**
     * @return The amount of memory in MB of the vps.
     * 
     */
    private Integer memory;
    /**
     * @return A dict describing the type of vps.
     * * `model.name` - The model name (ex: model1)
     * * `model.offer` - The model human description (ex: &#34;VPS 2016 SSD 1&#34;)
     * * `model.version` - The model version (ex: &#34;2017v2&#34;)
     * 
     */
    private Map<String,String> model;
    private String name;
    /**
     * @return The source of the boot kernel
     * 
     */
    private String netbootmode;
    /**
     * @return The type of offer (ssd, cloud, classic)
     * 
     */
    private String offertype;
    private String serviceName;
    /**
     * @return A boolean to indicate if OVHcloud SLA monitoring is active.
     * 
     */
    private Boolean slamonitoring;
    /**
     * @return The state of the vps
     * 
     */
    private String state;
    /**
     * @return The type of server
     * 
     */
    private String type;
    /**
     * @return The number of vcore of the vps
     * 
     */
    private Integer vcore;
    /**
     * @return The OVHcloud zone where the vps is
     * 
     */
    private String zone;

    private GetVpsResult() {}
    /**
     * @return The OVHcloud cluster the vps is in
     * 
     */
    public String cluster() {
        return this.cluster;
    }
    /**
     * @return The datacenter in which the vps is located
     * * `datacenter.longname` - The fullname of the datacenter (ex: &#34;Strasbourg SBG1&#34;)
     * * `datacenter.name` - The short name of the datacenter (ex: &#34;sbg1)
     * 
     */
    public Map<String,String> datacenter() {
        return this.datacenter;
    }
    /**
     * @return The displayed name in the OVHcloud web admin
     * 
     */
    public String displayname() {
        return this.displayname;
    }
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return The list of IPs addresses attached to the vps
     * 
     */
    public List<String> ips() {
        return this.ips;
    }
    /**
     * @return The keymap for the ip kvm, valid values &#34;&#34;, &#34;fr&#34;, &#34;us&#34;
     * 
     */
    public String keymap() {
        return this.keymap;
    }
    /**
     * @return The amount of memory in MB of the vps.
     * 
     */
    public Integer memory() {
        return this.memory;
    }
    /**
     * @return A dict describing the type of vps.
     * * `model.name` - The model name (ex: model1)
     * * `model.offer` - The model human description (ex: &#34;VPS 2016 SSD 1&#34;)
     * * `model.version` - The model version (ex: &#34;2017v2&#34;)
     * 
     */
    public Map<String,String> model() {
        return this.model;
    }
    public String name() {
        return this.name;
    }
    /**
     * @return The source of the boot kernel
     * 
     */
    public String netbootmode() {
        return this.netbootmode;
    }
    /**
     * @return The type of offer (ssd, cloud, classic)
     * 
     */
    public String offertype() {
        return this.offertype;
    }
    public String serviceName() {
        return this.serviceName;
    }
    /**
     * @return A boolean to indicate if OVHcloud SLA monitoring is active.
     * 
     */
    public Boolean slamonitoring() {
        return this.slamonitoring;
    }
    /**
     * @return The state of the vps
     * 
     */
    public String state() {
        return this.state;
    }
    /**
     * @return The type of server
     * 
     */
    public String type() {
        return this.type;
    }
    /**
     * @return The number of vcore of the vps
     * 
     */
    public Integer vcore() {
        return this.vcore;
    }
    /**
     * @return The OVHcloud zone where the vps is
     * 
     */
    public String zone() {
        return this.zone;
    }

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

    public static Builder builder(GetVpsResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String cluster;
        private Map<String,String> datacenter;
        private String displayname;
        private String id;
        private List<String> ips;
        private String keymap;
        private Integer memory;
        private Map<String,String> model;
        private String name;
        private String netbootmode;
        private String offertype;
        private String serviceName;
        private Boolean slamonitoring;
        private String state;
        private String type;
        private Integer vcore;
        private String zone;
        public Builder() {}
        public Builder(GetVpsResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.cluster = defaults.cluster;
    	      this.datacenter = defaults.datacenter;
    	      this.displayname = defaults.displayname;
    	      this.id = defaults.id;
    	      this.ips = defaults.ips;
    	      this.keymap = defaults.keymap;
    	      this.memory = defaults.memory;
    	      this.model = defaults.model;
    	      this.name = defaults.name;
    	      this.netbootmode = defaults.netbootmode;
    	      this.offertype = defaults.offertype;
    	      this.serviceName = defaults.serviceName;
    	      this.slamonitoring = defaults.slamonitoring;
    	      this.state = defaults.state;
    	      this.type = defaults.type;
    	      this.vcore = defaults.vcore;
    	      this.zone = defaults.zone;
        }

        @CustomType.Setter
        public Builder cluster(String cluster) {
            this.cluster = Objects.requireNonNull(cluster);
            return this;
        }
        @CustomType.Setter
        public Builder datacenter(Map<String,String> datacenter) {
            this.datacenter = Objects.requireNonNull(datacenter);
            return this;
        }
        @CustomType.Setter
        public Builder displayname(String displayname) {
            this.displayname = Objects.requireNonNull(displayname);
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            this.id = Objects.requireNonNull(id);
            return this;
        }
        @CustomType.Setter
        public Builder ips(List<String> ips) {
            this.ips = Objects.requireNonNull(ips);
            return this;
        }
        public Builder ips(String... ips) {
            return ips(List.of(ips));
        }
        @CustomType.Setter
        public Builder keymap(String keymap) {
            this.keymap = Objects.requireNonNull(keymap);
            return this;
        }
        @CustomType.Setter
        public Builder memory(Integer memory) {
            this.memory = Objects.requireNonNull(memory);
            return this;
        }
        @CustomType.Setter
        public Builder model(Map<String,String> model) {
            this.model = Objects.requireNonNull(model);
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            this.name = Objects.requireNonNull(name);
            return this;
        }
        @CustomType.Setter
        public Builder netbootmode(String netbootmode) {
            this.netbootmode = Objects.requireNonNull(netbootmode);
            return this;
        }
        @CustomType.Setter
        public Builder offertype(String offertype) {
            this.offertype = Objects.requireNonNull(offertype);
            return this;
        }
        @CustomType.Setter
        public Builder serviceName(String serviceName) {
            this.serviceName = Objects.requireNonNull(serviceName);
            return this;
        }
        @CustomType.Setter
        public Builder slamonitoring(Boolean slamonitoring) {
            this.slamonitoring = Objects.requireNonNull(slamonitoring);
            return this;
        }
        @CustomType.Setter
        public Builder state(String state) {
            this.state = Objects.requireNonNull(state);
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            this.type = Objects.requireNonNull(type);
            return this;
        }
        @CustomType.Setter
        public Builder vcore(Integer vcore) {
            this.vcore = Objects.requireNonNull(vcore);
            return this;
        }
        @CustomType.Setter
        public Builder zone(String zone) {
            this.zone = Objects.requireNonNull(zone);
            return this;
        }
        public GetVpsResult build() {
            final var o = new GetVpsResult();
            o.cluster = cluster;
            o.datacenter = datacenter;
            o.displayname = displayname;
            o.id = id;
            o.ips = ips;
            o.keymap = keymap;
            o.memory = memory;
            o.model = model;
            o.name = name;
            o.netbootmode = netbootmode;
            o.offertype = offertype;
            o.serviceName = serviceName;
            o.slamonitoring = slamonitoring;
            o.state = state;
            o.type = type;
            o.vcore = vcore;
            o.zone = zone;
            return o;
        }
    }
}
