001package com.box.sdkgen.managers.folders;
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 CreateFolderRequestBodyFolderUploadEmailField 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          CreateFolderRequestBodyFolderUploadEmailAccessField
028              .CreateFolderRequestBodyFolderUploadEmailAccessFieldDeserializer.class)
029  @JsonSerialize(
030      using =
031          CreateFolderRequestBodyFolderUploadEmailAccessField
032              .CreateFolderRequestBodyFolderUploadEmailAccessFieldSerializer.class)
033  protected EnumWrapper<CreateFolderRequestBodyFolderUploadEmailAccessField> access;
034
035  public CreateFolderRequestBodyFolderUploadEmailField() {
036    super();
037  }
038
039  protected CreateFolderRequestBodyFolderUploadEmailField(Builder builder) {
040    super();
041    this.access = builder.access;
042    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
043  }
044
045  public EnumWrapper<CreateFolderRequestBodyFolderUploadEmailAccessField> getAccess() {
046    return access;
047  }
048
049  @Override
050  public boolean equals(Object o) {
051    if (this == o) {
052      return true;
053    }
054    if (o == null || getClass() != o.getClass()) {
055      return false;
056    }
057    CreateFolderRequestBodyFolderUploadEmailField casted =
058        (CreateFolderRequestBodyFolderUploadEmailField) o;
059    return Objects.equals(access, casted.access);
060  }
061
062  @Override
063  public int hashCode() {
064    return Objects.hash(access);
065  }
066
067  @Override
068  public String toString() {
069    return "CreateFolderRequestBodyFolderUploadEmailField{" + "access='" + access + '\'' + "}";
070  }
071
072  public static class Builder extends NullableFieldTracker {
073
074    protected EnumWrapper<CreateFolderRequestBodyFolderUploadEmailAccessField> access;
075
076    public Builder access(CreateFolderRequestBodyFolderUploadEmailAccessField access) {
077      this.access = new EnumWrapper<CreateFolderRequestBodyFolderUploadEmailAccessField>(access);
078      return this;
079    }
080
081    public Builder access(EnumWrapper<CreateFolderRequestBodyFolderUploadEmailAccessField> access) {
082      this.access = access;
083      return this;
084    }
085
086    public CreateFolderRequestBodyFolderUploadEmailField build() {
087      return new CreateFolderRequestBodyFolderUploadEmailField(this);
088    }
089  }
090}