summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorMorten Tokle <mortent@yahooinc.com>2024-02-13 13:58:51 +0100
committerMorten Tokle <mortent@yahooinc.com>2024-02-13 14:06:27 +0100
commit05ab6800a9a9d2119aba89b2bf9d15aa29b11a48 (patch)
tree798fb3ef69c3d9447d04967e8332aefc673e1f6e /config-model-api
parent283af757b42ccb5ac6bfa8339a0a0674ae51c733 (diff)
Proxy endpoint certificate secrets through EndpointCertificateSecretStore
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/EndpointCertificateSecretStore.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/EndpointCertificateSecretStore.java b/config-model-api/src/main/java/com/yahoo/config/model/api/EndpointCertificateSecretStore.java
new file mode 100644
index 00000000000..78be1942db7
--- /dev/null
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/EndpointCertificateSecretStore.java
@@ -0,0 +1,25 @@
+// Copyright Vespa.ai. 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.List;
+import java.util.Optional;
+
+public abstract class EndpointCertificateSecretStore {
+
+ public final EndpointCertificateSecrets getSecret(EndpointCertificateMetadata metadata) {
+ Optional<String> certificate = getCertificate(metadata);
+ Optional<String> key = getPrivateKey(metadata);
+ if (certificate.isPresent() && key.isPresent()) {
+ return new EndpointCertificateSecrets(certificate.get(), key.get(), metadata.version());
+ } else {
+ return EndpointCertificateSecrets.missing(metadata.version());
+ }
+ }
+
+ public abstract Optional<String> getPrivateKey(EndpointCertificateMetadata metadata);
+ public abstract Optional<String> getCertificate(EndpointCertificateMetadata metadata);
+
+ public abstract boolean supports(EndpointCertificateMetadata.Provider provider);
+
+}