summaryrefslogtreecommitdiffstats
path: root/config-model-api/src
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2021-03-03 16:49:01 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2021-03-04 13:33:47 +0100
commit9a99b7bd1345e7c89bf842143e1bdbcdee1adfe5 (patch)
tree2fc5d724a1250e62777c2df3545e3fc383423f89 /config-model-api/src
parent301f68c3b48b5ecbb94e0671fd710d0672afb046 (diff)
Include tenant secret stores in deploy call
AwsParameterStore iterates through configured stores to find secret Set up AwsParameterStore ModelContextImpl properties fetches external ID for every tenant secret store
Diffstat (limited to 'config-model-api/src')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java2
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java66
2 files changed, 68 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
index 91ecb981e12..ebafd26f942 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
@@ -115,6 +115,8 @@ public interface ModelContext {
default Quota quota() { return Quota.unlimited(); }
+ default List<TenantSecretStore> tenantSecretStores() { return List.of(); }
+
/// Default setting for the gc-options attribute if not specified explicit by application
String jvmGCOptions();
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java b/config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java
new file mode 100644
index 00000000000..f39a3901177
--- /dev/null
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java
@@ -0,0 +1,66 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.config.model.api;
+
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @author olaa
+ */
+public class TenantSecretStore {
+
+ private final String name;
+ private final String awsId;
+ private final String role;
+ private Optional<String> externalId;
+
+ public TenantSecretStore(String name, String awsId, String role) {
+ this.name = name;
+ this.awsId = awsId;
+ this.role = role;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getAwsId() {
+ return awsId;
+ }
+
+ public String getRole() {
+ return role;
+ }
+
+ public Optional<String> getExternalId() {
+ return externalId;
+ }
+
+ public void setExternalId(String externalId) {
+ this.externalId = Optional.of(externalId);
+ }
+
+ @Override
+ public String toString() {
+ return "TenantSecretStore{" +
+ "name='" + name + '\'' +
+ ", awsId='" + awsId + '\'' +
+ ", role='" + role + '\'' +
+ '}';
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ TenantSecretStore that = (TenantSecretStore) o;
+ return name.equals(that.name) &&
+ awsId.equals(that.awsId) &&
+ role.equals(that.role);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, awsId, role);
+ }
+}