API Reference

Migrations API

Platform migration plans — firewall, ADC (AVI/F5/A10), GSLB, ASM/WAF, vCMP, and consolidation. Auto-generated from the platform OpenAPI schema so it matches the running API.

REST API for this feature — 146 operations across 110 resource paths, auto-generated from the platform's live OpenAPI schema (drf-spectacular).

Base URL https://<your-versus-host>/api · Auth Authorization: Bearer <JWT> (from POST /api/auth/token/) · 📄 Download the OpenAPI spec for Postman/Insomnia/Swagger · see the API overview for pagination, filtering, and errors.

A10 avi plans

GET /api/a10-avi-plans/

List a10 avi plans

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedA10ToAviMigrationPlanList

POST /api/a10-avi-plans/

Create a10 avi plan

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 201 → A10ToAviMigrationPlan

GET /api/a10-avi-plans/{id}/

Retrieve a10 avi plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Responses: 200 → A10ToAviMigrationPlan

PUT /api/a10-avi-plans/{id}/

Update a10 avi plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

PATCH /api/a10-avi-plans/{id}/

Update a10 avi plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): PatchedA10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

DELETE /api/a10-avi-plans/{id}/

Delete a10 avi plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Responses: 204

POST /api/a10-avi-plans/{id}/assign_vips/

Store user-entered VIP assignments and advance plan to vips_set.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

POST /api/a10-avi-plans/{id}/check_objects/

Check all translated target objects against the Avi controller and

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

POST /api/a10-avi-plans/{id}/deploy/

Provision all translated VSes on the Avi controller.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

POST /api/a10-avi-plans/{id}/discover/

Pull all Virtual Servers from the source device and store as candidates.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

GET /api/a10-avi-plans/{id}/list_se_groups/

Return available Service Engine groups from the target Avi.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Responses: 200 → A10ToAviMigrationPlan

POST /api/a10-avi-plans/{id}/select_vs/

Store which VS:port pairs the user has chosen to migrate.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

POST /api/a10-avi-plans/{id}/translate/

Run the source→Avi converter for all selected virtual servers.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

POST /api/a10-avi-plans/{id}/validate_vip/

Validate a proposed target VIP against the Avi controller.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Request body (application/json): A10ToAviMigrationPlanRequest

Responses: 200 → A10ToAviMigrationPlan

GET /api/a10-avi-plans/{id}/vs-status/

Live A10 operational status (up/down) for this plan's virtual

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this a10 to avi migration plan.

Responses: 200 → A10ToAviMigrationPlan


Asm cf plans

GET /api/asm-cf-plans/

List asm cf plans

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedASMToCloudflarePlanList

POST /api/asm-cf-plans/

Create asm cf plan

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 201 → ASMToCloudflarePlan

GET /api/asm-cf-plans/{id}/

Retrieve asm cf plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Responses: 200 → ASMToCloudflarePlan

PUT /api/asm-cf-plans/{id}/

Update asm cf plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

PATCH /api/asm-cf-plans/{id}/

Update asm cf plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): PatchedASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

DELETE /api/asm-cf-plans/{id}/

Delete asm cf plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Responses: 204

POST /api/asm-cf-plans/{id}/build/

Phase 4 — Create Cloudflare configuration objects.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/bulk_decide/

Accept all pending low-risk entities in bulk to speed up review.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/complete/

Mark the migration as complete after successful soak period.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/cutover/

Phase 6 — Execute cutover.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/decide_entity/

Phase 3 — Record a risk decision on one entity.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

GET /api/asm-cf-plans/{id}/entities/

Return all entities for this plan, with optional filters.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/extract/

Phase 1 — Extract all ASM entities from the selected policy.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/list_policies/

Return all ASM policies available on the F5 source device.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/map_entities/

Phase 2 — Run the mapping engine on all extracted entities.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

GET /api/asm-cf-plans/{id}/risk_register/

