tenable_io.api package

Submodules

tenable_io.api.agent_groups module

class tenable_io.api.agent_groups.AgentGroupSaveRequest(name)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.agent_groups.AgentGroupsApi(client)

Bases: tenable_io.api.base.BaseApi

add_agent(agent_group_id, agent_id)

Add an agent to the given agent group.

Parameters:
  • agent_group_id – The agent group ID.
  • agent_id – The agent ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

agents(agent_group_id, offset=None, limit=None)

Get agent list for given agent group.

Parameters:
  • agent_group_id – The agent group ID.
  • offset – The starting record to retrieve, defaults to 0 if not defined.
  • limit – The number of records to retrieve, API will defaults to 50 if not defined.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.AgentList.

configure(agent_group_id, configure_agent_group)

Configure name of give agent group.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

create(create_agent_group)

Create an agent group.

Parameters:create_agent_group – An instance of AgentGroupSaveRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:The ID of agent group just created.
delete(agent_group_id)

Delete an agent group.

Parameters:agent_group_id – The agent group ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
delete_agent(agent_group_id, agent_id)

Delete an agent from the given agent group.

Parameters:
  • agent_group_id – The agent group ID.
  • agent_id – The agent ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

details(agent_group_id, offset=None, limit=None)

Get details of given agent group.

Parameters:
  • agent_group_id – The agent group ID.
  • offset – The starting record to retrieve, defaults to 0 if not defined.
  • limit – The number of records to retrieve, API will defaults to 50 if not defined.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.AgentGroup.

list()

Return agent groups for the given scanner.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.AgentGroupList.

tenable_io.api.agents module

class tenable_io.api.agents.AgentsApi(client)

Bases: tenable_io.api.base.BaseApi

delete(agent_id)

Deletes the given agent.

Parameters:agent_id – The Agent ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
list(offset=None, limit=None)

Lists agents for the given scanner.

Parameters:
  • offset – The starting record to retrieve, defaults to 0 if not defined.
  • limit – The number of records to retrieve, API will defaults to 50 if not defined.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.AgentList.

tenable_io.api.base module

class tenable_io.api.base.BaseApi(client)

Bases: object

class tenable_io.api.base.BaseRequest

Bases: object

as_payload(filter_=None)

tenable_io.api.editor module

class tenable_io.api.editor.EditorApi(client)

Bases: tenable_io.api.base.BaseApi

list(type)

Returns the template list.

Parameters:type – The type of template (scan or policy).
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.TemplateList.

tenable_io.api.exclusions module

class tenable_io.api.exclusions.ExclusionApi(client)

Bases: tenable_io.api.base.BaseApi

create(exclusion_create)

Create a new exclusion

Parameters:exclusion_create – An instance of ExclusionCreateRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.Exclusion.
delete(list_id)

Delete an exclusion

Parameters:list_id – The exclusion ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
details(list_id)

Return details of given exclusion

Parameters:list_id – The exclusion ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.Exclusion.
edit(list_id, exclusion_edit)

Edit the given exclusion

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.Exclusion.

list()

Return the current exclusions

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ExclusionList.
class tenable_io.api.exclusions.ExclusionCreateRequest(name, members, description=None, schedule=None)

Bases: tenable_io.api.exclusions.ExclusionSaveBaseRequest

class tenable_io.api.exclusions.ExclusionEditRequest(name=None, members=None, description=None, schedule=None)

Bases: tenable_io.api.exclusions.ExclusionSaveBaseRequest

class tenable_io.api.exclusions.ExclusionSaveBaseRequest(name, members=None, description=None, schedule=None)

Bases: tenable_io.api.base.BaseRequest

as_payload(filter_=None)

tenable_io.api.file module

class tenable_io.api.file.FileApi(client)

Bases: tenable_io.api.base.BaseApi

upload(file)

Upload a file

Parameters:file – An instance of file object
Raises:TenableIOApiException – When API error is encountered.
Returns:The name of the uploaded file.

tenable_io.api.folders module

class tenable_io.api.folders.FoldersApi(client)

Bases: tenable_io.api.base.BaseApi

create(name)

Create a new folder for the current user.

Parameters:name – The folder name.
Raises:TenableIOApiException – When API error is encountered.
Returns:The ID of the folder created.
delete(folder_id)

Delete the folder.

Parameters:folder_id – The folder ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
edit(folder_id, name)

Rename the folder.

Parameters:
  • folder_id – The folder ID.
  • name – The folder name to be renamed.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

list()

Returns the current user’s scan folders.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of :class”tenable_io.api.models.FolderList.

