Forward Networks Jump Servers API
Configure jump servers to assist in reaching network devices
Configure jump servers to assist in reaching network devices
openapi: 3.2.0
info:
title: 'Forward Networks: Complete Aliases Jump Servers 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: Jump Servers
description: Configure jump servers to assist in reaching network devices
summary: Jump Servers
paths:
/networks/{networkId}/jumpServers:
get:
tags:
- Jump Servers
summary: Get all jump servers
description: Substitutes a system-generated identifier for each sensitive `password` and `sshKey`.
operationId: getJumpServers
parameters:
- name: networkId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StoredJumpServer'
security:
- api_token: []
post:
tags:
- Jump Servers
summary: Create a jump server
operationId: createJumpServer
parameters:
- name: networkId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewJumpServer'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/JumpServer'
security:
- api_token: []
/networks/{networkId}/jumpServers/{jumpServerId}:
patch:
tags:
- Jump Servers
summary: Update a jump server
description: 'All JSON properties in the request body are optional. Include only the properties you wish to
change.'
operationId: editJumpServer
parameters:
- name: networkId
in: path
required: true
schema:
type: string
- name: jumpServerId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JumpServerUpdate'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
security:
- api_token: []
delete:
tags:
- Jump Servers
summary: Delete a jump server
operationId: deleteJumpServer
parameters:
- name: networkId
in: path
required: true
schema:
type: string
- name: jumpServerId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
security:
- api_token: []
components:
schemas:
NewJumpServer:
type: object
required:
- host
- username
properties:
host:
type: string
examples:
- 10.121.7.14
port:
type: integer
format: int32
description: defaults to 22
examples:
- 23
username:
type: string
examples:
- admin
password:
type: string
description: Either this or `sshKey` is required
examples:
- my-s3cr3t-p4s$w0rd
sshKey:
type: string
description: 'SSH private key for authentication. Either this or `password` is required. Requires `supportsPortForwarding`
to be true.'
examples:
- '-----BEGIN RSA PRIVATE KEY-----
MIIPIQIBAzCCDtoGCSqGSIb3DQEHAa…'
sshCert:
type: string
description: 'SSH user certificate for authentication. Applicable only for certificate based authentication and requires
`sshKey` to be provided.'
examples:
- ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAA…
supportsPortForwarding:
type: boolean
description: defaults to true
examples:
- false
commandFormat:
$ref: '#/components/schemas/JumpServerCommandFormat'
description: applicable when supportsPortForwarding is false, defaults to UNIX
examples:
- CISCO_IOS
vrf:
type: string
description: 'VRF that this jump server should use to connect to devices. Can be set only if `commandFormat`
is CISCO_IOS.'
examples:
- Management-vrf
authenticationTimeoutSeconds:
type: integer
format: int32
description: seconds to wait for the jump server authentication response. Defaults to 20.
examples:
- 20
JumpServerUpdate:
type: object
properties:
host:
type: string
examples:
- 10.121.7.14
port:
type: integer
format: int32
examples:
- 23
username:
type: string
examples:
- admin
password:
type: string
examples:
- my-s3cr3t-p4s$w0rd
sshKey:
type: string
examples:
- '-----BEGIN RSA PRIVATE KEY-----
MIIPIQIBAzCCDtoGCSqGSIb3DQEHAa...'
sshCert:
type: string
examples:
- ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAA...
supportsPortForwarding:
type: boolean
examples:
- false
commandFormat:
$ref: '#/components/schemas/JumpServerCommandFormat'
examples:
- CISCO_IOS
vrf:
type: string
examples:
- Management-vrf
authenticationTimeoutSeconds:
type: integer
format: int32
examples:
- 20
StoredJumpServer:
allOf:
- $ref: '#/components/schemas/JumpServer'
- $ref: '#/components/schemas/Attribution'
JumpServerCommandFormat:
type: string
enum:
- UNIX
- CISCO_IOS
- JUNOS
- PANORAMA
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
JumpServer:
type: object
required:
- host
- username
properties:
id:
type: string
examples:
- 8c4a168e-c6ca-4978-bcc9-c0ec7f64a164
host:
type: string
examples:
- 10.121.7.14
port:
type: integer
format: int32
description: defaults to 22
examples:
- 23
username:
type: string
examples:
- admin
password:
type: string
description: 'Either this or `sshKey` must be provided in requests. A system-generated identifier is substituted for the
actual password in responses.'
examples:
- my-s3cr3t-p4s$w0rd
sshKey:
type: string
description: 'SSH private key for authentication. Either this or `password` must be provided in requests. Requires
`supportsPortForwarding` to be true. A system-generated identifier is substituted for the actual key in
responses.'
examples:
- '-----BEGIN RSA PRIVATE KEY-----
MIIPIQIBAzCCDtoGCSqGSIb3DQEHAa...'
sshCert:
type: string
description: 'SSH user certificate for authentication. Applicable only for certificate based authentication and requires
`sshKey` to be provided.'
examples:
- ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAA...
supportsPortForwarding:
type: boolean
description: defaults to true
examples:
- false
commandFormat:
$ref: '#/components/schemas/JumpServerCommandFormat'
description: applicable when supportsPortForwarding is false, defaults to UNIX
examples:
- CISCO_IOS
vrf:
type: string
description: 'VRF that this jump server should use to connect to devices. Can be set only if `commandFormat`
is CISCO_IOS.'
examples:
- Management-vrf
authenticationTimeoutSeconds:
type: integer
format: int32
description: seconds to wait for the jump server authentication response. Defaults to 20.
examples:
- 20
securitySchemes:
api_token:
type: http
scheme: basic