252 lines
12 KiB
Python
252 lines
12 KiB
Python
from typing import Any, Dict, Type, TypeVar, Tuple, Optional, BinaryIO, TextIO
|
||
|
||
from typing import List
|
||
|
||
|
||
import attr
|
||
|
||
from ..types import UNSET, Unset
|
||
|
||
from ..types import UNSET, Unset
|
||
from typing import Union
|
||
|
||
|
||
|
||
|
||
T = TypeVar("T", bound="UserinfoResponse")
|
||
|
||
@attr.s(auto_attribs=True)
|
||
class UserinfoResponse:
|
||
"""The userinfo response
|
||
|
||
Attributes:
|
||
birthdate (Union[Unset, str]): End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD
|
||
format. The year MAY be 0000, indicating that it is omitted. To represent only the year, YYYY format is allowed.
|
||
Note that depending on the underlying platform's date related function, providing just year can result in
|
||
varying month and day, so the implementers need to take this factor into account to correctly process the dates.
|
||
email (Union[Unset, str]): End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322]
|
||
addr-spec syntax. The RP MUST NOT rely upon this value being unique, as discussed in Section 5.7.
|
||
email_verified (Union[Unset, bool]): True if the End-User's e-mail address has been verified; otherwise false.
|
||
When this Claim Value is true, this means that the OP took affirmative steps to ensure that this e-mail address
|
||
was controlled by the End-User at the time the verification was performed. The means by which an e-mail address
|
||
is verified is context-specific, and dependent upon the trust framework or contractual agreements within which
|
||
the parties are operating.
|
||
family_name (Union[Unset, str]): Surname(s) or last name(s) of the End-User. Note that in some cultures, people
|
||
can have multiple family names or no family name; all can be present, with the names being separated by space
|
||
characters.
|
||
gender (Union[Unset, str]): End-User's gender. Values defined by this specification are female and male. Other
|
||
values MAY be used when neither of the defined values are applicable.
|
||
given_name (Union[Unset, str]): Given name(s) or first name(s) of the End-User. Note that in some cultures,
|
||
people can have multiple given names; all can be present, with the names being separated by space characters.
|
||
locale (Union[Unset, str]): End-User's locale, represented as a BCP47 [RFC5646] language tag. This is typically
|
||
an ISO 639-1 Alpha-2 [ISO639‑1] language code in lowercase and an ISO 3166-1 Alpha-2 [ISO3166‑1] country code in
|
||
uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note, some implementations have
|
||
used an underscore as the separator rather than a dash, for example, en_US; Relying Parties MAY choose to accept
|
||
this locale syntax as well.
|
||
middle_name (Union[Unset, str]): Middle name(s) of the End-User. Note that in some cultures, people can have
|
||
multiple middle names; all can be present, with the names being separated by space characters. Also note that in
|
||
some cultures, middle names are not used.
|
||
name (Union[Unset, str]): End-User's full name in displayable form including all name parts, possibly including
|
||
titles and suffixes, ordered according to the End-User's locale and preferences.
|
||
nickname (Union[Unset, str]): Casual name of the End-User that may or may not be the same as the given_name. For
|
||
instance, a nickname value of Mike might be returned alongside a given_name value of Michael.
|
||
phone_number (Union[Unset, str]): End-User's preferred telephone number. E.164 [E.164] is RECOMMENDED as the
|
||
format of this Claim, for example, +1 (425) 555-1212 or +56 (2) 687 2400. If the phone number contains an
|
||
extension, it is RECOMMENDED that the extension be represented using the RFC 3966 [RFC3966] extension syntax,
|
||
for example, +1 (604) 555-1234;ext=5678.
|
||
phone_number_verified (Union[Unset, bool]): True if the End-User's phone number has been verified; otherwise
|
||
false. When this Claim Value is true, this means that the OP took affirmative steps to ensure that this phone
|
||
number was controlled by the End-User at the time the verification was performed. The means by which a phone
|
||
number is verified is context-specific, and dependent upon the trust framework or contractual agreements within
|
||
which the parties are operating. When true, the phone_number Claim MUST be in E.164 format and any extensions
|
||
MUST be represented in RFC 3966 format.
|
||
picture (Union[Unset, str]): URL of the End-User's profile picture. This URL MUST refer to an image file (for
|
||
example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image. Note that this URL
|
||
SHOULD specifically reference a profile photo of the End-User suitable for displaying when describing the End-
|
||
User, rather than an arbitrary photo taken by the End-User.
|
||
preferred_username (Union[Unset, str]): Non-unique shorthand name by which the End-User wishes to be referred to
|
||
at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string including special characters such
|
||
as @, /, or whitespace.
|
||
profile (Union[Unset, str]): URL of the End-User's profile page. The contents of this Web page SHOULD be about
|
||
the End-User.
|
||
sub (Union[Unset, str]): Subject - Identifier for the End-User at the IssuerURL.
|
||
updated_at (Union[Unset, int]): Time the End-User's information was last updated. Its value is a JSON number
|
||
representing the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the date/time.
|
||
website (Union[Unset, str]): URL of the End-User's Web page or blog. This Web page SHOULD contain information
|
||
published by the End-User or an organization that the End-User is affiliated with.
|
||
zoneinfo (Union[Unset, str]): String from zoneinfo [zoneinfo] time zone database representing the End-User's
|
||
time zone. For example, Europe/Paris or America/Los_Angeles.
|
||
"""
|
||
|
||
birthdate: Union[Unset, str] = UNSET
|
||
email: Union[Unset, str] = UNSET
|
||
email_verified: Union[Unset, bool] = UNSET
|
||
family_name: Union[Unset, str] = UNSET
|
||
gender: Union[Unset, str] = UNSET
|
||
given_name: Union[Unset, str] = UNSET
|
||
locale: Union[Unset, str] = UNSET
|
||
middle_name: Union[Unset, str] = UNSET
|
||
name: Union[Unset, str] = UNSET
|
||
nickname: Union[Unset, str] = UNSET
|
||
phone_number: Union[Unset, str] = UNSET
|
||
phone_number_verified: Union[Unset, bool] = UNSET
|
||
picture: Union[Unset, str] = UNSET
|
||
preferred_username: Union[Unset, str] = UNSET
|
||
profile: Union[Unset, str] = UNSET
|
||
sub: Union[Unset, str] = UNSET
|
||
updated_at: Union[Unset, int] = UNSET
|
||
website: Union[Unset, str] = UNSET
|
||
zoneinfo: Union[Unset, str] = UNSET
|
||
additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
|
||
|
||
|
||
def to_dict(self) -> Dict[str, Any]:
|
||
birthdate = self.birthdate
|
||
email = self.email
|
||
email_verified = self.email_verified
|
||
family_name = self.family_name
|
||
gender = self.gender
|
||
given_name = self.given_name
|
||
locale = self.locale
|
||
middle_name = self.middle_name
|
||
name = self.name
|
||
nickname = self.nickname
|
||
phone_number = self.phone_number
|
||
phone_number_verified = self.phone_number_verified
|
||
picture = self.picture
|
||
preferred_username = self.preferred_username
|
||
profile = self.profile
|
||
sub = self.sub
|
||
updated_at = self.updated_at
|
||
website = self.website
|
||
zoneinfo = self.zoneinfo
|
||
|
||
field_dict: Dict[str, Any] = {}
|
||
field_dict.update(self.additional_properties)
|
||
field_dict.update({
|
||
})
|
||
if birthdate is not UNSET:
|
||
field_dict["birthdate"] = birthdate
|
||
if email is not UNSET:
|
||
field_dict["email"] = email
|
||
if email_verified is not UNSET:
|
||
field_dict["email_verified"] = email_verified
|
||
if family_name is not UNSET:
|
||
field_dict["family_name"] = family_name
|
||
if gender is not UNSET:
|
||
field_dict["gender"] = gender
|
||
if given_name is not UNSET:
|
||
field_dict["given_name"] = given_name
|
||
if locale is not UNSET:
|
||
field_dict["locale"] = locale
|
||
if middle_name is not UNSET:
|
||
field_dict["middle_name"] = middle_name
|
||
if name is not UNSET:
|
||
field_dict["name"] = name
|
||
if nickname is not UNSET:
|
||
field_dict["nickname"] = nickname
|
||
if phone_number is not UNSET:
|
||
field_dict["phone_number"] = phone_number
|
||
if phone_number_verified is not UNSET:
|
||
field_dict["phone_number_verified"] = phone_number_verified
|
||
if picture is not UNSET:
|
||
field_dict["picture"] = picture
|
||
if preferred_username is not UNSET:
|
||
field_dict["preferred_username"] = preferred_username
|
||
if profile is not UNSET:
|
||
field_dict["profile"] = profile
|
||
if sub is not UNSET:
|
||
field_dict["sub"] = sub
|
||
if updated_at is not UNSET:
|
||
field_dict["updated_at"] = updated_at
|
||
if website is not UNSET:
|
||
field_dict["website"] = website
|
||
if zoneinfo is not UNSET:
|
||
field_dict["zoneinfo"] = zoneinfo
|
||
|
||
return field_dict
|
||
|
||
|
||
|
||
@classmethod
|
||
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
|
||
_d = src_dict.copy()
|
||
birthdate = _d.pop("birthdate", UNSET)
|
||
|
||
email = _d.pop("email", UNSET)
|
||
|
||
email_verified = _d.pop("email_verified", UNSET)
|
||
|
||
family_name = _d.pop("family_name", UNSET)
|
||
|
||
gender = _d.pop("gender", UNSET)
|
||
|
||
given_name = _d.pop("given_name", UNSET)
|
||
|
||
locale = _d.pop("locale", UNSET)
|
||
|
||
middle_name = _d.pop("middle_name", UNSET)
|
||
|
||
name = _d.pop("name", UNSET)
|
||
|
||
nickname = _d.pop("nickname", UNSET)
|
||
|
||
phone_number = _d.pop("phone_number", UNSET)
|
||
|
||
phone_number_verified = _d.pop("phone_number_verified", UNSET)
|
||
|
||
picture = _d.pop("picture", UNSET)
|
||
|
||
preferred_username = _d.pop("preferred_username", UNSET)
|
||
|
||
profile = _d.pop("profile", UNSET)
|
||
|
||
sub = _d.pop("sub", UNSET)
|
||
|
||
updated_at = _d.pop("updated_at", UNSET)
|
||
|
||
website = _d.pop("website", UNSET)
|
||
|
||
zoneinfo = _d.pop("zoneinfo", UNSET)
|
||
|
||
userinfo_response = cls(
|
||
birthdate=birthdate,
|
||
email=email,
|
||
email_verified=email_verified,
|
||
family_name=family_name,
|
||
gender=gender,
|
||
given_name=given_name,
|
||
locale=locale,
|
||
middle_name=middle_name,
|
||
name=name,
|
||
nickname=nickname,
|
||
phone_number=phone_number,
|
||
phone_number_verified=phone_number_verified,
|
||
picture=picture,
|
||
preferred_username=preferred_username,
|
||
profile=profile,
|
||
sub=sub,
|
||
updated_at=updated_at,
|
||
website=website,
|
||
zoneinfo=zoneinfo,
|
||
)
|
||
|
||
userinfo_response.additional_properties = _d
|
||
return userinfo_response
|
||
|
||
@property
|
||
def additional_keys(self) -> List[str]:
|
||
return list(self.additional_properties.keys())
|
||
|
||
def __getitem__(self, key: str) -> Any:
|
||
return self.additional_properties[key]
|
||
|
||
def __setitem__(self, key: str, value: Any) -> None:
|
||
self.additional_properties[key] = value
|
||
|
||
def __delitem__(self, key: str) -> None:
|
||
del self.additional_properties[key]
|
||
|
||
def __contains__(self, key: str) -> bool:
|
||
return key in self.additional_properties
|