diff options
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.java | 39 |
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; + } + +} |