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

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

@CustomType
public final class GetServerResult {
    /**
     * @return boot id of the server
     * 
     */
    private Integer bootId;
    /**
     * @return dedicater server commercial range
     * 
     */
    private String commercialRange;
    /**
     * @return dedicated datacenter localisation (bhs1,bhs2,...)
     * 
     */
    private String datacenter;
    /**
     * @return List of enabled public VNI uuids
     * 
     */
    private List<String> enabledPublicVnis;
    /**
     * @return List of enabled vrack_aggregation VNI uuids
     * 
     */
    private List<String> enabledVrackAggregationVnis;
    /**
     * @return List of enabled vrack VNI uuids
     * 
     */
    private List<String> enabledVrackVnis;
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    private String id;
    /**
     * @return dedicated server ip (IPv4)
     * 
     */
    private String ip;
    /**
     * @return dedicated server ip blocks
     * 
     */
    private List<String> ips;
    /**
     * @return link speed of the server
     * 
     */
    private Integer linkSpeed;
    /**
     * @return Icmp monitoring state
     * 
     */
    private Boolean monitoring;
    /**
     * @return User defined VirtualNetworkInterface name
     * 
     */
    private String name;
    /**
     * @return Operating system
     * 
     */
    private String os;
    /**
     * @return Does this server have professional use option
     * 
     */
    private Boolean professionalUse;
    /**
     * @return rack id of the server
     * 
     */
    private String rack;
    /**
     * @return rescue mail of the server
     * 
     */
    private String rescueMail;
    /**
     * @return dedicated server reverse
     * 
     */
    private String reverse;
    /**
     * @return root device of the server
     * 
     */
    private String rootDevice;
    /**
     * @return your server id
     * 
     */
    private Integer serverId;
    private String serviceName;
    /**
     * @return error, hacked, hackedBlocked, ok
     * 
     */
    private String state;
    /**
     * @return Dedicated server support level (critical, fastpath, gs, pro)
     * 
     */
    private String supportLevel;
    /**
     * @return the list of Virtualnetworkinterface assiociated with this server
     * 
     */
    private List<GetServerVni> vnis;

    private GetServerResult() {}
    /**
     * @return boot id of the server
     * 
     */
    public Integer bootId() {
        return this.bootId;
    }
    /**
     * @return dedicater server commercial range
     * 
     */
    public String commercialRange() {
        return this.commercialRange;
    }
    /**
     * @return dedicated datacenter localisation (bhs1,bhs2,...)
     * 
     */
    public String datacenter() {
        return this.datacenter;
    }
    /**
     * @return List of enabled public VNI uuids
     * 
     */
    public List<String> enabledPublicVnis() {
        return this.enabledPublicVnis;
    }
    /**
     * @return List of enabled vrack_aggregation VNI uuids
     * 
     */
    public List<String> enabledVrackAggregationVnis() {
        return this.enabledVrackAggregationVnis;
    }
    /**
     * @return List of enabled vrack VNI uuids
     * 
     */
    public List<String> enabledVrackVnis() {
        return this.enabledVrackVnis;
    }
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return dedicated server ip (IPv4)
     * 
     */
    public String ip() {
        return this.ip;
    }
    /**
     * @return dedicated server ip blocks
     * 
     */
    public List<String> ips() {
        return this.ips;
    }
    /**
     * @return link speed of the server
     * 
     */
    public Integer linkSpeed() {
        return this.linkSpeed;
    }
    /**
     * @return Icmp monitoring state
     * 
     */
    public Boolean monitoring() {
        return this.monitoring;
    }
    /**
     * @return User defined VirtualNetworkInterface name
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Operating system
     * 
     */
    public String os() {
        return this.os;
    }
    /**
     * @return Does this server have professional use option
     * 
     */
    public Boolean professionalUse() {
        return this.professionalUse;
    }
    /**
     * @return rack id of the server
     * 
     */
    public String rack() {
        return this.rack;
    }
    /**
     * @return rescue mail of the server
     * 
     */
    public String rescueMail() {
        return this.rescueMail;
    }
    /**
     * @return dedicated server reverse
     * 
     */
    public String reverse() {
        return this.reverse;
    }
    /**
     * @return root device of the server
     * 
     */
    public String rootDevice() {
        return this.rootDevice;
    }
    /**
     * @return your server id
     * 
     */
    public Integer serverId() {
        return this.serverId;
    }
    public String serviceName() {
        return this.serviceName;
    }
    /**
     * @return error, hacked, hackedBlocked, ok
     * 
     */
    public String state() {
        return this.state;
    }
    /**
     * @return Dedicated server support level (critical, fastpath, gs, pro)
     * 
     */
    public String supportLevel() {
        return this.supportLevel;
    }
    /**
     * @return the list of Virtualnetworkinterface assiociated with this server
     * 
     */
    public List<GetServerVni> vnis() {
        return this.vnis;
    }

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

