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

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

@CustomType
public final class GetIpLoadBalancingResult {
    private String displayName;
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    private String id;
    private String ipLoadbalancing;
    private String ipv4;
    private String ipv6;
    /**
     * @return The metrics token associated with your IP load balancing
     * This attribute is sensitive.
     * 
     */
    private String metricsToken;
    private String offer;
    /**
     * @return Available additional zone for your Load Balancer
     * 
     */
    private List<GetIpLoadBalancingOrderableZone> orderableZones;
    private String serviceName;
    private String sslConfiguration;
    private String state;
    private Boolean vrackEligibility;
    private String vrackName;
    private List<String> zones;

    private GetIpLoadBalancingResult() {}
    public String displayName() {
        return this.displayName;
    }
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    public String id() {
        return this.id;
    }
    public String ipLoadbalancing() {
        return this.ipLoadbalancing;
    }
    public String ipv4() {
        return this.ipv4;
    }
    public String ipv6() {
        return this.ipv6;
    }
    /**
     * @return The metrics token associated with your IP load balancing
     * This attribute is sensitive.
     * 
     */
    public String metricsToken() {
        return this.metricsToken;
    }
    public String offer() {
        return this.offer;
    }
    /**
     * @return Available additional zone for your Load Balancer
     * 
     */
    public List<GetIpLoadBalancingOrderableZone> orderableZones() {
        return this.orderableZones;
    }
    public String serviceName() {
        return this.serviceName;
    }
    public String sslConfiguration() {
        return this.sslConfiguration;
    }
    public String state() {
        return this.state;
    }
    public Boolean vrackEligibility() {
        return this.vrackEligibility;
    }
    public String vrackName() {
        return this.vrackName;
    }
    public List<String> zones() {
        return this.zones;
    }

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

    public static Builder builder(GetIpLoadBalancingResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String displayName;
        private String id;
        private String ipLoadbalancing;
        private String ipv4;
        private String ipv6;
        private String metricsToken;
        private String offer;
        private List<GetIpLoadBalancingOrderableZone> orderableZones;
        private String serviceName;
        private String sslConfiguration;
        private String state;
        private Boolean vrackEligibility;
        private String vrackName;
        private List<String> zones;
        public Builder() {}
        public Builder(GetIpLoadBalancingResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.displayName = defaults.displayName;
    	      this.id = defaults.id;
    	      this.ipLoadbalancing = defaults.ipLoadbalancing;
    	      this.ipv4 = defaults.ipv4;
    	      this.ipv6 = defaults.ipv6;
    	      this.metricsToken = defaults.metricsToken;
    	      this.offer = defaults.offer;
    	      this.orderableZones = defaults.orderableZones;
    	      this.serviceName = defaults.serviceName;
    	      this.sslConfiguration = defaults.sslConfiguration;
    	      this.state = defaults.state;
    	      this.vrackEligibility = defaults.vrackEligibility;
    	      this.vrackName = defaults.vrackName;
    	      this.zones = defaults.zones;
        }

        @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 ipLoadbalancing(String ipLoadbalancing) {
            this.ipLoadbalancing = Objects.requireNonNull(ipLoadbalancing);
            return this;
        }
        @CustomType.Setter
        public Builder ipv4(String ipv4) {
            this.ipv4 = Objects.requireNonNull(ipv4);
            return this;
        }
        @CustomType.Setter
        public Builder ipv6(String ipv6) {
            this.ipv6 = Objects.requireNonNull(ipv6);
            return this;
        }
        @CustomType.Setter
        public Builder metricsToken(String metricsToken) {
            this.metricsToken = Objects.requireNonNull(metricsToken);
            return this;
        }
        @CustomType.Setter
        public Builder offer(String offer) {
            this.offer = Objects.requireNonNull(offer);
            return this;
        }
        @CustomType.Setter
        public Builder orderableZones(List<GetIpLoadBalancingOrderableZone> orderableZones) {
            this.orderableZones = Objects.requireNonNull(orderableZones);
            return this;
        }
        public Builder orderableZones(GetIpLoadBalancingOrderableZone... orderableZones) {
            return orderableZones(List.of(orderableZones));
        }
        @CustomType.Setter
        public Builder serviceName(String serviceName) {
            this.serviceName = Objects.requireNonNull(serviceName);
            return this;
        }
        @CustomType.Setter
        public Builder sslConfiguration(String sslConfiguration) {
            this.sslConfiguration = Objects.requireNonNull(sslConfiguration);
            return this;
        }
        @CustomType.Setter
        public Builder state(String state) {
            this.state = Objects.requireNonNull(state);
            return this;
        }
        @CustomType.Setter
        public Builder vrackEligibility(Boolean vrackEligibility) {
            this.vrackEligibility = Objects.requireNonNull(vrackEligibility);
            return this;
        }
        @CustomType.Setter
        public Builder vrackName(String vrackName) {
            this.vrackName = Objects.requireNonNull(vrackName);
            return this;
        }
        @CustomType.Setter
        public Builder zones(List<String> zones) {
            this.zones = Objects.requireNonNull(zones);
            return this;
        }
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }
        public GetIpLoadBalancingResult build() {
            final var o = new GetIpLoadBalancingResult();
            o.displayName = displayName;
            o.id = id;
            o.ipLoadbalancing = ipLoadbalancing;
            o.ipv4 = ipv4;
            o.ipv6 = ipv6;
            o.metricsToken = metricsToken;
            o.offer = offer;
            o.orderableZones = orderableZones;
            o.serviceName = serviceName;
            o.sslConfiguration = sslConfiguration;
            o.state = state;
            o.vrackEligibility = vrackEligibility;
            o.vrackName = vrackName;
            o.zones = zones;
            return o;
        }
    }
}
