summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorsmorgrav <smorgrav@verizonmedia.com>2020-11-09 10:55:23 +0100
committersmorgrav <smorgrav@verizonmedia.com>2020-11-09 10:56:40 +0100
commit271d1ff49b7ad9a9642fc12740af5ee026794888 (patch)
treed5346fb7db984f33f28a03838e43a283ebd8a48e /controller-api
parentbb75c5975c5588b8e05e9bd62016d1dce0a6d654 (diff)
Rest api to patch collection method - only accessible for accountants
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Policy.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/RoleDefinition.java3
3 files changed, 12 insertions, 1 deletions
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 b6e8dcee2af..9efd216b9f1 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
@@ -77,6 +77,10 @@ enum PathGroup {
PathPrefix.api,
"/billing/v1/tenant/{tenant}/plan/{*}"),
+ billingCollection(Matcher.tenant,
+ PathPrefix.api,
+ "/billing/v1/tenant/{tenant}/collection/{*}"),
+
billingList(Matcher.tenant,
PathPrefix.api,
"/billing/v1/tenant/{tenant}/billing/{*}"),
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Policy.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Policy.java
index 75664a5e66f..c1d00b995aa 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Policy.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Policy.java
@@ -164,6 +164,12 @@ enum Policy {
.on(PathGroup.billingPlan)
.in(SystemName.PublicCd)),
+ /** Ability to update tenant collection method */
+ collectionMethodUpdate(Privilege.grant(Action.update)
+ .on(PathGroup.billingCollection)
+ .in(SystemName.PublicCd)),
+
+
/** Read the generated bills */
billingInformationRead(Privilege.grant(Action.read)
.on(PathGroup.billingList)
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/RoleDefinition.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/RoleDefinition.java
index 801661f454e..c3126cc8b7a 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/RoleDefinition.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/RoleDefinition.java
@@ -91,7 +91,8 @@ public enum RoleDefinition {
paymentProcessor(Policy.paymentProcessor),
- hostedAccountant(Policy.hostedAccountant);
+ hostedAccountant(Policy.hostedAccountant,
+ Policy.collectionMethodUpdate);
private final Set<RoleDefinition> parents;
private final Set<Policy> policies;