Source code for tenable.ad.session

'''
Tenable Identity Exposure session
'''
import warnings
import os

from tenable.base.platform import APIPlatform

from .about import AboutAPI
from .api_keys import APIKeyAPI
from .attack_types.api import AttackTypesAPI
from .category.api import CategoryAPI
from .checker.api import CheckerAPI
from .checker_option.api import CheckerOptionAPI
from .dashboard.api import DashboardAPI
from .directories.api import DirectoriesAPI
from .infrastructure.api import InfrastructureAPI
from .ldap_configuration.api import LDAPConfigurationAPI
from .lockout_policy.api import LockoutPolicyAPI
from .preference.api import PreferenceAPI
from .profiles.api import ProfilesAPI
from .reason.api import ReasonAPI
from .roles.api import RolesAPI
from .saml_configuration.api import SAMLConfigurationAPI
from .score.api import ScoreAPI
from .topology.api import TopologyAPI
from .users.api import UsersAPI
from .widget.api import WidgetsAPI


[docs]class TenableAD(APIPlatform): _env_base = 'TAD' _base_path = 'api' _conv_json = True def _session_auth(self, **kwargs): msg = 'Session Auth isn\'t supported with the Tenable Identity Exposure APIs' warnings.warn(msg) self._log.warning(msg) def _key_auth(self, api_key): self._session.headers.update({ 'X-API-Key': f'{api_key}' }) self._auth_mech = 'keys' def _authenticate(self, **kwargs): kwargs['_key_auth_dict'] = kwargs.get('_key_auth_dict', { 'api_key': kwargs.get('api_key', os.getenv(f'{self._env_base}_API_KEY') ) }) super()._authenticate(**kwargs) @property def about(self): ''' The interface object for the :doc:`Tenable Identity Exposure About APIs <about>`. ''' return AboutAPI(self) @property def api_keys(self): ''' The interface object for the :doc:`Tenable Identity Exposure API-Keys APIs <api_keys>`. ''' return APIKeyAPI(self) @property def attack_types(self): ''' The interface object for the :doc:`Tenable Identity Exposure Attack Types APIs <attack_types>`. ''' return AttackTypesAPI(self) @property def category(self): ''' The interface object for the :doc:`Tenable Identity Exposure Category APIs <category>`. ''' return CategoryAPI(self) @property def checker(self): ''' The interface object for the :doc:`Tenable Identity Exposure Checker APIs <checker>`. ''' return CheckerAPI(self) @property def checker_option(self): ''' The interface object for the :doc:`Tenable Identity Exposure Checker option APIs <checker_option>`. ''' return CheckerOptionAPI(self) @property def dashboard(self): ''' The interface object for the :doc:`Tenable Identity Exposure Dashboard APIs <dashboard>`. ''' return DashboardAPI(self) @property def directories(self): ''' The interface object for the :doc:`Tenable Identity Exposure Directories APIs <directories>`. ''' return DirectoriesAPI(self) @property def infrastructure(self): ''' The interface object for the :doc:`Tenable Identity Exposure Infrastructure APIs <infrastructure>`. ''' return InfrastructureAPI(self) @property def ldap_configuration(self): ''' The interface object for the :doc:`Tenable Identity Exposure LDAP Configuration APIs <ldap_configuration>`. ''' return LDAPConfigurationAPI(self) @property def lockout_policy(self): ''' The interface object for the :doc:`Tenable Identity Exposure Lockout Policy APIs <lockout_policy>`. ''' return LockoutPolicyAPI(self) @property def preference(self): ''' The interface object for the :doc:`Tenable Identity Exposure Preference APIs <preference>`. ''' return PreferenceAPI(self) @property def profiles(self): ''' The interface object for the :doc:`Tenable Identity Exposure Profiles APIs <profiles>`. ''' return ProfilesAPI(self) @property def reason(self): ''' The interface object for the :doc:`Tenable Identity Exposure Reason APIs <reason>`. ''' return ReasonAPI(self) @property def roles(self): ''' The interface object for the :doc:`Tenable Identity Exposure Roles APIs <roles>`. ''' return RolesAPI(self) @property def saml_configuration(self): ''' The interface object for the :doc:`Tenable Identity Exposure SAML configuration APIs <saml_configuration>`. ''' return SAMLConfigurationAPI(self) @property def score(self): ''' The interface object for the :doc:`Tenable Identity Exposure Score APIs <score>`. ''' return ScoreAPI(self) @property def topology(self): ''' The interface object for the :doc:`Tenable Identity Exposure Topology APIs <topology>`. ''' return TopologyAPI(self) @property def users(self): ''' The interface object for the :doc:`Tenable Identity Exposure Users APIs <users>`. ''' return UsersAPI(self) @property def widgets(self): ''' The interface object for the :doc:`Tenable Identity Exposure Widget APIs <widget>`. ''' return WidgetsAPI(self)