Return only partial/none entities (the Residual Risk Register).

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/rollback/

Rollback cutover — revert DNS to F5-fronted path.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

POST /api/asm-cf-plans/{id}/sign_off_validation/

Phase 5 — Record validation sign-off and advance to cutover-ready.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Request body (application/json): ASMToCloudflarePlanRequest

Responses: 200 → ASMToCloudflarePlan

GET /api/asm-cf-plans/{id}/verify_cf_token/

Verify the stored Cloudflare API token is valid.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to cloudflare plan.

Responses: 200 → ASMToCloudflarePlan


Asm xc plans

GET /api/asm-xc-plans/

F5 ASM -> F5 Distributed Cloud (XC) WAF migration plan. Same

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedASMToXCPlanList

POST /api/asm-xc-plans/

F5 ASM -> F5 Distributed Cloud (XC) WAF migration plan. Same

Request body (application/json): ASMToXCPlanRequest

Responses: 201 → ASMToXCPlan

GET /api/asm-xc-plans/{id}/

F5 ASM -> F5 Distributed Cloud (XC) WAF migration plan. Same

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Responses: 200 → ASMToXCPlan

PUT /api/asm-xc-plans/{id}/

F5 ASM -> F5 Distributed Cloud (XC) WAF migration plan. Same

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

PATCH /api/asm-xc-plans/{id}/

F5 ASM -> F5 Distributed Cloud (XC) WAF migration plan. Same

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): PatchedASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

DELETE /api/asm-xc-plans/{id}/

F5 ASM -> F5 Distributed Cloud (XC) WAF migration plan. Same

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Responses: 204

POST /api/asm-xc-plans/{id}/build/

Phase 4 — Create F5 XC configuration objects.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/bulk_decide/

Accept all pending low-risk entities in bulk to speed up review.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/complete/

Mark the migration as complete after successful soak period.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/cutover/

Phase 6 — Execute cutover.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/decide_entity/

Phase 3 — Record a risk decision on one entity.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

GET /api/asm-xc-plans/{id}/entities/

Return all entities for this plan, with optional filters.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/extract/

Phase 1 — Extract all ASM entities from the selected policy.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/list_policies/

Return all ASM policies available on the F5 source device.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/map_entities/

Phase 2 — Run the mapping engine on all extracted entities.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

GET /api/asm-xc-plans/{id}/risk_register/

Return only partial/none entities (the Residual Risk Register).

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/rollback/

Rollback cutover — revert DNS to F5-fronted path.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

POST /api/asm-xc-plans/{id}/sign_off_validation/

Phase 5 — Record validation sign-off and advance to cutover-ready.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Request body (application/json): ASMToXCPlanRequest

Responses: 200 → ASMToXCPlan

GET /api/asm-xc-plans/{id}/verify_xc_token/

Verify the stored F5 XC API token is valid by listing namespaces.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this asm to xc plan.

Responses: 200 → ASMToXCPlan


Consol plans

GET /api/consol-plans/

Read-only list/retrieve (Phase 3) plus validate/waive (Phase 5),

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedConsolPlanListList

POST /api/consol-plans/create-plan/

Create a new draft plan from the interactive builder — a name,

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

GET /api/consol-plans/{id}/

Read-only list/retrieve (Phase 3) plus validate/waive (Phase 5),

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this consol plan.

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/compile/

Create and start one WorkflowRun per not-yet-compiled move —

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this consol plan.

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/moves/{move_id}/execute/

Run the backup -> provision -> restore sequence for one

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this consol plan.
move_idpathyesstring

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/moves/{move_id}/migrate-standby/

Migrate the standby member of an HA-leapfrog move onto the

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this consol plan.
move_idpathyesstring

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/moves/{move_id}/retry-failover/

Re-attempt just the sync-wait + failover tail of migrate_standby

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this consol plan.
move_idpathyesstring

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/validate/

