diff options
Diffstat (limited to 'controller-api/src/main')
2 files changed, 14 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java index e3b303c38d8..8b48c72f88e 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/BillingController.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.billing; import com.yahoo.config.provision.TenantName; +import com.yahoo.vespa.hosted.controller.tenant.TaxId; import java.math.BigDecimal; import java.time.LocalDate; @@ -132,4 +133,7 @@ public interface BillingController { /** Get the list of countries that are accepted */ AcceptedCountries getAcceptedCountries(); + /** Validation of tax id */ + void validateTaxId(TaxId id) throws IllegalArgumentException; + } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java index af33992a093..18dd339b4a1 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/MockBillingController.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.billing; import com.yahoo.config.provision.TenantName; +import com.yahoo.vespa.hosted.controller.tenant.TaxId; import java.math.BigDecimal; import java.time.Clock; @@ -218,6 +219,15 @@ public class MockBillingController implements BillingController { )); } + @Override + public void validateTaxId(TaxId id) throws IllegalArgumentException { + if (id.isEmpty() || id.isLegacy()) return; + if (!List.of("eu_vat", "no_vat").contains(id.type().value())) + throw new IllegalArgumentException("Unknown tax id type '%s'".formatted(id.type().value())); + if (!id.code().value().matches("\\w+")) + throw new IllegalArgumentException("Invalid tax id code '%s'".formatted(id.code().value())); + } + public void setTenants(List<TenantName> tenants) { this.tenants = tenants; |