001package com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.fasterxml.jackson.annotation.JsonFilter; 007import com.fasterxml.jackson.annotation.JsonProperty; 008import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 009import com.fasterxml.jackson.databind.annotation.JsonSerialize; 010import java.util.Objects; 011 012/** 013 * Specifies the ISO date formatting rules for a text field input by the signer. If set, this 014 * validation is mandatory. The date format follows `YYYY-MM-DD` pattern. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class SignRequestSignerInputDateIsoValidation extends SerializableObject { 018 019 /** Validates that the text input uses the ISO date format `YYYY-MM-DD`. */ 020 @JsonDeserialize( 021 using = 022 SignRequestSignerInputDateIsoValidationValidationTypeField 023 .SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = 026 SignRequestSignerInputDateIsoValidationValidationTypeField 027 .SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer.class) 028 @JsonProperty("validation_type") 029 protected EnumWrapper<SignRequestSignerInputDateIsoValidationValidationTypeField> validationType; 030 031 public SignRequestSignerInputDateIsoValidation() { 032 super(); 033 } 034 035 protected SignRequestSignerInputDateIsoValidation(Builder builder) { 036 super(); 037 this.validationType = builder.validationType; 038 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 039 } 040 041 public EnumWrapper<SignRequestSignerInputDateIsoValidationValidationTypeField> 042 getValidationType() { 043 return validationType; 044 } 045 046 @Override 047 public boolean equals(Object o) { 048 if (this == o) { 049 return true; 050 } 051 if (o == null || getClass() != o.getClass()) { 052 return false; 053 } 054 SignRequestSignerInputDateIsoValidation casted = (SignRequestSignerInputDateIsoValidation) o; 055 return Objects.equals(validationType, casted.validationType); 056 } 057 058 @Override 059 public int hashCode() { 060 return Objects.hash(validationType); 061 } 062 063 @Override 064 public String toString() { 065 return "SignRequestSignerInputDateIsoValidation{" 066 + "validationType='" 067 + validationType 068 + '\'' 069 + "}"; 070 } 071 072 public static class Builder extends NullableFieldTracker { 073 074 protected EnumWrapper<SignRequestSignerInputDateIsoValidationValidationTypeField> 075 validationType; 076 077 public Builder validationType( 078 SignRequestSignerInputDateIsoValidationValidationTypeField validationType) { 079 this.validationType = 080 new EnumWrapper<SignRequestSignerInputDateIsoValidationValidationTypeField>( 081 validationType); 082 return this; 083 } 084 085 public Builder validationType( 086 EnumWrapper<SignRequestSignerInputDateIsoValidationValidationTypeField> validationType) { 087 this.validationType = validationType; 088 return this; 089 } 090 091 public SignRequestSignerInputDateIsoValidation build() { 092 return new SignRequestSignerInputDateIsoValidation(this); 093 } 094 } 095}