Recompute capacity/HA/VLAN-gap checks against live (or seeded)

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this consol plan.

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/vlan-gaps/{gap_id}/remediate/

Push one auto-remediable VLAN gap onto the target F5OS trunk or

ParameterInRequiredTypeDescription
gap_idpathyesstring
idpathyesintegerA unique integer value identifying this consol plan.

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail

POST /api/consol-plans/{id}/vlan-gaps/{gap_id}/waive/

Accept the risk on one VLAN gap instead of remediating it. Never

ParameterInRequiredTypeDescription
gap_idpathyesstring
idpathyesintegerA unique integer value identifying this consol plan.

Request body (application/json): ConsolPlanDetailRequest

Responses: 200 → ConsolPlanDetail


Eip gslb plans

GET /api/eip-gslb-plans/

List eip gslb plans

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedF5ToEIPGSLBPlanList

POST /api/eip-gslb-plans/

Create eip gslb plan

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 201 → F5ToEIPGSLBPlan

GET /api/eip-gslb-plans/{id}/

Retrieve eip gslb plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Responses: 200 → F5ToEIPGSLBPlan

PUT /api/eip-gslb-plans/{id}/

Update eip gslb plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

PATCH /api/eip-gslb-plans/{id}/

Update eip gslb plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): PatchedF5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

DELETE /api/eip-gslb-plans/{id}/

Delete eip gslb plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Responses: 204

POST /api/eip-gslb-plans/{id}/confirm_done/

Mark one or all cutover applications as confirmed done.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/discover/

Enumerate GTM Wide IPs or LTM Virtual Servers from the F5 source.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/execute_cutover/

Move DNS authority to EIP for the specified FQDNs (or all if not specified).

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/load/

Create EIP GSLB Application, Pool(s), Nodes, and Health Checks for each app.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/lower_ttl/

Lower DNS TTL on F5-served records to prepare for cutover.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/resolve_decision/

Record a user decision for an unmapped feature in one application.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/rollback/

Rollback: revert cutover applications to pre-cutover state.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/set_selected/

Save user's selection of which objects to migrate.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/translate/

Build translatedApp for each selected object; detect unmapped features.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan

POST /api/eip-gslb-plans/{id}/validate/

Run parity check: resolve each FQDN against EIP and compare answer set.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this f5 to eipgslb plan.

Request body (application/json): F5ToEIPGSLBPlanRequest

Responses: 200 → F5ToEIPGSLBPlan


Firewall migration plans

GET /api/firewall-migration-plans/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedFirewallMigrationPlanList

POST /api/firewall-migration-plans/

Firewall rule migration plans → Palo Alto / NSX.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 201 → FirewallMigrationPlan

GET /api/firewall-migration-plans/{id}/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Responses: 200 → FirewallMigrationPlan

PUT /api/firewall-migration-plans/{id}/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

PATCH /api/firewall-migration-plans/{id}/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): PatchedFirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

DELETE /api/firewall-migration-plans/{id}/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Responses: 204

POST /api/firewall-migration-plans/{id}/check_objects/

Dedupe against the target: which rules/objects already exist there.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

POST /api/firewall-migration-plans/{id}/deploy/

Write rules to the target. Attempts the live driver; falls back to a

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

POST /api/firewall-migration-plans/{id}/discover/

Read normalized firewall rules from each source device (device-by-device).

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

POST /api/firewall-migration-plans/{id}/rollback/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

POST /api/firewall-migration-plans/{id}/select_rules/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

POST /api/firewall-migration-plans/{id}/translate/

Rule-by-rule translation to the target platform + object translation.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan

POST /api/firewall-migration-plans/{id}/validate/

Firewall rule migration plans → Palo Alto / NSX.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this firewall migration plan.

Request body (application/json): FirewallMigrationPlanRequest

Responses: 200 → FirewallMigrationPlan


Migration items

GET /api/migration-items/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
planquerynointeger
searchquerynostringA search term.
statusquerynostring* pending - Pending

