aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@yahooinc.com>2022-05-31 14:22:15 +0200
committerØyvind Grønnesby <oyving@yahooinc.com>2022-05-31 14:22:15 +0200
commitda46b1496b114ef7d9bb163a56f8f4ddbac2dd16 (patch)
treef69fa3b79e937ba42d5073587ff7a4b668bf131b /controller-api
parentda8c0d839fb45fddd4b59efa5a469d0b7e948d3f (diff)
Expose all plans in billing API
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistry.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistryMock.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java3
3 files changed, 12 insertions, 1 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistry.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistry.java
index 23fb1f20fbc..6b267e538e7 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistry.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistry.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.billing;
+import java.util.List;
import java.util.Optional;
/**
@@ -16,6 +17,9 @@ public interface PlanRegistry {
/** Get a plan given a plan ID */
Optional<Plan> plan(PlanId planId);
+ /** Get a set of all plans */
+ List<Plan> all();
+
/** Get a plan give a plan ID */
default Optional<Plan> plan(String planId) {
if (planId == null || planId.isBlank())
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistryMock.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistryMock.java
index 4757fa76224..723ffa383eb 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistryMock.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/billing/PlanRegistryMock.java
@@ -6,6 +6,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.resource.ResourceUsage;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
@@ -27,6 +28,11 @@ public class PlanRegistryMock implements PlanRegistry {
.findAny();
}
+ @Override
+ public List<Plan> all() {
+ return List.of(freeTrial, paidPlan, nonePlan);
+ }
+
private static class MockPlan implements Plan {
private final PlanId planId;
private final String description;
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
index c1034e6ab0d..a3c1a0315ec 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
@@ -234,7 +234,8 @@ enum PathGroup {
/** Paths used for invoice management */
hostedAccountant("/billing/v1/invoice/{*}",
- "/billing/v1/billing"),
+ "/billing/v1/billing",
+ "/billing/v1/plans"),
/** Path used for listing endpoint certificate request and re-requesting endpoint certificates */
endpointCertificates("/endpointcertificates/"),