summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorTorbjørn Smørgrav <smorgrav@users.noreply.github.com>2020-11-10 09:49:14 +0100
committerGitHub <noreply@github.com>2020-11-10 09:49:14 +0100
commit65d2ee07336a92ce84f5156a8cab66970e806f29 (patch)
tree4a8e487ecf5de04b4aad99e0788c4916fb8ac484 /controller-api
parent1a96731f45eaeb9d975be083ebdb2d547588cd86 (diff)
parent271d1ff49b7ad9a9642fc12740af5ee026794888 (diff)
Merge pull request #15227 from vespa-engine/smorgrav/billing_api_collection_patch
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;