This commit is contained in:
60
src/clients/esia/schema.py
Normal file
60
src/clients/esia/schema.py
Normal file
@ -0,0 +1,60 @@
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel, Field, PositiveInt
|
||||
|
||||
|
||||
class AccessTokenModel(BaseModel):
|
||||
access_token: str
|
||||
refresh_token: str
|
||||
state: str
|
||||
id_token: str
|
||||
token_type: Literal['Bearer']
|
||||
expires_in: PositiveInt
|
||||
|
||||
|
||||
class IDTokenACRModel(BaseModel):
|
||||
twoAF: str = Field(alias='2fa')
|
||||
|
||||
|
||||
class IDTokenSBJModel(BaseModel):
|
||||
lvl: str = Field(alias='urn:esia:sbj:lvl')
|
||||
typ: str = Field(alias='urn:esia:sbj:typ')
|
||||
is_tru: bool = Field(alias='urn:esia:sbj:is_tru')
|
||||
oid: int = Field(alias='urn:esia:sbj:oid')
|
||||
name: str = Field(alias='urn:esia:sbj:nam')
|
||||
|
||||
|
||||
class IDTokenModel(BaseModel):
|
||||
aud: str
|
||||
sub: int
|
||||
nbf: int
|
||||
amr: str
|
||||
auth_time: int
|
||||
exp: int
|
||||
iat: int
|
||||
iss: str
|
||||
# acr: IDTokenACRModel
|
||||
urn_esia_amd: str = Field(alias='urn:esia:amd')
|
||||
urn_esia_sid: str = Field(alias='urn:esia:sid')
|
||||
urn_esia_sbj: IDTokenSBJModel = Field(alias='urn:esia:sbj')
|
||||
|
||||
|
||||
class UserInfoModel(BaseModel):
|
||||
stateFacts: list[str]
|
||||
firstName: str
|
||||
lastName: str
|
||||
# middleName: str
|
||||
# birthDate: str
|
||||
# gender: str
|
||||
trusted: bool
|
||||
# citizenship: str
|
||||
snils: str
|
||||
inn: int
|
||||
updatedOn: int
|
||||
rfgUOperatorCheck: bool
|
||||
status: str
|
||||
verifying: bool
|
||||
rIdDoc: int
|
||||
containsUpCfmCode: bool
|
||||
kidAccCreatedByParent: bool
|
||||
eTag: str
|
||||
Reference in New Issue
Block a user