aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/DeletedTenant.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/DeletedTenant.java')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/DeletedTenant.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/DeletedTenant.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/DeletedTenant.java
new file mode 100644
index 00000000000..cf6d73cb8f8
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/DeletedTenant.java
@@ -0,0 +1,39 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.tenant;
+
+import com.yahoo.config.provision.TenantName;
+
+import java.time.Instant;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * Represents a tenant that has been deleted. Exists to prevent creation of a new tenant with the same name.
+ *
+ * @author freva
+ */
+public class DeletedTenant extends Tenant {
+
+ private final Instant deletedAt;
+
+ public DeletedTenant(TenantName name, Instant createdAt, Instant deletedAt) {
+ super(name, createdAt, LastLoginInfo.EMPTY, Optional.empty());
+ this.deletedAt = Objects.requireNonNull(deletedAt, "deletedAt must be non-null");
+ }
+
+ /** Instant when the tenant was deleted */
+ public Instant deletedAt() {
+ return deletedAt;
+ }
+
+ @Override
+ public String toString() {
+ return "deleted tenant '" + name() + "'";
+ }
+
+ @Override
+ public Type type() {
+ return Type.deleted;
+ }
+
+}