"""Access-Control==============The following methods allow for interaction into theTenable Vulnerability Management API endpoints.Methods available on ``tio.v3.access_control``:.. rst-class:: hide-signature.. autoclass:: AccessControlAPI :members:"""fromuuidimportUUIDfromtypingimportDict,Listfromtenable.io.baseimportTIOEndpoint
[docs]defdetails(self,uuid:UUID)->Dict:""" Retrieves the details of the specified permission. :devportal:`access-control: details <io-v3-access-control-permissions-details>` Args: uuid (str): the uuid of the permission to retrieve Returns: :obj:`dict`: The resource record for the specified permission Examples: Get specific permission details: >>> tio.access_control.details( ... '4f948c22-ae2c-4d0b-bab4-0fc1088a85bd' ... ) """returnself._get(f'permissions/{uuid}')
[docs]defget_user_permission(self,user_uuid:UUID)->Dict:""" Retrieves user permission details :devportal:`access-control: user permission <io-v3-access-control-permissions-user-list>` Args: user_uuid (str): the uuid of the user to retrieve Returns: :obj:`dict`: The resource record for the user permissions Examples: Get specific user permission details: >>> tio.access_control.get_user_permission( ... '4f948c22-ae2c-4d0b-bab4-0fc1088a85bd' ... ) """returnself._get(f'permissions/users/{user_uuid}')
[docs]defget_user_group_permission(self,user_group_uuid:UUID)->Dict:""" Retrieves user group permission details :devportal:`access-control : user group permission <io-v3-access-control-permissions-user-group-list>` Args: user_group_uuid (str): the uuid of the user-group to retrieve Returns: :obj:`dict`: The resource record for the user-group permission Examples: Get specific user-group permission details: >>> tio.access_control.get_user_group_permission( ... '4f948c22-ae2c-4d0b-bab4-0fc1088a85bd' ... ) """returnself._get(f'permissions/user-groups/{user_group_uuid}')
[docs]defget_current_user_permission(self)->Dict:""" Retrieves current user permission details :devportal:`access-control : current user permission <io-v3-access-control-permissions-current-user-list>` Returns: :obj:`dict`: The resource record for the current user permission. Examples: Get specific user-group permission details: >>> tio.access_control.get_current_user_permission( ... '4f948c22-ae2c-4d0b-bab4-0fc1088a85bd' ... ) """returnself._get('permissions/users/me')
[docs]defdelete(self,permission_uuid:UUID)->Dict:""" Delete the specified permission :devportal:`access-control: delete <io-v3-access-control-permission-delete>` Args: permission_uuid (str): the uuid of the permission to remove Returns: :obj:`dict`: Examples: >>> tio.access_control.delete( ... '4f948c22-ae2c-4d0b-bab4-0fc1088a85bd' ... ) """returnself._delete(f'permissions/{permission_uuid}')
[docs]defcreate(self,permission:Dict)->Dict:""" Creates a new permission :devportal:`access-control: create <io-v3-access-control-permission-create>` Args: permission(dict): the permission details object that needs to be created, Returns: :obj:`dict`: The resource record for the new permission. Example: >>> permission = { ... "actions": ["CanView","CanEdit"], ... "objects": [ ... { ... "type": "Tag", ... "uuid": "10bd7477-2961-402c-92fb-d7f6a8dc9399", ... "name": "TGG,DE" ... } ... ], ... "subjects": [ ... { ... "name": "dummy_user@tenable.com", ... "type": "User", ... "uuid": "4f948c212-ae2c-4d0b-bab4-0fc1088a85bd" ... } ... ], ... "name": "permission name" ... } ... ... tio.access_control.create(permission) """returnself._post('permissions',json=permission)
[docs]deflist(self)->List:""" Returns a list of permissions in your container. Returns: :obj:`list`: List of permissions. Examples: >>> for permission in tio.access_control.list(): ... pprint(permission) """returnself._get('permissions').permissions