001package com.box.sdkgen.schemas.folder; 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.databind.annotation.JsonDeserialize; 008import com.fasterxml.jackson.databind.annotation.JsonSerialize; 009import java.util.Objects; 010 011@JsonFilter("nullablePropertyFilter") 012public class FolderFolderUploadEmailField extends SerializableObject { 013 014 /** 015 * When this parameter has been set, users can email files to the email address that has been 016 * automatically created for this folder. 017 * 018 * <p>To create an email address, set this property either when creating or updating the folder. 019 * 020 * <p>When set to `collaborators`, only emails from registered email addresses for collaborators 021 * will be accepted. This includes any email aliases a user might have registered. 022 * 023 * <p>When set to `open` it will accept emails from any email address. 024 */ 025 @JsonDeserialize( 026 using = 027 FolderFolderUploadEmailAccessField.FolderFolderUploadEmailAccessFieldDeserializer.class) 028 @JsonSerialize( 029 using = FolderFolderUploadEmailAccessField.FolderFolderUploadEmailAccessFieldSerializer.class) 030 protected EnumWrapper<FolderFolderUploadEmailAccessField> access; 031 032 /** The optional upload email address for this folder. */ 033 protected String email; 034 035 public FolderFolderUploadEmailField() { 036 super(); 037 } 038 039 protected FolderFolderUploadEmailField(Builder builder) { 040 super(); 041 this.access = builder.access; 042 this.email = builder.email; 043 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 044 } 045 046 public EnumWrapper<FolderFolderUploadEmailAccessField> getAccess() { 047 return access; 048 } 049 050 public String getEmail() { 051 return email; 052 } 053 054 @Override 055 public boolean equals(Object o) { 056 if (this == o) { 057 return true; 058 } 059 if (o == null || getClass() != o.getClass()) { 060 return false; 061 } 062 FolderFolderUploadEmailField casted = (FolderFolderUploadEmailField) o; 063 return Objects.equals(access, casted.access) && Objects.equals(email, casted.email); 064 } 065 066 @Override 067 public int hashCode() { 068 return Objects.hash(access, email); 069 } 070 071 @Override 072 public String toString() { 073 return "FolderFolderUploadEmailField{" 074 + "access='" 075 + access 076 + '\'' 077 + ", " 078 + "email='" 079 + email 080 + '\'' 081 + "}"; 082 } 083 084 public static class Builder extends NullableFieldTracker { 085 086 protected EnumWrapper<FolderFolderUploadEmailAccessField> access; 087 088 protected String email; 089 090 public Builder access(FolderFolderUploadEmailAccessField access) { 091 this.access = new EnumWrapper<FolderFolderUploadEmailAccessField>(access); 092 return this; 093 } 094 095 public Builder access(EnumWrapper<FolderFolderUploadEmailAccessField> access) { 096 this.access = access; 097 return this; 098 } 099 100 public Builder email(String email) { 101 this.email = email; 102 return this; 103 } 104 105 public FolderFolderUploadEmailField build() { 106 return new FolderFolderUploadEmailField(this); 107 } 108 } 109}