summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2020-03-30 08:56:49 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2020-03-30 09:02:25 +0200
commit19163175ddec91a8909848ce980e1d046d9f1df2 (patch)
treeb97440a9f9ea466250ad78da9d5e75719664b450 /controller-api
parente71af718fc05b3129954b635a9e792e9cd6627c3 (diff)
Add role, policy and path group for payment notification callback
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Policy.java7
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Role.java3
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/RoleDefinition.java4
4 files changed, 17 insertions, 3 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 0b9161c0bc6..5c11dfc2a55 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
@@ -202,7 +202,11 @@ enum PathGroup {
/** Paths used for "dry-running" system-wide feature flags. */
- systemFlagsDryrun(PathPrefix.none, "/system-flags/v1/dryrun");
+ systemFlagsDryrun(PathPrefix.none, "/system-flags/v1/dryrun"),
+
+ /** Paths used for receiving payment callbacks */
+ paymentProcessor(PathPrefix.none, "/payment/notification");
+
final List<String> pathSpecs;
final PathPrefix prefix;
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 55512b38f95..cfe8d247e54 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
@@ -137,7 +137,12 @@ enum Policy {
/** Access to /system-flags/v1/dryrun. */
systemFlagsDryrun(Privilege.grant(Action.update)
.on(PathGroup.systemFlagsDryrun)
- .in(SystemName.all()));
+ .in(SystemName.all())),
+
+ /** Access to /payment/notification */
+ paymentProcessor(Privilege.grant(Action.create)
+ .on(PathGroup.paymentProcessor)
+ .in(SystemName.PublicCd));
private final Set<Privilege> privileges;
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Role.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Role.java
index 532088e94aa..d3c5e412215 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Role.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/Role.java
@@ -73,6 +73,9 @@ public abstract class Role {
/** Returns the role for system flag dryrun */
public static UnboundRole systemFlagsDryrunner() { return new UnboundRole(RoleDefinition.systemFlagsDryrunner); }
+ /** Returns the role of the payment processor */
+ public static UnboundRole paymentProcessor() { return new UnboundRole(RoleDefinition.paymentProcessor); }
+
/** Returns the role definition of this bound role. */
public RoleDefinition definition() { return roleDefinition; }
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 c4ce70a8f1e..c05936ee593 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
@@ -76,7 +76,9 @@ public enum RoleDefinition {
systemFlagsDeployer(Policy.systemFlagsDeploy, Policy.systemFlagsDryrun),
- systemFlagsDryrunner(Policy.systemFlagsDryrun);
+ systemFlagsDryrunner(Policy.systemFlagsDryrun),
+
+ paymentProcessor(Policy.paymentProcessor);
private final Set<RoleDefinition> parents;
private final Set<Policy> policies;