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