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: support@f5.com 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.