Skip to content

Commit da24b72

Browse files
committed
Add build script
1 parent 6b4675b commit da24b72

File tree

5 files changed

+90
-324
lines changed

5 files changed

+90
-324
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ https://smithy.io/2.0/index.html
1313
Modify the model in ./smithy then run
1414

1515
```bash
16-
./build-openapi.sh && ./build-types.sh --all
16+
./build.sh
1717
```
1818

1919

build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
./build-openapi.sh && ./build-types.sh --all

python/api_model/types/models.py

Lines changed: 46 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from __future__ import annotations
55

66
from enum import Enum
7-
from typing import Any, List, Optional
7+
from typing import Any, Dict, List, Optional
88

99
from pydantic import BaseModel, Field, RootModel
1010

@@ -37,6 +37,10 @@ class SharedUser(RootModel[str]):
3737
root: str = Field(..., pattern='^[A-Za-z0-9-]+$')
3838

3939

40+
class SharedEmail(RootModel[str]):
41+
root: str = Field(..., pattern='^[\\w-\\.]+@[\\w-\\.]+\\.+[\\w-]{1,63}$')
42+
43+
4044
class ContractType(Enum):
4145
recording = 'recording'
4246
publishing = 'publishing'
@@ -61,10 +65,6 @@ class DeleteContractResponseContent(BaseModel):
6165
success: bool
6266

6367

64-
class DeleteContractSignatureRequestContent(BaseModel):
65-
contractId: str
66-
67-
6868
class FixedTermValue(BaseModel):
6969
unit: str
7070
value: str
@@ -90,10 +90,6 @@ class GetContractRequestContent(BaseModel):
9090
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
9191

9292

93-
class GetContractSignaturesRequestContent(BaseModel):
94-
contractId: str
95-
96-
9793
class GetProfilePictureRequestContent(BaseModel):
9894
userId: Optional[str] = Field(None, pattern='^[A-Za-z0-9-]+$')
9995

@@ -121,6 +117,10 @@ class GetSpecialContractResponseContent(BaseModel):
121117
sharedWith: List[SharedWithItem]
122118

123119

120+
class GetTTSURLsRequestContent(BaseModel):
121+
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
122+
123+
124124
class GetUploadURLRequestContent(BaseModel):
125125
name: str
126126

@@ -156,27 +156,40 @@ class ResourceNotFoundErrorResponseContent(BaseModel):
156156
message: str
157157

158158

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+
159167
class ShareContractRequestContent(BaseModel):
160168
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}$')
163183

164184

165185
class SharedUserDetails(BaseModel):
166186
userId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
167-
email: str
187+
email: str = Field(..., pattern='^[\\w-\\.]+@[\\w-\\.]+\\.+[\\w-]{1,63}$')
168188
sharedTime: float
169189

170190

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
180193

181194

182195
class Term(BaseModel):
@@ -212,16 +225,6 @@ class UpdateProfileResponseContent(BaseModel):
212225
updatedFields: Optional[List[str]] = None
213226

214227

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-
225228
class UploadProfilePictureRequestContent(BaseModel):
226229
image: Optional[str] = None
227230
userId: Optional[str] = Field(None, pattern='^[A-Za-z0-9-]+$')
@@ -237,7 +240,9 @@ class UserProfile(BaseModel):
237240
firstName: Optional[str] = None
238241
lastName: Optional[str] = None
239242
displayName: Optional[str] = None
240-
email: Optional[str] = None
243+
email: Optional[str] = Field(
244+
None, pattern='^[\\w-\\.]+@[\\w-\\.]+\\.+[\\w-]{1,63}$'
245+
)
241246
accountType: Optional[AccountType] = None
242247
bio: Optional[str] = None
243248

@@ -246,12 +251,6 @@ class ValidationErrorResponseContent(BaseModel):
246251
message: str
247252

248253

249-
class ContractSignature(BaseModel):
250-
userId: Optional[str] = None
251-
status: Optional[SignatureStatus] = None
252-
timestamp: Optional[float] = None
253-
254-
255254
class ContractSummaryItem(BaseModel):
256255
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
257256
name: str
@@ -262,7 +261,7 @@ class ContractSummaryItem(BaseModel):
262261
ownerId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
263262
sharedWith: Optional[List[SharedWithItem]] = None
264263
sharedUsers: Optional[List[SharedUser]] = None
265-
sharedEmails: Optional[List[str]] = None
264+
sharedEmails: Optional[List[SharedEmail]] = None
266265

267266

268267
class ContractVariable(BaseModel):
@@ -279,11 +278,6 @@ class ContractVariable(BaseModel):
279278
definitionCitation: Optional[str] = None
280279

281280

