4
4
from __future__ import annotations
5
5
6
6
from enum import Enum
7
- from typing import Any , List , Optional
7
+ from typing import Any , Dict , List , Optional
8
8
9
9
from pydantic import BaseModel , Field , RootModel
10
10
@@ -37,6 +37,10 @@ class SharedUser(RootModel[str]):
37
37
root : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
38
38
39
39
40
+ class SharedEmail (RootModel [str ]):
41
+ root : str = Field (..., pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$' )
42
+
43
+
40
44
class ContractType (Enum ):
41
45
recording = 'recording'
42
46
publishing = 'publishing'
@@ -61,10 +65,6 @@ class DeleteContractResponseContent(BaseModel):
61
65
success : bool
62
66
63
67
64
- class DeleteContractSignatureRequestContent (BaseModel ):
65
- contractId : str
66
-
67
-
68
68
class FixedTermValue (BaseModel ):
69
69
unit : str
70
70
value : str
@@ -90,10 +90,6 @@ class GetContractRequestContent(BaseModel):
90
90
contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
91
91
92
92
93
- class GetContractSignaturesRequestContent (BaseModel ):
94
- contractId : str
95
-
96
-
97
93
class GetProfilePictureRequestContent (BaseModel ):
98
94
userId : Optional [str ] = Field (None , pattern = '^[A-Za-z0-9-]+$' )
99
95
@@ -121,6 +117,10 @@ class GetSpecialContractResponseContent(BaseModel):
121
117
sharedWith : List [SharedWithItem ]
122
118
123
119
120
+ class GetTTSURLsRequestContent (BaseModel ):
121
+ contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
122
+
123
+
124
124
class GetUploadURLRequestContent (BaseModel ):
125
125
name : str
126
126
@@ -156,27 +156,40 @@ class ResourceNotFoundErrorResponseContent(BaseModel):
156
156
message : str
157
157
158
158
159
+ class EmailsToAddItem (RootModel [str ]):
160
+ root : str = Field (..., pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$' )
161
+
162
+
163
+ class EmailsToRemoveItem (RootModel [str ]):
164
+ root : str = Field (..., pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$' )
165
+
166
+
159
167
class ShareContractRequestContent (BaseModel ):
160
168
contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
161
- emailsToAdd : Optional [List [str ]] = None
162
- emailsToRemove : Optional [List [str ]] = None
169
+ emailsToAdd : Optional [List [EmailsToAddItem ]] = None
170
+ emailsToRemove : Optional [List [EmailsToRemoveItem ]] = None
171
+
172
+
173
+ class AddedItem (RootModel [str ]):
174
+ root : str = Field (..., pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$' )
175
+
176
+
177
+ class RemovedItem (RootModel [str ]):
178
+ root : str = Field (..., pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$' )
179
+
180
+
181
+ class InvalidRemove (RootModel [str ]):
182
+ root : str = Field (..., pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$' )
163
183
164
184
165
185
class SharedUserDetails (BaseModel ):
166
186
userId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
167
- email : str
187
+ email : str = Field (..., pattern = '^[ \\ w- \\ .]+@[ \\ w- \\ .]+ \\ .+[ \\ w-]{1,63}$' )
168
188
sharedTime : float
169
189
170
190
171
- class SignContractResult (Enum ):
172
- SUCCESS = 'SUCCESS'
173
- FAILURE = 'FAILURE'
174
-
175
-
176
- class SignatureStatus (Enum ):
177
- signed = 'signed'
178
- declined = 'declined'
179
- pending = 'pending'
191
+ class TTSPresignedUrlMap (RootModel [Optional [Dict [str , str ]]]):
192
+ root : Optional [Dict [str , str ]] = None
180
193
181
194
182
195
class Term (BaseModel ):
@@ -212,16 +225,6 @@ class UpdateProfileResponseContent(BaseModel):
212
225
updatedFields : Optional [List [str ]] = None
213
226
214
227
215
- class UpdateSignatureStatusRequestContent (BaseModel ):
216
- contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
217
- status : SignatureStatus
218
-
219
-
220
- class UpdateSignatureStatusResponseContent (BaseModel ):
221
- result : SignContractResult
222
- message : str
223
-
224
-
225
228
class UploadProfilePictureRequestContent (BaseModel ):
226
229
image : Optional [str ] = None
227
230
userId : Optional [str ] = Field (None , pattern = '^[A-Za-z0-9-]+$' )
@@ -237,7 +240,9 @@ class UserProfile(BaseModel):
237
240
firstName : Optional [str ] = None
238
241
lastName : Optional [str ] = None
239
242
displayName : Optional [str ] = None
240
- email : Optional [str ] = None
243
+ email : Optional [str ] = Field (
244
+ None , pattern = '^[\\ w-\\ .]+@[\\ w-\\ .]+\\ .+[\\ w-]{1,63}$'
245
+ )
241
246
accountType : Optional [AccountType ] = None
242
247
bio : Optional [str ] = None
243
248
@@ -246,12 +251,6 @@ class ValidationErrorResponseContent(BaseModel):
246
251
message : str
247
252
248
253
249
- class ContractSignature (BaseModel ):
250
- userId : Optional [str ] = None
251
- status : Optional [SignatureStatus ] = None
252
- timestamp : Optional [float ] = None
253
-
254
-
255
254
class ContractSummaryItem (BaseModel ):
256
255
contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
257
256
name : str
@@ -262,7 +261,7 @@ class ContractSummaryItem(BaseModel):
262
261
ownerId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
263
262
sharedWith : Optional [List [SharedWithItem ]] = None
264
263
sharedUsers : Optional [List [SharedUser ]] = None
265
- sharedEmails : Optional [List [str ]] = None
264
+ sharedEmails : Optional [List [SharedEmail ]] = None
266
265
267
266
268
267
class ContractVariable (BaseModel ):
@@ -279,11 +278,6 @@ class ContractVariable(BaseModel):
279
278
definitionCitation : Optional [str ] = None
280
279
281
280
282
- class DeleteContractSignatureResponseContent (BaseModel ):
283
- result : Optional [SignContractResult ] = None
284
- message : Optional [str ] = None
285
-
286
-
287
281
class ExposeTypesResponseContent (BaseModel ):
288
282
QASectionsList : Optional [List [QASection ]] = None
289
283
ContractVariable_1 : Optional [ContractVariable ] = Field (
@@ -305,16 +299,16 @@ class GetContractResponseContent(BaseModel):
305
299
sharedWith : List [SharedWithItem ]
306
300
307
301
308
- class GetContractSignaturesResponseContent (BaseModel ):
309
- contractId : Optional [str ] = None
310
- signatures : Optional [List [ContractSignature ]] = None
311
-
312
-
313
302
class GetProfileResponseContent (BaseModel ):
314
303
userId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
315
304
profile : UserProfile
316
305
317
306
307
+ class GetTTSURLsResponseContent (BaseModel ):
308
+ contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
309
+ tts_presigned_urls : TTSPresignedUrlMap
310
+
311
+
318
312
class GetUploadURLResponseContent (BaseModel ):
319
313
url_info : PresignedPostData
320
314
@@ -333,16 +327,6 @@ class ShareContractResponseContent(BaseModel):
333
327
success : bool
334
328
contractId : str = Field (..., pattern = '^[A-Za-z0-9-]+$' )
335
329
sharedWith : List [SharedUserDetails ]
336
- added : Optional [List [str ]] = None
337
- removed : Optional [List [str ]] = None
338
- invalidRemoves : Optional [List [str ]] = None
339
-
340
-
341
- class SignContractRequestContent (BaseModel ):
342
- contractId : str
343
- status : SignatureStatus
344
-
345
-
346
- class SignContractResponseContent (BaseModel ):
347
- result : SignContractResult
348
- message : Optional [str ] = None
330
+ added : Optional [List [AddedItem ]] = None
331
+ removed : Optional [List [RemovedItem ]] = None
332
+ invalidRemoves : Optional [List [InvalidRemove ]] = None
0 commit comments