tenable_io.api.groups module

class tenable_io.api.groups.GroupsApi(client)

Bases: tenable_io.api.base.BaseApi

add_user(group_id, user_id)

Add a user to the group.

Parameters:
  • group_id – The group ID.
  • user_id – The user ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

create(name)

Create a group.

Parameters:name – The group name.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.Group.
delete(group_id)

Delete a group.

Parameters:group_id – The group ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
delete_user(group_id, user_id)

Delete a user from the group.

Parameters:
  • group_id – The group ID.
  • user_id – The user ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

edit(group_id, name)

Edit a group.

Parameters:
  • group_id – The group ID.
  • name – The group name.
Returns:

True if successful.

list()

Return the group list.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.Grouplist.
list_users(group_id)

Return the user list in the group.

Parameters:group_id – The group ID.
Returns:An instance of tenable_io.api.models.UserList.

tenable_io.api.models module

class tenable_io.api.models.Agent(distro=None, id=None, ip=None, last_scanned=None, name=None, platform=None, token=None, uuid=None, linked_on=None, last_connect=None, plugin_feed_id=None, core_build=None, core_version=None, groups=None, status=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.AgentGroup(id=None, name=None, owner_id=None, owner=None, owner_name=None, owner_uuid=None, shared=None, user_permissions=None, creation_date=None, last_modification_date=None, agents=None, uuid=None, pagination=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.AgentGroupList(groups=None)

Bases: tenable_io.api.models.BaseModel

groups
class tenable_io.api.models.AgentList(agents=None, pagination=None)

Bases: tenable_io.api.models.BaseModel

agents
class tenable_io.api.models.Asset(id=None, fqdn=None, ipv4=None, ipv6=None, last_seen=None, operating_system=None, severities=None)

Bases: tenable_io.api.models.BaseModel

severities
class tenable_io.api.models.AssetActivity(type=None, timestamp=None, scan_id=None, schedule_id=None, source=None, matches=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.AssetActivityList(activity=None)

Bases: tenable_io.api.models.BaseModel

activity
class tenable_io.api.models.AssetInfo(counts=None, first_seen=None, fqdn=None, ipv4=None, ipv6=None, last_authenticated_scan_date=None, last_seen=None, mac_address=None, netbios_name=None, operating_system=None, system_type=None)

Bases: tenable_io.api.models.BaseModel

counts
class tenable_io.api.models.AssetList(assets=None)

Bases: tenable_io.api.models.BaseModel

assets
class tenable_io.api.models.AssetSeverity(count=None, level=None, name=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.BaseModel

Bases: object

as_payload(filter_=None)
classmethod from_dict(dict_)
classmethod from_json(json)
classmethod from_json_list(json_list)
classmethod from_list(list_)
class tenable_io.api.models.Exclusion(id=None, name=None, description=None, schedule=None, creation_date=None, last_modification_date=None, members=None)

Bases: tenable_io.api.models.BaseModel

schedule
class tenable_io.api.models.ExclusionList(exclusions=None)

Bases: tenable_io.api.models.BaseModel

exclusions
class tenable_io.api.models.ExclusionRrules(freq=None, interval=None, byweekday=None, bymonthday=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ExclusionSchedule(enabled=None, starttime=None, endtime=None, timezone=None, rrules=None)

Bases: tenable_io.api.models.BaseModel

as_payload(filter_=None)
rrules
class tenable_io.api.models.Folder(id=None, name=None, type=None, default_tag=None, custom=None, unread_count=None)

Bases: tenable_io.api.models.BaseModel

TYPE_CUSTOM = 'custom'
TYPE_MAIN = 'main'
TYPE_TRASH = 'trash'
class tenable_io.api.models.FolderList(folders=None)

Bases: tenable_io.api.models.BaseModel

folders
class tenable_io.api.models.Group(id=None, name=None, permissions=None, user_count=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.GroupList(groups=None)

Bases: tenable_io.api.models.BaseModel

groups
class tenable_io.api.models.Plugin(id=None, name=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PluginAttribute(attribute_name=None, attribute_value=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PluginDetails(id=None, name=None, family_name=None, attributes=None)

Bases: tenable_io.api.models.BaseModel

attributes
class tenable_io.api.models.PluginFamily(id=None, name=None, count=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PluginFamilyDetails(id=None, name=None, plugins=None)

Bases: tenable_io.api.models.BaseModel

plugins
class tenable_io.api.models.PluginFamilyList(families=None)

Bases: tenable_io.api.models.BaseModel

families
class tenable_io.api.models.Policy(id=None, template_uuid=None, name=None, description=None, owner_id=None, owner=None, shared=None, user_permissions=None, creation_date=None, last_modification_date=None, visibility=None, no_target=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyAudits(custom=None, feed=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyAuditsCustom(add=None, delete=None, edit=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyAuditsCustomItem(category=None, file=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyAuditsFeed(add=None, delete=None, edit=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyAuditsFeedItem(id=None, variables=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyCredentials(add=None, delete=None, edit=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicyDetails(uuid=None, audits=None, credentials=None, plugins=None, scap=None, settings=None)

Bases: tenable_io.api.models.BaseModel

settings
class tenable_io.api.models.PolicyList(policies=None)

Bases: tenable_io.api.models.BaseModel

policies
class tenable_io.api.models.PolicySCAP(add=None, delete=None, edit=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.PolicySettings(acls=[], additional_snmp_port1=None, additional_snmp_port2=None, additional_snmp_port3=None, adtran_aos_offline_configs=None, allow_post_scan_editing=None, apm_force_updates=None, apm_update_timeout=None, arp_ping=None, av_grace_period=None, aws_ap_northeast_1=None, aws_ap_southeast_1=None, aws_ap_southeast_2=None, aws_eu_west_1=None, aws_sa_east_1=None, aws_ui_region_type=None, aws_us_east_1=None, aws_us_gov_west_1=None, aws_us_west_1=None, aws_us_west_2=None, aws_use_https=None, aws_verify_ssl=None, brocade_offline_configs=None, check_crl=None, cisco_config_to_audit=None, cisco_offline_configs=None, dell_f10_offline_configs=None, description=None, detect_ssl=None, display_unreachable_hosts=None, dont_use_ntlmv1=None, enable_admin_shares=None, enum_domain_users_end_uid=None, enum_domain_users_start_uid=None, enum_local_users_end_uid=None, enum_local_users_start_uid=None, enumerate_all_ciphers=None, extremeos_offline_configs=None, fast_network_discovery=None, fireeye_offline_configs=None, host_whitelist=None, http_login_auth_regex_nocase=None, http_login_auth_regex_on_headers=None, http_login_invert_auth_regex=None, http_login_max_redir=None, http_login_method=None, huawei_offline_configs=None, icmp_ping=None, icmp_ping_retries=None, icmp_unreach_means_host_down=None, junos_offline_configs=None, log_live_hosts=None, log_whole_attack=None, max_checks_per_host=None, max_hosts_per_scan=None, max_simult_tcp_sessions_per_host=None, max_simult_tcp_sessions_per_scan=None, modbus_end_reg=None, modbus_start_reg=None, name=None, netapp_offline_configs=None, network_receive_timeout=None, network_type=None, never_send_win_creds_in_the_clear=None, only_portscan_if_enum_failed=None, patch_audit_over_rexec=None, patch_audit_over_rsh=None, patch_audit_over_telnet=None, ping_the_remote_host=None, portscan_range=None, procurve_config_to_audit=None, procurve_offline_configs=None, provided_creds_only=None, reduce_connections_on_congestion=None, report_paranoia=None, report_superseded_patches=None, report_verbosity=None, request_windows_domain_info=None, reverse_lookup=None, safe_checks=None, scan_netware_hosts=None, scan_network_printers=None, scan_webapps=None, silent_dependencies=None, slice_network_addresses=None, smtp_domain=None, smtp_from=None, smtp_to=None, snmp_port=None, snmp_scanner=None, sonicos_offline_configs=None, ssh_client_banner=None, ssh_known_hosts=None, ssh_netstat_scanner=None, ssh_port=None, ssl_prob_ports=None, start_cotp_tsap=None, start_remote_registry=None, stop_cotp_tsap=None, stop_scan_on_disconnect=None, svc_detection_on_all_ports=None, syn_firewall_detection=None, syn_scanner=None, tcp_firewall_detection=None, tcp_ping=None, tcp_ping_dest_ports=None, tcp_scanner=None, test_default_oracle_accounts=None, test_local_nessus_host=None, thorough_tests=None, udp_ping=None, udp_scanner=None, unscanned_closed=None, verify_open_ports=None, win_known_bad_hashes=None, win_known_good_hashes=None, wmi_netstat_scanner=None, wol_mac_addresses=None, wol_wait_time=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScContainer(number_of_vulnerabilities=None, name=None, digest=None, score=None, id=None, status=None, created_at=None, platform=None, updated_at=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScReport(id=None, image_name=None, docker_image_id=None, tag=None, os=None, os_version=None, os_architecture=None, sha256=None, sha1=None, md5=None, platform=None, created_at=None, updated_at=None, malware=None, findings=None, installed_packages=None, risk_score=None, digest=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScTestJob(container_id=None, job_id=None, error=None, job_status=None, created_at=None, updated_at=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.Scan(id=None, uuid=None, name=None, type=None, owner=None, enabled=None, folder_id=None, read=None, status=None, shared=None, user_permissions=None, creation_date=None, last_modification_date=None, control=None, starttime=None, timezone=None, rrules=None)

Bases: tenable_io.api.models.BaseModel

STATUS_ABORTED = u'aborted'
STATUS_CANCELED = u'canceled'
STATUS_COMPLETED = u'completed'
STATUS_EMPTY = u'empty'
STATUS_IMPORTED = u'imported'
STATUS_PAUSED = u'paused'
STATUS_PAUSING = u'pausing'
STATUS_PENDING = u'pending'
STATUS_RESUMING = u'resuming'
STATUS_RUNNING = u'running'
STATUS_STOPPING = u'stopping'
class tenable_io.api.models.ScanDetails(info=None, hosts=None, comphosts=None, notes=None, remediations=None, vulnerabilities=None, compliance=None, history=None, filters=None)

Bases: tenable_io.api.models.BaseModel

history
hosts
info
class tenable_io.api.models.ScanDetailsHistory(history_id=None, uuid=None, owner_id=None, status=None, creation_date=None, last_modification_date=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScanHistory(name=None, object_id=None, owner=None, owner_id=None, owner_uuid=None, scan_end=None, scan_start=None, scan_type=None, schedule_uuid=None, status=None, targets=None, uuid=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScanHost(host_id=None, host_index=None, hostname=None, progress=None, critical=None, high=None, medium=None, low=None, info=None, totalchecksconsidered=None, numchecksconsidered=None, scanprogresstotal=None, scanprogresscurrent=None, score=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScanHostCompliance(host_id=None, hostname=None, plugin_id=None, plugin_name=None, plugin_family=None, count=None, severity_index=None, severity=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScanHostDetails(info=None, vulnerabilities=None, compliance=None)

Bases: tenable_io.api.models.BaseModel

compliance
info
vulnerabilities
class tenable_io.api.models.ScanHostInfo(host_start=None, mac_address=None, host_fqdn=None, host_end=None, operating_system=None, host_ip=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScanHostVulnerability(host_id=None, hostname=None, plugin_id=None, plugin_name=None, plugin_family=None, count=None, vuln_index=None, severity_index=None, severity=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScanInfo(acls=None, edit_allowed=None, status=None, policy=None, pci_can_upload=None, hasaudittrail=None, scan_start=None, folder_id=None, targets=None, timestamp=None, object_id=None, scanner_name=None, haskb=None, uuid=None, hostcount=None, scan_end=None, name=None, user_permissions=None, control=None)

Bases: tenable_io.api.models.BaseModel

as_payload(filter_=None)
classmethod from_dict(dict_)
class tenable_io.api.models.ScanList(folders=None, scans=None, timestamp=None)

Bases: tenable_io.api.models.BaseModel

scans
class tenable_io.api.models.ScanSettings(name, text_targets, description=None, emails=None, enabled=False, launch=None, folder_id=None, policy_id=None, scanner_id=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.Scanner(id=None, uuid=None, name=None, type=None, status=None, scan_count=None, engine_version=None, platform=None, loaded_plugin_set=None, registration_code=None, owner=None, key=None, license=None)

Bases: tenable_io.api.models.BaseModel

license
class tenable_io.api.models.ScannerAwsTarget(scanner_id=None, instance_id=None, private_ip=None, public_ip=None, state=None, zone=None, type=None, name=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScannerAwsTargetList(aws_targets=None)

Bases: tenable_io.api.models.BaseModel

aws_targets
class tenable_io.api.models.ScannerLicense(type=None, ips=None, agents=None, scanners=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScannerList(scanners=None)

Bases: tenable_io.api.models.BaseModel

scanners
class tenable_io.api.models.ScannerScan(scanner_uuid=None, name=None, status=None, id=None, scan_id=None, user=None, last_modification_date=None, start_time=None, remote=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ScannerScanList(scans=None)

Bases: tenable_io.api.models.BaseModel

scans
class tenable_io.api.models.ServerProperties(capabilities=None, enterprise=None, expiration=None, expiration_time=None, idle_timeout=None, license=None, loaded_plugin_set=None, login_banner=None, nessus_type=None, nessus_ui_version=None, notifications=None, plugin_set=None, scanner_boottime=None, server_version=None, server_uuid=None, update=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.ServerStatus(status=None, progress=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.Session(id=None, username=None, email=None, name=None, type=None, permissions=None, lastlogin=None, container_id=None, groups=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.TargetGroup(id=None, default_group=None, name=None, members=None, type=None, owner=None, owner_id=None, last_modification_date=None, shared=None, user_permissions=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.TargetGroupList(target_groups=None)

Bases: tenable_io.api.models.BaseModel

target_groups
class tenable_io.api.models.Template(uuid=None, name=None, title=None, description=None, cloud_only=None, subscription_only=None, is_agent=None, more_info=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.TemplateList(templates=None)

Bases: tenable_io.api.models.BaseModel

templates
class tenable_io.api.models.User(id=None, username=None, name=None, email=None, permissions=None, lastlogin=None, type=None, login_fail_count=None, last_login_attempt=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.UserKeys(access_key=None, secret_key=None)

Bases: tenable_io.api.models.BaseModel

as_payload(filter_=None)
classmethod from_dict(dict_)
class tenable_io.api.models.UserList(users=None)

Bases: tenable_io.api.models.BaseModel

users
class tenable_io.api.models.Vulnerability

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.VulnerabilityList(vulnerabilities=None)

Bases: tenable_io.api.models.BaseModel

vulnerabilities
class tenable_io.api.models.VulnerabilityOutput(application_protocol=None, assets=None, port=None, transport_protocol=None)

Bases: tenable_io.api.models.BaseModel

class tenable_io.api.models.VulnerabilityOutputList(outputs=None)

Bases: tenable_io.api.models.BaseModel

outputs
class tenable_io.api.models.VulnerabilityPluginOutput(plugin_output=None, states=None)

Bases: tenable_io.api.models.BaseModel

states
class tenable_io.api.models.VulnerabilityPluginOutputState(name=None, results=None)

Bases: tenable_io.api.models.BaseModel

results

tenable_io.api.plugins module

class tenable_io.api.plugins.PluginsApi(client)

Bases: tenable_io.api.base.BaseApi

families()

Return list of plugin families.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.PluginFamilyList.
family_details(family_id)

Return plugin family details.

Parameters:family_id – Plugin family ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.PluginFamilyDetails.
plugin_details(plugin_id)

Return plugin details.

Parameters:plugin_id – Plugin ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.PluginDetails.

tenable_io.api.policies module

class tenable_io.api.policies.PoliciesApi(client)

Bases: tenable_io.api.base.BaseApi

configure(policy_id, policy_configure_request)

Update a policy.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

copy(policy_id)

Copy a policy.

Parameters:policy_id – Policy id.
Raises:TenableIOApiException – When API error is encountered.
Returns:Policy id.
create(policy_create_request)

Create a policy.

Parameters:policy_create_request – An instance of PolicyCreateRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:Policy id.
delete(policy_id)

Delete a policy.

Parameters:policy_id – Policy id.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
details(policy_id)

Get policy details.

Parameters:policy_id – Policy id.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of PolicyDetails.
export(policy_id, stream=True, chunk_size=1024)

Export a policy.

Parameters:
  • policy_id – Policy id.
  • stream – Defaults to True. If False, the response content will be immediately downloaded.
  • chunk_size – If Stream=False, data is returned as a single chunk.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

Response content iterator.

import_policy(policy_import_request)

Import a policy.

Parameters:policy_import_request – An instance of PolicyImportRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:Policy id.
list()

Return the policy list.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.PolicyList.
class tenable_io.api.policies.PolicyConfigureRequest(uuid, settings, audits=None, credentials=None, plugins=None, scap=None)

Bases: tenable_io.api.policies.PolicyCreateRequest

class tenable_io.api.policies.PolicyCreateRequest(uuid, settings, audits=None, credentials=None, plugins=None, scap=None)

Bases: tenable_io.api.base.BaseRequest

as_payload(filter_=None)
class tenable_io.api.policies.PolicyImportRequest(file)

Bases: tenable_io.api.base.BaseRequest

tenable_io.api.scanners module

class tenable_io.api.scanners.ScannerControlRequest(action)

Bases: tenable_io.api.base.BaseRequest

ACTION_PAUSE = u'pause'
ACTION_RESUME = u'resume'
ACTION_STOP = u'stop'
class tenable_io.api.scanners.ScannerEditRequest(force_plugin_update=None, force_ui_update=None, finish_update=None, registration_code=None, aws_update_interval=None)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.scanners.ScannerToggleRequest(link)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.scanners.ScannersApi(client)

Bases: tenable_io.api.base.BaseApi

control_scans(scanner_id, scan_uuid, control_scan)

Pause, stop, or resume scan that is active on the scanner.

Parameters:
  • scanner_id – The scanner ID.
  • scan_uuid – The scan UUID.
  • control_scan – An instance of ScannerControlRequest.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

delete(scanner_id)

Deletes a scanner.

Parameters:scanner_id – The scanner ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
details(scanner_id)

Returns details of a given scanner.

Parameters:scanner_id – The scanner ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.Scanner.
edit(scanner_id, scanner_edit)

Edit the given scanner.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

get_aws_targets(scanner_id)

Returns list of AWS scan targets of an AWS scanner.

Parameters:scanner_id – The scanner ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ScannerAwsTargetList.
get_scanner_key(scanner_id)

Returns key of given scanner.

Parameters:scanner_id – The scanner ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:Scanner key.
get_scans(scanner_id)

Returns list of running scans on given scanner.

Parameters:scanner_id – The scanner ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ScannerScanList.
list()

Returns list of scanners.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ScannerList.

Enables or disables link state of given scanner.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

tenable_io.api.scans module

class tenable_io.api.scans.ScanConfigureRequest(uuid=None, settings=None)

Bases: tenable_io.api.scans.ScanSaveRequest

class tenable_io.api.scans.ScanCreateRequest(uuid, settings=None)

Bases: tenable_io.api.scans.ScanSaveRequest

class tenable_io.api.scans.ScanExportRequest(format, password=None, chapters=None)

Bases: tenable_io.api.base.BaseRequest

CHAPTER_CUSTOM_VULN_BY_HOST = u'vuln_by_host'
CHAPTER_CUSTOM_VULN_BY_PLUGIN = u'vuln_by_plugin'
CHAPTER_EXECUTIVE_SUMMARY = u'vuln_hosts_summary'
FORMAT_CSV = u'csv'
FORMAT_DB = u'db'
FORMAT_HTML = u'html'
FORMAT_NESSUS = u'nessus'
FORMAT_PDF = u'pdf'
as_payload(filter_=None)
class tenable_io.api.scans.ScanImportRequest(file, folder_id=None, password=None)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.scans.ScanLaunchRequest(alt_targets=None)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.scans.ScanSaveRequest(uuid, settings)

Bases: tenable_io.api.base.BaseRequest

as_payload(filter_=None)
class tenable_io.api.scans.ScansApi(client)

Bases: tenable_io.api.base.BaseApi

STATUS_EXPORT_READY = u'ready'
configure(scan_id, scan_configure)

Configure an existing scan.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The ID of scan just configured.

copy(scan_id)
create(scan_create)

Create a scan.

Parameters:scan_create – An instance of ScanCreateRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:The ID of scan just created.
delete(scan_id)

Delete a scan. NOTE: Scans in running, paused or stopping states can not be deleted.

Raises:TenableIOApiException – When API error is encountered.
Parameters:scan_id – The scan ID.
Returns:True if successful.
details(scan_id, history_id=None)

Return details of the given scan.

Parameters:
  • scan_id – The scan ID.
  • history_id – The historical data ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.ScanDetails.

export_download(scan_id, file_id, stream=True, chunk_size=1024)

Download an exported scan.

Parameters:
  • scan_id – The scan ID.
  • file_id – The file ID.
  • stream – Default to True. If False, the response content will be immediately downloaded.
  • chunk_size – If Stream=False, data is returned as a single chunk. If Stream=True, it’s the number of bytes it should read into memory.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The downloaded file.

export_request(scan_id, scan_export, history_id=None)

Export the given scan. Once requested, the file can be downloaded using the export download method upon receiving a “ready” status from the export status method.

Parameters:
  • scan_id – The scan ID.
  • scan_export – An instance of ScanExportRequest.
  • history_id – The history ID of historical data.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The file ID.

export_status(scan_id, file_id)

Check the file status of an exported scan. When an export has been requested, it is necessary to poll this endpoint until a “ready” status is returned, at which point the file is complete and can be downloaded using the export download endpoint.

Parameters:
  • scan_id – The scan ID.
  • file_id – The file ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The file status.

folder(scan_id, folder_id)

Move to a scan to a folder.

Parameters:
  • scan_id – The scan ID.
  • folder_id – The folder ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

history(scan_id, history_id)
host_details(scan_id, host_id)

Returns details for the given host.

Parameters:
  • scan_id – The scan ID.
  • host_id – The host ID.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.ScanHostDetails.

import_scan(scan_import, include_aggregate=True)

Import an existing scan which has been uploaded using TenableIO.FileApi.upload()

Parameters:
  • scan_import – An instance of ScanImportRequest.
  • include_aggregate – Boolean indicating whether scan data should appear in Workbenches.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The ID of the imported scan.

launch(scan_id, scan_launch_request)

Launch a scan.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The scan uuid.

list(folder_id=None)

Return the scan list.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ScanList.
pause(scan_id)

Pause a scan.

Parameters:scan_id – The scan ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
resume(scan_id)

Resume a scan.

Parameters:scan_id – The scan ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
stop(scan_id)

Stop a scan.

Parameters:scan_id – The scan ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.

tenable_io.api.server module

class tenable_io.api.server.ServerApi(client)

Bases: tenable_io.api.base.BaseApi

properties()

Return the server version and other properties.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ServerStatus.
status()

Return server status.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.ServerStatus.

tenable_io.api.session module

class tenable_io.api.session.SessionApi(client)

Bases: tenable_io.api.base.BaseApi

get()

Return the user session data.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.Session.

tenable_io.api.target_groups module

class tenable_io.api.target_groups.TargetGroupCreateRequest(name=None, members=None, type=None, acls=None)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.target_groups.TargetGroupsApi(client)

Bases: tenable_io.api.base.BaseApi

create(target_group_create)

Create a new target group.

Parameters:target_group_create – An instance of TargetGroupCreateRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.TargetGroup.
delete(group_id)

Delete a target group.

Parameters:group_id – The group ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful
details(group_id)

Return details of the target group.

Parameters:group_id – The group ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.TargetGroup.
edit(target_group_edit, group_id)

Modify a target group.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.TargetGroup

list()

Return the current target groups.

Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.TargetGroupList
class tenable_io.api.target_groups.TargetListEditRequest(name=None, members=None, type=None, acls=None)

Bases: tenable_io.api.target_groups.TargetGroupCreateRequest

tenable_io.api.users module

class tenable_io.api.users.UserCreateRequest(username=None, password=None, permissions=None, name=None, email=None, type=None)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.users.UserEditRequest(permissions=None, name=None, email=None)

Bases: tenable_io.api.base.BaseRequest

class tenable_io.api.users.UsersApi(client)

Bases: tenable_io.api.base.BaseApi

create(user_create)

Create a new user.

Parameters:user_create – An instance of UserCreateRequest.
Raises:TenableIOApiException – When API error is encountered.
Returns:The ID of the created user.
delete(user_id)

Delete a user.

Parameters:user_id – The user ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:True if successful.
details(user_id)

Return details for the given user.

Parameters:user_id – The user ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.User
edit(user_id, user_edit)

Edit an existing user.

Parameters:
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of tenable_io.api.models.User.

enabled(user_id, enabled)

Enable or disable an user.

Parameters:
  • user_id – The user ID.
  • enabled – True to enable. False to Disable.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

get(user_id)
impersonate(user_id)
keys(user_id)

Generate the API Keys for the given user.

Parameters:user_id – The user ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of tenable_io.api.models.UserKeys
list()

Return the user list.

Returns:An instance of tenable_io.api.models.UserList.
password(user_id, password)

Change the password for the given user.

Parameters:
  • user_id – The user ID.
  • password – Current password for the user.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

True if successful.

tenable_io.api.workbenches module

class tenable_io.api.workbenches.WorkbenchesApi(client)

Bases: tenable_io.api.base.BaseApi

CHAPTER_EXEC_SUMMARY = u'exec_summary'
CHAPTER_VULN_BY_ASSET = u'vuln_by_asset'
CHAPTER_VULN_BY_PLUGIN = u'vuln_by_plugin'
CHAPTER_VULN_HOSTS_SUMMARY = u'vuln_hosts_summary'
FILTER_TYPE_AND = u'and'
FILTER_TYPE_OR = u'or'
FORMAT_CSV = u'csv'
FORMAT_HTML = u'html'
FORMAT_NESSUS = u'nessus'
FORMAT_PDF = u'pdf'
REPORT_VULNERABILITIES = u'vulnerabilities'
STATUS_EXPORT_READY = u'ready'
asset_activity(asset_id)

List detailed info of an asset.

Parameters:asset_id – The asset ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of AssetInfo.
asset_info(asset_id)

List detailed info of an asset.

Parameters:asset_id – The asset ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:An instance of AssetInfo.
asset_vulnerabilities(asset_id, date_range=None, filters=None, filter_search_type=None)

List all the vulnerabilities recorded for a given asset.

Parameters:
  • asset_id – The asset ID.
  • date_range – The number of days of data prior to and including today that should be returned.
  • filters – An array containing filters to apply to the exported scan report.
  • filter_search_type – The type of search to be used. Can have a value of and**(default) or **or.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of VulnerabilityList.

assets(date_range=None, filters=None, filter_search_type=None)

List all the assets recorded.

Parameters:
  • date_range – The number of days of data prior to and including today that should be returned.
  • filters – An array containing filters to apply to the exported scan report.
  • filter_search_type – The type of search to be used. Can have a value of and**(default) or **or.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of AssetList.

assets_vulnerabilities(date_range=None, filters=None, filter_search_type=None)

List all the assets with vulnerabilities.

Parameters:
  • date_range – The number of days of data prior to and including today that should be returned.
  • filters – An array containing filters to apply to the exported scan report.
  • filter_search_type – The type of search to be used. Can have a value of and**(default) or **or.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of AssetList.

export_download(file_id, stream=True, chunk_size=1024)

Download a file that has been prepared for export.

Parameters:
  • file_id – The unique identifier of the workbench report being downloaded.
  • stream – Default to True. If False, the response content will be immediately downloaded.
  • chunk_size – If Stream=False, data is returned as a single chunk. If Stream=True, it’s the number of bytes it should read into memory.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The content iterator for the file.

export_request(format, report, chapter, start_date=None, date_range=None, filters=None, filter_search_type=None, minimum_vuln_info=None, plugin_id=None, asset_id=None)

Export the given workbench to a file.

Parameters:
  • format – The file format, one of FORMAT_CSV, FORMAT_HTML, FORMAT_NESSUS, FORMAT_PDF.
  • report – The type of workbench report, one of REPORT_VULNERABILITIES.
  • chapter – Chapter to include, one of CHAPTER_EXEC_SUMMARY, CHAPTER_VULN_BY_ASSET, CHAPTER_VULN_BY_PLUGIN, CHAPTER_VULN_HOSTS_SUMMARY.
  • start_date – The date (in unixtime) at which the exported results should begin to be included, default to None which implies today.
  • date_range – The number of days of data prior to and including start_date that should be returned. default to None which implies data for all dates is returned.
  • filters – An list containing filters to apply to the exported scan report, default to None.
  • filter_search_type – The type of search to be used, one of FILTER_TYPE_AND, FILTER_TYPE_OR, default to None.
  • minimum_vuln_info – When True, only a minimal subset of scan details will be returned for each result, excluding plugin attributes. In this case, only plugin_output and vulnerability_state fields are always returned; first_found, last_found and last_fixed are also returned if possible. Default to None.
  • plugin_id – Restrict the export data to only vulnerabilities found by the plugin with this id, default to None.
  • asset_id – Restrict the export data to only findings the asset with this id. Note that this id is a UUID, default to None.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

The file ID.

export_status(file_id)

Retrieve the status of a pending export.

Parameters:file_id – The file ID.
Raises:TenableIOApiException – When API error is encountered.
Returns:The file status.
vulnerabilities(age=None, authenticated=None, date_range=None, exploitable=None, filters=None, filter_search_type=None, resolvable=None, severity=None)

List all the vulnerabilities recorded.

Parameters:
  • age – Lists only those vulnerabilities older than a certain number of days.
  • authenticated – Lists only authenticated vulnerabilities.
  • date_range – The number of days of data prior to and including today that should be returned.
  • exploitable – Lists only exploitable vulnerabilities.
  • filters – An array containing filters to apply to the exported scan report.
  • filter_search_type – The type of search to be used. Can have a value of and**(default) or **or.
  • resolvable – Lists only those vulnerabilities with a remediation path.
  • severity – Lists only vulnerabilities of a specific severity (critical, high, medium or low).
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of VulnerabilityList.

vulnerability_output(plugin_id, date_range=None, filters=None, filter_search_type=None)

Get the vulnerability outputs for a plugin.

Parameters:
  • plugin_id – The plugin id.
  • date_range – The number of days of data prior to and including today that should be returned.
  • filters – An array containing filters to apply to the exported scan report.
  • filter_search_type – The type of search to be used. Can have a value of and**(default) or **or.
Raises:

TenableIOApiException – When API error is encountered.

Returns:

An instance of VulnerabilityOutputList.

Module contents