openapi: 3.2.0
info:
title: 'Forward Networks: Complete Aliases User Accounts 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: User Accounts
description: Manage user accounts
summary: User Accounts
paths:
/users:
get:
tags:
- User Accounts
summary: Get all user accounts
operationId: getUsers
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Users'
security:
- api_token: []
post:
tags:
- User Accounts
summary: Create a user account
description: Creates a new `LOCAL` user account.
operationId: createUser
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewUser'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/User'
security:
- api_token: []
/users/{userId}:
get:
tags:
- User Accounts
summary: Get a user account
operationId: getUser
parameters:
- name: userId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/User'
security:
- api_token: []
patch:
tags:
- User Accounts
summary: Update a user account
description: 'All JSON properties in the request body are optional. Include only the properties you wish to
change.'
operationId: updateUser
parameters:
- name: userId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserPatch'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/User'
security:
- api_token: []
delete:
tags:
- User Accounts
summary: Delete a user account
description: '**Warning**: This operation *cannot* be undone.'
operationId: deleteUser
parameters:
- name: userId
in: path
required: true
schema:
type: string
responses:
'204':
description: No Content
content: {}
security:
- api_token: []
components:
schemas:
NewUser:
type: object
required:
- email
- password
properties:
email:
type: string
examples:
- me@example.com
username:
type: string
description: Defaults to the value of `email`
examples:
- me@example.com
password:
type: string
examples:
- zF4H+K;5]qE~%9G=nbAk
isSupport:
type: boolean
description: Defaults to `false`
examples:
- false
enabled:
type: boolean
description: Defaults to `true`
examples:
- true
User:
type: object
required:
- id
- username
- enabled
- authSource
properties:
id:
type: string
description: A system-generated identifier that can be used in API requests to manage this account
examples:
- '55555'
username:
type: string
description: The identifier used to authenticate (log in) with this account
examples:
- me@example.com
email:
type: string
description: The email address at which this user wishes to receive system-generated emails
examples:
- me@example.com
enabled:
type: boolean
description: Whether authentication (login and API use) is currently permitted for this user account
authSource:
type: string
description: How this user authenticates. `LOCAL` accounts exist only in the Forward Platform.
examples:
- SAML
enum:
- LOCAL
- TACACS
- SAML
- LDAP
externalGroups:
type: array
items:
type: string
description: 'The names of any LDAP or SSO (SAML) groups to which this account belongs. Updated each time this user
authenticates.'
examples:
- - netops
isSupport:
type: boolean
description: 'Whether this account belongs to Forward Networks support staff. `true` excludes the account from statistics
shown on the Engagement dashboard.'
lastActive:
type: string
description: The approximate time of the most recent authenticated request from this account
examples:
- '2024-12-31T23:59:59.789Z'
UserPatch:
type: object
properties:
email:
type: string
examples:
- me@example.com
username:
type: string
description: Changes the username of a user whose `authSource` is "LOCAL"
examples:
- me@example.com
password:
type: string
description: 'Assigns a new temporary password to a user whose `authSource` is "LOCAL". The user will be prompted to
choose a new password when they log in with this password.'
examples:
- zF4H+K;5]qE~%9G=nbAk
isSupport:
type: boolean
examples:
- false
enabled:
type: boolean
examples:
- true
Users:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/User'
securitySchemes:
api_token:
type: http
scheme: basic