diff options
Diffstat (limited to 'vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/RoleEntity.java')
-rw-r--r-- | vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/RoleEntity.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/RoleEntity.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/RoleEntity.java new file mode 100644 index 00000000000..e5bcc4d977e --- /dev/null +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/RoleEntity.java @@ -0,0 +1,50 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +package com.yahoo.vespa.athenz.client.zms.bindings; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class RoleEntity { + private final String roleName; + private final List<Member> roleMembers; + + @JsonCreator + public RoleEntity(@JsonProperty("roleName") String roleName, @JsonProperty("roleMembers") List<Member> roleMembers) { + this.roleName = roleName; + this.roleMembers = roleMembers; + } + + public String roleName() { + return roleName; + } + + public List<Member> roleMembers() { + return roleMembers; + } + + public static final class Member { + private final String memberName; + private final boolean active; + private final boolean approved; + + @JsonCreator + public Member(@JsonProperty("memberName") String memberName, @JsonProperty("active") boolean active, @JsonProperty("approved") boolean approved) { + this.memberName = memberName; + this.active = active; + this.approved = approved; + } + + public String memberName() { + return memberName; + } + + public boolean pendingApproval() { + return !approved; + } + } +} |