001package com.box.sdk;
002
003/**
004 * Contains optional parameters for creating a new enterprise user on Box.
005 */
006public class CreateUserParams {
007    private boolean canSeeManagedUsers;
008    private boolean isExemptFromDeviceLimits;
009    private boolean isExemptFromLoginVerification;
010    private boolean isPlatformAccessOnly;
011    private boolean isSyncEnabled;
012    private BoxUser.Role role;
013    private BoxUser.Status status;
014    private long spaceAmount;
015    private String address;
016    private String jobTitle;
017    private String language;
018    private String phone;
019    private String timezone;
020    private String externalAppUserId;
021
022    /**
023     * Gets whether or not the new user will be able to see other enterprise users in their contact list.
024     * @return true if the new user will be able to see other enterprise users in their contact list; otherwise false.
025     */
026    public boolean getCanSeeManagedUsers() {
027        return this.canSeeManagedUsers;
028    }
029
030    /**
031     * Sets whether or not the new user will be able to see other enterprise users in their contact list.
032     * @param  canSeeManagedUsers whether or not the new user will be able to see other enterprise users in their
033     *                            contact list.
034     * @return                    this CreateUserParams object for chaining.
035     */
036    public CreateUserParams setCanSeeManagedUsers(boolean canSeeManagedUsers) {
037        this.canSeeManagedUsers = canSeeManagedUsers;
038        return this;
039    }
040
041    /**
042     * Gets whether or not the new user will be exempt from Enterprise device limits.
043     * @return true if the new user will be exempt from Enterprise device limits; otherwise false.
044     */
045    public boolean getIsExemptFromDeviceLimits() {
046        return this.isExemptFromDeviceLimits;
047    }
048
049    /**
050     * Sets whether or not the new user will be exempt from Enterprise device limits.
051     * @param  isExemptFromDeviceLimits whether or not the new user will be exempt from Enterprise device limits.
052     * @return                          this CreateUserParams object for chaining.
053     */
054    public CreateUserParams setIsExemptFromDeviceLimits(boolean isExemptFromDeviceLimits) {
055        this.isExemptFromDeviceLimits = isExemptFromDeviceLimits;
056        return this;
057    }
058
059    /**
060     * Gets whether or not the new user will be required to use two-factor authentication.
061     * @return true if the new user will be required to use two-factor authentication; otherwise false.
062     */
063    public boolean getIsExemptFromLoginVerification() {
064        return this.isExemptFromLoginVerification;
065    }
066
067    /**
068     * Sets whether or not the new user will be required to use two-factor authentication.
069     * @param  isExemptFromLoginVerification whether or not the new user will be required to use two-factor
070     *                                       authentication.
071     * @return                               this CreateUserParams object for chaining.
072     */
073    public CreateUserParams setIsExemptFromLoginVerification(boolean isExemptFromLoginVerification) {
074        this.isExemptFromLoginVerification = isExemptFromLoginVerification;
075        return this;
076    }
077
078    /**
079    * Gets whether or not the user we are creating is an app user with Box Developer Edition.
080    * @return true if the new user is an app user for Box Developer Addition; otherwise false.
081    */
082    public boolean getIsPlatformAccessOnly() {
083        return this.isPlatformAccessOnly;
084    }
085
086   /**
087    * Sets whether or not the user we are creating is an app user with Box Developer Edition.
088    * @param  isPlatformAccessOnly whether or not the user we are creating is an app user with Box Developer
089    *                              Edition.
090    * @return                      this CreateUserParams object for chaining.
091    */
092    public CreateUserParams setIsPlatformAccessOnly(boolean isPlatformAccessOnly) {
093        this.isPlatformAccessOnly = isPlatformAccessOnly;
094        return this;
095    }
096
097    /**
098     * Gets whether or not the new user will be able to use Box Sync.
099     * @return true if the new user will be able to use Box Sync; otherwise false.
100     */
101    public boolean getIsSyncEnabled() {
102        return this.isSyncEnabled;
103    }
104
105    /**
106     * Sets whether or not the new user will be able to use Box Sync.
107     * @param  isSyncEnabled whether or not the new user will be able to use Box Sync.
108     * @return               this CreateUserParams object for chaining.
109     */
110    public CreateUserParams setIsSyncEnabled(boolean isSyncEnabled) {
111        this.isSyncEnabled = isSyncEnabled;
112        return this;
113    }
114
115    /**
116     * Gets what the new user's enterprise role will be.
117     * @return what the new user's enterprise role will be.
118     */
119    public BoxUser.Role getRole() {
120        return this.role;
121    }
122
123    /**
124     * Sets what the new user's enterprise role will be.
125     * @param  role what the new user's enterprise role will be.
126     * @return      this CreateUserParams object for chaining.
127     */
128    public CreateUserParams setRole(BoxUser.Role role) {
129        this.role = role;
130        return this;
131    }
132
133    /**
134     * Gets what the new user's account status will be.
135     * @return what the new user's account status will be.
136     */
137    public BoxUser.Status getStatus() {
138        return this.status;
139    }
140
141    /**
142     * Sets what the new user's account status will be.
143     * @param  status what the new user's account status will be.
144     * @return        this CreateUserParams object for chaining.
145     */
146    public CreateUserParams setStatus(BoxUser.Status status) {
147        this.status = status;
148        return this;
149    }
150
151    /**
152     * Gets what the new user's total available space will be in bytes.
153     * @return what the new user's total available space will be in bytes.
154     */
155    public long getSpaceAmount() {
156        return this.spaceAmount;
157    }
158
159    /**
160     * Sets what the new user's total available space will be in bytes.
161     * @param  spaceAmount what the new user's total available space will be in bytes.
162     * @return             this CreateUserParams object for chaining.
163     */
164    public CreateUserParams setSpaceAmount(long spaceAmount) {
165        this.spaceAmount = spaceAmount;
166        return this;
167    }
168
169    /**
170     * Gets what the address of the new user will be.
171     * @return what the address of the new user will be.
172     */
173    public String getAddress() {
174        return this.address;
175    }
176
177    /**
178     * Sets what the address of the new user will be.
179     * @param  address what the address of the new user will be.
180     * @return         this CreateUserParams object for chaining.
181     */
182    public CreateUserParams setAddress(String address) {
183        this.address = address;
184        return this;
185    }
186
187    /**
188     * Gets what the job title of the new user will be.
189     * @return what the job title of the new user will be.
190     */
191    public String getJobTitle() {
192        return this.jobTitle;
193    }
194
195    /**
196     * Sets what the job title of the new user will be.
197     * @param  jobTitle what the job title of the new user will be.
198     * @return          this CreateUserParams object for chaining.
199     */
200    public CreateUserParams setJobTitle(String jobTitle) {
201        this.jobTitle = jobTitle;
202        return this;
203    }
204
205    /**
206     * Gets what the language of the new user will be.
207     * @return what the language of the new user will be.
208     */
209    public String getLanguage() {
210        return this.language;
211    }
212
213    /**
214     * Sets what the language of the new user will be.
215     * @param  language what the language of the new user will be.
216     * @return          this CreateUserParams object for chaining.
217     */
218    public CreateUserParams setLanguage(String language) {
219        this.language = language;
220        return this;
221    }
222
223    /**
224     * Gets what the phone number of the new user will be.
225     * @return what the phone number of the new user will be.
226     */
227    public String getPhone() {
228        return this.phone;
229    }
230
231    /**
232     * Sets what the phone number of the new user will be.
233     * @param  phone what the phone number of the new user will be.
234     * @return       this CreateUserParams object for chaining.
235     */
236    public CreateUserParams setPhone(String phone) {
237        this.phone = phone;
238        return this;
239    }
240
241    /**
242     * Gets what the timezone of the new user will be.
243     * @return what the timezone of the new user will be.
244     */
245    public String getTimezone() {
246        return this.timezone;
247    }
248
249    /**
250     * Sets what the timezone of the new user will be.
251     * @param  timezone what the timezone of the new user will be.
252     * @return          this CreateUserParams object for chaining.
253     */
254    public CreateUserParams setTimezone(String timezone) {
255        this.timezone = timezone;
256        return this;
257    }
258
259    /**
260     * Gets the external app user id that has been set for the app user.
261     * @return the external app user id.
262     */
263    public String getExternalAppUserId() {
264        return this.externalAppUserId;
265    }
266
267    /**
268     * Sets the external app user id.
269     * @param externalAppUserId external app user id.
270     * @return                  this CreateUserParams object for chaining.
271     */
272    public CreateUserParams setExternalAppUserId(String externalAppUserId) {
273        this.externalAppUserId = externalAppUserId;
274        return this;
275    }
276}