summaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneEndpoint.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/ZoneEndpoint.java')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ZoneEndpoint.java132
1 files changed, 0 insertions, 132 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneEndpoint.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneEndpoint.java
deleted file mode 100644
index 10e22f8df06..00000000000
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneEndpoint.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.yahoo.config.provision;
-
-import ai.vespa.validation.Validation;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * Settings for a zone endpoint of a deployment.
- *
- * TODO: Fix isEmpty
- * Inline empty and constructor
- *
- * @author jonmv
- */
-public class ZoneEndpoint {
-
- public static final ZoneEndpoint defaultEndpoint = new ZoneEndpoint(true, false, List.of());
-
- private final boolean isPublicEndpoint;
- private final boolean isPrivateEndpoint;
- private final List<AllowedUrn> allowedUrns;
-
- public ZoneEndpoint(List<String> allowedUrns) {
- this(true, true, allowedUrns.stream().map(arn -> new AllowedUrn(AccessType.awsPrivateLink, arn)).toList());
- }
-
- public ZoneEndpoint(boolean isPublicEndpoint, boolean isPrivateEndpoint, List<AllowedUrn> allowedUrns) {
- if ( ! allowedUrns.isEmpty() && ! isPrivateEndpoint)
- throw new IllegalArgumentException("cannot list allowed urns, without also enabling private visibility");
- this.isPublicEndpoint = isPublicEndpoint;
- this.isPrivateEndpoint = isPrivateEndpoint;
- this.allowedUrns = List.copyOf(allowedUrns);
- }
-
- /** Whether this has an endpoint which is visible from the public internet. */
- public boolean isPublicEndpoint() {
- return isPublicEndpoint;
- }
-
- /** Whether this has an endpoint which is visible through private DNS of the cloud. */
- public boolean isPrivateEndpoint() {
- return isPrivateEndpoint;
- }
-
- /** List of allowed URNs, for specified private access types. */
- public List<AllowedUrn> allowedUrns() {
- return allowedUrns;
- }
-
- /** List of URNs for the given access type. */
- public List<String> allowedUrnsWith(AccessType type) {
- return allowedUrns.stream().filter(urn -> urn.type == type).map(AllowedUrn::urn).toList();
- }
-
- public boolean isDefault() {
- return equals(defaultEndpoint);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- ZoneEndpoint that = (ZoneEndpoint) o;
- return isPublicEndpoint == that.isPublicEndpoint && isPrivateEndpoint == that.isPrivateEndpoint && allowedUrns.equals(that.allowedUrns);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(isPublicEndpoint, isPrivateEndpoint, allowedUrns);
- }
-
- @Override
- public String toString() {
- return "ZoneEndpoint{" +
- "isPublicEndpoint=" + isPublicEndpoint +
- ", isPrivateEndpoint=" + isPrivateEndpoint +
- ", allowedUrns=" + allowedUrns +
- '}';
- }
-
- public enum AccessType {
- awsPrivateLink,
- gcpServiceConnect,
- }
-
- /** A URN allowed to access this (private) endpoint, through a {@link AccessType} method. */
- public static class AllowedUrn {
-
- private final AccessType type;
- private final String urn;
-
- public AllowedUrn(AccessType type, String urn) {
- this.type = Objects.requireNonNull(type);
- this.urn = Validation.requireNonBlank(urn, "URN");
- }
-
- /** Type of private connection. */
- public AccessType type() {
- return type;
- }
-
- /** URN allowed to access this private endpoint. */
- public String urn() {
- return urn;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- AllowedUrn that = (AllowedUrn) o;
- return type == that.type && urn.equals(that.urn);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(type, urn);
- }
-
- @Override
- public String toString() {
- return "'" + urn + "' through '" +
- switch (type) {
- case awsPrivateLink -> "aws-private-link";
- case gcpServiceConnect -> "gcp-service-connect";
- } + "'";
- }
-
- }
-
-}