Responses: 200 → PaginatedMigrationItemList

POST /api/migration-items/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

Request body (application/json): MigrationItemRequest

Responses: 201 → MigrationItem

GET /api/migration-items/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Responses: 200 → MigrationItem

PUT /api/migration-items/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Request body (application/json): MigrationItemRequest

Responses: 200 → MigrationItem

PATCH /api/migration-items/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Request body (application/json): PatchedMigrationItemRequest

Responses: 200 → MigrationItem

DELETE /api/migration-items/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Responses: 204

POST /api/migration-items/{id}/allocate_vip/

Allocate next available IP from IPAM for this item and save target_vip.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Request body (application/json): MigrationItemRequest

Responses: 200 → MigrationItem

POST /api/migration-items/{id}/generate_name/

Apply the plan's naming convention to this item and save all generated names.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Request body (application/json): MigrationItemRequest

Responses: 200 → MigrationItem

POST /api/migration-items/{id}/release_vip/

Release an IPAM-allocated VIP. If ipam_allocated and vip_ref are set,

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration item.

Request body (application/json): MigrationItemRequest

Responses: 200 → MigrationItem


Migration plans

GET /api/migration-plans/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
plan_typequerynostring* adc_to_avi - Legacy ADC
searchquerynostringA search term.
source_devicequerynointeger
statusquerynostring* draft - Draft
target_devicequerynointeger

Responses: 200 → PaginatedMigrationPlanList

POST /api/migration-plans/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

Request body (application/json): MigrationPlanRequest

Responses: 201 → MigrationPlan

GET /api/migration-plans/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 200 → MigrationPlan

PUT /api/migration-plans/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

PATCH /api/migration-plans/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): PatchedMigrationPlanRequest

Responses: 200 → MigrationPlan

DELETE /api/migration-plans/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 204

POST /api/migration-plans/{id}/execute_eip_migration/

Execute GTM → EfficientIP GSLB migration.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

GET /api/migration-plans/{id}/ipam_network_views/

List network views available on the plan's Infoblox IPAM device.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 200 → MigrationPlan

GET /api/migration-plans/{id}/ipam_subnet_info/

Return allocated IPs and next-available IP for a subnet from the plan's IPAM device.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 200 → MigrationPlan

POST /api/migration-plans/{id}/populate_gtm_items/

Populate MigrationItems from the source device's GTM Wide IPs.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

POST /api/migration-plans/{id}/populate_items/

Auto-populate MigrationItems from the source device's current VirtualServer list.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

POST /api/migration-plans/{id}/release-subnet-ip/

Release any IP from the plan's IPAM subnet — no MigrationItem required.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

GET /api/migration-plans/{id}/review_detail/

Full migration review: per-VS A10 config + projected AVI objects.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 200 → MigrationPlan

POST /api/migration-plans/{id}/run_migration/

Trigger the ADC Migration workflow for this plan.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

GET /api/migration-plans/{id}/se_groups/

Return SE groups available on the target AVI controller.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 200 → MigrationPlan

POST /api/migration-plans/{id}/sync_shared_ssl/

For A10 source plans: detect SSL templates shared across multiple plan items

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

POST /api/migration-plans/{id}/update-ssl-profile-name/

Propagate an Avi SSL profile name override to all items that share

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Request body (application/json): MigrationPlanRequest

Responses: 200 → MigrationPlan

GET /api/migration-plans/{id}/vs-status/

Live A10 operational status (up/down) for this plan's source virtual

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this migration plan.

Responses: 200 → MigrationPlan


Vcmp migration plans

GET /api/vcmp-migration-plans/

List vcmp migration plans

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedVcmpMigrationPlanList

POST /api/vcmp-migration-plans/

Create vcmp migration plan

Request body (application/json): VcmpMigrationPlanRequest

Responses: 201 → VcmpMigrationPlan

GET /api/vcmp-migration-plans/{id}/

