"""Folders=======The following methods allow for interaction into the Tenable Vulnerability Management:devportal:`folders <folders>` API endpoints.Methods available on ``tio.folders``:.. rst-class:: hide-signature.. autoclass:: FoldersAPI :members:"""fromtenable.utilsimportscrubfrom.baseimportTIOEndpoint
[docs]defcreate(self,name):""" Create a folder. :devportal:`folders: create <folders-create>` Args: name (str): The name of the new folder. Returns: :obj:`int`: The new folder id. Examples: >>> folder = tio.folders.create('New Folder Name') """returnself._api.post('folders',json={'name':str(name)}).json()['id']
[docs]defdelete(self,id):""" Delete a folder. :devportal:`folders: delete <folders-delete>` Args: id (int): The unique identifier for the folder. Returns: :obj:`None` Examples: >>> tio.folders.delete(1) """self._api.delete(f'folders/{scrub(id)}')
[docs]defedit(self,id,name):""" Edit a folder. :devportal:`folders: edit <folders-edit>` Args: id (int): The unique identifier for the folder. name (str): The new name for the folder. Returns: :obj:`None`: The folder was successfully renamed. Examples: >>> tio.folders.edit(1, 'Updated Folder Name') """self._api.put(f'folders/{scrub(id)}',json={'name':str(name)})
[docs]deflist(self):""" Lists the available folders. :devportal:`folders: list <folders-list>` Returns: :obj:`list`: List of folder resource records. Examples: >>> for folder in tio.folders.list(): ... pprint(folder) """returnself._api.get('folders').json()['folders']