package com.box.sdk;

import com.eclipsesource.json.JsonObject;
import com.eclipsesource.json.JsonValue;

public class BoxUploadEmail extends BoxJSONObject {
    private Access access;
    private String email;

    public BoxUploadEmail() { }

    public BoxUploadEmail(String json) {
        super(json);
    }

    BoxUploadEmail(JsonObject jsonObject) {
        super(jsonObject);
    }

    public Access getAccess() {
        return this.access;
    }

    public void setAccess(Access access) {
        this.access = access;
        this.addPendingChange("access", access.toJSONValue());
    }

    public String getEmail() {
        return this.email;
    }

    void parseJSONMember(JsonObject.Member member) {
        JsonValue value = member.getValue();
        switch (member.getName()) {
            case "access":
                this.access = Access.fromJSONValue(value.asString());
                break;
            case "email":
                this.email = value.asString();
                break;
            default:
                break;
        }
    }

    public enum Access {
        OPEN("open"),
        COLLABORATORS("collaborators");

        private final String jsonValue;

        private Access(String jsonValue) {
            this.jsonValue = jsonValue;
        }

        public static Access fromJSONValue(String jsonValue) {
            return Access.valueOf(jsonValue.toUpperCase());
        }

        public String toJSONValue() {
            return this.jsonValue;
        }
    }
}

@@ -99,16 +99,108 @@
 Value;%0A%0A
+/**%0A * Represents an email address that can be used to upload files to a folder on Box.%0A */%0A
 public c
@@ -305,250 +305,698 @@
     
-public BoxUploadEmail() %7B %7D%0A%0A    public BoxUploadEmail(String json) %7B%0A        super(json);%0A    %7D%0A%0A    BoxUploadEmail(JsonObject jsonObject) %7B%0A        super(jsonObject);%0A    %7D%0A%0A    public Access getAccess() %7B%0A        return this.access;%0A    %7D%0A
+/**%0A     * Constructs a BoxUploadEmail with default settings.%0A     */%0A    public BoxUploadEmail() %7B %7D%0A%0A    /**%0A     * Constructs a BoxUploadEmail from a JSON string.%0A     * @param  json the JSON encoded upload email.%0A     */%0A    public BoxUploadEmail(String json) %7B%0A        super(json);%0A    %7D%0A%0A    BoxUploadEmail(JsonObject jsonObject) %7B%0A        super(jsonObject);%0A    %7D%0A%0A    /**%0A     * Gets the access level of this upload email.%0A     * @return the access level of this upload email.%0A     */%0A    public Access getAccess() %7B%0A        return this.access;%0A    %7D%0A%0A    /**%0A     * Sets the access level of this upload email.%0A     * @param access the new access level of this upload email.%0A     */
 %0A   
@@ -1127,32 +1127,155 @@
 alue());%0A    %7D%0A%0A
+    /**%0A     * Gets the email address of this upload email.%0A     * @return the email address of this upload email.%0A     */%0A
     public Strin
@@ -1742,50 +1742,328 @@
     
-public enum Access %7B%0A        OPEN(%22open%22),
+/**%0A     * Enumerates the possible access levels that can be set on an upload email.%0A     */%0A    public enum Access %7B%0A        /**%0A         * Anyone can send an upload to this email address.%0A         */%0A        OPEN(%22open%22),%0A%0A        /**%0A         * Only collaborators can send an upload to this email address.%0A         */
 %0A   
@@ -2243,23 +2243,16 @@
         
-public 
 static A
@@ -2366,31 +2366,24 @@
  %7D%0A%0A        
-public 
 String toJSO

Add javadocs to BoxUploadEmail