1+ from __future__ import annotations
12from enum import Enum
2- from pydantic import BaseModel
3- from typing import Dict , List , Union , Optional , Literal , Any
3+ from typing import Any , Dict , List , Union , Optional , Literal
4+ from pydantic import BaseModel , Field
45
56ReputationPlugin = Literal ["low" , "medium" , "high" , "very-high" , "education" , "governmental" , "unknown" ]
67TyposquattingPlugin = Literal [0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ]
@@ -10,16 +11,16 @@ class MxRecord(BaseModel):
1011 exchange : str
1112
1213class Plugins (BaseModel ):
13- blocklist : Optional [bool ] = None
14- gravatarUrl : Optional [str ] = None
15- compromiseDetector : Optional [bool ] = None
16- mxRecords : Optional [List [MxRecord ]] = None
17- nsfw : Optional [bool ] = None
18- reputation : Optional [ReputationPlugin ] = None
19- riskScore : Optional [float ] = None
20- torNetwork : Optional [bool ] = None
21- typosquatting : Optional [TyposquattingPlugin ] = None
22- urlShortener : Optional [bool ] = None
14+ blocklist : Optional [bool ]
15+ gravatarUrl : Optional [str ]
16+ compromiseDetector : Optional [bool ]
17+ mxRecords : Optional [List [MxRecord ]]
18+ nsfw : Optional [bool ]
19+ reputation : Optional [ReputationPlugin ]
20+ riskScore : Optional [float ]
21+ torNetwork : Optional [bool ]
22+ typosquatting : Optional [TyposquattingPlugin ]
23+ urlShortener : Optional [bool ]
2324
2425class VerifyPlugins (Enum ):
2526 BLOCKLIST = "blocklist"
@@ -34,38 +35,38 @@ class VerifyPlugins(Enum):
3435 URL_SHORTENER = "urlShortener"
3536
3637class PhoneData (BaseModel ):
37- iso : Optional [str ] = None
38+ iso : Optional [str ]
3839 phone : str
3940
4041class CreditCardData (BaseModel ):
4142 pan : Union [str , int ]
42- expirationDate : Optional [str ] = None
43- cvc : Optional [Union [str , int ]] = None
44- cvv : Optional [Union [str , int ]] = None
43+ expirationDate : Optional [str ]
44+ cvc : Optional [Union [str , int ]]
45+ cvv : Optional [Union [str , int ]]
4546
4647class Validator (BaseModel ):
47- url : Optional [str ] = None
48- email : Optional [str ] = None
49- phone : Optional [Union [PhoneData , str ]] = None
50- domain : Optional [str ] = None
51- creditCard : Optional [Union [str , CreditCardData ]] = None
52- ip : Optional [str ] = None
53- wallet : Optional [str ] = None
54- userAgent : Optional [str ] = None
55- iban : Optional [str ] = None
56- plugins : Optional [List [VerifyPlugins ]] = None
48+ url : Optional [str ]
49+ email : Optional [str ]
50+ phone : Optional [Union [PhoneData , str ]]
51+ domain : Optional [str ]
52+ creditCard : Optional [Union [str , CreditCardData ]]
53+ ip : Optional [str ]
54+ wallet : Optional [str ]
55+ userAgent : Optional [str ]
56+ iban : Optional [str ]
57+ plugins : Optional [List [VerifyPlugins ]]
5758
5859class UrlEncryptResponse (BaseModel ):
5960 original : str
6061 code : str
6162 encrypt : str
6263
6364class IsValidPwdData (BaseModel ):
64- email : Optional [str ] = None
65- password : Optional [str ] = None
66- bannedWords : Optional [Union [str , List [str ]]] = None
67- min : Optional [int ] = None
68- max : Optional [int ] = None
65+ email : Optional [str ]
66+ password : Optional [str ]
67+ bannedWords : Optional [Union [str , List [str ]]]
68+ min : Optional [int ]
69+ max : Optional [int ]
6970
7071class IsValidPwdDetails (BaseModel ):
7172 validation : str
@@ -77,7 +78,7 @@ class IsValidPwdResponse(BaseModel):
7778 details : List [IsValidPwdDetails ]
7879
7980class InputSanitizerData (BaseModel ):
80- input : Optional [str ] = None
81+ input : Optional [str ]
8182
8283class SatinizerFormats (BaseModel ):
8384 ascii : bool
@@ -129,8 +130,8 @@ class SatinizerResponse(BaseModel):
129130 includes : SatinizerIncludes
130131
131132class PrayerTimesData (BaseModel ):
132- lat : Optional [float ] = None
133- lon : Optional [float ] = None
133+ lat : Optional [float ]
134+ lon : Optional [float ]
134135
135136class PrayerTimes (BaseModel ):
136137 coordinates : str
@@ -153,28 +154,28 @@ class PrayerTimesResponse(BaseModel):
153154 prayerTimesByTimezone : List [PrayerTimesByTimezone ]
154155
155156class DataVerifierURL (BaseModel ):
156- valid : Optional [bool ] = None
157- fraud : Optional [bool ] = None
158- freeSubdomain : Optional [bool ] = None
159- customTLD : Optional [bool ] = None
160- url : Optional [str ] = None
161- domain : Optional [str ] = None
162- plugins : Optional [Plugins ] = None
157+ valid : Optional [bool ]
158+ fraud : Optional [bool ]
159+ freeSubdomain : Optional [bool ]
160+ customTLD : Optional [bool ]
161+ url : Optional [str ]
162+ domain : Optional [str ]
163+ plugins : Optional [Plugins ]
163164
164165class DataVerifierEmail (BaseModel ):
165- valid : Optional [bool ] = None
166- fraud : Optional [bool ] = None
167- proxiedEmail : Optional [bool ] = None
168- freeSubdomain : Optional [bool ] = None
169- corporate : Optional [bool ] = None
170- email : Optional [str ] = None
171- realUser : Optional [str ] = None
172- didYouMean : Optional [Union [str , bool ]] = None
173- noReply : Optional [bool ] = None
174- customTLD : Optional [bool ] = None
175- domain : Optional [str ] = None
176- roleAccount : Optional [bool ] = None
177- plugins : Optional [Plugins ] = None
166+ valid : Optional [bool ]
167+ fraud : Optional [bool ]
168+ proxiedEmail : Optional [bool ]
169+ freeSubdomain : Optional [bool ]
170+ corporate : Optional [bool ]
171+ email : Optional [str ]
172+ realUser : Optional [str ]
173+ didYouMean : Optional [Union [str , bool ]]
174+ noReply : Optional [bool ]
175+ customTLD : Optional [bool ]
176+ domain : Optional [str ]
177+ roleAccount : Optional [bool ]
178+ plugins : Optional [Plugins ]
178179
179180class CarrierInfo (BaseModel ):
180181 carrierName : str
@@ -183,96 +184,96 @@ class CarrierInfo(BaseModel):
183184 carrierCountryCode : str
184185
185186class DataVerifierPhone (BaseModel ):
186- valid : Optional [bool ] = None
187- fraud : Optional [bool ] = None
188- phone : Optional [str ] = None
189- prefix : Optional [str ] = None
190- number : Optional [str ] = None
187+ valid : Optional [bool ]
188+ fraud : Optional [bool ]
189+ phone : Optional [str ]
190+ prefix : Optional [str ]
191+ number : Optional [str ]
191192 lineType : Literal [
192193 "PREMIUM_RATE" , "TOLL_FREE" , "SHARED_COST" , "VOIP" , "PERSONAL_NUMBER" ,
193194 "PAGER" , "UAN" , "VOICEMAIL" , "FIXED_LINE_OR_MOBILE" , "FIXED_LINE" ,
194195 "MOBILE" , "Unknown"
195196 ]
196- carrierInfo : Optional [CarrierInfo ] = None
197- country : Optional [str ] = None
198- countryCode : Optional [str ] = None
199- plugins : Optional [Plugins ] = None
197+ carrierInfo : Optional [CarrierInfo ]
198+ country : Optional [str ]
199+ countryCode : Optional [str ]
200+ plugins : Optional [Plugins ]
200201
201202class DataVerifierDomain (BaseModel ):
202- valid : Optional [bool ] = None
203- fraud : Optional [bool ] = None
204- freeSubdomain : Optional [bool ] = None
205- customTLD : Optional [bool ] = None
206- domain : Optional [str ] = None
207- plugins : Optional [Plugins ] = None
203+ valid : Optional [bool ]
204+ fraud : Optional [bool ]
205+ freeSubdomain : Optional [bool ]
206+ customTLD : Optional [bool ]
207+ domain : Optional [str ]
208+ plugins : Optional [Plugins ]
208209
209210class DataVerifierCreditCard (BaseModel ):
210- valid : Optional [bool ] = None
211- fraud : Optional [bool ] = None
212- test : Optional [bool ] = None
213- type : Optional [str ] = None
214- creditCard : Optional [str ] = None
215- plugins : Optional [Plugins ] = None
211+ valid : Optional [bool ]
212+ fraud : Optional [bool ]
213+ test : Optional [bool ]
214+ type : Optional [str ]
215+ creditCard : Optional [str ]
216+ plugins : Optional [Plugins ]
216217
217218class DataVerifierIp (BaseModel ):
218219 valid : bool
219- type : Optional [str ] = None
220- _class : Optional [str ] = None
221- fraud : Optional [bool ] = None
222- ip : Optional [str ] = None
223- continent : Optional [str ] = None
224- continentCode : Optional [str ] = None
225- country : Optional [str ] = None
226- countryCode : Optional [str ] = None
227- region : Optional [str ] = None
228- regionName : Optional [str ] = None
229- city : Optional [str ] = None
230- district : Optional [str ] = None
231- zipCode : Optional [str ] = None
232- lat : Optional [float ] = None
233- lon : Optional [float ] = None
234- timezone : Optional [str ] = None
235- offset : Optional [float | str ] = None
236- currency : Optional [str ] = None
237- isp : Optional [str ] = None
238- org : Optional [str ] = None
239- _as : Optional [str ] = None
240- asname : Optional [str ] = None
241- mobile : Optional [bool | str ] = None
242- proxy : Optional [bool | str ] = None
243- hosting : Optional [bool | str ] = None
244- plugins : Optional [Plugins ] = None
220+ type : Optional [str ]
221+ _class : Optional [str ]
222+ fraud : Optional [bool ]
223+ ip : Optional [str ]
224+ continent : Optional [str ]
225+ continentCode : Optional [str ]
226+ country : Optional [str ]
227+ countryCode : Optional [str ]
228+ region : Optional [str ]
229+ regionName : Optional [str ]
230+ city : Optional [str ]
231+ district : Optional [str ]
232+ zipCode : Optional [str ]
233+ lat : Optional [float ]
234+ lon : Optional [float ]
235+ timezone : Optional [str ]
236+ offset : Optional [float | str ]
237+ currency : Optional [str ]
238+ isp : Optional [str ]
239+ org : Optional [str ]
240+ _as : Optional [str ]
241+ asname : Optional [str ]
242+ mobile : Optional [bool | str ]
243+ proxy : Optional [bool | str ]
244+ hosting : Optional [bool | str ]
245+ plugins : Optional [Plugins ]
245246
246247class DataVerifierDevice (BaseModel ):
247- type : Optional [str ] = None
248- brand : Optional [str ] = None
248+ type : Optional [str ]
249+ brand : Optional [str ]
249250
250251class DataVerifierUserAgent (BaseModel ):
251252 valid : bool
252- type : Optional [str ] = None
253- clientSlug : Optional [str ] = None
254- clientName : Optional [str ] = None
255- version : Optional [str ] = None
256- userAgent : Optional [str ] = None
257- fraud : Optional [bool ] = None
258- bot : Optional [bool ] = None
259- info : Optional [str ] = None
260- os : Optional [str ] = None
253+ type : Optional [str ]
254+ clientSlug : Optional [str ]
255+ clientName : Optional [str ]
256+ version : Optional [str ]
257+ userAgent : Optional [str ]
258+ fraud : Optional [bool ]
259+ bot : Optional [bool ]
260+ info : Optional [str ]
261+ os : Optional [str ]
261262 device : DataVerifierDevice
262- plugins : Optional [Dict [str , Any ]] = None
263+ plugins : Optional [Dict [str , Any ]]
263264
264265class DataVerifierIBAN (BaseModel ):
265266 valid : bool
266- fraud : Optional [bool ] = None
267- iban : Optional [str ] = None
268- bban : Optional [str ] = None
267+ fraud : Optional [bool ]
268+ iban : Optional [str ]
269+ bban : Optional [str ]
269270 bic : Optional [str ] = "unknown"
270- country : Optional [str ] = None
271- countryCode : Optional [str ] = None
272- accountNumber : Optional [str ] = None
273- branchIdentifier : Optional [str ] = None
274- bankIdentifier : Optional [str ] = None
275- plugins : Optional [Dict [str , Any ]] = None
271+ country : Optional [str ]
272+ countryCode : Optional [str ]
273+ accountNumber : Optional [str ]
274+ branchIdentifier : Optional [str ]
275+ bankIdentifier : Optional [str ]
276+ plugins : Optional [Dict [str , Any ]]
276277
277278class DataVerifierResponse (BaseModel ):
278279 url : Optional [DataVerifierURL ]
@@ -287,23 +288,38 @@ class DataVerifierResponse(BaseModel):
287288class SRNG (BaseModel ):
288289 min : int
289290 max : int
290- quantity : Optional [int ] = None
291+ quantity : Optional [int ]
291292
292293class SRNGResponse (BaseModel ):
293294 values : List [Dict [str , Union [int , float ]]]
294295 executionTime : Union [int , float ]
295296
296297class SendEmailResponse (BaseModel ):
297298 status : Union [bool , str ]
298- error : Optional [str ] = None
299- warning : Optional [str ] = None
299+ error : Optional [str ]
300+ warning : Optional [str ]
300301
301302class EmailStatus (BaseModel ):
302303 status : bool
303- error : Optional [str ] = None
304-
305- class ExtractWithTextlyResponse (BaseModel ):
306- __root__ : Any
304+ error : Optional [str ]
305+
306+ class JsonSchemaProperty (BaseModel ):
307+ type : Literal ["string" , "number" , "boolean" , "array" , "object" ]
308+ items : Optional [JsonSchemaProperty ]
309+ properties : Optional [Dict [str , JsonSchemaProperty ]]
310+ required : Optional [List [str ]]
311+ description : Optional [str ]
312+ format : Optional [str ]
313+ enum : Optional [List [Any ]]
314+ minimum : Optional [float ]
315+ maximum : Optional [float ]
316+ minLength : Optional [int ]
317+ maxLength : Optional [int ]
318+ pattern : Optional [str ]
319+
320+ class Textly (BaseModel ):
321+ data : str = Field (..., description = "Input text" )
322+ format : Dict [str , JsonSchemaProperty ] = Field (..., description = "Output schema" )
307323
308324class TextlyResponse (BaseModel ):
309325 __root__ : Any
0 commit comments