openapi: 3.2.0 info: title: 'Forward Networks: Complete Aliases Classic Devices API' description: Model and verify networks contact: email: support@forwardnetworks.com license: name: MIT url: https://spdx.org/licenses/MIT version: '26.6' servers: - url: /api tags: - name: Classic Devices description: Specify the network devices to collect from and model summary: Classic Devices paths: /networks/{networkId}/classic-devices: get: tags: - Classic Devices summary: Get all classic devices operationId: getClassicDevices x-position: 1 parameters: - name: networkId in: path required: true schema: type: string - name: with in: query schema: type: array items: type: string enum: - tags - locationId - testResult responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassicDevices' security: - api_token: [] post: tags: - Classic Devices summary: Add a new classic device operationId: addClassicDevice x-position: 3 parameters: - name: networkId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NewClassicDevice' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ClassicDevice' security: - api_token: [] patch: tags: - Classic Devices summary: Update specific classic devices description: 'All JSON properties in the `update` object are optional. Include only the properties you wish to change.' operationId: patchClassicDevices x-position: 8 parameters: - name: networkId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ClassicDevicesPatch' required: true responses: '204': description: No Content content: {} security: - api_token: [] /networks/{networkId}/classic-devices?action=addBatch: post: tags: - Classic Devices summary: Add new classic devices operationId: addClassicDevices x-position: 4 parameters: - name: networkId in: path required: true schema: type: string requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/NewClassicDevice' required: true responses: '204': description: No Content content: {} security: - api_token: [] /networks/{networkId}/classic-devices?action=deleteAll: post: tags: - Classic Devices summary: Delete all of a network’s classic devices operationId: deleteAllClassicDevices x-position: 7 parameters: - name: networkId in: path required: true schema: type: string responses: '204': description: No Content content: {} security: - api_token: [] /networks/{networkId}/classic-devices?action=deleteBatch: post: tags: - Classic Devices summary: Delete specific classic devices operationId: deleteClassicDevices x-position: 6 parameters: - name: networkId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DeviceCriteria' required: true responses: '204': description: No Content content: {} security: - api_token: [] /networks/{networkId}/classic-devices?action=getBatch: post: tags: - Classic Devices summary: Get specific classic devices operationId: getSpecificClassicDevices x-position: 2 parameters: - name: networkId in: path required: true schema: type: string - name: with in: query schema: type: array items: type: string enum: - tags - locationId - testResult requestBody: content: application/json: schema: $ref: '#/components/schemas/DeviceNames' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassicDevices' security: - api_token: [] /networks/{networkId}/classic-devices?action=putBatch: post: tags: - Classic Devices summary: Add or update classic devices operationId: putClassicDevices x-position: 5 parameters: - name: networkId in: path required: true schema: type: string requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/NewClassicDevice' required: true responses: '204': description: No Content content: {} security: - api_token: [] /networks/{networkId}/classic-devices/{deviceName}: get: tags: - Classic Devices summary: Get a classic device operationId: getClassicDevice x-position: 9 parameters: - name: networkId in: path required: true schema: type: string - name: deviceName in: path required: true schema: type: string - name: with in: query schema: type: array items: type: string enum: - tags - locationId - testResult responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassicDevice' security: - api_token: [] put: tags: - Classic Devices summary: Add or update a classic device operationId: putClassicDevice x-position: 10 parameters: - name: networkId in: path required: true schema: type: string - name: deviceName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NewClassicDevice' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassicDevice' security: - api_token: [] patch: tags: - Classic Devices summary: Update a classic device description: 'All JSON properties in the request body are optional. Include only the properties you wish to change.' operationId: patchClassicDevice x-position: 11 parameters: - name: networkId in: path required: true schema: type: string - name: deviceName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ClassicDevicePatch' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassicDevice' security: - api_token: [] delete: tags: - Classic Devices summary: Delete a classic device operationId: deleteClassicDevice x-position: 12 parameters: - name: networkId in: path required: true schema: type: string - name: deviceName in: path required: true schema: type: string responses: '204': description: No Content content: {} security: - api_token: [] components: schemas: ClassicDevicesPatch: type: object properties: names: type: array items: type: string update: $ref: '#/components/schemas/ClassicDevicePatch' SourceConnectivityResult: type: object required: - startTime - endTime - savedAt properties: startTime: type: string description: When this connectivity test began, according to the Collector’s system clock. examples: - '2025-05-28T12:33:00.000Z' endTime: type: string description: When this connectivity test ended, according to the Collector’s system clock. examples: - '2025-05-28T12:33:33.333Z' savedAt: type: string description: 'When this connectivity test result was saved to the database, according to the server’s system clock.' examples: - '2025-05-28T12:34:56.789Z' error: $ref: '#/components/schemas/ConnectivityTestError' description: The error encountered during the test. Present if the test failed. Absent if the test passed. examples: - PING_FAILED errorPhase: type: string description: The test phase during which `error` was encountered. Present if `error` is present. examples: - CONNECTION enum: - CONNECTION - AUTHENTICATION - TYPE_DISCOVERY - SETUP - AUTHORIZATION - QUERY discoveredType: $ref: '#/components/schemas/ClassicDeviceType' description: The device type auto-discovered during the connectivity test. examples: - arista_eos_ssh discoveredCliCredentialId: type: string description: 'The `id` of the working CliCredential of type `LOGIN` auto-discovered during the connectivity test. Can only be present for device types collected via SSH.' examples: - L-3 discoveredCliCredential2Id: type: string description: 'The `id` of the working CliCredential of type `PRIVILEGED_MODE` (for Cisco-like and Checkpoint devices) or `SHELL` (for Avi controllers) auto-discovered during the connectivity test. Can only be present for device types collected via SSH or Telnet.' examples: - PM-2 discoveredCliCredential3Id: type: string description: 'The `id` of the working CliCredential of type `EXPERT_MODE` (for Checkpoint devices) auto-discovered during the connectivity test. Can only be present for device types collected via SSH.' examples: - EM-3 discoveredHttpCredentialId: type: string description: 'The `id` of the working HttpCredential of type `LOGIN` or `API_KEY` auto-discovered during the connectivity test. Can only be present for device types collected via HTTPS.' examples: - H-5 discoveredSnmpCredentialId: type: string description: The `id` of the working SnmpCredential auto-discovered during the connectivity test. examples: - S-1 hostIps: type: array items: type: string description: 'The IP addresses to which `host` resolves if it’s a hostname. Contains just `host` itself if it’s an IP address.' examples: - - 10.121.7.13 unauthorizedCommands: type: array items: type: string description: Commands that failed with an authorization (permission) error during the connectivity test. examples: - - show config - show interfaces status ClassicDevices: type: object properties: devices: type: array items: $ref: '#/components/schemas/ClassicDevice' PaginationMode: type: string enum: - KEEP_UNCHANGED - DISABLE_PAGINATION - ENABLE_PAGINATION ClassicDevice: allOf: - type: object required: - name - host properties: name: type: string description: 'A name that’s unique (ignoring case) among all of the network’s collection source names. May consist of letters, digits, dots, hyphens, and underscores.' examples: - my-router type: $ref: '#/components/schemas/ClassicDeviceType' description: Auto-detected during connectivity testing if unspecified. examples: - checkpoint_ssh host: type: string description: IP address or hostname used to connect to the device. examples: - 10.121.7.13 port: type: integer format: int32 minimum: 1 maximum: 65535 description: 'Port used to connect to the device. The default value depends on the collection protocol: 22 for SSH, 443 for HTTPS, etc.' examples: - 22 cliCredentialId: type: string description: 'The `id` of a CliCredential of type `LOGIN`. Relevant for devices collected via SSH or Telnet. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - L-3 cliCredential2Id: type: string description: 'The `id` of a CliCredential of type `PRIVILEGED_MODE` (for Cisco-like or Checkpoint devices) or `SHELL` (for Avi controllers). On Checkpoint, this credential is used for TACACS privilege escalation. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - PM-2 cliCredential3Id: type: string description: 'The `id` of a CliCredential of type `EXPERT_MODE` (for Checkpoint devices). Can be set with or without a `PRIVILEGED_MODE` credential for `cliCredential2Id`. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - EM-6 httpCredentialId: type: string description: 'The `id` of an HttpCredential of type `LOGIN` or `API_KEY`. Relevant for devices collected via HTTPS or HTTP. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - H-5 snmpCredentialId: type: string description: 'The `id` of an SnmpCredential. Used to collect performance data (counters) if `enableSnmpCollection` is true. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - S-4 jumpServerId: type: string description: The `id` of the JumpServer that should be used to collect from this device. examples: - J-0 disableIpv6Collection: type: boolean description: Disables collection of any IPv6 forwarding state on the device. Defaults to false. examples: - false fullCollectionLog: type: boolean description: Enables more detailed logging during collection. Defaults to false. examples: - false paginationMode: $ref: '#/components/schemas/PaginationMode' description: 'The pagination mode to use during collection. Relevant for devices collected via SSH or Telnet. Defaults to `DISABLE_PAGINATION`. Per-command pagination (such as appending `| more`) may be used if set to `ENABLE_PAGINATION` for a device that doesn’t have a per-session pagination mode setting.' examples: - KEEP_UNCHANGED terminalWidth: type: integer format: int32 minimum: 80 maximum: 500 description: 'Width of pseudo-terminal in characters. A high value can prevent long lines from wrapping. Defaults to 500. Relevant for devices collected via SSH or Telnet.' examples: - 500 largeRtt: type: boolean description: Whether the device has a large round-trip time (requires a longer response timeout). examples: - false minBytesReadPerSec: type: integer format: int64 description: 'The minimum read rate in bytes/sec required to prevent collection from failing with a `SLOW_READ_RATE_DETECTED` error. Defaults to 500.' examples: - false maxConnectionsPerMin: type: integer format: int32 description: 'The maximum number of connections to this device that should be attempted per minute. Setting this property can prevent spurious connectivity test failures if the device’s SSH server is configured with a connection rate limit.' examples: - 10 useFileTransferForLargeOutput: type: boolean description: 'Whether to use file transfer instead of printing large command output directly to the shell. This is currently only supported for Juniper devices when executing routing table commands. The primary purpose is to avoid printing large outputs directly to the shell, which on Juniper devices can interfere with packet forwarding performance. Instead, the command output is written to a temporary file on the device and then transferred over a separate connection. After the transfer is complete, the temporary file is deleted to prevent unnecessary disk usage on the device.' examples: - false bmpStationHost: type: string description: 'IP address or hostname of the BMP station from which BMP collection should be peformed for this device. If set, a jump server won’t be used for BMP collection.' examples: - 10.121.7.33 bgpAndBmpFailureHandling: type: string description: How to handle BGP or BMP collection failure. Defaults to `FAIL_DEVICE`. examples: - SWITCH_TO_CLI enum: - FAIL_DEVICE - SWITCH_TO_CLI - ALWAYS_USE_CLI - ALWAYS_USE_BMP - CONTINUE_WITHOUT_BGP_DATA collectBgpAdvertisements: type: boolean description: 'Whether BGP advertisements should be collected. Defaults to `false` unless advertisement collection is required to model a [synthetic device](https://docs.fwd.app/latest/api/synthetic-devices/) connected to this device.' examples: - false bgpTableType: type: string description: 'The BGP route types to collect. Honored only if `collectedBgpAdvertisements` is true. Defaults to `BOTH`.' examples: - BOTH enum: - BOTH - ADJ_RIB_IN - ADJ_RIB_OUT bgpPeerType: type: string description: 'The BGP peer types from which to collect routes. Honored only if `collectedBgpAdvertisements` is true. Defaults to `BOTH`.' examples: - BOTH enum: - BOTH - EBGP - IBGP bgpSubnetsToCollect: type: array items: type: string description: 'Restricts collection of BGP advertisements to specific subnets if the device supports it. Honored only if `collectBgpAdvertisements` is `true`.' examples: - - 123.223.47.0/24 prompt: type: string description: 'A case-insensitive glob pattern used to identify an interactive prompt. When this pattern matches the end of the prompt, ignoring any trailing whitespace, the Collector will enter the configured `promptResponse`. Relevant for devices collected via SSH or Telnet.' examples: - y/n promptResponse: type: string description: 'What the Collector should enter in response to a device prompt matching `prompt` in order to proceed. Relevant for devices collected via SSH or Telnet. Required if `prompt` is set.' examples: - y collect: type: boolean description: Whether to collect from the device. Defaults to true. examples: - false note: type: string description: An optional description or note about the device. enableSnmpCollection: type: boolean description: Whether to collect performance data (counters) via SNMP. Defaults to false. examples: - false highCpuUsage: type: number format: float minimum: 0.75 maximum: 1 description: Threshold at or above which CPU usage is considered high. Defaults to 0.8 (80.0%). examples: - 0.85 highMemoryUsage: type: number format: float minimum: 0.75 maximum: 1 description: Threshold at or above which memory usage is considered high. Defaults to 0.9 (90.0%). examples: - 0.92 highInputUtilization: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which input interface utilization is considered high. Defaults to 0.9 (90.0%).' examples: - 0.8 highOutputUtilization: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which output interface utilization is considered high. Defaults to 0.9 (90.0%).' examples: - 0.88 mediumCpuUsage: type: number format: float minimum: 0.5 maximum: 1 description: Threshold at or above which CPU usage is considered medium high. Has no default value. examples: - 0.7 mediumMemoryUsage: type: number format: float minimum: 0.5 maximum: 1 description: Threshold at or above which memory usage is considered medium high. Has no default value. examples: - 0.71 mediumInputUtilization: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which input interface utilization is considered medium high. Has no default value.' examples: - 0.72 mediumOutputUtilization: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which output interface utilization is considered medium high. Has no default value.' examples: - 0.73 cloudLocationId: type: string description: 'ID of the cloud location at which this device was discovered. Present for cloud-based virtualized devices only.' examples: - AWS.us-east-1 cloudSetupId: type: string description: 'Name of the cloud setup associated with this device’s discovery. Present for cloud-based virtualized devices only.' examples: - my-aws-setup cloudDiscoverySource: type: string description: 'Account name (AWS), Project ID (GCP), or Subscription ID (Azure) associated with this device’s discovery. Present for cloud-based virtualized devices only.' examples: - main tags: type: array items: type: string description: Tags assigned to the device. Present only if specifically requested. locationId: type: string description: 'The `id` of the device’s assigned Location (see [Network Locations](https://docs.fwd.app/latest/api/network-locations/)). Present only if specifically requested. Defaults to "default" (the Unassigned location).' examples: - atl testResult: $ref: '#/components/schemas/SourceConnectivityResult' description: 'The device’s most recent connectivity test result. Present only if specifically requested. Absent if the device’s connectivity hasn’t been tested since the last substantial edit to the device.' - $ref: '#/components/schemas/Attribution' Attribution: type: object properties: createdById: type: string description: 'The ID of the user who created this entity, if known. *Note*: The referenced user account might no longer exist since an administrator can delete accounts.' examples: - '456' createdAt: type: string description: When this entity was created, if known. examples: - '2021-12-29T16:30:45.111Z' createdBy: type: string description: 'The username of the user who created this entity, if known. Absent if the user account has been deleted.' examples: - me@example.com updatedById: type: string description: 'The ID of the user who most recently updated this entity, if known. *Note*: The referenced user account might no longer exist since an administrator can delete accounts.' examples: - '789' updatedAt: type: string description: When this entity was most recently updated, if known. examples: - '2024-10-27T21:44:51.345Z' updatedBy: type: string description: 'The username of the user who most recently updated this entity, if known. Absent if the user account has been deleted.' examples: - you@example.com DeviceNames: type: object properties: names: type: array items: type: string ClassicDevicePatch: type: object properties: name: type: string description: 'A name that’s unique (ignoring case) among all of the network’s collection source names. May consist of letters, digits, dots, hyphens, and underscores. Use `null` to clear. Omit to leave the property alone.' examples: - my-router type: $ref: '#/components/schemas/ClassicDeviceType' description: 'Auto-detected during connectivity testing if unspecified. Use `null` to clear. Omit to leave the property alone.' examples: - checkpoint_ssh host: type: string description: 'IP address or hostname used to connect to the device. Use `null` to clear. Omit to leave the property alone.' examples: - 10.121.7.13 port: type: integer format: int32 minimum: 1 maximum: 65535 description: 'Port used to connect to the device. The default value depends on the collection protocol: 22 for SSH, 443 for HTTPS, etc. Use `null` to clear. Omit to leave the property alone.' examples: - 22 cliCredentialId: type: string description: 'The `id` of a CliCredential of type `LOGIN`. Relevant for devices collected via SSH or Telnet. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential. Use `null` to clear. Omit to leave the property alone.' examples: - L-3 cliCredential2Id: type: string description: 'The `id` of a CliCredential of type `PRIVILEGED_MODE` (for Cisco-like or Checkpoint devices) or `SHELL` (for Avi controllers). On Checkpoint, this credential is used for TACACS privilege escalation. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential. Use `null` to clear. Omit to leave the property alone.' examples: - PM-2 cliCredential3Id: type: string description: 'The `id` of a CliCredential of type `EXPERT_MODE` (for Checkpoint devices). Can be set with or without a `PRIVILEGED_MODE` credential for `cliCredential2Id`. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential. Use `null` to clear. Omit to leave the property alone.' examples: - EM-6 httpCredentialId: type: string description: 'The `id` of an HttpCredential of type `LOGIN` or `API_KEY`. Relevant for devices collected via HTTPS or HTTP. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential. Use `null` to clear. Omit to leave the property alone.' examples: - H-5 snmpCredentialId: type: string description: 'The `id` of an SnmpCredential. Used to collect performance data (counters) if `enableSnmpCollection` is true. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential. Use `null` to clear. Omit to leave the property alone.' examples: - S-4 jumpServerId: type: string description: 'The `id` of the JumpServer that should be used to collect from this device. Use `null` to clear. Omit to leave the property alone.' examples: - J-0 disableIpv6Collection: type: boolean description: 'Disables collection of any IPv6 forwarding state on the device. Defaults to false. Use `null` to clear. Omit to leave the property alone.' examples: - false fullCollectionLog: type: boolean description: 'Enables more detailed logging during collection. Defaults to false. Use `null` to clear. Omit to leave the property alone.' examples: - false paginationMode: $ref: '#/components/schemas/PaginationMode' description: 'The pagination mode to use during collection. Relevant for devices collected via SSH or Telnet. Defaults to `DISABLE_PAGINATION`. Per-command pagination (such as appending `| more`) may be used if set to `ENABLE_PAGINATION` for a device that doesn’t have a per-session pagination mode setting. Use `null` to clear. Omit to leave the property alone.' examples: - KEEP_UNCHANGED terminalWidth: type: integer format: int32 minimum: 80 maximum: 500 description: 'Width of pseudo-terminal in characters. A high value can prevent long lines from wrapping. Defaults to 500. Relevant for devices collected via SSH or Telnet. Use `null` to clear. Omit to leave the property alone.' examples: - 500 largeRtt: type: boolean description: 'Whether the device has a large round-trip time (requires a longer response timeout). Use `null` to clear. Omit to leave the property alone.' examples: - false minBytesReadPerSec: type: integer format: int64 description: 'The minimum read rate in bytes/sec required to prevent collection from failing with a `SLOW_READ_RATE_DETECTED` error. Defaults to 500. Use `null` to clear. Omit to leave the property alone.' examples: - false maxConnectionsPerMin: type: integer format: int32 description: 'The maximum number of connections to this device that should be attempted per minute. Setting this property can prevent spurious connectivity test failures if the device’s SSH server is configured with a connection rate limit. Use `null` to clear. Omit to leave the property alone.' examples: - 10 useFileTransferForLargeOutput: type: boolean description: 'Whether to use file transfer instead of printing large command output directly to the shell. This is currently only supported for Juniper devices when executing routing table commands. The primary purpose is to avoid printing large outputs directly to the shell, which on Juniper devices can interfere with packet forwarding performance. Instead, the command output is written to a temporary file on the device and then transferred over a separate connection. After the transfer is complete, the temporary file is deleted to prevent unnecessary disk usage on the device. Use `null` to clear. Omit to leave the property alone.' examples: - false bmpStationHost: type: string description: 'IP address or hostname of the BMP station from which BMP collection should be peformed for this device. If set, a jump server won’t be used for BMP collection. Use `null` to clear. Omit to leave the property alone.' examples: - 10.121.7.33 bgpAndBmpFailureHandling: type: string description: 'How to handle BGP or BMP collection failure. Defaults to `FAIL_DEVICE`. Use `null` to clear. Omit to leave the property alone.' examples: - SWITCH_TO_CLI enum: - FAIL_DEVICE - SWITCH_TO_CLI - ALWAYS_USE_CLI - ALWAYS_USE_BMP - CONTINUE_WITHOUT_BGP_DATA collectBgpAdvertisements: type: boolean description: 'Whether BGP advertisements should be collected. Defaults to `false` unless advertisement collection is required to model a [synthetic device](https://docs.fwd.app/latest/api/synthetic-devices/) connected to this device. Use `null` to clear. Omit to leave the property alone.' examples: - false bgpTableType: type: string description: 'The BGP route types to collect. Honored only if `collectedBgpAdvertisements` is true. Defaults to `BOTH`. Use `null` to clear. Omit to leave the property alone.' examples: - BOTH enum: - BOTH - ADJ_RIB_IN - ADJ_RIB_OUT bgpPeerType: type: string description: 'The BGP peer types from which to collect routes. Honored only if `collectedBgpAdvertisements` is true. Defaults to `BOTH`. Use `null` to clear. Omit to leave the property alone.' examples: - BOTH enum: - BOTH - EBGP - IBGP bgpSubnetsToCollect: type: array items: type: string description: 'Restricts collection of BGP advertisements to specific subnets if the device supports it. Honored only if `collectBgpAdvertisements` is `true`. Use `null` to clear. Omit to leave the property alone.' examples: - - 123.223.47.0/24 prompt: type: string description: 'A case-insensitive glob pattern used to identify an interactive prompt. When this pattern matches the end of the prompt, ignoring any trailing whitespace, the Collector will enter the configured `promptResponse`. Relevant for devices collected via SSH or Telnet. Use `null` to clear. Omit to leave the property alone.' examples: - y/n promptResponse: type: string description: 'What the Collector should enter in response to a device prompt matching `prompt` in order to proceed. Relevant for devices collected via SSH or Telnet. Required if `prompt` is set. Use `null` to clear. Omit to leave the property alone.' examples: - y collect: type: boolean description: 'Whether to collect from the device. Defaults to true. Use `null` to clear. Omit to leave the property alone.' examples: - false note: type: string description: 'An optional description or note about the device. Use `null` to clear. Omit to leave the property alone.' enableSnmpCollection: type: boolean description: 'Whether to collect performance data (counters) via SNMP. Defaults to false. Use `null` to clear. Omit to leave the property alone.' examples: - false highCpuUsage: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which CPU usage is considered high. Defaults to 0.8 (80.0%). Use `null` to clear. Omit to leave the property alone.' examples: - 0.85 highMemoryUsage: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which memory usage is considered high. Defaults to 0.9 (90.0%). Use `null` to clear. Omit to leave the property alone.' examples: - 0.92 highInputUtilization: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which input interface utilization is considered high. Defaults to 0.9 (90.0%). Use `null` to clear. Omit to leave the property alone.' examples: - 0.8 highOutputUtilization: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which output interface utilization is considered high. Defaults to 0.9 (90.0%). Use `null` to clear. Omit to leave the property alone.' examples: - 0.88 mediumCpuUsage: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which CPU usage is considered medium high. Has no default value. Use `null` to clear. Omit to leave the property alone.' examples: - 0.7 mediumMemoryUsage: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which memory usage is considered medium high. Has no default value. Use `null` to clear. Omit to leave the property alone.' examples: - 0.71 mediumInputUtilization: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which input interface utilization is considered medium high. Has no default value. Use `null` to clear. Omit to leave the property alone.' examples: - 0.72 mediumOutputUtilization: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which output interface utilization is considered medium high. Has no default value. Use `null` to clear. Omit to leave the property alone.' examples: - 0.73 NewClassicDevice: type: object required: - name - host properties: name: type: string description: 'A name that’s unique (ignoring case) among all of the network’s collection source names. May consist of letters, digits, dots, hyphens, and underscores.' examples: - my-router type: $ref: '#/components/schemas/ClassicDeviceType' description: Auto-detected during connectivity testing if unspecified. examples: - checkpoint_ssh host: type: string description: IP address or hostname used to connect to the device. examples: - 10.121.7.13 port: type: integer format: int32 minimum: 1 maximum: 65535 description: 'Port used to connect to the device. The default value depends on the collection protocol: 22 for SSH, 443 for HTTPS, etc.' examples: - 22 cliCredentialId: type: string description: 'The `id` of a CliCredential of type `LOGIN`. Relevant for devices collected via SSH or Telnet. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - L-3 cliCredential2Id: type: string description: 'The `id` of a CliCredential of type `PRIVILEGED_MODE` (for Cisco-like or Checkpoint devices) or `SHELL` (for Avi controllers). On Checkpoint, this credential is used for TACACS privilege escalation. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - PM-2 cliCredential3Id: type: string description: 'The `id` of a CliCredential of type `EXPERT_MODE` (for Checkpoint devices). Can be set with or without a `PRIVILEGED_MODE` credential for `cliCredential2Id`. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - EM-6 httpCredentialId: type: string description: 'The `id` of an HttpCredential of type `LOGIN` or `API_KEY`. Relevant for devices collected via HTTPS or HTTP. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - H-5 snmpCredentialId: type: string description: 'The `id` of an SnmpCredential. Used to collect performance data (counters) if `enableSnmpCollection` is true. Credential auto-association will be attempted using credentials configured to allow it if this property is unspecified and collecting from this device requires this kind of credential.' examples: - S-4 jumpServerId: type: string description: The `id` of the JumpServer that should be used to collect from this device. examples: - J-0 disableIpv6Collection: type: boolean description: Disables collection of any IPv6 forwarding state on the device. Defaults to false. examples: - false fullCollectionLog: type: boolean description: Enables more detailed logging during collection. Defaults to false. examples: - false paginationMode: $ref: '#/components/schemas/PaginationMode' description: 'The pagination mode to use during collection. Relevant for devices collected via SSH or Telnet. Defaults to `DISABLE_PAGINATION`. Per-command pagination (such as appending `| more`) may be used if set to `ENABLE_PAGINATION` for a device that doesn’t have a per-session pagination mode setting.' examples: - KEEP_UNCHANGED terminalWidth: type: integer format: int32 minimum: 80 maximum: 500 description: 'Width of pseudo-terminal in characters. A high value can prevent long lines from wrapping. Defaults to 500. Relevant for devices collected via SSH or Telnet.' examples: - 500 largeRtt: type: boolean description: Whether the device has a large round-trip time (requires a longer response timeout). examples: - false minBytesReadPerSec: type: integer format: int64 description: 'The minimum read rate in bytes/sec required to prevent collection from failing with a `SLOW_READ_RATE_DETECTED` error. Defaults to 500.' examples: - false maxConnectionsPerMin: type: integer format: int32 description: 'The maximum number of connections to this device that should be attempted per minute. Setting this property can prevent spurious connectivity test failures if the device’s SSH server is configured with a connection rate limit.' examples: - 10 useFileTransferForLargeOutput: type: boolean description: 'Whether to use file transfer instead of printing large command output directly to the shell. This is currently only supported for Juniper devices when executing routing table commands. The primary purpose is to avoid printing large outputs directly to the shell, which on Juniper devices can interfere with packet forwarding performance. Instead, the command output is written to a temporary file on the device and then transferred over a separate connection. After the transfer is complete, the temporary file is deleted to prevent unnecessary disk usage on the device.' examples: - false bmpStationHost: type: string description: 'IP address or hostname of the BMP station from which BMP collection should be peformed for this device. If set, a jump server won’t be used for BMP collection.' examples: - 10.121.7.33 bgpAndBmpFailureHandling: type: string description: How to handle BGP or BMP collection failure. Defaults to `FAIL_DEVICE`. examples: - SWITCH_TO_CLI enum: - FAIL_DEVICE - SWITCH_TO_CLI - ALWAYS_USE_CLI - ALWAYS_USE_BMP - CONTINUE_WITHOUT_BGP_DATA collectBgpAdvertisements: type: boolean description: 'Whether BGP advertisements should be collected. Defaults to `false` unless advertisement collection is required to model a [synthetic device](https://docs.fwd.app/latest/api/synthetic-devices/) connected to this device.' examples: - false bgpTableType: type: string description: 'The BGP route types to collect. Honored only if `collectedBgpAdvertisements` is true. Defaults to `BOTH`.' examples: - BOTH enum: - BOTH - ADJ_RIB_IN - ADJ_RIB_OUT bgpPeerType: type: string description: 'The BGP peer types from which to collect routes. Honored only if `collectedBgpAdvertisements` is true. Defaults to `BOTH`.' examples: - BOTH enum: - BOTH - EBGP - IBGP bgpSubnetsToCollect: type: array items: type: string description: 'Restricts collection of BGP advertisements to specific subnets if the device supports it. Honored only if `collectBgpAdvertisements` is `true`.' examples: - - 123.223.47.0/24 prompt: type: string description: 'A case-insensitive glob pattern used to identify an interactive prompt. When this pattern matches the end of the prompt, ignoring any trailing whitespace, the Collector will enter the configured `promptResponse`. Relevant for devices collected via SSH or Telnet.' examples: - y/n promptResponse: type: string description: 'What the Collector should enter in response to a device prompt matching `prompt` in order to proceed. Relevant for devices collected via SSH or Telnet. Required if `prompt` is set.' examples: - y collect: type: boolean description: Whether to collect from the device. Defaults to true. examples: - false note: type: string description: An optional description or note about the device. enableSnmpCollection: type: boolean description: Whether to collect performance data (counters) via SNMP. Defaults to false. examples: - false highCpuUsage: type: number format: float minimum: 0.75 maximum: 1 description: Threshold at or above which CPU usage is considered high. Defaults to 0.8 (80.0%). examples: - 0.85 highMemoryUsage: type: number format: float minimum: 0.75 maximum: 1 description: Threshold at or above which memory usage is considered high. Defaults to 0.9 (90.0%). examples: - 0.92 highInputUtilization: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which input interface utilization is considered high. Defaults to 0.9 (90.0%).' examples: - 0.8 highOutputUtilization: type: number format: float minimum: 0.75 maximum: 1 description: 'Threshold at or above which output interface utilization is considered high. Defaults to 0.9 (90.0%).' examples: - 0.88 mediumCpuUsage: type: number format: float minimum: 0.5 maximum: 1 description: Threshold at or above which CPU usage is considered medium high. Has no default value. examples: - 0.7 mediumMemoryUsage: type: number format: float minimum: 0.5 maximum: 1 description: Threshold at or above which memory usage is considered medium high. Has no default value. examples: - 0.71 mediumInputUtilization: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which input interface utilization is considered medium high. Has no default value.' examples: - 0.72 mediumOutputUtilization: type: number format: float minimum: 0.5 maximum: 1 description: 'Threshold at or above which output interface utilization is considered medium high. Has no default value.' examples: - 0.73 cloudLocationId: type: string description: 'ID of the cloud location at which this device was discovered. Present for cloud-based virtualized devices only.' examples: - AWS.us-east-1 cloudSetupId: type: string description: 'Name of the cloud setup associated with this device’s discovery. Present for cloud-based virtualized devices only.' examples: - my-aws-setup cloudDiscoverySource: type: string description: 'Account name (AWS), Project ID (GCP), or Subscription ID (Azure) associated with this device’s discovery. Present for cloud-based virtualized devices only.' examples: - main ClassicDeviceType: type: string enum: - aruba_controller_ssh - aruba_switch_ssh - aruba_aos_cx_ssh - 128t_conductor_full - 128t_router - 128t_conductor - a10_acos_ssh - arista_eos_ssh - avi_controller_ssh - avi_controller_ssh_cli_user - avi_controller_ssh_via_host - avi_controller_https_api - avi_controller_http_api - bluecoat_ssh - cisco_ios_ssh - cisco_ios_telnet - cisco_ios_xe_ssh - cisco_ios_xe_telnet - cisco_ios_xr_ssh - cisco_nxos_ssh - cisco_nxos_telnet - cisco_asa_ssh - cisco_asa_telnet - cisco_asa_admin_ssh - cisco_asa_child_ssh - cisco_ftd_ssh - cisco_fxos_ssh - cisco_firewalls_on_firepower_ssh - cisco_fmc_api - cisco_nxos_aci_ssh - cisco_ndo_api - cisco_apic_api - cisco_apic_only_ssh - cisco_sg_ssh - juniper_junos_ssh - juniper_srx_ssh - juniper_netscreen_ssh - pica8_ovs_ofctl_ssh - linux_ovs_ofctl_ssh - f5_ssh - f5_os_hypervisor_ssh - checkpoint_ssh - checkpoint_ssh_nonexpert - checkpoint_ssh_with_manager - checkpoint_mgmt_api - fortinet_ssh - hp_comware_ssh - hp_comware_telnet - hp_provision_ssh - huawei_switch_ssh - panos_ssh - viasat_encryptor_snmp3 - netscaler_ssh - cumulus_ssh - riverbed_steelhead_ssh - riverbed_interceptor_ssh - cisco_ucs_ssh - avaya_sr_ssh - avaya_sr_telnet - avaya_ers_ssh - avaya_ers_telnet - silver_peak_edgeconnect_ssh - silver_peak_orchestrator_api - prisma_sdwan_ssh - prisma_sdwan_api - prisma_sdwan_unified_api - pensando_api - forcepoint_https_api - forcepoint_http_api - forcepoint_ssh - cisco_sdwan_ssh - cisco_sdwan_vsmart_ssh - bluecat_http - bluecat_https - bluecat_v2_http - bluecat_v2_https - nokia_ssh - brocade_switch_ssh - versa_flexvnf_ssh - versa_switch_ssh - versa_director_api - cisco_encs_nfv_ssh - extreme_switch_ssh - mist_dashboard_api - dell_os6_switch_ssh - dell_os6_switch_telnet - dell_os9_switch_ssh - dell_os9_switch_telnet - dell_os10_switch_ssh - dell_os10_switch_telnet - sonic_dell_enterprise_ssh - gem1_api - taclane_encryptor_snmp - sonic_edge_core_ssh ConnectivityTestError: type: string enum: - PING_FAILED - PORT_REACHABILITY_FAILED - UNSUPPORTED_SSH_PROTOCOL - CONNECTION_FAILED - PROMPT_DISCOVERY_FAILED - AUTHENTICATION_FAILED - TWO_FACTOR_AUTHENTICATION_FAILED - KEY_EXCHANGE_FAILED - UNEXPECTED_KEY_EXCHANGE_MESSAGE - CERTIFICATE_CHECK_FAILED - PASSWORD_EXPIRED - JUMP_SERVER_PING_FAILED - JUMP_SERVER_PORT_REACHABILITY_FAILED - JUMP_SERVER_CONNECTION_FAILED - JUMP_SERVER_AUTHENTICATION_FAILED - JUMP_SERVER_KEY_EXCHANGE_FAILED - JUMP_SERVER_PASSWORD_EXPIRED - PROXY_SERVER_PING_FAILED - PROXY_SERVER_PORT_REACHABILITY_FAILED - PROXY_SERVER_CONNECTION_FAILED - PROXY_SERVER_AUTHENTICATION_FAILED - SERVER_FINGERPRINT_CHECK_FAILED - SESSION_LIMIT_REACHED - DEVICE_TYPE_MISMATCH - DEVICE_TYPE_UNDETECTED - SESSION_CLOSED - PRIV_PASSWORD_ERROR - EXPERT_PASSWORD_ERROR - DEVICE_IS_CHILD_CONTEXT - GUEST_MISSING_HOST_RESULTS - HOST_MISSING_GUEST_RESULTS - HOST_NOT_REPORTING_ANY_GUEST - GUEST_NOT_REPORTING_ANY_NAME - UNSUPPORTED_VERSION - AVI_SHELL_AUTH_FAILED - KEY_BASED_ACCESS_TO_AVI_CONTAINER_FAILED - AVI_SERVICE_ENGINE_DISCOVERED - AVI_VIA_LINUX_OVER_JUMP_SERVER_UNSUPPORTED - AVI_CONTROLLER_WITHOUT_HEALTHY_SERVICE_ENGINES - T128_CONDUCTOR_WITHOUT_HEALTHY_ROUTERS - API_CALL_FAILED - CHECKPOINT_MANAGER_FOUND - AUTHORIZATION_FAILED - INCOMPLETE_AUTHORIZATION_CHECK - CUSTOM_COMMAND_AUTHORIZATION_FAILED - TACACS_SESSION_EXPIRED - AZURE_SUBSCRIPTION_NOT_FOUND - TIMED_OUT - DEVICE_IN_BAD_STATE - PROJECT_VIEW_PERMISSION_MISSING - UNSUPPORTED_DEVICE_TYPE - LIMITED_DEVICE_SUPPORT - SLOW_READ_RATE - TRANSIENT_SLOW_READ_RATE_DETECTED - NO_SPACE_LEFT_ON_COLLECTOR - NO_SPACE_LEFT_ON_COLLECTED_DEVICE - VERSA_DIRECTOR_DISCOVERED - DEVICE_PROTOCOL_MISMATCH - API_SERVER_FAILED_TO_RESPOND - UNRESOLVABLE_HOSTNAME - UNSUPPORTED_SSL_CONNECTION - PASSWD_DISCOVERY_ON_INSECURE_PROTOCOL - INCOMPLETE_SETUP - CONFIG_COLLECTION_UNAUTHORIZED - FILE_TRANSFER_FAILED - VELOS_CONTROLLER_DISCOVERED - CANCELED - OTHER DeviceCriteria: type: object required: - names properties: names: type: array items: type: string examples: - - router_01 - router_02 securitySchemes: api_token: type: http scheme: basic