1 package org.kuali.common.devops.jenkins.monitor.model; 2 3 import org.kuali.common.core.build.ValidatingBuilder; 4 import org.kuali.common.core.validate.annotation.IdiotProofImmutable; 5 6 import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 7 8 @IdiotProofImmutable 9 @JsonDeserialize(builder = JenkinsCredentials.Builder.class) 10 public final class JenkinsCredentials { 11 12 private final String username; 13 private final String apiToken; 14 15 private JenkinsCredentials(Builder builder) { 16 this.username = builder.username; 17 this.apiToken = builder.apiToken; 18 } 19 20 public static Builder builder() { 21 return new Builder(); 22 } 23 24 public static class Builder extends ValidatingBuilder<JenkinsCredentials> { 25 26 private String username; 27 private String apiToken; 28 29 public Builder withUsername(String username) { 30 this.username = username; 31 return this; 32 } 33 34 public Builder withApiToken(String apiToken) { 35 this.apiToken = apiToken; 36 return this; 37 } 38 39 @Override 40 public JenkinsCredentials build() { 41 return validate(new JenkinsCredentials(this)); 42 } 43 } 44 45 public String getUsername() { 46 return username; 47 } 48 49 public String getApiToken() { 50 return apiToken; 51 } 52 }