Retrieve vcmp migration plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Responses: 200 → VcmpMigrationPlan

PUT /api/vcmp-migration-plans/{id}/

Update vcmp migration plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Request body (application/json): VcmpMigrationPlanRequest

Responses: 200 → VcmpMigrationPlan

PATCH /api/vcmp-migration-plans/{id}/

Update vcmp migration plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Request body (application/json): PatchedVcmpMigrationPlanRequest

Responses: 200 → VcmpMigrationPlan

DELETE /api/vcmp-migration-plans/{id}/

Delete vcmp migration plan

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Responses: 204

POST /api/vcmp-migration-plans/{id}/create_tenants/

Create F5OS tenants on target hosts for each selected guest.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Request body (application/json): VcmpMigrationPlanRequest

Responses: 200 → VcmpMigrationPlan

POST /api/vcmp-migration-plans/{id}/deploy_tenants/

Set all tenants to 'deployed' running-state and assign VLANs.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Request body (application/json): VcmpMigrationPlanRequest

Responses: 200 → VcmpMigrationPlan

GET /api/vcmp-migration-plans/{id}/list_guests/

Fetch vCMP guests from legacy_host_1 (and optionally legacy_host_2).

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Responses: 200 → VcmpMigrationPlan

GET /api/vcmp-migration-plans/{id}/list_tenant_images/

Fetch available tenant images from target_host_1.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Responses: 200 → VcmpMigrationPlan

GET /api/vcmp-migration-plans/{id}/list_trunks/

Return legacy trunks (with VLANs) and target F5OS trunks for mapping.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Responses: 200 → VcmpMigrationPlan

POST /api/vcmp-migration-plans/{id}/stage_vlans/

Stage VLANs on target F5OS hosts and apply trunk mappings if configured.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration plan.

Request body (application/json): VcmpMigrationPlanRequest

Responses: 200 → VcmpMigrationPlan


Vcmp migration units

GET /api/vcmp-migration-units/

List vcmp migration units

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
planquerynointeger
searchquerynostringA search term.
statequerynostring* pending - Pending

Responses: 200 → PaginatedVcmpMigrationUnitList

POST /api/vcmp-migration-units/

Create vcmp migration unit

Request body (application/json): VcmpMigrationUnitRequest

Responses: 201 → VcmpMigrationUnit

GET /api/vcmp-migration-units/{id}/

Retrieve vcmp migration unit

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Responses: 200 → VcmpMigrationUnit

PUT /api/vcmp-migration-units/{id}/

Update vcmp migration unit

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

PATCH /api/vcmp-migration-units/{id}/

Update vcmp migration unit

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): PatchedVcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

DELETE /api/vcmp-migration-units/{id}/

Delete vcmp migration unit

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Responses: 204

POST /api/vcmp-migration-units/{id}/assign_vlans/

Assign VLANs to the F5OS tenant on the target host.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/compare_pool_members/

Compare current pool members on the tenant vs. the pre-migration snapshot.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/download_ucs/

Save + download UCS from the source vCMP guest and store it temporarily.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/force_offline/

Force all pool members on the guest offline to drain traffic.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/load_ucs/

Upload and load the saved UCS into the F5OS tenant via its management IP.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/run_failover/

Trigger failover on the source vCMP guest to promote the tenant.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/shutdown_guest/

Shut down (forcedOffline) the source vCMP guest on the legacy VIPRION.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/snapshot_pool_members/

Snapshot LTM pool member states from the source vCMP guest.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit

POST /api/vcmp-migration-units/{id}/verify_online/

Verify the tenant BIG-IP is reachable and reports active status.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vcmp migration unit.

Request body (application/json): VcmpMigrationUnitRequest

Responses: 200 → VcmpMigrationUnit


Auto-generated from drf-spectacular OpenAPI. Endpoint descriptions come from viewset docstrings/serializers; enriching those improves this page on the next generation.