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