diff options
Diffstat (limited to 'controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java | 78 |
1 files changed, 61 insertions, 17 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java index 0c81fbd3670..26330f11d65 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java @@ -8,30 +8,74 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.ZoneEndpoint.AllowedUrn; import java.util.List; +import java.util.Objects; import java.util.Optional; -import static java.util.Objects.requireNonNull; - /** * Represents an exclusive load balancer, assigned to an application's cluster. * * @author mortent */ -public record LoadBalancer(String id, ApplicationId application, ClusterSpec.Id cluster, - Optional<DomainName> hostname, Optional<String> ipAddress, - State state, Optional<String> dnsZone, Optional<CloudAccount> cloudAccount, - Optional<PrivateServiceInfo> service, boolean isPublic) { - - public LoadBalancer { - requireNonNull(id, "id must be non-null"); - requireNonNull(application, "application must be non-null"); - requireNonNull(cluster, "cluster must be non-null"); - requireNonNull(hostname, "hostname must be non-null"); - requireNonNull(ipAddress, "ipAddress must be non-null"); - requireNonNull(state, "state must be non-null"); - requireNonNull(dnsZone, "dnsZone must be non-null"); - requireNonNull(cloudAccount, "cloudAccount must be non-null"); - requireNonNull(service, "service must be non-null"); +public class LoadBalancer { + + private final String id; + private final ApplicationId application; + private final ClusterSpec.Id cluster; + private final Optional<DomainName> hostname; + private final Optional<String> ipAddress; + private final State state; + private final Optional<String> dnsZone; + private final Optional<CloudAccount> cloudAccount; + private final Optional<PrivateServiceInfo> service; + + public LoadBalancer(String id, ApplicationId application, ClusterSpec.Id cluster, Optional<DomainName> hostname, + Optional<String> ipAddress, State state, Optional<String> dnsZone, + Optional<CloudAccount> cloudAccount, Optional<PrivateServiceInfo> service) { + this.id = Objects.requireNonNull(id, "id must be non-null"); + this.application = Objects.requireNonNull(application, "application must be non-null"); + this.cluster = Objects.requireNonNull(cluster, "cluster must be non-null"); + this.hostname = Objects.requireNonNull(hostname, "hostname must be non-null"); + this.ipAddress = Objects.requireNonNull(ipAddress, "ipAddress must be non-null"); + this.state = Objects.requireNonNull(state, "state must be non-null"); + this.dnsZone = Objects.requireNonNull(dnsZone, "dnsZone must be non-null"); + this.cloudAccount = Objects.requireNonNull(cloudAccount, "cloudAccount must be non-null"); + this.service = Objects.requireNonNull(service, "service must be non-null"); + } + + public String id() { + return id; + } + + public ApplicationId application() { + return application; + } + + public ClusterSpec.Id cluster() { + return cluster; + } + + public Optional<DomainName> hostname() { + return hostname; + } + + public Optional<String> ipAddress() { + return ipAddress; + } + + public Optional<String> dnsZone() { + return dnsZone; + } + + public State state() { + return state; + } + + public Optional<CloudAccount> cloudAccount() { + return cloudAccount; + } + + public Optional<PrivateServiceInfo> service() { + return service; } public enum State { |