66from .group import Group
77from .humbug import Humbug
88from .journal import Journal
9+ from .resource import Resource
910from .user import User
1011from .settings import BUGOUT_BROOD_URL , BUGOUT_SPIRE_URL , REQUESTS_TIMEOUT
1112
@@ -29,6 +30,7 @@ def __init__(
2930 self .group = Group (self .brood_api_url )
3031 self .humbug = Humbug (self .spire_api_url )
3132 self .journal = Journal (self .spire_api_url )
33+ self .resource = Resource (self .brood_api_url )
3234
3335 @property
3436 def brood_url (self ):
@@ -293,6 +295,87 @@ def delete_group(
293295 self .group .timeout = timeout
294296 return self .group .delete_group (token = token , group_id = group_id )
295297
298+ # Application handlers
299+ def create_application (
300+ self ,
301+ token : Union [str , uuid .UUID ],
302+ name : str ,
303+ description : str ,
304+ group_id : Union [str , uuid .UUID ],
305+ timeout : float = REQUESTS_TIMEOUT ,
306+ ) -> data .BugoutApplication :
307+ self .group .timeout = timeout
308+ return self .group .create_application (
309+ token = token , name = name , description = description , group_id = group_id
310+ )
311+
312+ def get_application (
313+ self ,
314+ token : Union [str , uuid .UUID ],
315+ application_id : Union [str , uuid .UUID ],
316+ timeout : float = REQUESTS_TIMEOUT ,
317+ ) -> data .BugoutApplication :
318+ self .group .timeout = timeout
319+ return self .group .get_application (token = token , application_id = application_id )
320+
321+ def list_applications (
322+ self ,
323+ token : Union [str , uuid .UUID ],
324+ group_id : Optional [Union [str , uuid .UUID ]] = None ,
325+ timeout : float = REQUESTS_TIMEOUT ,
326+ ) -> data .BugoutApplications :
327+ self .group .timeout = timeout
328+ return self .group .list_applications (token = token , group_id = group_id )
329+
330+ def delete_application (
331+ self ,
332+ token : Union [str , uuid .UUID ],
333+ application_id : Union [str , uuid .UUID ],
334+ timeout : float = REQUESTS_TIMEOUT ,
335+ ) -> data .BugoutApplication :
336+ self .group .timeout = timeout
337+ return self .group .delete_application (token = token , application_id = application_id )
338+
339+ # Resource handlers
340+ def create_resource (
341+ self ,
342+ token : Union [str , uuid .UUID ],
343+ application_id : Union [str , uuid .UUID ],
344+ resource_data : Dict [str , Any ],
345+ timeout : float = REQUESTS_TIMEOUT ,
346+ ) -> data .BugoutResource :
347+ self .resource .timeout = timeout
348+ return self .resource .create_resource (
349+ token = token , application_id = application_id , resource_data = resource_data
350+ )
351+
352+ def get_resource (
353+ self ,
354+ token : Union [str , uuid .UUID ],
355+ resource_id : Union [str , uuid .UUID ],
356+ timeout : float = REQUESTS_TIMEOUT ,
357+ ) -> data .BugoutResource :
358+ self .resource .timeout = timeout
359+ return self .resource .get_resource (token = token , resource_id = resource_id )
360+
361+ def list_resources (
362+ self ,
363+ token : Union [str , uuid .UUID ],
364+ params : Optional [Dict [str , Any ]] = None ,
365+ timeout : float = REQUESTS_TIMEOUT ,
366+ ) -> data .BugoutResources :
367+ self .resource .timeout = timeout
368+ return self .resource .list_resources (token = token , params = params )
369+
370+ def delete_resource (
371+ self ,
372+ token : Union [str , uuid .UUID ],
373+ resource_id : Union [str , uuid .UUID ],
374+ timeout : float = REQUESTS_TIMEOUT ,
375+ ) -> data .BugoutResource :
376+ self .resource .timeout = timeout
377+ return self .resource .delete_resource (token = token , resource_id = resource_id )
378+
296379 # Journal scopes handlers
297380 def list_scopes (
298381 self , token : Union [str , uuid .UUID ], api : str , timeout : float = REQUESTS_TIMEOUT
0 commit comments