Source code for tenable.nessus.groups
'''
Groups
======
Methods described in this section relate to the groups API.
These methods can be accessed at ``Nessus.groups``.
.. rst-class:: hide-signature
.. autoclass:: GroupsAPI
:members:
'''
from tenable.base.endpoint import APIEndpoint
from typing import List, Dict
[docs]class GroupsAPI(APIEndpoint):
_path = 'groups'
[docs] def add_user(self, group_id: int, user_id: int) -> None:
'''
Adds a user to the group
Args:
group_id (int): The group id
user_id (int): The user id
Example:
>>> nessus.groups.add_user(group_id, user_id)
'''
self._post(f'{group_id}/users/{user_id}')
[docs] def create(self, name: str) -> Dict:
'''
Creates a new group
Args:
name (str): The name of the new group
Returns:
Dict:
The new group object
Example:
>>> nessus.groups.create('Example Group')
'''
return self._post(json={'name': name})
[docs] def delete(self, group_id: int) -> None:
'''
Deletes a group
Args:
group_id (int): The id of the group to delete
Example:
>>> nessus.groups.delete(group_id)
'''
self._delete(f'{group_id}')
[docs] def delete_many(self, group_ids: List[int]) -> None:
'''
Deletes many groups
Args:
group_ids (list[int]): The list of group ids to delete
Example:
>>> nessus.groups.delete_many([group_1, group_2, group_3])
'''
self._delete(json={'ids': group_ids})
[docs] def remove_user(self, group_id: int, user_id: int) -> None:
'''
Removes a user from the specified group
Args:
group_id (int): The group to modify
user_id (int): The user to remove
Example:
>>> nessus.groups.remove_user(group_id, user_id)
'''
self._delete(f'{group_id}/users/{user_id}')
[docs] def edit(self, group_id: int, name: str) -> Dict:
'''
Edits the specified group
Args:
group_id (int): The group to edit
name (str): The new name for the group
Returns:
Dict:
The updated group object
Example:
>>> nessus.groups.edit(group_id, name='Updated Name')
'''
return self._put(f'{group_id}', json={'name': name})
[docs] def list(self) -> List[Dict]:
'''
Gets the list of groups
Returns:
List:
List of group objects
Example:
>>> for group in nessus.groups.list():
... print(group)
'''
return self._get()['groups']
[docs] def list_users(self, group_id: int) -> List[Dict]:
'''
Gets the list of users associated to the specified group
Args:
group_id (int): The group to request members for
Returns:
List:
The list of users associated to the group specified.
Example:
>>> for user in nessus.groups.list_users(group_id):
... print(user)
'''
return self._get(f'{group_id}/users')['users']