001package com.box.sdkgen.schemas.signrequestsigner; 002 003import com.box.sdkgen.internal.Nullable; 004import com.box.sdkgen.internal.NullableFieldTracker; 005import com.box.sdkgen.internal.SerializableObject; 006import com.box.sdkgen.internal.utils.DateTimeUtils; 007import com.box.sdkgen.serialization.json.EnumWrapper; 008import com.fasterxml.jackson.annotation.JsonFilter; 009import com.fasterxml.jackson.annotation.JsonProperty; 010import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 011import com.fasterxml.jackson.databind.annotation.JsonSerialize; 012import java.time.OffsetDateTime; 013import java.util.Objects; 014 015@JsonFilter("nullablePropertyFilter") 016public class SignRequestSignerSignerDecisionField extends SerializableObject { 017 018 /** Type of decision made by the signer. */ 019 @JsonDeserialize( 020 using = 021 SignRequestSignerSignerDecisionTypeField 022 .SignRequestSignerSignerDecisionTypeFieldDeserializer.class) 023 @JsonSerialize( 024 using = 025 SignRequestSignerSignerDecisionTypeField 026 .SignRequestSignerSignerDecisionTypeFieldSerializer.class) 027 protected EnumWrapper<SignRequestSignerSignerDecisionTypeField> type; 028 029 /** Date and Time that the decision was made. */ 030 @JsonProperty("finalized_at") 031 @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) 032 @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) 033 protected OffsetDateTime finalizedAt; 034 035 /** Additional info about the decision, such as the decline reason from the signer. */ 036 @JsonProperty("additional_info") 037 @Nullable 038 protected String additionalInfo; 039 040 public SignRequestSignerSignerDecisionField() { 041 super(); 042 } 043 044 protected SignRequestSignerSignerDecisionField(Builder builder) { 045 super(); 046 this.type = builder.type; 047 this.finalizedAt = builder.finalizedAt; 048 this.additionalInfo = builder.additionalInfo; 049 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 050 } 051 052 public EnumWrapper<SignRequestSignerSignerDecisionTypeField> getType() { 053 return type; 054 } 055 056 public OffsetDateTime getFinalizedAt() { 057 return finalizedAt; 058 } 059 060 public String getAdditionalInfo() { 061 return additionalInfo; 062 } 063 064 @Override 065 public boolean equals(Object o) { 066 if (this == o) { 067 return true; 068 } 069 if (o == null || getClass() != o.getClass()) { 070 return false; 071 } 072 SignRequestSignerSignerDecisionField casted = (SignRequestSignerSignerDecisionField) o; 073 return Objects.equals(type, casted.type) 074 && Objects.equals(finalizedAt, casted.finalizedAt) 075 && Objects.equals(additionalInfo, casted.additionalInfo); 076 } 077 078 @Override 079 public int hashCode() { 080 return Objects.hash(type, finalizedAt, additionalInfo); 081 } 082 083 @Override 084 public String toString() { 085 return "SignRequestSignerSignerDecisionField{" 086 + "type='" 087 + type 088 + '\'' 089 + ", " 090 + "finalizedAt='" 091 + finalizedAt 092 + '\'' 093 + ", " 094 + "additionalInfo='" 095 + additionalInfo 096 + '\'' 097 + "}"; 098 } 099 100 public static class Builder extends NullableFieldTracker { 101 102 protected EnumWrapper<SignRequestSignerSignerDecisionTypeField> type; 103 104 protected OffsetDateTime finalizedAt; 105 106 protected String additionalInfo; 107 108 public Builder type(SignRequestSignerSignerDecisionTypeField type) { 109 this.type = new EnumWrapper<SignRequestSignerSignerDecisionTypeField>(type); 110 return this; 111 } 112 113 public Builder type(EnumWrapper<SignRequestSignerSignerDecisionTypeField> type) { 114 this.type = type; 115 return this; 116 } 117 118 public Builder finalizedAt(OffsetDateTime finalizedAt) { 119 this.finalizedAt = finalizedAt; 120 return this; 121 } 122 123 public Builder additionalInfo(String additionalInfo) { 124 this.additionalInfo = additionalInfo; 125 this.markNullableFieldAsSet("additional_info"); 126 return this; 127 } 128 129 public SignRequestSignerSignerDecisionField build() { 130 return new SignRequestSignerSignerDecisionField(this); 131 } 132 } 133}