F5 BIG-IP Declarative Onboarding API
Declarative Onboarding (DO) extension for initial BIG-IP system configuration and provisioning via JSON declarations covering licensing, networking, user management, and module provisioning.
Declarative Onboarding (DO) extension for initial BIG-IP system configuration and provisioning via JSON declarations covering licensing, networking, user management, and module provisioning.
openapi: 3.1.0
info:
title: F5 Load Balancer F5 BIG-IP Declarative Onboarding (DO) API
description: >-
The Declarative Onboarding (DO) extension automates the initial BIG-IP
system configuration and provisioning using a declarative JSON model. DO
handles Layer 1-3 onboarding tasks including licensing, DNS and NTP
configuration, VLAN setup, self IP assignment, user management, and
module provisioning. Administrators submit a single JSON declaration
describing the desired initial device state, and DO configures the
BIG-IP system accordingly.
version: '1.41.0'
contact:
name: F5 Networks Support
email: [email protected]
url: https://www.f5.com/services/support
license:
name: Apache-2.0
url: https://www.apache.org/licenses/LICENSE-2.0
termsOfService: https://www.f5.com/company/policies/terms-of-use
externalDocs:
description: F5 BIG-IP Declarative Onboarding Documentation
url: https://clouddocs.f5.com/products/extensions/f5-declarative-onboarding/latest/
servers:
- url: https://{bigip_host}/mgmt/shared/declarative-onboarding
description: BIG-IP Declarative Onboarding Endpoint
variables:
bigip_host:
default: 192.168.1.245
description: >-
Hostname or IP address of the BIG-IP device. Use port 8443
for single-NIC BIG-IP deployments.
security:
- basicAuth: []
- tokenAuth: []
tags:
- name: Config
description: >-
Retrieve the original device configuration before Declarative
Onboarding modifications were applied.
- name: Declarations
description: >-
Submit and retrieve Declarative Onboarding declarations for initial
BIG-IP device configuration and provisioning.
- name: Info
description: >-
Retrieve version and release information about the installed DO
extension.
- name: Inspect
description: >-
Inspect the current state of BIG-IP configuration classes known
to Declarative Onboarding.
- name: Tasks
description: >-
Monitor the status of Declarative Onboarding task executions.
paths:
/:
post:
operationId: submitOnboardingDeclaration
summary: F5 Load Balancer Submit a Declarative Onboarding declaration
description: >-
Submits a Declarative Onboarding declaration to configure the BIG-IP
system initial settings. The declaration describes licensing, DNS,
NTP, VLANs, self IPs, provisioning, and other device-level settings.
Processing is asynchronous and returns a task ID for status monitoring.
tags:
- Declarations
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DODeclaration'
responses:
'200':
description: Declaration processed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/DOResponse'
'202':
description: Declaration accepted for asynchronous processing
content:
application/json:
schema:
$ref: '#/components/schemas/DOTaskResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
description: Declaration validation failed
'500':
$ref: '#/components/responses/InternalError'
get:
operationId: getOnboardingDeclaration
summary: F5 Load Balancer Retrieve the current DO declaration
description: >-
Retrieves the most recently submitted Declarative Onboarding
declaration from the BIG-IP system.
tags:
- Declarations
parameters:
- name: statusCodes
in: query
required: false
description: >-
When set to legacy, uses status codes compatible with older
DO versions.
schema:
type: string
enum:
- legacy
- experimental
responses:
'200':
description: Declaration retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/DODeclaration'
'204':
description: No declaration has been submitted
'401':
$ref: '#/components/responses/Unauthorized'
/task:
get:
operationId: listOnboardingTasks
summary: F5 Load Balancer List all DO tasks
description: >-
Retrieves an array of all Declarative Onboarding task records
and their processing statuses.
tags:
- Tasks
responses:
'200':
description: Task list retrieved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DOTaskResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/task/{taskId}:
parameters:
- $ref: '#/components/parameters/TaskIdParam'
get:
operationId: getOnboardingTask
summary: F5 Load Balancer Get a specific DO task status
description: >-
Retrieves the status and result of a specific Declarative Onboarding
task identified by its task ID.
tags:
- Tasks
responses:
'200':
description: Task status retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/DOTaskResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/config:
get:
operationId: listOriginalConfigs
summary: F5 Load Balancer List original device configurations
description: >-
Retrieves the original configurations for all devices managed by
Declarative Onboarding before any DO modifications were applied.
tags:
- Config
responses:
'200':
description: Original configurations retrieved
content:
application/json:
schema:
type: array
items:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/config/{machineId}:
parameters:
- name: machineId
in: path
required: true
description: >-
The machine ID of the BIG-IP device whose original configuration
to retrieve.
schema:
type: string
get:
operationId: getOriginalConfig
summary: F5 Load Balancer Get original configuration for a device
description: >-
Retrieves the original configuration for a specific device identified
by its machine ID, as it existed before Declarative Onboarding
modifications.
tags:
- Config
responses:
'200':
description: Original device configuration retrieved
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/inspect:
get:
operationId: inspectCurrentState
summary: F5 Load Balancer Inspect current BIG-IP state
description: >-
Returns the classes Declarative Onboarding is aware of and their
current state on the BIG-IP system. Useful for understanding the
current device configuration in DO terms.
tags:
- Inspect
responses:
'200':
description: Current state inspection retrieved
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/info:
get:
operationId: getDoInfo
summary: F5 Load Balancer Get DO extension information
description: >-
Returns version and release information for the installed Declarative
Onboarding extension, including current and minimum required
schema versions.
tags:
- Info
responses:
'200':
description: DO information retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/DOInfo'
'401':
$ref: '#/components/responses/Unauthorized'
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
description: >-
HTTP Basic Authentication using BIG-IP admin credentials.
tokenAuth:
type: apiKey
in: header
name: X-F5-Auth-Token
description: >-
Token-based authentication from /mgmt/shared/authn/login.
parameters:
TaskIdParam:
name: taskId
in: path
required: true
description: >-
Unique identifier for the DO processing task.
schema:
type: string
responses:
BadRequest:
description: >-
The declaration was malformed or contained invalid properties.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: >-
Authentication credentials were missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: >-
The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
InternalError:
description: >-
An internal error occurred during declaration processing.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
ErrorResponse:
type: object
properties:
code:
type: integer
message:
type: string
DODeclaration:
type: object
description: >-
A Declarative Onboarding declaration describing the desired initial
BIG-IP device configuration state.
required:
- schemaVersion
- class
properties:
schemaVersion:
type: string
description: >-
Version of the DO schema this declaration conforms to.
class:
type: string
const: Device
description: >-
Must be Device for a DO declaration.
async:
type: boolean
description: >-
Whether the declaration should be processed asynchronously.
default: false
label:
type: string
description: >-
Human-readable label for this declaration.
Common:
type: object
description: >-
Configuration applied to the Common partition of the BIG-IP.
properties:
class:
type: string
const: Tenant
hostname:
type: string
description: >-
Fully qualified hostname for the BIG-IP device.
format: hostname
myLicense:
type: object
description: >-
License configuration for the BIG-IP device.
properties:
class:
type: string
const: License
licenseType:
type: string
enum:
- regKey
- licensePool
regKey:
type: string
description: >-
Registration key for the BIG-IP license.
myDns:
type: object
description: >-
DNS resolver configuration.
properties:
class:
type: string
const: DNS
nameServers:
type: array
items:
type: string
format: ipv4
search:
type: array
items:
type: string
myNtp:
type: object
description: >-
NTP time synchronization configuration.
properties:
class:
type: string
const: NTP
servers:
type: array
items:
type: string
timezone:
type: string
myProvisioning:
type: object
description: >-
Module provisioning configuration.
properties:
class:
type: string
const: Provision
ltm:
type: string
enum:
- dedicated
- nominal
- minimum
- none
asm:
type: string
enum:
- dedicated
- nominal
- minimum
- none
gtm:
type: string
enum:
- dedicated
- nominal
- minimum
- none
afm:
type: string
enum:
- dedicated
- nominal
- minimum
- none
additionalProperties:
type: object
description: >-
Additional configuration objects such as VLANs, self IPs,
routes, and users.
DOResponse:
type: object
properties:
result:
type: object
properties:
class:
type: string
code:
type: integer
status:
type: string
message:
type: string
errors:
type: array
items:
type: string
declaration:
$ref: '#/components/schemas/DODeclaration'
DOTaskResponse:
type: object
properties:
id:
type: string
description: >-
Unique task identifier.
result:
type: object
properties:
class:
type: string
code:
type: integer
status:
type: string
enum:
- OK
- ERROR
- ROLLING_BACK
- RUNNING
- REBOOTING
message:
type: string
errors:
type: array
items:
type: string
declaration:
type: object
DOInfo:
type: object
properties:
version:
type: string
description: >-
Declarative Onboarding extension version.
release:
type: string
description: >-
DO release identifier.
schemaCurrent:
type: string
description: >-
Current DO schema version.
schemaMinimum:
type: string
description: >-
Minimum supported DO schema version.