diff options
author | Eirik Nygaard <eirik.nygaard@yahooinc.com> | 2022-05-25 14:20:53 +0200 |
---|---|---|
committer | Eirik Nygaard <eirik.nygaard@yahooinc.com> | 2022-05-25 15:22:17 +0200 |
commit | 03b9ea8cc73793c427d2358e4f7b96cd8e3800cf (patch) | |
tree | c728b673e07d53e4bd20849ef011d3a3b8835eb9 /controller-api | |
parent | 9bd5c77ab39308e3fe99ab540c1113d974d4b3a0 (diff) |
Expose GCP archive member setting in API
Diffstat (limited to 'controller-api')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java | 5 | ||||
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/ArchiveAccess.java | 26 |
2 files changed, 25 insertions, 6 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 b5f03756777..f87da90f8ef 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 @@ -62,7 +62,10 @@ enum PathGroup { "/application/v4/tenant/{tenant}/key/"), tenantArchiveAccess(Matcher.tenant, - "/application/v4/tenant/{tenant}/archive-access"), + "/application/v4/tenant/{tenant}/archive-access", + "/application/v4/tenant/{tenant}/archive-access/aws", + "/application/v4/tenant/{tenant}/archive-access/gcp"), + billingToken(Matcher.tenant, "/billing/v1/tenant/{tenant}/token"), diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/ArchiveAccess.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/ArchiveAccess.java index 6336fddb8be..fba361f9223 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/ArchiveAccess.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/ArchiveAccess.java @@ -24,7 +24,7 @@ public class ArchiveAccess { this(Optional.empty(), Optional.empty()); } - public ArchiveAccess(Optional<String> awsRole, Optional<String> gcpMember) { + private ArchiveAccess(Optional<String> awsRole, Optional<String> gcpMember) { this.awsRole = awsRole; this.gcpMember = gcpMember; @@ -32,12 +32,28 @@ public class ArchiveAccess { gcpMember.ifPresent(member -> validateGCPMember(member)); } - public static ArchiveAccess fromAWSRole(String role) { - return new ArchiveAccess(Optional.of(role), Optional.empty()); + public ArchiveAccess withAWSRole(String role) { + return new ArchiveAccess(Optional.of(role), gcpMember()); } - public static ArchiveAccess fromGCPMember(String member) { - return new ArchiveAccess(Optional.empty(), Optional.of(member)); + public ArchiveAccess withGCPMember(String member) { + return new ArchiveAccess(awsRole(), Optional.of(member)); + } + + public ArchiveAccess withAWSRole(Optional<String> role) { + return new ArchiveAccess(role, gcpMember()); + } + + public ArchiveAccess withGCPMember(Optional<String> member) { + return new ArchiveAccess(awsRole(), member); + } + + public ArchiveAccess removeAWSRole() { + return new ArchiveAccess(Optional.empty(), gcpMember()); + } + + public ArchiveAccess removeGCPMember() { + return new ArchiveAccess(awsRole(), Optional.empty()); } private void validateAWSIAMRole(String role) { |