@@ -194,3 +194,102 @@ class KmsKeyEncryptDataResponse(BaseModel):
194194class KmsKeyDecryptDataResponse (BaseModel ):
195195 """Response model for decrypt data API"""
196196 plaintext : str
197+
198+ @dataclass
199+ class CreateFolderResponseItem (BaseModel ):
200+ """Folder model with path for create response"""
201+ id : str
202+ name : str
203+ createdAt : str
204+ updatedAt : str
205+ envId : str
206+ path : str
207+ version : Optional [int ] = 1
208+ parentId : Optional [str ] = None
209+ isReserved : Optional [bool ] = False
210+ description : Optional [str ] = None
211+ lastSecretModified : Optional [str ] = None
212+
213+ @dataclass
214+ class CreateFolderResponse (BaseModel ):
215+ """Response model for create folder API"""
216+ folder : CreateFolderResponseItem
217+
218+ @classmethod
219+ def from_dict (cls , data : Dict ) -> 'CreateFolderResponse' :
220+ return cls (
221+ folder = CreateFolderResponseItem .from_dict (data ['folder' ]),
222+ )
223+
224+
225+ @dataclass
226+ class ListFoldersResponseItem (BaseModel ):
227+ """Response model for list folders API"""
228+ id : str
229+ name : str
230+ createdAt : str
231+ updatedAt : str
232+ envId : str
233+ version : Optional [int ] = 1
234+ parentId : Optional [str ] = None
235+ isReserved : Optional [bool ] = False
236+ description : Optional [str ] = None
237+ lastSecretModified : Optional [str ] = None
238+ relativePath : Optional [str ] = None
239+
240+
241+ @dataclass
242+ class ListFoldersResponse (BaseModel ):
243+ """Complete response model for folders API"""
244+ folders : List [ListFoldersResponseItem ]
245+
246+ @classmethod
247+ def from_dict (cls , data : Dict ) -> 'ListFoldersResponse' :
248+ """Create model from dictionary with camelCase keys, handling nested objects"""
249+ return cls (
250+ folders = [ListFoldersResponseItem .from_dict (folder ) for folder in data ['folders' ]]
251+ )
252+
253+
254+ @dataclass
255+ class Environment (BaseModel ):
256+ """Environment model"""
257+ envId : str
258+ envName : str
259+ envSlug : str
260+
261+ @dataclass
262+ class SingleFolderResponseItem (BaseModel ):
263+ """Response model for get folder API"""
264+ id : str
265+ name : str
266+ createdAt : str
267+ updatedAt : str
268+ envId : str
269+ path : str
270+ projectId : str
271+ environment : Environment
272+ version : Optional [int ] = 1
273+ parentId : Optional [str ] = None
274+ isReserved : Optional [bool ] = False
275+ description : Optional [str ] = None
276+ lastSecretModified : Optional [str ] = None
277+
278+ @classmethod
279+ def from_dict (cls , data : Dict ) -> 'SingleFolderResponseItem' :
280+ """Create model from dictionary with nested Environment"""
281+ folder_data = data .copy ()
282+ folder_data ['environment' ] = Environment .from_dict (data ['environment' ])
283+
284+ return super ().from_dict (folder_data )
285+
286+ @dataclass
287+ class SingleFolderResponse (BaseModel ):
288+ """Response model for get/create folder API"""
289+ folder : SingleFolderResponseItem
290+
291+ @classmethod
292+ def from_dict (cls , data : Dict ) -> 'SingleFolderResponse' :
293+ return cls (
294+ folder = SingleFolderResponseItem .from_dict (data ['folder' ]),
295+ )
0 commit comments