282-
class DeleteContractSignatureResponseContent(BaseModel):
283-
result: Optional[SignContractResult] = None
284-
message: Optional[str] = None
285-
286-
287281
class ExposeTypesResponseContent(BaseModel):
288282
QASectionsList: Optional[List[QASection]] = None
289283
ContractVariable_1: Optional[ContractVariable] = Field(
@@ -305,16 +299,16 @@ class GetContractResponseContent(BaseModel):
305299
sharedWith: List[SharedWithItem]
306300

307301

308-
class GetContractSignaturesResponseContent(BaseModel):
309-
contractId: Optional[str] = None
310-
signatures: Optional[List[ContractSignature]] = None
311-
312-
313302
class GetProfileResponseContent(BaseModel):
314303
userId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
315304
profile: UserProfile
316305

317306

307+
class GetTTSURLsResponseContent(BaseModel):
308+
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
309+
tts_presigned_urls: TTSPresignedUrlMap
310+
311+
318312
class GetUploadURLResponseContent(BaseModel):
319313
url_info: PresignedPostData
320314

@@ -333,16 +327,6 @@ class ShareContractResponseContent(BaseModel):
333327
success: bool
334328
contractId: str = Field(..., pattern='^[A-Za-z0-9-]+$')
335329
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

typescript/src/index.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,25 @@ type SchemaNames = keyof components['schemas'];
1212
type ExtractSchema<K extends SchemaNames> = components['schemas'][K];
1313

1414
export type AuthenticationErrorResponseContent = ExtractSchema<'AuthenticationErrorResponseContent'>
15-
export type ContractSignature = ExtractSchema<'ContractSignature'>
1615
export type ContractSummaryItem = ExtractSchema<'ContractSummaryItem'>
1716
export type ContractVariable = ExtractSchema<'ContractVariable'>
1817
export type DeleteContractRequestContent = ExtractSchema<'DeleteContractRequestContent'>
1918
export type DeleteContractResponseContent = ExtractSchema<'DeleteContractResponseContent'>
20-
export type DeleteContractSignatureRequestContent = ExtractSchema<'DeleteContractSignatureRequestContent'>
21-
export type DeleteContractSignatureResponseContent = ExtractSchema<'DeleteContractSignatureResponseContent'>
2219
export type ExposeTypesResponseContent = ExtractSchema<'ExposeTypesResponseContent'>
2320
export type FixedTermValue = ExtractSchema<'FixedTermValue'>
2421
export type FixedValueTermInference = ExtractSchema<'FixedValueTermInference'>
2522
export type GetContractReadURLRequestContent = ExtractSchema<'GetContractReadURLRequestContent'>
2623
export type GetContractReadURLResponseContent = ExtractSchema<'GetContractReadURLResponseContent'>
2724
export type GetContractRequestContent = ExtractSchema<'GetContractRequestContent'>
2825
export type GetContractResponseContent = ExtractSchema<'GetContractResponseContent'>
29-
export type GetContractSignaturesRequestContent = ExtractSchema<'GetContractSignaturesRequestContent'>
30-
export type GetContractSignaturesResponseContent = ExtractSchema<'GetContractSignaturesResponseContent'>
3126
export type GetProfilePictureRequestContent = ExtractSchema<'GetProfilePictureRequestContent'>
3227
export type GetProfilePictureResponseContent = ExtractSchema<'GetProfilePictureResponseContent'>
3328
export type GetProfileRequestContent = ExtractSchema<'GetProfileRequestContent'>
3429
export type GetProfileResponseContent = ExtractSchema<'GetProfileResponseContent'>
3530
export type GetSpecialContractRequestContent = ExtractSchema<'GetSpecialContractRequestContent'>
3631
export type GetSpecialContractResponseContent = ExtractSchema<'GetSpecialContractResponseContent'>
32+
export type GetTTSURLsRequestContent = ExtractSchema<'GetTTSURLsRequestContent'>
33+
export type GetTTSURLsResponseContent = ExtractSchema<'GetTTSURLsResponseContent'>
3734
export type GetUploadURLRequestContent = ExtractSchema<'GetUploadURLRequestContent'>
3835
export type GetUploadURLResponseContent = ExtractSchema<'GetUploadURLResponseContent'>
3936
export type InternalServerErrorResponseContent = ExtractSchema<'InternalServerErrorResponseContent'>
@@ -48,15 +45,12 @@ export type ResourceNotFoundErrorResponseContent = ExtractSchema<'ResourceNotFou
4845
export type ShareContractRequestContent = ExtractSchema<'ShareContractRequestContent'>
4946
export type ShareContractResponseContent = ExtractSchema<'ShareContractResponseContent'>
5047
export type SharedUserDetails = ExtractSchema<'SharedUserDetails'>
51-
export type SignContractRequestContent = ExtractSchema<'SignContractRequestContent'>
52-
export type SignContractResponseContent = ExtractSchema<'SignContractResponseContent'>
48+
export type TTSPresignedUrlMap = ExtractSchema<'TTSPresignedUrlMap'>
5349
export type Term = ExtractSchema<'Term'>
5450
export type UpdateContractRequestContent = ExtractSchema<'UpdateContractRequestContent'>
5551
export type UpdateContractResponseContent = ExtractSchema<'UpdateContractResponseContent'>
5652
export type UpdateProfileRequestContent = ExtractSchema<'UpdateProfileRequestContent'>
5753
export type UpdateProfileResponseContent = ExtractSchema<'UpdateProfileResponseContent'>
58-
export type UpdateSignatureStatusRequestContent = ExtractSchema<'UpdateSignatureStatusRequestContent'>
59-
export type UpdateSignatureStatusResponseContent = ExtractSchema<'UpdateSignatureStatusResponseContent'>
6054
export type UploadProfilePictureRequestContent = ExtractSchema<'UploadProfilePictureRequestContent'>
6155
export type UploadProfilePictureResponseContent = ExtractSchema<'UploadProfilePictureResponseContent'>
6256
export type UserProfile = ExtractSchema<'UserProfile'>

0 commit comments

Comments
 (0)