Source code for tenable.ad.score.api

'''
Score
=====

Methods described in this section relate to the score API.
These methods can be accessed at ``TenableAD.score``.

.. rst-class:: hide-signature
.. autoclass:: ScoreAPI
    :members:
'''
from typing import List, Dict
from tenable.ad.score.schema import ScoreSchema
from tenable.base.endpoint import APIEndpoint


[docs]class ScoreAPI(APIEndpoint): _schema = ScoreSchema()
[docs] def list(self, profile_id: str, **kwargs ) -> List[Dict]: ''' Get the list of directories score by profile. Args: Option-1: profile_id (str): The profile instance identifier. directory_ids (optional, List(int)): The list of directory_ids. checker_ids (optional, List(int)): The list of checker_ids. reason_ids (optional, List(int)): The list of reason_ids. Option-2: profile_id (str): The profile instance identifier. directory_ids (optional, str): The directory_id instance identifier. checker_ids (optional, str): The checker_id instance identifier. reason_ids (optional, str): The reason_id instance identifier. Returns: list: List of scores of different directories in the instance. Examples: With single directory_ids, checker_ids, reason_ids >>> tad.score.list(profile_id='1', ... directory_ids='3', ... checker_ids='1', ... reason_ids='1') With multiple directory_ids, checker_ids, reason_ids >>> tad.score.list(profile_id='1', ... directory_ids=[1, 2, 3], ... checker_ids=[1, 2, 3], ... reason_ids=[1, 2, 3]) ''' param = self._schema.dump(self._schema.load({ 'directoryIds': kwargs.get('directory_ids'), 'checkerIds': kwargs.get('checker_ids'), 'reasonIds': kwargs.get('reason_ids') })) return self._schema.load(self._api.get(f'profiles/{profile_id}/scores', params=param), many=True)