001// Generated by delombok at Thu Aug 13 13:56:44 UTC 2026
002/*
003 * Copyright (c) 2010-2026 Mark Allen, Norbert Bartels.
004 *
005 * Permission is hereby granted, free of charge, to any person obtaining a copy
006 * of this software and associated documentation files (the "Software"), to deal
007 * in the Software without restriction, including without limitation the rights
008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
009 * copies of the Software, and to permit persons to whom the Software is
010 * furnished to do so, subject to the following conditions:
011 *
012 * The above copyright notice and this permission notice shall be included in
013 * all copies or substantial portions of the Software.
014 *
015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
021 * THE SOFTWARE.
022 */
023package com.restfb.types;
024
025import static com.restfb.util.DateUtils.toDateFromShortFormat;
026import static com.restfb.util.StringUtils.isBlank;
027import static java.util.Collections.unmodifiableList;
028import java.math.BigDecimal;
029import java.util.ArrayList;
030import java.util.Date;
031import java.util.List;
032import com.restfb.Facebook;
033import com.restfb.JsonMapper;
034import com.restfb.JsonMapper.JsonMappingCompleted;
035import com.restfb.annotation.GraphAPI;
036import com.restfb.types.features.HasCover;
037import com.restfb.types.features.HasProfilePicture;
038
039/**
040 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/user">User Graph API type</a>.
041 *
042 * @author <a href="http://restfb.com">Mark Allen</a>
043 * @author Patrick Alberts
044 * @since 1.5
045 */
046public class User extends NamedFacebookType implements HasProfilePicture, HasCover {
047  /**
048   * Social context for this person
049   */
050  @Facebook
051  private FacebookType context;
052  /**
053   * The user's first name.
054   */
055  @Facebook("first_name")
056  private String firstName;
057  /**
058   * The user's middle name.
059   */
060  @Facebook("middle_name")
061  private String middleName;
062  /**
063   * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering.
064   */
065  @Facebook("name_format")
066  private String nameFormat;
067  /**
068   * The person's payment pricepoints
069   */
070  @Facebook("payment_pricepoints")
071  private PaymentPricepoints paymentPricepoints;
072  /**
073   * The profile picture URL of the Messenger user. The URL will expire.
074   */
075  @Facebook("profile_pic")
076  private String profilePic;
077  /**
078   * The user's last name.
079   */
080  @Facebook("last_name")
081  private String lastName;
082  /**
083   * Shortened, locale-aware name for the person.
084   */
085  @Facebook("short_name")
086  @GraphAPI(since = "2.9")
087  private String shortName;
088  /**
089   * The person's cover photo
090   */
091  @Facebook
092  private CoverPhoto cover;
093  /**
094   * A link to the person's Timeline.
095   *
096   * The link will only resolve if the person clicking the link is logged into Facebook and is a friend of the person
097   * whose profile is being viewed.
098   */
099  @Facebook
100  private String link;
101  /**
102   * The user's biographical snippet.
103   */
104  @Facebook
105  @GraphAPI(until = "2.7")
106  private String bio;
107  /**
108   * The user's favorite quotes.
109   */
110  @Facebook
111  private String quotes;
112  /**
113   * Unspecific age range that this person's age fits into.
114   */
115  @Facebook("age_range")
116  private AgeRange ageRange;
117  /**
118   * The user's birthday as a {@code String}.
119   * <p>
120   * Will always succeed, even if the user has specified month/year format only. If you'd like to use a typed version of
121   * this accessor, call {@link #getBirthdayAsDate()} instead.
122   *
123   * "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`. However, people can control who can see
124   * the year they were born separately from the month and day so this string can be only the year (YYYY) or the month +
125   * day (MM/DD)",
126   */
127  @Facebook
128  private String birthday;
129  /**
130   * The proxied or contact email address granted by the user.
131   */
132  @Facebook
133  private String email;
134  /**
135   * The user's timezone offset.
136   */
137  @Facebook
138  private Double timezone;
139  /**
140   * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone
141   * is considered verified if they take any of the following actions:
142   * <ul>
143   * <li>Register for mobile</li>
144   * <li>Confirm their account via SMS</li>
145   * <li>Enter a valid credit card</li>
146   * </ul>
147   */
148  @Facebook
149  private Boolean verified;
150  /**
151   * Video upload limits
152   */
153  @Facebook("video_upload_limits")
154  private VideoUploadLimits videoUploadLimits;
155  /**
156   * The user's gender.
157   */
158  @Facebook
159  private String gender;
160  /**
161   * The user's locale.
162   */
163  @Facebook
164  private String locale;
165  /**
166   * The person's PGP public key
167   */
168  @Facebook("public_key")
169  private String publicKey;
170  /**
171   * The user's Likes
172   */
173  @Facebook
174  private Likes likes;
175  @Facebook("picture")
176  private transient String rawPicture;
177  /**
178   * The user's picture, if provided.
179   *
180   * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the
181   * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>.
182   *
183   * @since 1.6.16
184   */
185  private ProfilePictureSource picture;
186  /**
187   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
188   *
189   * -- GETTER -- The user's hometown.
190   * <p>
191   * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case.
192   */
193  @Facebook
194  private NamedFacebookType hometown;
195  /**
196   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
197   */
198  @Facebook("hometown")
199  private String hometownAsString;
200  /**
201   * A profile based app scoped ID. It is used to query avatars
202   */
203  @Facebook("id_for_avatars")
204  private String idForAvatars;
205  /**
206   * he person's current location as entered by them on their profile.
207   *
208   * This field requires the `user_location` permission.
209   */
210  @Facebook
211  private NamedFacebookType location;
212  /**
213   * The time that the shared loginneeds to be upgraded to Business Manager by
214   */
215  @Facebook("shared_login_upgrade_required_by")
216  private Date sharedLoginUpgradeRequiredBy;
217  /**
218   * The user's significant other.
219   */
220  @Facebook("significant_other")
221  private User significantOther;
222  /**
223   * Whether the user can add a Donate Button to their Live Videos
224   */
225  @Facebook("supports_donate_button_in_live_video")
226  private Boolean supportsDonateButtonInLiveVideo;
227  /**
228   * Date the user's profile was updated.
229   */
230  @Facebook("updated_time")
231  private Date updatedTime;
232  /**
233   * An anonymous, but unique identifier for the user.
234   */
235  @Facebook("third_party_id")
236  private String thirdPartyId;
237  /**
238   * The user's currency preferences.
239   * <p>
240   * Further documentation available on Facebook's
241   * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a>
242   * page.
243   *
244   * @since 1.6.12
245   */
246  @Facebook
247  private Currency currency;
248  /**
249   * This returns a string which is the same for this person across all the apps managed by the same Business Manager.
250   *
251   * @since 1.7.0
252   */
253  @Facebook("token_for_business")
254  private String tokenForBusiness;
255  /**
256   * Install type.
257   */
258  @Facebook("install_type")
259  private String installType;
260  /**
261   * Is the app making the request installed?
262   */
263  @Facebook
264  private Boolean installed;
265  /**
266   * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook.
267   * This field indicates whether the person's profile is verified in this way.
268   *
269   * This is distinct from the <code>verified</code> field
270   */
271  @Facebook("is_verified")
272  private Boolean isVerified;
273  @Facebook("is_work_account")
274  private Boolean isWorkAccount;
275  /**
276   * if the current user is a guest user. should always return false.
277   */
278  @Facebook("is_guest_user")
279  private Boolean isGuestUser;
280  @Facebook("meeting_for")
281  private List<String> meetingFor = new ArrayList<>();
282  @Facebook
283  private List<UserDevice> devices = new ArrayList<>();
284  @Facebook
285  private List<Sport> sports = new ArrayList<>();
286  @Facebook("favorite_teams")
287  private List<Experience> favoriteTeams = new ArrayList<>();
288  @Facebook("favorite_athletes")
289  private List<Experience> favoriteAthletes = new ArrayList<>();
290  @Facebook("inspirational_people")
291  private List<Experience> inspirationalPeople = new ArrayList<>();
292  @Facebook
293  private List<Experience> languages = new ArrayList<>();
294  @Facebook
295  private List<PageLabel> labels = new ArrayList<>();
296  @Facebook("ids_for_apps")
297  private List<UserIDForApp> idsForApps = new ArrayList<>();
298  @Facebook("ids_for_business")
299  private List<UserIDForApp> idsForBusiness = new ArrayList<>();
300  @Facebook("ids_for_pages")
301  private List<UserIDForPage> idsForPages = new ArrayList<>();
302  @Facebook("invitable_friends")
303  private List<UserInvitableFriend> invitableFriends = new ArrayList<>();
304  private static final long serialVersionUID = 1L;
305
306
307  /**
308   * Represents the <a href="http://developers.facebook.com/docs/reference/api/user">Sport Graph API type</a>.
309   *
310   * @author Patrick Alberts
311   * @since 1.6.3
312   */
313  public static class Sport extends NamedFacebookType {
314    @Facebook
315    private List<NamedFacebookType> with = new ArrayList<>();
316    private static final long serialVersionUID = 1L;
317
318    /**
319     * Friends associated with this sport.
320     *
321     * @return Friends associated with this sport.
322     */
323    public List<NamedFacebookType> getWith() {
324      return unmodifiableList(with);
325    }
326
327    public boolean addWith(NamedFacebookType withSport) {
328      return with.add(withSport);
329    }
330
331    public boolean removeWith(NamedFacebookType withSport) {
332      return with.remove(withSport);
333    }
334  }
335
336
337  /**
338   * Represents the <a href="https://developers.facebook.com/docs/payments/user_currency">Currency Graph API type</a>.
339   *
340   * @author <a href="http://restfb.com">Mark Allen</a>
341   * @since 1.6.12
342   */
343  public static class Currency extends AbstractFacebookType {
344    /**
345     * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
346     */
347    @Facebook("user_currency")
348    private String userCurrency;
349    /**
350     * The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
351     */
352    @Facebook("currency_exchange")
353    private BigDecimal currencyExchange;
354    /**
355     * The number of units of {@code user_currency} that equate in value to one Credit.
356     * <p>
357     * To calculate the local currency amount based on the credits price, compute
358     * {@code credits_price * currency_exchange_inverse}.
359     */
360    @Facebook("currency_exchange_inverse")
361    private BigDecimal currencyExchangeInverse;
362    /**
363     * The number by which a price should be divided for display in {@code user_currency} units.
364     * <p>
365     * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the
366     * USD {@code currency_offset} of 100 to arrive back at 1.20.
367     */
368    @Facebook("currency_offset")
369    private BigDecimal currencyOffset;
370    private static final long serialVersionUID = 1L;
371
372    /**
373     * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
374     *
375     * @return The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
376     */
377    @java.lang.SuppressWarnings("all")
378    @lombok.Generated
379    public String getUserCurrency() {
380      return this.userCurrency;
381    }
382
383    /**
384     * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
385     */
386    @java.lang.SuppressWarnings("all")
387    @lombok.Generated
388    public void setUserCurrency(final String userCurrency) {
389      this.userCurrency = userCurrency;
390    }
391
392    /**
393     * The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
394     *
395     * @return The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
396     */
397    @java.lang.SuppressWarnings("all")
398    @lombok.Generated
399    public BigDecimal getCurrencyExchange() {
400      return this.currencyExchange;
401    }
402
403    /**
404     * The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
405     */
406    @java.lang.SuppressWarnings("all")
407    @lombok.Generated
408    public void setCurrencyExchange(final BigDecimal currencyExchange) {
409      this.currencyExchange = currencyExchange;
410    }
411
412    /**
413     * The number of units of {@code user_currency} that equate in value to one Credit.
414     * <p>
415     * To calculate the local currency amount based on the credits price, compute
416     * {@code credits_price * currency_exchange_inverse}.
417     *
418     * @return The number of units of {@code user_currency} that equate in value to one Credit.
419     */
420    @java.lang.SuppressWarnings("all")
421    @lombok.Generated
422    public BigDecimal getCurrencyExchangeInverse() {
423      return this.currencyExchangeInverse;
424    }
425
426    /**
427     * The number of units of {@code user_currency} that equate in value to one Credit.
428     * <p>
429     * To calculate the local currency amount based on the credits price, compute
430     * {@code credits_price * currency_exchange_inverse}.
431     */
432    @java.lang.SuppressWarnings("all")
433    @lombok.Generated
434    public void setCurrencyExchangeInverse(final BigDecimal currencyExchangeInverse) {
435      this.currencyExchangeInverse = currencyExchangeInverse;
436    }
437
438    /**
439     * The number by which a price should be divided for display in {@code user_currency} units.
440     * <p>
441     * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the
442     * USD {@code currency_offset} of 100 to arrive back at 1.20.
443     *
444     * @return The number by which a price should be divided for display in {@code user_currency} units.
445     */
446    @java.lang.SuppressWarnings("all")
447    @lombok.Generated
448    public BigDecimal getCurrencyOffset() {
449      return this.currencyOffset;
450    }
451
452    /**
453     * The number by which a price should be divided for display in {@code user_currency} units.
454     * <p>
455     * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the
456     * USD {@code currency_offset} of 100 to arrive back at 1.20.
457     */
458    @java.lang.SuppressWarnings("all")
459    @lombok.Generated
460    public void setCurrencyOffset(final BigDecimal currencyOffset) {
461      this.currencyOffset = currencyOffset;
462    }
463  }
464
465
466  /**
467   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/user-device/">User Device Graph
468   * API type</a>.
469   *
470   * @author <a href="http://restfb.com">Norbert Bartels</a>
471   */
472  public static class UserDevice extends AbstractFacebookType {
473    private static final long serialVersionUID = 1L;
474    @Facebook
475    private String hardware;
476    @Facebook
477    private String os;
478
479    @java.lang.SuppressWarnings("all")
480    @lombok.Generated
481    public String getHardware() {
482      return this.hardware;
483    }
484
485    @java.lang.SuppressWarnings("all")
486    @lombok.Generated
487    public void setHardware(final String hardware) {
488      this.hardware = hardware;
489    }
490
491    @java.lang.SuppressWarnings("all")
492    @lombok.Generated
493    public String getOs() {
494      return this.os;
495    }
496
497    @java.lang.SuppressWarnings("all")
498    @lombok.Generated
499    public void setOs(final String os) {
500      this.os = os;
501    }
502  }
503
504
505  public static class AgeRange extends AbstractFacebookType {
506    private static final long serialVersionUID = 1L;
507    /**
508     * The lower bounds of the range for this person's age.
509     */
510    @Facebook
511    private Integer min;
512    /**
513     * The upper bounds of the range for this person's age.
514     */
515    @Facebook
516    private Integer max;
517
518    /**
519     * The lower bounds of the range for this person's age.
520     *
521     * @return The lower bounds of the range for this person's age.
522     */
523    @java.lang.SuppressWarnings("all")
524    @lombok.Generated
525    public Integer getMin() {
526      return this.min;
527    }
528
529    /**
530     * The lower bounds of the range for this person's age.
531     */
532    @java.lang.SuppressWarnings("all")
533    @lombok.Generated
534    public void setMin(final Integer min) {
535      this.min = min;
536    }
537
538    /**
539     * The upper bounds of the range for this person's age.
540     *
541     * @return The upper bounds of the range for this person's age.
542     */
543    @java.lang.SuppressWarnings("all")
544    @lombok.Generated
545    public Integer getMax() {
546      return this.max;
547    }
548
549    /**
550     * The upper bounds of the range for this person's age.
551     */
552    @java.lang.SuppressWarnings("all")
553    @lombok.Generated
554    public void setMax(final Integer max) {
555      this.max = max;
556    }
557  }
558
559  /**
560   * The user's birthday, typed to {@code java.util.Date} if possible.
561   *
562   * @return The user's birthday, or {@code null} if unavailable or only available in month/year format.
563   */
564  public Date getBirthdayAsDate() {
565    if (isBlank(getBirthday()) || getBirthday().split("/").length < 2) {
566      return null;
567    }
568    return toDateFromShortFormat(birthday);
569  }
570
571  @JsonMappingCompleted
572  protected void jsonMappingCompleted(JsonMapper jsonMapper) {
573    picture = convertPicture(jsonMapper, rawPicture);
574  }
575
576  /**
577   * The user's hometown name.
578   *
579   * @return The user's hometown name.
580   */
581  public String getHometownName() {
582    if (getHometown() != null) return getHometown().getName();
583    return hometownAsString;
584  }
585
586  /**
587   * Businesses can claim ownership of multiple apps using Business Manager.
588   *
589   * This method returns the list of IDs that this user has in any of those other apps
590   *
591   * @return list of ids a user has in other apps
592   */
593  public List<UserIDForApp> getIdsForApps() {
594    return unmodifiableList(idsForApps);
595  }
596
597  public boolean addIdsForApps(UserIDForApp userId) {
598    return idsForApps.add(userId);
599  }
600
601  public boolean removeIdsForApps(UserIDForApp userId) {
602    return idsForApps.remove(userId);
603  }
604
605  /**
606   * Businesses can claim ownership of multiple apps using Business Manager.
607   *
608   * This edge returns the list of IDs that this user has in any of those other apps
609   *
610   * @return list of ids a user has in other apps
611   */
612  public List<UserIDForApp> getIdsForBusiness() {
613    return unmodifiableList(idsForBusiness);
614  }
615
616  public boolean addIdsForBusiness(UserIDForApp userId) {
617    return idsForBusiness.add(userId);
618  }
619
620  public boolean removeIdsForBusiness(UserIDForApp userId) {
621    return idsForBusiness.remove(userId);
622  }
623
624  /**
625   * Businesses can claim ownership of apps and pages using Business Manager.
626   *
627   * This edge returns the list of IDs that this user has in any of the pages owned by this business.
628   *
629   * @return list of ids a user has in other pages
630   */
631  public List<UserIDForPage> getIdsForPages() {
632    return unmodifiableList(idsForPages);
633  }
634
635  public boolean addIdsForPages(UserIDForPage userId) {
636    return idsForPages.add(userId);
637  }
638
639  public boolean removeIdsForPages(UserIDForPage userId) {
640    return idsForPages.remove(userId);
641  }
642
643  /**
644   * What genders the user is interested in meeting.
645   *
646   * @return What genders the user is interested in meeting.
647   */
648  public List<String> getMeetingFor() {
649    return unmodifiableList(meetingFor);
650  }
651
652  public boolean addMeetingFor(String gender) {
653    return meetingFor.add(gender);
654  }
655
656  public boolean removeMeetingFor(String gender) {
657    return meetingFor.remove(gender);
658  }
659
660  /**
661   * The list of devices the person is using.
662   *
663   * This will return only iOS and Android devices
664   *
665   * @return The list of devices the person is using.
666   */
667  public List<UserDevice> getDevices() {
668    return unmodifiableList(devices);
669  }
670
671  public boolean addDevice(UserDevice device) {
672    return devices.add(device);
673  }
674
675  public boolean removeDevice(UserDevice device) {
676    return devices.remove(device);
677  }
678
679  /**
680   * A list of the sports from the user's profile.
681   *
682   * @return A list of the sports from this user's profile.
683   */
684  public List<Sport> getSports() {
685    return unmodifiableList(sports);
686  }
687
688  public boolean addSport(Sport sportItem) {
689    return sports.add(sportItem);
690  }
691
692  public boolean removeSport(Sport sportItem) {
693    return sports.remove(sportItem);
694  }
695
696  /**
697   * A list of the favorite sports teams from the user's profile.
698   *
699   * @return A list of the favorite sports teams from the user's profile.
700   */
701  public List<Experience> getFavoriteTeams() {
702    return unmodifiableList(favoriteTeams);
703  }
704
705  public boolean addFavoriteTeam(Experience team) {
706    return favoriteTeams.add(team);
707  }
708
709  public boolean removeFavoriteTeam(Experience team) {
710    return favoriteTeams.remove(team);
711  }
712
713  /**
714   * A list of the favorite athletes from the user's profile.
715   *
716   * @return A list of the favorite athletes from the user's profile.
717   */
718  public List<Experience> getFavoriteAthletes() {
719    return unmodifiableList(favoriteAthletes);
720  }
721
722  public boolean addFavoriteAthlete(Experience athlet) {
723    return favoriteAthletes.add(athlet);
724  }
725
726  public boolean removeFavoriteAthlete(Experience athlet) {
727    return favoriteAthletes.remove(athlet);
728  }
729
730  /**
731   * The person's inspirational people.
732   *
733   * @return The person's inspirational people.
734   */
735  public List<Experience> getInspirationalPeople() {
736    return unmodifiableList(inspirationalPeople);
737  }
738
739  public boolean addInspirationalPeople(Experience person) {
740    return inspirationalPeople.add(person);
741  }
742
743  public boolean removeInspirationalPeople(Experience person) {
744    return inspirationalPeople.remove(person);
745  }
746
747  /**
748   * A list of the languages from the user's profile.
749   *
750   * @return A list of the languages from the user's profile.
751   */
752  public List<Experience> getLanguages() {
753    return unmodifiableList(languages);
754  }
755
756  public boolean addLanguage(Experience language) {
757    return languages.add(language);
758  }
759
760  public boolean removeLanguage(Experience language) {
761    return languages.remove(language);
762  }
763
764  /**
765   * Page labels of this user
766   *
767   * @return labels of this user
768   */
769  @GraphAPI(since = "2.6")
770  public List<PageLabel> getLabels() {
771    return unmodifiableList(labels);
772  }
773
774  public boolean addLabel(PageLabel label) {
775    return labels.add(label);
776  }
777
778  public boolean removeLabels(PageLabel label) {
779    return labels.remove(label);
780  }
781
782  /**
783   * A list of friends that can be invited to install a Facebook Canvas app
784   *
785   * @return A list of friends that can be invited to install a Facebook Canvas app
786   */
787  public List<UserInvitableFriend> getInvitableFriends() {
788    return unmodifiableList(invitableFriends);
789  }
790
791  public boolean addInvitableFriend(UserInvitableFriend friend) {
792    return invitableFriends.add(friend);
793  }
794
795  public boolean removeInvitableFriend(UserInvitableFriend friend) {
796    return invitableFriends.remove(friend);
797  }
798
799
800  /**
801   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/secure-browsing/">Secure Browsing
802   * Graph API type</a>.
803   */
804  public static class SecureBrowsing extends AbstractFacebookType {
805    /**
806     * Enabled
807     */
808    @Facebook
809    private Boolean enabled;
810
811    /**
812     * Enabled
813     *
814     * @return Enabled
815     */
816    @java.lang.SuppressWarnings("all")
817    @lombok.Generated
818    public Boolean getEnabled() {
819      return this.enabled;
820    }
821
822    /**
823     * Enabled
824     */
825    @java.lang.SuppressWarnings("all")
826    @lombok.Generated
827    public void setEnabled(final Boolean enabled) {
828      this.enabled = enabled;
829    }
830  }
831
832
833  /**
834   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/payment-pricepoints/">Payment
835   * Pricepoints Graph API type</a>.
836   */
837  public static class PaymentPricepoints extends AbstractFacebookType {
838    @Facebook
839    private List<PaymentPricepoint> mobile = new ArrayList<>();
840
841    /**
842     * Mobile payment pricepoints
843     *
844     * @return Mobile payment pricepoints
845     */
846    public List<PaymentPricepoint> getMobile() {
847      return unmodifiableList(mobile);
848    }
849
850    public boolean addMobile(PaymentPricepoint language) {
851      return mobile.add(language);
852    }
853
854    public boolean removeMobile(PaymentPricepoint language) {
855      return mobile.remove(language);
856    }
857  }
858
859
860  /**
861   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/payment-pricepoint/">Payment
862   * Pricepoint Graph API type</a>.
863   */
864  public static class PaymentPricepoint extends AbstractFacebookType {
865    @Facebook
866    private Double credits;
867    @Facebook("local_currency")
868    private String localCurrency;
869    @Facebook("user_price")
870    private String userPrice;
871
872    @java.lang.SuppressWarnings("all")
873    @lombok.Generated
874    public Double getCredits() {
875      return this.credits;
876    }
877
878    @java.lang.SuppressWarnings("all")
879    @lombok.Generated
880    public void setCredits(final Double credits) {
881      this.credits = credits;
882    }
883
884    @java.lang.SuppressWarnings("all")
885    @lombok.Generated
886    public String getLocalCurrency() {
887      return this.localCurrency;
888    }
889
890    @java.lang.SuppressWarnings("all")
891    @lombok.Generated
892    public void setLocalCurrency(final String localCurrency) {
893      this.localCurrency = localCurrency;
894    }
895
896    @java.lang.SuppressWarnings("all")
897    @lombok.Generated
898    public String getUserPrice() {
899      return this.userPrice;
900    }
901
902    @java.lang.SuppressWarnings("all")
903    @lombok.Generated
904    public void setUserPrice(final String userPrice) {
905      this.userPrice = userPrice;
906    }
907  }
908
909
910  /**
911   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-upload-limits/">Video Upload
912   * Limits Graph API type</a>.
913   */
914  public static class VideoUploadLimits extends AbstractFacebookType {
915    @Facebook
916    private Long length;
917    @Facebook
918    private Long size;
919
920    @java.lang.SuppressWarnings("all")
921    @lombok.Generated
922    public Long getLength() {
923      return this.length;
924    }
925
926    @java.lang.SuppressWarnings("all")
927    @lombok.Generated
928    public void setLength(final Long length) {
929      this.length = length;
930    }
931
932    @java.lang.SuppressWarnings("all")
933    @lombok.Generated
934    public Long getSize() {
935      return this.size;
936    }
937
938    @java.lang.SuppressWarnings("all")
939    @lombok.Generated
940    public void setSize(final Long size) {
941      this.size = size;
942    }
943  }
944
945
946  public static class Experience extends NamedFacebookType {
947    @Facebook
948    private String description;
949    @Facebook
950    private User from;
951    @Facebook
952    private List<User> with = new ArrayList<>();
953
954    /**
955     * Tagged users
956     *
957     * @return Tagged users
958     */
959    public List<User> getWith() {
960      return unmodifiableList(with);
961    }
962
963    public boolean addWith(User with) {
964      return this.with.add(with);
965    }
966
967    public boolean removeWith(User with) {
968      return this.with.remove(with);
969    }
970
971    @java.lang.SuppressWarnings("all")
972    @lombok.Generated
973    public String getDescription() {
974      return this.description;
975    }
976
977    @java.lang.SuppressWarnings("all")
978    @lombok.Generated
979    public void setDescription(final String description) {
980      this.description = description;
981    }
982
983    @java.lang.SuppressWarnings("all")
984    @lombok.Generated
985    public User getFrom() {
986      return this.from;
987    }
988
989    @java.lang.SuppressWarnings("all")
990    @lombok.Generated
991    public void setFrom(final User from) {
992      this.from = from;
993    }
994  }
995
996  /**
997   * Social context for this person
998   *
999   * @return Social context for this person
1000   */
1001  @java.lang.SuppressWarnings("all")
1002  @lombok.Generated
1003  public FacebookType getContext() {
1004    return this.context;
1005  }
1006
1007  /**
1008   * Social context for this person
1009   */
1010  @java.lang.SuppressWarnings("all")
1011  @lombok.Generated
1012  public void setContext(final FacebookType context) {
1013    this.context = context;
1014  }
1015
1016  /**
1017   * The user's first name.
1018   *
1019   * @return The user's first name.
1020   */
1021  @java.lang.SuppressWarnings("all")
1022  @lombok.Generated
1023  public String getFirstName() {
1024    return this.firstName;
1025  }
1026
1027  /**
1028   * The user's first name.
1029   */
1030  @java.lang.SuppressWarnings("all")
1031  @lombok.Generated
1032  public void setFirstName(final String firstName) {
1033    this.firstName = firstName;
1034  }
1035
1036  /**
1037   * The user's middle name.
1038   *
1039   * @return The user's middle name.
1040   */
1041  @java.lang.SuppressWarnings("all")
1042  @lombok.Generated
1043  public String getMiddleName() {
1044    return this.middleName;
1045  }
1046
1047  /**
1048   * The user's middle name.
1049   */
1050  @java.lang.SuppressWarnings("all")
1051  @lombok.Generated
1052  public void setMiddleName(final String middleName) {
1053    this.middleName = middleName;
1054  }
1055
1056  /**
1057   * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering.
1058   *
1059   * @return The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering
1060   */
1061  @java.lang.SuppressWarnings("all")
1062  @lombok.Generated
1063  public String getNameFormat() {
1064    return this.nameFormat;
1065  }
1066
1067  /**
1068   * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering.
1069   */
1070  @java.lang.SuppressWarnings("all")
1071  @lombok.Generated
1072  public void setNameFormat(final String nameFormat) {
1073    this.nameFormat = nameFormat;
1074  }
1075
1076  /**
1077   * The person's payment pricepoints
1078   *
1079   * @return The person's payment pricepoints
1080   */
1081  @java.lang.SuppressWarnings("all")
1082  @lombok.Generated
1083  public PaymentPricepoints getPaymentPricepoints() {
1084    return this.paymentPricepoints;
1085  }
1086
1087  /**
1088   * The person's payment pricepoints
1089   */
1090  @java.lang.SuppressWarnings("all")
1091  @lombok.Generated
1092  public void setPaymentPricepoints(final PaymentPricepoints paymentPricepoints) {
1093    this.paymentPricepoints = paymentPricepoints;
1094  }
1095
1096  /**
1097   * The user's last name.
1098   *
1099   * @return The user's last name.
1100   */
1101  @java.lang.SuppressWarnings("all")
1102  @lombok.Generated
1103  public String getLastName() {
1104    return this.lastName;
1105  }
1106
1107  /**
1108   * The user's last name.
1109   */
1110  @java.lang.SuppressWarnings("all")
1111  @lombok.Generated
1112  public void setLastName(final String lastName) {
1113    this.lastName = lastName;
1114  }
1115
1116  /**
1117   * Shortened, locale-aware name for the person.
1118   *
1119   * @return Shortened, locale-aware name for the person
1120   */
1121  @GraphAPI(since = "2.9")
1122  @java.lang.SuppressWarnings("all")
1123  @lombok.Generated
1124  public String getShortName() {
1125    return this.shortName;
1126  }
1127
1128  /**
1129   * Shortened, locale-aware name for the person.
1130   */
1131  @java.lang.SuppressWarnings("all")
1132  @lombok.Generated
1133  public void setShortName(final String shortName) {
1134    this.shortName = shortName;
1135  }
1136
1137  /**
1138   * The person's cover photo
1139   *
1140   * @return The person's cover photo
1141   */
1142  @Override
1143  @java.lang.SuppressWarnings("all")
1144  @lombok.Generated
1145  public CoverPhoto getCover() {
1146    return this.cover;
1147  }
1148
1149  /**
1150   * The person's cover photo
1151   */
1152  @java.lang.SuppressWarnings("all")
1153  @lombok.Generated
1154  public void setCover(final CoverPhoto cover) {
1155    this.cover = cover;
1156  }
1157
1158  /**
1159   * A link to the person's Timeline.
1160   *
1161   * The link will only resolve if the person clicking the link is logged into Facebook and is a friend of the person
1162   * whose profile is being viewed.
1163   *
1164   * @return A link to the user's profile.
1165   */
1166  @java.lang.SuppressWarnings("all")
1167  @lombok.Generated
1168  public String getLink() {
1169    return this.link;
1170  }
1171
1172  /**
1173   * A link to the person's Timeline.
1174   *
1175   * The link will only resolve if the person clicking the link is logged into Facebook and is a friend of the person
1176   * whose profile is being viewed.
1177   */
1178  @java.lang.SuppressWarnings("all")
1179  @lombok.Generated
1180  public void setLink(final String link) {
1181    this.link = link;
1182  }
1183
1184  /**
1185   * The user's biographical snippet.
1186   *
1187   * @return The user's biographical snippet.
1188   */
1189  @GraphAPI(until = "2.7")
1190  @java.lang.SuppressWarnings("all")
1191  @lombok.Generated
1192  public String getBio() {
1193    return this.bio;
1194  }
1195
1196  /**
1197   * The user's biographical snippet.
1198   */
1199  @java.lang.SuppressWarnings("all")
1200  @lombok.Generated
1201  public void setBio(final String bio) {
1202    this.bio = bio;
1203  }
1204
1205  /**
1206   * The user's favorite quotes.
1207   *
1208   * @return The user's favorite quotes.
1209   */
1210  @java.lang.SuppressWarnings("all")
1211  @lombok.Generated
1212  public String getQuotes() {
1213    return this.quotes;
1214  }
1215
1216  /**
1217   * The user's favorite quotes.
1218   */
1219  @java.lang.SuppressWarnings("all")
1220  @lombok.Generated
1221  public void setQuotes(final String quotes) {
1222    this.quotes = quotes;
1223  }
1224
1225  /**
1226   * Unspecific age range that this person's age fits into.
1227   *
1228   * @return The user's age range
1229   */
1230  @java.lang.SuppressWarnings("all")
1231  @lombok.Generated
1232  public AgeRange getAgeRange() {
1233    return this.ageRange;
1234  }
1235
1236  /**
1237   * Unspecific age range that this person's age fits into.
1238   */
1239  @java.lang.SuppressWarnings("all")
1240  @lombok.Generated
1241  public void setAgeRange(final AgeRange ageRange) {
1242    this.ageRange = ageRange;
1243  }
1244
1245  /**
1246   * The user's birthday as a {@code String}.
1247   * <p>
1248   * Will always succeed, even if the user has specified month/year format only. If you'd like to use a typed version of
1249   * this accessor, call {@link #getBirthdayAsDate()} instead.
1250   *
1251   * "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`. However, people can control who can see
1252   * the year they were born separately from the month and day so this string can be only the year (YYYY) or the month +
1253   * day (MM/DD)",
1254   *
1255   * @return The user's birthday as a {@code String}.
1256   */
1257  @java.lang.SuppressWarnings("all")
1258  @lombok.Generated
1259  public String getBirthday() {
1260    return this.birthday;
1261  }
1262
1263  /**
1264   * The user's birthday as a {@code String}.
1265   * <p>
1266   * Will always succeed, even if the user has specified month/year format only. If you'd like to use a typed version of
1267   * this accessor, call {@link #getBirthdayAsDate()} instead.
1268   *
1269   * "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`. However, people can control who can see
1270   * the year they were born separately from the month and day so this string can be only the year (YYYY) or the month +
1271   * day (MM/DD)",
1272   */
1273  @java.lang.SuppressWarnings("all")
1274  @lombok.Generated
1275  public void setBirthday(final String birthday) {
1276    this.birthday = birthday;
1277  }
1278
1279  /**
1280   * The proxied or contact email address granted by the user.
1281   *
1282   * @return The proxied or contact email address granted by the user.
1283   */
1284  @java.lang.SuppressWarnings("all")
1285  @lombok.Generated
1286  public String getEmail() {
1287    return this.email;
1288  }
1289
1290  /**
1291   * The proxied or contact email address granted by the user.
1292   */
1293  @java.lang.SuppressWarnings("all")
1294  @lombok.Generated
1295  public void setEmail(final String email) {
1296    this.email = email;
1297  }
1298
1299  /**
1300   * The user's timezone offset.
1301   *
1302   * @return The user's timezone offset.
1303   */
1304  @java.lang.SuppressWarnings("all")
1305  @lombok.Generated
1306  public Double getTimezone() {
1307    return this.timezone;
1308  }
1309
1310  /**
1311   * The user's timezone offset.
1312   */
1313  @java.lang.SuppressWarnings("all")
1314  @lombok.Generated
1315  public void setTimezone(final Double timezone) {
1316    this.timezone = timezone;
1317  }
1318
1319  /**
1320   * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone
1321   * is considered verified if they take any of the following actions:
1322   * <ul>
1323   * <li>Register for mobile</li>
1324   * <li>Confirm their account via SMS</li>
1325   * <li>Enter a valid credit card</li>
1326   * </ul>
1327   *
1328   * @return User verification status.
1329   */
1330  @java.lang.SuppressWarnings("all")
1331  @lombok.Generated
1332  public Boolean getVerified() {
1333    return this.verified;
1334  }
1335
1336  /**
1337   * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone
1338   * is considered verified if they take any of the following actions:
1339   * <ul>
1340   * <li>Register for mobile</li>
1341   * <li>Confirm their account via SMS</li>
1342   * <li>Enter a valid credit card</li>
1343   * </ul>
1344   */
1345  @java.lang.SuppressWarnings("all")
1346  @lombok.Generated
1347  public void setVerified(final Boolean verified) {
1348    this.verified = verified;
1349  }
1350
1351  /**
1352   * Video upload limits
1353   *
1354   * @return Video upload limits
1355   */
1356  @java.lang.SuppressWarnings("all")
1357  @lombok.Generated
1358  public VideoUploadLimits getVideoUploadLimits() {
1359    return this.videoUploadLimits;
1360  }
1361
1362  /**
1363   * Video upload limits
1364   */
1365  @java.lang.SuppressWarnings("all")
1366  @lombok.Generated
1367  public void setVideoUploadLimits(final VideoUploadLimits videoUploadLimits) {
1368    this.videoUploadLimits = videoUploadLimits;
1369  }
1370
1371  /**
1372   * The user's gender.
1373   *
1374   * @return The user's gender.
1375   */
1376  @java.lang.SuppressWarnings("all")
1377  @lombok.Generated
1378  public String getGender() {
1379    return this.gender;
1380  }
1381
1382  /**
1383   * The user's gender.
1384   */
1385  @java.lang.SuppressWarnings("all")
1386  @lombok.Generated
1387  public void setGender(final String gender) {
1388    this.gender = gender;
1389  }
1390
1391  /**
1392   * The user's locale.
1393   *
1394   * @return The user's locale.
1395   */
1396  @java.lang.SuppressWarnings("all")
1397  @lombok.Generated
1398  public String getLocale() {
1399    return this.locale;
1400  }
1401
1402  /**
1403   * The user's locale.
1404   */
1405  @java.lang.SuppressWarnings("all")
1406  @lombok.Generated
1407  public void setLocale(final String locale) {
1408    this.locale = locale;
1409  }
1410
1411  /**
1412   * The person's PGP public key
1413   *
1414   * @return The person's PGP public key
1415   */
1416  @java.lang.SuppressWarnings("all")
1417  @lombok.Generated
1418  public String getPublicKey() {
1419    return this.publicKey;
1420  }
1421
1422  /**
1423   * The person's PGP public key
1424   */
1425  @java.lang.SuppressWarnings("all")
1426  @lombok.Generated
1427  public void setPublicKey(final String publicKey) {
1428    this.publicKey = publicKey;
1429  }
1430
1431  /**
1432   * The user's Likes
1433   *
1434   * @return the user's Likes
1435   */
1436  @java.lang.SuppressWarnings("all")
1437  @lombok.Generated
1438  public Likes getLikes() {
1439    return this.likes;
1440  }
1441
1442  /**
1443   * The user's Likes
1444   */
1445  @java.lang.SuppressWarnings("all")
1446  @lombok.Generated
1447  public void setLikes(final Likes likes) {
1448    this.likes = likes;
1449  }
1450
1451  /**
1452   * The user's picture, if provided.
1453   *
1454   * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the
1455   * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>.
1456   *
1457   * @return the user's picture as ProfilePictureSource object
1458   * @since 1.6.16
1459   */
1460  @Override
1461  @java.lang.SuppressWarnings("all")
1462  @lombok.Generated
1463  public ProfilePictureSource getPicture() {
1464    return this.picture;
1465  }
1466
1467  /**
1468   * The user's picture, if provided.
1469   *
1470   * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the
1471   * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>.
1472   *
1473   * @since 1.6.16
1474   */
1475  @java.lang.SuppressWarnings("all")
1476  @lombok.Generated
1477  public void setPicture(final ProfilePictureSource picture) {
1478    this.picture = picture;
1479  }
1480
1481  /**
1482   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
1483   *
1484   * -- GETTER -- The user's hometown.
1485   * <p>
1486   * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case.
1487   *
1488   * @return The user's hometown.
1489   */
1490  @java.lang.SuppressWarnings("all")
1491  @lombok.Generated
1492  public NamedFacebookType getHometown() {
1493    return this.hometown;
1494  }
1495
1496  /**
1497   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
1498   *
1499   * -- GETTER -- The user's hometown.
1500   * <p>
1501   * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case.
1502   */
1503  @java.lang.SuppressWarnings("all")
1504  @lombok.Generated
1505  public void setHometown(final NamedFacebookType hometown) {
1506    this.hometown = hometown;
1507  }
1508
1509  /**
1510   * A profile based app scoped ID. It is used to query avatars
1511   */
1512  @java.lang.SuppressWarnings("all")
1513  @lombok.Generated
1514  public String getIdForAvatars() {
1515    return this.idForAvatars;
1516  }
1517
1518  /**
1519   * A profile based app scoped ID. It is used to query avatars
1520   */
1521  @java.lang.SuppressWarnings("all")
1522  @lombok.Generated
1523  public void setIdForAvatars(final String idForAvatars) {
1524    this.idForAvatars = idForAvatars;
1525  }
1526
1527  /**
1528   * he person's current location as entered by them on their profile.
1529   *
1530   * This field requires the `user_location` permission.
1531   *
1532   * @return The user's current location.
1533   */
1534  @java.lang.SuppressWarnings("all")
1535  @lombok.Generated
1536  public NamedFacebookType getLocation() {
1537    return this.location;
1538  }
1539
1540  /**
1541   * he person's current location as entered by them on their profile.
1542   *
1543   * This field requires the `user_location` permission.
1544   */
1545  @java.lang.SuppressWarnings("all")
1546  @lombok.Generated
1547  public void setLocation(final NamedFacebookType location) {
1548    this.location = location;
1549  }
1550
1551  /**
1552   * The time that the shared loginneeds to be upgraded to Business Manager by
1553   *
1554   * @return The time that the shared loginneeds to be upgraded to Business Manager by
1555   */
1556  @java.lang.SuppressWarnings("all")
1557  @lombok.Generated
1558  public Date getSharedLoginUpgradeRequiredBy() {
1559    return this.sharedLoginUpgradeRequiredBy;
1560  }
1561
1562  /**
1563   * The time that the shared loginneeds to be upgraded to Business Manager by
1564   */
1565  @java.lang.SuppressWarnings("all")
1566  @lombok.Generated
1567  public void setSharedLoginUpgradeRequiredBy(final Date sharedLoginUpgradeRequiredBy) {
1568    this.sharedLoginUpgradeRequiredBy = sharedLoginUpgradeRequiredBy;
1569  }
1570
1571  /**
1572   * The user's significant other.
1573   *
1574   * @return The user's significant other.
1575   */
1576  @java.lang.SuppressWarnings("all")
1577  @lombok.Generated
1578  public User getSignificantOther() {
1579    return this.significantOther;
1580  }
1581
1582  /**
1583   * The user's significant other.
1584   */
1585  @java.lang.SuppressWarnings("all")
1586  @lombok.Generated
1587  public void setSignificantOther(final User significantOther) {
1588    this.significantOther = significantOther;
1589  }
1590
1591  /**
1592   * Whether the user can add a Donate Button to their Live Videos
1593   */
1594  @java.lang.SuppressWarnings("all")
1595  @lombok.Generated
1596  public Boolean getSupportsDonateButtonInLiveVideo() {
1597    return this.supportsDonateButtonInLiveVideo;
1598  }
1599
1600  /**
1601   * Whether the user can add a Donate Button to their Live Videos
1602   */
1603  @java.lang.SuppressWarnings("all")
1604  @lombok.Generated
1605  public void setSupportsDonateButtonInLiveVideo(final Boolean supportsDonateButtonInLiveVideo) {
1606    this.supportsDonateButtonInLiveVideo = supportsDonateButtonInLiveVideo;
1607  }
1608
1609  /**
1610   * Date the user's profile was updated.
1611   *
1612   * @return Date the user's profile was updated.
1613   */
1614  @java.lang.SuppressWarnings("all")
1615  @lombok.Generated
1616  public Date getUpdatedTime() {
1617    return this.updatedTime;
1618  }
1619
1620  /**
1621   * Date the user's profile was updated.
1622   */
1623  @java.lang.SuppressWarnings("all")
1624  @lombok.Generated
1625  public void setUpdatedTime(final Date updatedTime) {
1626    this.updatedTime = updatedTime;
1627  }
1628
1629  /**
1630   * An anonymous, but unique identifier for the user.
1631   *
1632   * @return An anonymous, but unique identifier for the user.
1633   */
1634  @java.lang.SuppressWarnings("all")
1635  @lombok.Generated
1636  public String getThirdPartyId() {
1637    return this.thirdPartyId;
1638  }
1639
1640  /**
1641   * An anonymous, but unique identifier for the user.
1642   */
1643  @java.lang.SuppressWarnings("all")
1644  @lombok.Generated
1645  public void setThirdPartyId(final String thirdPartyId) {
1646    this.thirdPartyId = thirdPartyId;
1647  }
1648
1649  /**
1650   * The user's currency preferences.
1651   * <p>
1652   * Further documentation available on Facebook's
1653   * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a>
1654   * page.
1655   *
1656   * @return The user's currency preferences.
1657   * @since 1.6.12
1658   */
1659  @java.lang.SuppressWarnings("all")
1660  @lombok.Generated
1661  public Currency getCurrency() {
1662    return this.currency;
1663  }
1664
1665  /**
1666   * The user's currency preferences.
1667   * <p>
1668   * Further documentation available on Facebook's
1669   * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a>
1670   * page.
1671   *
1672   * @since 1.6.12
1673   */
1674  @java.lang.SuppressWarnings("all")
1675  @lombok.Generated
1676  public void setCurrency(final Currency currency) {
1677    this.currency = currency;
1678  }
1679
1680  /**
1681   * This returns a string which is the same for this person across all the apps managed by the same Business Manager.
1682   *
1683   * @return string which is the same for a person across all apps managed by one company
1684   * @since 1.7.0
1685   */
1686  @java.lang.SuppressWarnings("all")
1687  @lombok.Generated
1688  public String getTokenForBusiness() {
1689    return this.tokenForBusiness;
1690  }
1691
1692  /**
1693   * This returns a string which is the same for this person across all the apps managed by the same Business Manager.
1694   *
1695   * @since 1.7.0
1696   */
1697  @java.lang.SuppressWarnings("all")
1698  @lombok.Generated
1699  public void setTokenForBusiness(final String tokenForBusiness) {
1700    this.tokenForBusiness = tokenForBusiness;
1701  }
1702
1703  /**
1704   * Install type.
1705   *
1706   * @return Install type.
1707   */
1708  @java.lang.SuppressWarnings("all")
1709  @lombok.Generated
1710  public String getInstallType() {
1711    return this.installType;
1712  }
1713
1714  /**
1715   * Install type.
1716   */
1717  @java.lang.SuppressWarnings("all")
1718  @lombok.Generated
1719  public void setInstallType(final String installType) {
1720    this.installType = installType;
1721  }
1722
1723  /**
1724   * Is the app making the request installed?
1725   *
1726   * @return Is the app making the request installed?
1727   */
1728  @java.lang.SuppressWarnings("all")
1729  @lombok.Generated
1730  public Boolean getInstalled() {
1731    return this.installed;
1732  }
1733
1734  /**
1735   * Is the app making the request installed?
1736   */
1737  @java.lang.SuppressWarnings("all")
1738  @lombok.Generated
1739  public void setInstalled(final Boolean installed) {
1740    this.installed = installed;
1741  }
1742
1743  /**
1744   * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook.
1745   * This field indicates whether the person's profile is verified in this way.
1746   *
1747   * This is distinct from the <code>verified</code> field
1748   *
1749   * @return Is the user verified
1750   */
1751  @java.lang.SuppressWarnings("all")
1752  @lombok.Generated
1753  public Boolean getIsVerified() {
1754    return this.isVerified;
1755  }
1756
1757  /**
1758   * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook.
1759   * This field indicates whether the person's profile is verified in this way.
1760   *
1761   * This is distinct from the <code>verified</code> field
1762   */
1763  @java.lang.SuppressWarnings("all")
1764  @lombok.Generated
1765  public void setIsVerified(final Boolean isVerified) {
1766    this.isVerified = isVerified;
1767  }
1768
1769  @java.lang.SuppressWarnings("all")
1770  @lombok.Generated
1771  public Boolean getIsWorkAccount() {
1772    return this.isWorkAccount;
1773  }
1774
1775  @java.lang.SuppressWarnings("all")
1776  @lombok.Generated
1777  public void setIsWorkAccount(final Boolean isWorkAccount) {
1778    this.isWorkAccount = isWorkAccount;
1779  }
1780
1781  /**
1782   * if the current user is a guest user. should always return false.
1783   */
1784  @java.lang.SuppressWarnings("all")
1785  @lombok.Generated
1786  public Boolean getIsGuestUser() {
1787    return this.isGuestUser;
1788  }
1789
1790  /**
1791   * if the current user is a guest user. should always return false.
1792   */
1793  @java.lang.SuppressWarnings("all")
1794  @lombok.Generated
1795  public void setIsGuestUser(final Boolean isGuestUser) {
1796    this.isGuestUser = isGuestUser;
1797  }
1798}