    public static Builder builder(GetServerResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private Integer bootId;
        private String commercialRange;
        private String datacenter;
        private List<String> enabledPublicVnis;
        private List<String> enabledVrackAggregationVnis;
        private List<String> enabledVrackVnis;
        private String id;
        private String ip;
        private List<String> ips;
        private Integer linkSpeed;
        private Boolean monitoring;
        private String name;
        private String os;
        private Boolean professionalUse;
        private String rack;
        private String rescueMail;
        private String reverse;
        private String rootDevice;
        private Integer serverId;
        private String serviceName;
        private String state;
        private String supportLevel;
        private List<GetServerVni> vnis;
        public Builder() {}
        public Builder(GetServerResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.bootId = defaults.bootId;
    	      this.commercialRange = defaults.commercialRange;
    	      this.datacenter = defaults.datacenter;
    	      this.enabledPublicVnis = defaults.enabledPublicVnis;
    	      this.enabledVrackAggregationVnis = defaults.enabledVrackAggregationVnis;
    	      this.enabledVrackVnis = defaults.enabledVrackVnis;
    	      this.id = defaults.id;
    	      this.ip = defaults.ip;
    	      this.ips = defaults.ips;
    	      this.linkSpeed = defaults.linkSpeed;
    	      this.monitoring = defaults.monitoring;
    	      this.name = defaults.name;
    	      this.os = defaults.os;
    	      this.professionalUse = defaults.professionalUse;
    	      this.rack = defaults.rack;
    	      this.rescueMail = defaults.rescueMail;
    	      this.reverse = defaults.reverse;
    	      this.rootDevice = defaults.rootDevice;
    	      this.serverId = defaults.serverId;
    	      this.serviceName = defaults.serviceName;
    	      this.state = defaults.state;
    	      this.supportLevel = defaults.supportLevel;
    	      this.vnis = defaults.vnis;
        }

        @CustomType.Setter
        public Builder bootId(Integer bootId) {
            this.bootId = Objects.requireNonNull(bootId);
            return this;
        }
        @CustomType.Setter
        public Builder commercialRange(String commercialRange) {
            this.commercialRange = Objects.requireNonNull(commercialRange);
            return this;
        }
        @CustomType.Setter
        public Builder datacenter(String datacenter) {
            this.datacenter = Objects.requireNonNull(datacenter);
            return this;
        }
        @CustomType.Setter
        public Builder enabledPublicVnis(List<String> enabledPublicVnis) {
            this.enabledPublicVnis = Objects.requireNonNull(enabledPublicVnis);
            return this;
        }
        public Builder enabledPublicVnis(String... enabledPublicVnis) {
            return enabledPublicVnis(List.of(enabledPublicVnis));
        }
        @CustomType.Setter
        public Builder enabledVrackAggregationVnis(List<String> enabledVrackAggregationVnis) {
            this.enabledVrackAggregationVnis = Objects.requireNonNull(enabledVrackAggregationVnis);
            return this;
        }
        public Builder enabledVrackAggregationVnis(String... enabledVrackAggregationVnis) {
            return enabledVrackAggregationVnis(List.of(enabledVrackAggregationVnis));
        }
        @CustomType.Setter
        public Builder enabledVrackVnis(List<String> enabledVrackVnis) {
            this.enabledVrackVnis = Objects.requireNonNull(enabledVrackVnis);
            return this;
        }
        public Builder enabledVrackVnis(String... enabledVrackVnis) {
            return enabledVrackVnis(List.of(enabledVrackVnis));
        }
        @CustomType.Setter
        public Builder id(String id) {
            this.id = Objects.requireNonNull(id);
            return this;
        }
        @CustomType.Setter
        public Builder ip(String ip) {
            this.ip = Objects.requireNonNull(ip);
            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 linkSpeed(Integer linkSpeed) {
            this.linkSpeed = Objects.requireNonNull(linkSpeed);
            return this;
        }
        @CustomType.Setter
        public Builder monitoring(Boolean monitoring) {
            this.monitoring = Objects.requireNonNull(monitoring);
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            this.name = Objects.requireNonNull(name);
            return this;
        }
        @CustomType.Setter
        public Builder os(String os) {
            this.os = Objects.requireNonNull(os);
            return this;
        }
        @CustomType.Setter
        public Builder professionalUse(Boolean professionalUse) {
            this.professionalUse = Objects.requireNonNull(professionalUse);
            return this;
        }
        @CustomType.Setter
        public Builder rack(String rack) {
            this.rack = Objects.requireNonNull(rack);
            return this;
        }
        @CustomType.Setter
        public Builder rescueMail(String rescueMail) {
            this.rescueMail = Objects.requireNonNull(rescueMail);
            return this;
        }
        @CustomType.Setter
        public Builder reverse(String reverse) {
            this.reverse = Objects.requireNonNull(reverse);
            return this;
        }
        @CustomType.Setter
        public Builder rootDevice(String rootDevice) {
            this.rootDevice = Objects.requireNonNull(rootDevice);
            return this;
        }
        @CustomType.Setter
        public Builder serverId(Integer serverId) {
            this.serverId = Objects.requireNonNull(serverId);
            return this;
        }
        @CustomType.Setter
        public Builder serviceName(String serviceName) {
            this.serviceName = Objects.requireNonNull(serviceName);
            return this;
        }
        @CustomType.Setter
        public Builder state(String state) {
            this.state = Objects.requireNonNull(state);
            return this;
        }
        @CustomType.Setter
        public Builder supportLevel(String supportLevel) {
            this.supportLevel = Objects.requireNonNull(supportLevel);
            return this;
        }
        @CustomType.Setter
        public Builder vnis(List<GetServerVni> vnis) {
            this.vnis = Objects.requireNonNull(vnis);
            return this;
        }
        public Builder vnis(GetServerVni... vnis) {
            return vnis(List.of(vnis));
        }
        public GetServerResult build() {
            final var o = new GetServerResult();
            o.bootId = bootId;
            o.commercialRange = commercialRange;
            o.datacenter = datacenter;
            o.enabledPublicVnis = enabledPublicVnis;
            o.enabledVrackAggregationVnis = enabledVrackAggregationVnis;
            o.enabledVrackVnis = enabledVrackVnis;
            o.id = id;
            o.ip = ip;
            o.ips = ips;
            o.linkSpeed = linkSpeed;
            o.monitoring = monitoring;
            o.name = name;
            o.os = os;
            o.professionalUse = professionalUse;
            o.rack = rack;
            o.rescueMail = rescueMail;
            o.reverse = reverse;
            o.rootDevice = rootDevice;
            o.serverId = serverId;
            o.serviceName = serviceName;
            o.state = state;
            o.supportLevel = supportLevel;
            o.vnis = vnis;
            return o;
        }
    }
}
