OpenAPI Specification
openapi: 3.0.0
info:
version: 1.0.0
title: Downloads About Directory API
description: 'The Downloads API enables customers to access and download installation and update files for available Tenable products. You can use the API endpoints to list product pages, list downloads available for a specific product, and to download a file. The endpoints can also be used to determine and download the latest version of a file to facilitate the automation of an installation.
**Note:** The Tenable Downloads API uses a different server URL than the Tenable Vulnerability Management API:
`https://www.tenable.com/downloads/api/v2/pages`.
### Authentication
Like the Downloads website, certain files require authentication to download. When files have a `"requires_auth": true` attribute on the product list page, the Downloads API uses bearer token authentication and requires a valid token in the Authorization header to download the file:
```
Authorization: Bearer AbCdEf123456
```
To access or reset your authentication token, navigate to the [Authentication Token](https://www.tenable.com/downloads/api-docs) page.
Examples of product downloads that **do not** require authentication include Nessus and Nessus Agents.'
servers:
- url: https://www.tenable.com/downloads/api/v2
security:
- Bearer: []
tags:
- name: Directory
description: Represents an Active directory
paths:
/api/directories:
get:
summary: Retrieve all directory instances.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Validates the GET /directory response
type: array
items:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type: integer
description: Identifier of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountDistinguishedName:
type: string
description: Distinguished name of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type: string
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
nullable: true
ioaProcedureFailureDescription:
type: string
nullable: true
relayId:
oneOf:
- type: integer
nullable: true
description: The relayId
relayUuid:
oneOf:
- type: string
nullable: true
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
security:
- ApiKey: []
post:
summary: Create directory instance.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'201':
description: ''
content:
application/json:
schema:
description: Validates the POST /directory response
type: array
minItems: 1
items:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type: integer
description: Identifier of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountDistinguishedName:
type: string
description: Distinguished name of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type: string
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
nullable: true
ioaProcedureFailureDescription:
type: string
nullable: true
relayId:
oneOf:
- type: integer
nullable: true
description: The relayId
relayUuid:
oneOf:
- type: string
nullable: true
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
security:
- ApiKey: []
requestBody:
required: true
content:
application/json:
schema:
description: Validates the POST /directory request
type: array
minItems: 1
items:
type: object
additionalProperties: false
required:
- name
- ip
- infrastructureId
- dns
properties:
infrastructureId:
type: number
minimum: 0
maximum: 2147483647
name:
type: string
ip:
type: string
type:
type: string
enum:
- ADDS
ldapPort:
type: integer
globalCatalogPort:
type: integer
smbPort:
type: integer
dns:
type: string
sensitiveDataCollectionIsEnabled:
type: boolean
relayId:
oneOf:
- type: integer
nullable: true
/api/directories/{id}:
get:
summary: Get directory instance by id.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type: integer
description: Identifier of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountDistinguishedName:
type: string
description: Distinguished name of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type: string
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
nullable: true
ioaProcedureFailureDescription:
type: string
nullable: true
relayId:
oneOf:
- type: integer
nullable: true
description: The relayId
relayUuid:
oneOf:
- type: string
nullable: true
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
- name: id
in: path
schema:
type: string
pattern: ^[0-9]+$
x-patternError: should be a numerical string
required: true
deprecated: false
security:
- ApiKey: []
/api/infrastructures/{infrastructureId}/directories:
get:
summary: Get all directories for a given infrastructure
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Validates the GET /infrastructure/:infrastructureId/directories response
type: array
items:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not:
nullable: true
format: int64
nullable: true
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type: integer
description: Identifier of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountDistinguishedName:
type: string
description: Distinguished name of the AD object configured to be the directory's Honey Account
nullable: true
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type: string
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
nullable: true
ioaProcedureFailureDescription:
type: string
nullable: true
relayId:
oneOf:
- type: integer
nullable: true
description: The relayId
relayUuid:
oneOf:
- type: string
nullable: true
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
- name: infrastructureId
in: path
schema:
type: string
pattern: ^[0-9]+$
x-patternError: should be a numerical string
required: true
deprecated: false
security:
- ApiKey: []
/api/infrastructures/{infrastructureId}/directories/{id}:
get:
summary: Get directory instance by id.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tenable/refs/heads/main/openapi/tenable-directory-api-openapi.yml