001/*******************************************************************************
002 * Copyright 2017 The MIT Internet Trust Consortium
003 *
004 * Portions copyright 2011-2013 The MITRE Corporation
005 *
006 * Licensed under the Apache License, Version 2.0 (the "License");
007 * you may not use this file except in compliance with the License.
008 * You may obtain a copy of the License at
009 *
010 *   http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 *******************************************************************************/
018package org.mitre.openid.connect.model;
019
020import java.io.Serializable;
021
022import com.google.gson.JsonObject;
023
024
025public interface UserInfo extends Serializable {
026
027        /**
028         * @return the userId
029         */
030        public String getSub();
031
032        /**
033         * @param sub the userId to set
034         */
035        public void setSub(String sub);
036
037        /**
038         * @return the preferred username
039         */
040        public String getPreferredUsername();
041
042        /**
043         * @param preferredUsername the preferredUsername to set
044         */
045        public void setPreferredUsername(String preferredUsername);
046
047        /**
048         * @return the name
049         */
050        public String getName();
051
052        /**
053         * @param name the name to set
054         */
055        public void setName(String name);
056
057        /**
058         * @return the givenName
059         */
060        public String getGivenName();
061
062        /**
063         * @param givenName the givenName to set
064         */
065        public void setGivenName(String givenName);
066
067        /**
068         * @return the familyName
069         */
070        public String getFamilyName();
071
072        /**
073         * @param familyName the familyName to set
074         */
075        public void setFamilyName(String familyName);
076
077        /**
078         * @return the middleName
079         */
080        public String getMiddleName();
081
082        /**
083         * @param middleName the middleName to set
084         */
085        public void setMiddleName(String middleName);
086
087        /**
088         * @return the nickname
089         */
090        public String getNickname();
091
092        /**
093         * @param nickname the nickname to set
094         */
095        public void setNickname(String nickname);
096
097        /**
098         * @return the profile
099         */
100        public String getProfile();
101
102        /**
103         * @param profile the profile to set
104         */
105        public void setProfile(String profile);
106
107        /**
108         * @return the picture
109         */
110        public String getPicture();
111
112        /**
113         * @param picture the picture to set
114         */
115        public void setPicture(String picture);
116
117        /**
118         * @return the website
119         */
120        public String getWebsite();
121
122        /**
123         * @param website the website to set
124         */
125        public void setWebsite(String website);
126
127        /**
128         * @return the email
129         */
130        public String getEmail();
131
132        /**
133         * @param email the email to set
134         */
135        public void setEmail(String email);
136
137        /**
138         * @return the verified
139         */
140        public Boolean getEmailVerified();
141
142        /**
143         * @param verified the verified to set
144         */
145        public void setEmailVerified(Boolean emailVerified);
146
147        /**
148         * @return the gender
149         */
150        public String getGender();
151
152        /**
153         * @param gender the gender to set
154         */
155        public void setGender(String gender);
156
157        /**
158         * @return the zoneinfo
159         */
160        public String getZoneinfo();
161
162        /**
163         * @param zoneinfo the zoneinfo to set
164         */
165        public void setZoneinfo(String zoneinfo);
166
167        /**
168         * @return the locale
169         */
170        public String getLocale();
171
172        /**
173         * @param locale the locale to set
174         */
175        public void setLocale(String locale);
176
177        /**
178         * @return the phoneNumber
179         */
180        public String getPhoneNumber();
181
182        /**
183         * @param phoneNumber the phoneNumber to set
184         */
185        public void setPhoneNumber(String phoneNumber);
186
187        /**
188         *
189         */
190        public Boolean getPhoneNumberVerified();
191
192        /**
193         *
194         * @param phoneNumberVerified
195         */
196        public void setPhoneNumberVerified(Boolean phoneNumberVerified);
197
198        /**
199         * @return the address
200         */
201        public Address getAddress();
202
203        /**
204         * @param address the address to set
205         */
206        public void setAddress(Address address);
207
208        /**
209         * @return the updatedTime
210         */
211        public String getUpdatedTime();
212
213        /**
214         * @param updatedTime the updatedTime to set
215         */
216        public void setUpdatedTime(String updatedTime);
217
218
219        /**
220         *
221         * @return
222         */
223        public String getBirthdate();
224
225        /**
226         *
227         * @param birthdate
228         */
229        public void setBirthdate(String birthdate);
230
231        /**
232         * Serialize this UserInfo object to JSON.
233         *
234         * @return
235         */
236        public JsonObject toJson();
237
238        /**
239         * The JSON source of this UserInfo (if it was fetched), or null if it's local.
240         * @return
241         */
242        public JsonObject getSource();
243
244}