1 package org.kuali.common.devops.jenkins.updates.model; 2 3 import java.util.List; 4 5 import org.kuali.common.core.build.ValidatingBuilder; 6 import org.kuali.common.core.validate.annotation.IdiotProofImmutable; 7 8 import com.fasterxml.jackson.annotation.JsonProperty; 9 import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 10 import com.google.common.collect.ImmutableList; 11 12 @IdiotProofImmutable 13 @JsonDeserialize(builder = JenkinsSignature.Builder.class) 14 public final class JenkinsSignature { 15 16 private final String digest; 17 private final String signature; 18 19 @JsonProperty("correct_digest") 20 private final String correctDigest; 21 22 @JsonProperty("correct_signature") 23 private final String correctSignature; 24 private final ImmutableList<String> certificates; 25 26 private JenkinsSignature(Builder builder) { 27 this.digest = builder.digest; 28 this.signature = builder.signature; 29 this.correctDigest = builder.correctDigest; 30 this.correctSignature = builder.correctSignature; 31 this.certificates = ImmutableList.copyOf(builder.certificates); 32 } 33 34 public static Builder builder() { 35 return new Builder(); 36 } 37 38 public static class Builder extends ValidatingBuilder<JenkinsSignature> { 39 40 private String digest; 41 private String signature; 42 @JsonProperty("correct_digest") 43 private String correctDigest; 44 @JsonProperty("correct_signature") 45 private String correctSignature; 46 private List<String> certificates; 47 48 public Builder withDigest(String digest) { 49 this.digest = digest; 50 return this; 51 } 52 53 public Builder withSignature(String signature) { 54 this.signature = signature; 55 return this; 56 } 57 58 public Builder withCorrectDigest(String correctDigest) { 59 this.correctDigest = correctDigest; 60 return this; 61 } 62 63 public Builder withCorrectSignature(String correctSignature) { 64 this.correctSignature = correctSignature; 65 return this; 66 } 67 68 public Builder withCertificates(ImmutableList<String> certificates) { 69 this.certificates = certificates; 70 return this; 71 } 72 73 @Override 74 public JenkinsSignature build() { 75 return validate(new JenkinsSignature(this)); 76 } 77 } 78 79 public String getDigest() { 80 return digest; 81 } 82 83 public String getSignature() { 84 return signature; 85 } 86 87 public String getCorrectDigest() { 88 return correctDigest; 89 } 90 91 public String getCorrectSignature() { 92 return correctSignature; 93 } 94 95 public List<String> getCertificates() { 96 return certificates; 97 } 98 99 }