diff --git a/IP Fabric/OpenAPIs/ip_fabric_api-latest.json b/IP Fabric/OpenAPIs/ip_fabric_api-latest.json new file mode 100644 index 0000000..7907d5c --- /dev/null +++ b/IP Fabric/OpenAPIs/ip_fabric_api-latest.json @@ -0,0 +1,4545 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "latest", + "x-vendor-api-version": "v7.8", + "title": "IP Fabric API", + "description": "IP Fabric API provides programmatic access to network discovery, inventory, and assurance data collected by the IP Fabric platform: technology tables (routing, addressing, interfaces, security, multicast, MPLS, wireless, and more), snapshot lifecycle management, and path simulation (path lookup).\n\nAuthentication: static API token in the X-API-Token header. Generate one at Settings -> API Tokens on your IP Fabric instance.\n\nIP Fabric does not publish a standalone downloadable OpenAPI file; each instance self-generates one from its own backend (via RapiDoc at /api/rapidoc). This spec was built from IP Fabric's official public Postman collection (gitlab.com/ip-fabric/integrations/postman, version v7.8) and official API reference docs (docs.ipfabric.io).\n\nSource: https://gitlab.com/ip-fabric/integrations/postman, https://docs.ipfabric.io/latest/", + "x-itential-curated": "IP Fabric's REST API has 200+ near-identical \"tables\" endpoints (one per data category, all sharing the same columns/filters/pagination/sort request shape) plus snapshot lifecycle, path simulation, and job management. Rather than modeling all 200+ tables 1:1, this spec groups them into 32 category-and-depth operations: one per top-level path segment (aci, addressing, fhrp, interfaces, inventory, management, mpls, multicast, neighbors, networks, platforms, qos, routing, security, spanning-tree, vlan, vrf, vxlan, wireless), with a separate operation per path depth within a category where needed (most tables are 1-3 segments deep beyond the category). Each operation takes the table's remaining path segments as individual path parameters (not one embedded-slash parameter, which Itential Platform's OpenAPI adapter URL-encodes and breaks) -- covering the full tables surface through a manageable, discoverable set of operations. Adds the 12-operation snapshot lifecycle, the consolidated path-lookup (graphs) endpoint, and 3 job-control operations. Excludes appliance administration (os/*, auth/*, settings/*, users/*) as out of scope for network automation, matching this repo's convention of excluding platform-admin surfaces." + }, + "servers": [ + { + "url": "https://HOSTNAME/api/v7.8" + } + ], + "security": [ + { + "apiToken": [] + } + ], + "paths": { + "/graphs": { + "post": { + "operationId": "pathLookup", + "summary": "Simulate a unicast or multicast path lookup", + "description": "Consolidated endpoint for all graph requests. For path simulation, set parameters.type to \"pathLookup\" and parameters.pathLookupType to \"unicast\" or \"multicast\", along with startingPoint/destinationPoint and related fields. See docs.ipfabric.io/latest/IP_Fabric_API/Path_Lookup/ for the full parameter reference.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "snapshot": { + "type": "string" + }, + "parameters": { + "type": "object", + "description": "Path lookup parameters. See docs.ipfabric.io/latest/IP_Fabric_API/Path_Lookup/ for the full schema.", + "properties": { + "type": { + "type": "string", + "enum": [ + "pathLookup" + ] + }, + "pathLookupType": { + "type": "string", + "enum": [ + "unicast", + "multicast" + ] + }, + "protocol": { + "type": "string", + "enum": [ + "tcp", + "udp", + "icmp" + ] + }, + "startingPoint": { + "type": "string" + }, + "destinationPoint": { + "type": "string" + }, + "groupBy": { + "type": "string", + "enum": [ + "siteName", + "routingDomain", + "stpDomain" + ] + }, + "networkMode": { + "type": "boolean" + }, + "securedPath": { + "type": "boolean" + }, + "ttl": { + "type": "integer" + }, + "l4Options": { + "type": "object", + "properties": { + "srcPorts": { + "type": "string" + }, + "dstPorts": { + "type": "string" + }, + "flags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ack", + "fin", + "psh", + "rst", + "syn", + "urg" + ] + } + } + } + } + }, + "required": [ + "type", + "pathLookupType", + "startingPoint", + "destinationPoint" + ] + } + }, + "required": [ + "parameters" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Graph data (nodes/edges) for the simulated path" + } + } + } + }, + "/jobs/{jobId}/cancel": { + "post": { + "operationId": "cancelJob", + "summary": "Cancel Job", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Cancel Job" + } + } + } + }, + "/jobs/{jobId}/download": { + "get": { + "operationId": "downloadJob", + "summary": "Download Job Result", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Download Job Result" + } + } + } + }, + "/jobs/{jobId}/stop": { + "post": { + "operationId": "stopJob", + "summary": "Stop Job", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stop Job" + } + } + } + }, + "/snapshots": { + "get": { + "operationId": "listSnapshots", + "summary": "List Snapshots", + "parameters": [], + "responses": { + "200": { + "description": "List Snapshots" + } + } + }, + "post": { + "operationId": "createSnapshot", + "summary": "Create Snapshot", + "parameters": [], + "responses": { + "200": { + "description": "Create Snapshot" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "discoveryTaskId": { + "type": "string" + } + } + } + } + } + } + } + }, + "/snapshots/{snapshotId}": { + "patch": { + "operationId": "renameSnapshot", + "summary": "Rename Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Rename Snapshot" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "note": { + "type": "string" + } + } + } + } + } + } + }, + "delete": { + "operationId": "deleteSnapshot", + "summary": "Delete Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Delete Snapshot" + } + } + } + }, + "/snapshots/{snapshotId}/clone": { + "post": { + "operationId": "cloneSnapshot", + "summary": "Clone Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Clone Snapshot" + } + } + } + }, + "/snapshots/{snapshotId}/download": { + "get": { + "operationId": "downloadSnapshot", + "summary": "Download Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Download Snapshot" + } + } + } + }, + "/snapshots/{snapshotId}/load": { + "post": { + "operationId": "loadSnapshot", + "summary": "Load Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Load Snapshot" + } + } + } + }, + "/snapshots/{snapshotId}/lock": { + "post": { + "operationId": "lockSnapshot", + "summary": "Lock Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Lock Snapshot" + } + } + } + }, + "/snapshots/{snapshotId}/settings": { + "get": { + "operationId": "getSnapshotSettings", + "summary": "Get Snapshot Settings", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Get Snapshot Settings" + } + } + }, + "patch": { + "operationId": "updateSnapshotSettings", + "summary": "Update Snapshot Settings", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Update Snapshot Settings" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } + }, + "/snapshots/{snapshotId}/unload": { + "post": { + "operationId": "unloadSnapshot", + "summary": "Unload Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Unload Snapshot" + } + } + } + }, + "/snapshots/{snapshotId}/unlock": { + "post": { + "operationId": "unlockSnapshot", + "summary": "Unlock Snapshot", + "parameters": [ + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Unlock Snapshot" + } + } + } + }, + "/tables/aci/{seg1}": { + "post": { + "operationId": "queryACITable", + "summary": "Query a ACI table", + "description": "Query a ACI table under /tables/aci/ with a 1-segment path. Known tables at this depth include: endpoints, vlan, vrf. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/aci/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "ACI table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/addressing/{seg1}": { + "post": { + "operationId": "queryAddressingTable", + "summary": "Query a Addressing table (1-segment path)", + "description": "Query a Addressing table under /tables/addressing/ with a 1-segment path. Known tables at this depth include: arp, duplicate-ip, hosts, mac, managed-devs. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/addressing/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Addressing table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/addressing/{seg1}/{seg2}": { + "post": { + "operationId": "queryAddressingTable2", + "summary": "Query a Addressing table (2-segment path)", + "description": "Query a Addressing table under /tables/addressing/ with a 2-segment path. Known tables at this depth include: nat/pools, nat/rules. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/addressing/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/addressing/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Addressing table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/fhrp/{seg1}": { + "post": { + "operationId": "queryFHRPTable", + "summary": "Query a FHRP table", + "description": "Query a FHRP table under /tables/fhrp/ with a 1-segment path. Known tables at this depth include: balancing, glbp-forwarders, group-members, group-state, stproot-alignment. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/fhrp/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "FHRP table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/interfaces/{seg1}": { + "post": { + "operationId": "queryInterfacesTable", + "summary": "Query a Interfaces table (1-segment path)", + "description": "Query a Interfaces table under /tables/interfaces/ with a 1-segment path. Known tables at this depth include: duplex, load, mtu, switchports. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/interfaces/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Interfaces table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/interfaces/{seg1}/{seg2}": { + "post": { + "operationId": "queryInterfacesTable2", + "summary": "Query a Interfaces table (2-segment path)", + "description": "Query a Interfaces table under /tables/interfaces/ with a 2-segment path. Known tables at this depth include: drops/bidirectional, drops/bidirectional-device, drops/inbound, drops/inbound-device, drops/outbound, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/interfaces/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/interfaces/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Interfaces table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/interfaces/{seg1}/{seg2}/{seg3}": { + "post": { + "operationId": "queryInterfacesTable3", + "summary": "Query a Interfaces table (3-segment path)", + "description": "Query a Interfaces table under /tables/interfaces/ with a 3-segment path. Known tables at this depth include: connectivity-matrix/unmanaged-neighbors/detail, connectivity-matrix/unmanaged-neighbors/summary, port-channel/balance/inbound, port-channel/balance/outbound. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/interfaces/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/interfaces/." + }, + { + "name": "seg3", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 3 of the table path after /tables/interfaces/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Interfaces table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/inventory/{seg1}": { + "post": { + "operationId": "queryInventoryTable", + "summary": "Query a Inventory table (1-segment path)", + "description": "Query a Inventory table under /tables/inventory/ with a 1-segment path. Known tables at this depth include: devices, fans, interfaces, modules, phones, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/inventory/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Inventory table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/inventory/{seg1}/{seg2}": { + "post": { + "operationId": "queryInventoryTable2", + "summary": "Query a Inventory table (2-segment path)", + "description": "Query a Inventory table under /tables/inventory/ with a 2-segment path. Known tables at this depth include: summary/families, summary/models, summary/platforms, summary/vendors. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/inventory/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/inventory/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Inventory table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/management/{seg1}": { + "post": { + "operationId": "queryManagementTable", + "summary": "Query a Management table (1-segment path)", + "description": "Query a Management table under /tables/management/ with a 1-segment path. Known tables at this depth include: changes, discovery-runs, osver-consistency, port-mirroring. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/management/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Management table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/management/{seg1}/{seg2}": { + "post": { + "operationId": "queryManagementTable2", + "summary": "Query a Management table (2-segment path)", + "description": "Query a Management table under /tables/management/ with a 2-segment path. Known tables at this depth include: changes/devices, configuration/saved, flow/overview, logging/local, logging/remote, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/management/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/management/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Management table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/management/{seg1}/{seg2}/{seg3}": { + "post": { + "operationId": "queryManagementTable3", + "summary": "Query a Management table (3-segment path)", + "description": "Query a Management table under /tables/management/ with a 3-segment path. Known tables at this depth include: flow/netflow/collectors, flow/netflow/devices, flow/netflow/interfaces, flow/sflow/collectors, flow/sflow/devices, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/management/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/management/." + }, + { + "name": "seg3", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 3 of the table path after /tables/management/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Management table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/mpls/{seg1}": { + "post": { + "operationId": "queryMPLSTable", + "summary": "Query a MPLS table (1-segment path)", + "description": "Query a MPLS table under /tables/mpls/ with a 1-segment path. Known tables at this depth include: forwarding. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/mpls/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "MPLS table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/mpls/{seg1}/{seg2}": { + "post": { + "operationId": "queryMPLSTable2", + "summary": "Query a MPLS table (2-segment path)", + "description": "Query a MPLS table under /tables/mpls/ with a 2-segment path. Known tables at this depth include: l2-vpn/curcit-cross-connect, l2-vpn/point-to-multipoint, l2-vpn/point-to-point-vpws, l2-vpn/pseudowires, l3-vpn/pe-routers, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/mpls/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/mpls/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "MPLS table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/multicast/{seg1}": { + "post": { + "operationId": "queryMulticastTable", + "summary": "Query a Multicast table (1-segment path)", + "description": "Query a Multicast table under /tables/multicast/ with a 1-segment path. Known tables at this depth include: mac. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/multicast/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Multicast table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/multicast/{seg1}/{seg2}": { + "post": { + "operationId": "queryMulticastTable2", + "summary": "Query a Multicast table (2-segment path)", + "description": "Query a Multicast table under /tables/multicast/ with a 2-segment path. Known tables at this depth include: igmp/groups, igmp/interfaces, pim/interfaces, pim/neighbors, routes/counters, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/multicast/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/multicast/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Multicast table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/multicast/{seg1}/{seg2}/{seg3}": { + "post": { + "operationId": "queryMulticastTable3", + "summary": "Query a Multicast table (3-segment path)", + "description": "Query a Multicast table under /tables/multicast/ with a 3-segment path. Known tables at this depth include: igmp/snooping/global, igmp/snooping/groups, igmp/snooping/vlans, pim/rp/bsr, pim/rp/mappings, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/multicast/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/multicast/." + }, + { + "name": "seg3", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 3 of the table path after /tables/multicast/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Multicast table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/neighbors/{seg1}": { + "post": { + "operationId": "queryNeighborsTable", + "summary": "Query a Neighbors table", + "description": "Query a Neighbors table under /tables/neighbors/ with a 1-segment path. Known tables at this depth include: all, unidirectional, unmanaged. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/neighbors/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Neighbors table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/networks/{seg1}": { + "post": { + "operationId": "queryNetworksTable", + "summary": "Query a Networks table (1-segment path)", + "description": "Query a Networks table under /tables/networks/ with a 1-segment path. Known tables at this depth include: domain, path-lookup-checks, route-stability, routes. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/networks/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Networks table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/networks/{seg1}/{seg2}/{seg3}": { + "post": { + "operationId": "queryNetworksTable3", + "summary": "Query a Networks table (3-segment path)", + "description": "Query a Networks table under /tables/networks/ with a 3-segment path. Known tables at this depth include: summary/protocols/bgp, summary/protocols/isis, summary/protocols/ospf, summary/protocols/ospfv3. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/networks/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/networks/." + }, + { + "name": "seg3", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 3 of the table path after /tables/networks/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Networks table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/platforms/{seg1}": { + "post": { + "operationId": "queryPlatformsTable", + "summary": "Query a Platforms table (1-segment path)", + "description": "Query a Platforms table under /tables/platforms/ with a 1-segment path. Known tables at this depth include: stack. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/platforms/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Platforms table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/platforms/{seg1}/{seg2}": { + "post": { + "operationId": "queryPlatformsTable2", + "summary": "Query a Platforms table (2-segment path)", + "description": "Query a Platforms table under /tables/platforms/ with a 2-segment path. Known tables at this depth include: cluster/srx, fex/interfaces, fex/modules, poe/devices, poe/interfaces, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/platforms/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/platforms/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Platforms table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/qos/{seg1}": { + "post": { + "operationId": "queryQoSTable", + "summary": "Query a QoS table", + "description": "Query a QoS table under /tables/qos/ with a 1-segment path. Known tables at this depth include: marking, policing, policy-maps, priority-queuing, queuing, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/qos/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "QoS table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/routing/{seg1}/{seg2}/{seg3}": { + "post": { + "operationId": "queryRoutingTable3", + "summary": "Query a Routing table", + "description": "Query a Routing table under /tables/routing/ with a 3-segment path. Known tables at this depth include: protocols/bgp/address-families, protocols/bgp/neighbors, protocols/eigrp/interfaces, protocols/eigrp/neighbors, protocols/is-is/interfaces, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/routing/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/routing/." + }, + { + "name": "seg3", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 3 of the table path after /tables/routing/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Routing table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/security/{seg1}": { + "post": { + "operationId": "querySecurityTable", + "summary": "Query a Security table (1-segment path)", + "description": "Query a Security table under /tables/security/ with a 1-segment path. Known tables at this depth include: dmvpn, enabled-telnet. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/security/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Security table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/security/{seg1}/{seg2}": { + "post": { + "operationId": "querySecurityTable2", + "summary": "Query a Security table (2-segment path)", + "description": "Query a Security table under /tables/security/ with a 2-segment path. Known tables at this depth include: aaa/accounting, aaa/authentication, aaa/authorization, aaa/lines, aaa/servers, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/security/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/security/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Security table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/spanning-tree/{seg1}": { + "post": { + "operationId": "querySpanningTreeTable", + "summary": "Query a Spanning Tree table (1-segment path)", + "description": "Query a Spanning Tree table under /tables/spanning-tree/ with a 1-segment path. Known tables at this depth include: bridges, guards, instances, neighbors, ports, and others. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/spanning-tree/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Spanning Tree table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/spanning-tree/{seg1}/{seg2}": { + "post": { + "operationId": "querySpanningTreeTable2", + "summary": "Query a Spanning Tree table (2-segment path)", + "description": "Query a Spanning Tree table under /tables/spanning-tree/ with a 2-segment path. Known tables at this depth include: inconsistencies/multiple-stp, inconsistencies/neighbor-ports-vlan-mismatch, inconsistencies/ports-multiple-neighbors, inconsistencies/stp-cdp-ports-mismatch. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/spanning-tree/." + }, + { + "name": "seg2", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 2 of the table path after /tables/spanning-tree/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Spanning Tree table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/vlan/{seg1}": { + "post": { + "operationId": "queryVLANTable", + "summary": "Query a VLAN table", + "description": "Query a VLAN table under /tables/vlan/ with a 1-segment path. Known tables at this depth include: device, device-summary, l3-gateways, network-summary, site-summary. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/vlan/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "VLAN table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/vrf/{seg1}": { + "post": { + "operationId": "queryVRFTable", + "summary": "Query a VRF table", + "description": "Query a VRF table under /tables/vrf/ with a 1-segment path. Known tables at this depth include: detail, interfaces, summary. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/vrf/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "VRF table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/vxlan/{seg1}": { + "post": { + "operationId": "queryVXLANTable", + "summary": "Query a VXLAN table", + "description": "Query a VXLAN table under /tables/vxlan/ with a 1-segment path. Known tables at this depth include: interfaces, peers, vni, vtep. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/vxlan/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "VXLAN table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/tables/wireless/{seg1}": { + "post": { + "operationId": "queryWirelessTable", + "summary": "Query a Wireless table", + "description": "Query a Wireless table under /tables/wireless/ with a 1-segment path. Known tables at this depth include: access-points, clients, controllers, radio, ssid-summary. See docs.ipfabric.io for the full table reference and valid columns per table.", + "parameters": [ + { + "name": "seg1", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Segment 1 of the table path after /tables/wireless/." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Wireless table data", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "snapshot": { + "type": "string" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + } + }, + "components": { + "securitySchemes": { + "apiToken": { + "type": "apiKey", + "name": "X-API-Token", + "in": "header" + } + } + } +} \ No newline at end of file diff --git a/IP Fabric/README.md b/IP Fabric/README.md index 02cf382..d83783f 100644 --- a/IP Fabric/README.md +++ b/IP Fabric/README.md @@ -1,12 +1,101 @@ -# IP Fabric Assets -Assets for the Itential Platform. +IP Fabric is a network assurance platform for automated network discovery, inventory, and verification. + +This project provides an OpenAPI spec for automating against IP Fabric's REST API via an Integration Model, plus a Studio Project of workflows built on that model. + +## Table of Contents + +- [Contents](#contents) +- [Requirements](#requirements) +- [Integration Configuration](#integration-configuration) +- [OpenAPIs](#openapis) + - [`ip_fabric_api-latest.json`](#ip_fabric_api-latestjson) +- [Studio Projects](#studio-projects) + - [IP Fabric Project](#ip-fabric-project) + - [Folder Structure](#folder-structure) + - [Dependencies](#dependencies) + +## Contents + +| Asset | Description | +|---|---| +| [OpenAPIs/](./OpenAPIs/) | IP Fabric API OpenAPI spec, built from IP Fabric's official Postman collection and API reference docs | +| [Studio Projects/](./Studio%20Projects/) | Itential Platform project containing all 48 workflows in 4 folders | + +## Requirements + +| Requirement | Version | +|---|---| +| Itential Platform | 6.x | +| `IP Fabric API:latest` Integration Model | Required to build automation against the OpenAPI spec, and to run the Studio Project below | + +> **Note:** This project does not require Itential Gateway. All API calls are made directly from Itential Platform to IP Fabric's REST API. + +## Integration Configuration + +Import `ip_fabric_api-latest.json` as an Integration Model in **Admin > Integrations**, then create an integration pointing at your IP Fabric instance. + +Authentication is a static API token in a header: + +``` +X-API-Token: +``` + +Generate a token at Settings → API Tokens on your IP Fabric instance. + +The instance's `authentication`/`server` properties should look like this once configured: + +```json +{ + "authentication": { + "apiToken": { "value": "" } + }, + "server": { + "protocol": "https", + "host": ".ipfabric.io", + "base_path": "/api/v7.8" + } +} +``` + +> **Note:** IP Fabric doesn't publish a standalone downloadable OpenAPI file — each instance self-generates one from its own backend (reachable at `/api/rapidoc` on a live instance). The `servers` entry in the spec is a static placeholder (`https://HOSTNAME/api/v7.8`) since Itential Platform Integration Models require a static server URL; the actual host is configured per-instance as shown above. + +## OpenAPIs + +| Spec | Version | Operations | Description | +|---|---|---|---| +| [`ip_fabric_api-latest.json`](./OpenAPIs/ip_fabric_api-latest.json) | latest (curated) | 48 | Built from IP Fabric's official Postman collection and API docs — see breakdown below | + +### `ip_fabric_api-latest.json` + +Operations included, by category: + +- **Tables**: Query any table under `ACI`, `Addressing`, `FHRP`, `Interfaces`, `Inventory`, `Management`, `MPLS`, `Multicast`, `Neighbors`, `Networks`, `Platforms`, `QoS`, `Routing`, `Security`, `Spanning Tree`, `VLAN`, `VRF`, `VXLAN`, or `Wireless` — 32 operations across those 19 categories +- **Snapshots**: List, create, rename, delete, clone, download, load, lock, unload, unlock, get/update settings +- **Path Lookup**: Simulate a unicast or multicast path between two points +- **Jobs**: Cancel, download result, stop + +## Studio Projects -## Projects ### IP Fabric Project -- Create Network Snapshot -- Compare Snapshot Inventory -- Compare Network Routes from Snapshots -- Analyze Service Path + +Backed by the **`IP Fabric API:latest`** Integration Model (see [`ip_fabric_api-latest.json`](./OpenAPIs/ip_fabric_api-latest.json) above). The project contains **48 workflows** organized into **4 folders**. + +#### Folder Structure + +| Folder | Workflows | Scope | +|---|---|---| +| Tables | 32 | Query any table across 19 categories (see above) | +| Snapshots | 12 | Snapshot lifecycle management | +| Path Lookup | 1 | Unicast/multicast path simulation | +| Jobs | 3 | Async job control | + +The `Cancel IP Fabric Job` workflow is prefixed to avoid colliding with an identically-named workflow already published for another product — workflow names are unique across the whole Itential Platform instance, not scoped per-project. #### Dependencies -- [IP Fabric Adapter](https://gitlab.com/itentialopensource/adapters/adapter-ipfabric) + +| Dependency | Notes | +|---|---| +| `IP Fabric API:latest` Integration Model | Import from [`ip_fabric_api-latest.json`](./OpenAPIs/ip_fabric_api-latest.json) before importing the project | +| `IP Fabric` integration instance | Create in **Admin > Integrations** with the connection properties above. Workflows are wired to an integration instance named `IP Fabric` — update the `adapter_id` value in each workflow task if yours is named differently | + +**Testing status:** all 48 workflows were created and schema-validated against a running Itential Platform instance. The multi-segment path-parameter approach was verified against a live HTTP echo endpoint to confirm segments are sent unencoded. No IP Fabric test instance was available for this pass, so none have been executed against a real account. diff --git a/IP Fabric/Studio Projects/IP Fabric.project.json b/IP Fabric/Studio Projects/IP Fabric.project.json index 167efb0..c71a56b 100644 --- a/IP Fabric/Studio Projects/IP Fabric.project.json +++ b/IP Fabric/Studio Projects/IP Fabric.project.json @@ -1,74 +1,45 @@ { "_id": "66cf772321161b4df271748f", "name": "IP Fabric", - "description": "IP Fabric asset includes create network snapshot, compare snapshot inventory, compare network routes from snapshots, and analyze service path.", + "description": "IP Fabric project has query workflows for technology/inventory/management tables, snapshot lifecycle management, path lookup, and job control, backed by the IP Fabric API Integration Model.", "components": [ { - "iid": 0, - "reference": "0d27c745-c307-465d-8f4b-2101af9776a0", + "iid": 6, + "reference": "b53d3de8-ae17-4e16-9eee-dcefcea3be19", "type": "workflow", - "folder": "/", + "folder": "/Path Lookup", "document": { - "name": "Compare Network Routes From Snapshots", + "name": "Simulate a unicast or multicast path lookup", + "description": "Simulate a unicast or multicast path lookup", + "type": "automation", + "font_size": 12, "tasks": { "workflow_start": { "name": "workflow_start", "groups": [], "nodeLocation": { - "x": 240, - "y": 564 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 240, - "y": 912 + "x": 264, + "y": 0 } }, - "a937": { - "name": "postTablesNetworksRoutes", - "canvasName": "postTablesNetworksRoutes", - "summary": "Get Network Routes From Last Snapshot", - "description": "Get network routes from the last snapshot", + "a1a1": { + "name": "pathLookup", + "canvasName": "pathLookup", + "summary": "pathLookup", + "description": "pathLookup", "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "IpFabric", + "displayName": "IP Fabric", "variables": { "incoming": { - "body": { - "columns": [ - "id", - "sn", - "hostname", - "siteName", - "network", - "prefix", - "protocol", - "vrf", - "nhCount", - "nhLowestAge", - "nhLowestMetric", - "nexthop" - ], - "filters": {}, - "pagination": { - "limit": 33, - "start": 0 - }, - "snapshot": "$last", - "sort": { - "order": "desc", - "column": "network" - } - }, - "adapter_id": "$var.job.adapterId" + "adapter_id": "IP Fabric", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" }, "outgoing": { - "result": null + "response": null }, "error": "", "decorators": [] @@ -77,139 +48,228 @@ "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 240, - "y": 660 - } - }, - "d4ce": { - "name": "ViewDiff", - "canvasName": "ViewDiff", - "summary": "Compare Network Routes", - "description": "Compare network routes", - "location": "Application", - "app": "WorkFlowEngine", - "displayName": "WorkFlowEngine", - "type": "manual", - "variables": { - "incoming": { - "header": "Difference in Network Routes", - "message": "", - "label1": "Network Routes from LAST", - "value1": "$var.a937.result", - "label2": "Network Routes from Previous to LAST", - "value2": "$var.4c89.result", - "btn_success": "Success", - "btn_failure": "" - }, - "outgoing": {}, - "task": true, - "error": "" - }, - "view": "/workflow_engine/task/ViewDiff", - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 240, - "y": 828 + "x": 264, + "y": 150 } }, - "4c89": { - "name": "postTablesNetworksRoutes", - "canvasName": "postTablesNetworksRoutes", - "summary": "Get Network Routes From Previous To Last Snapshot", - "description": "Get network routes from previous to last snapshot", - "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", - "type": "automatic", - "displayName": "IpFabric", - "variables": { - "incoming": { - "body": { - "columns": [ - "id", - "sn", - "hostname", - "siteName", - "network", - "prefix", - "protocol", - "vrf", - "nhCount", - "nhLowestAge", - "nhLowestMetric", - "nexthop" - ], - "filters": {}, - "pagination": { - "limit": 33, - "start": 0 - }, - "snapshot": "$prev", - "sort": { - "order": "desc", - "column": "network" - } - }, - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": null - }, - "error": "", - "decorators": [] - }, + "workflow_end": { + "name": "workflow_end", "groups": [], - "actor": "Pronghorn", - "scheduled": false, "nodeLocation": { - "x": 240, - "y": 744 + "x": 264, + "y": 300 } } }, "transitions": { "workflow_start": { - "a937": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "a937": { - "4c89": { + "a1a1": { "type": "standard", "state": "success" } }, - "d4ce": { + "a1a1": { "workflow_end": { "type": "standard", "state": "success" } }, - "4c89": { - "d4ce": { - "type": "standard", - "state": "success" - } - }, - "30c5": {} + "workflow_end": {} }, "inputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] + "spec": { + "type": "object", + "properties": { + "snapshot": { + "type": "string" + }, + "parameters": { + "type": "object", + "description": "Path lookup parameters. See docs.ipfabric.io/latest/IP_Fabric_API/Path_Lookup/ for the full schema.", + "properties": { + "type": { + "type": "string", + "enum": [ + "pathLookup" + ] + }, + "pathLookupType": { + "type": "string", + "enum": [ + "unicast", + "multicast" + ] + }, + "protocol": { + "type": "string", + "enum": [ + "tcp", + "udp", + "icmp" + ] + }, + "startingPoint": { + "type": "string" + }, + "destinationPoint": { + "type": "string" + }, + "groupBy": { + "type": "string", + "enum": [ + "siteName", + "routingDomain", + "stpDomain" + ] + }, + "networkMode": { + "type": "boolean" + }, + "securedPath": { + "type": "boolean" + }, + "ttl": { + "type": "integer" + }, + "l4Options": { + "type": "object", + "properties": { + "srcPorts": { + "type": "string" + }, + "dstPorts": { + "type": "string" + }, + "flags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ack", + "fin", + "psh", + "rst", + "syn", + "urg" + ] + } + } + } + } + }, + "required": [ + "type", + "pathLookupType", + "startingPoint", + "destinationPoint" + ] + } + }, + "required": [ + "parameters" + ] } }, - "required": ["adapterId"] + "required": [ + "spec" + ] }, "outputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] + "spec": { + "type": "object", + "properties": { + "snapshot": { + "type": "string" + }, + "parameters": { + "type": "object", + "description": "Path lookup parameters. See docs.ipfabric.io/latest/IP_Fabric_API/Path_Lookup/ for the full schema.", + "properties": { + "type": { + "type": "string", + "enum": [ + "pathLookup" + ] + }, + "pathLookupType": { + "type": "string", + "enum": [ + "unicast", + "multicast" + ] + }, + "protocol": { + "type": "string", + "enum": [ + "tcp", + "udp", + "icmp" + ] + }, + "startingPoint": { + "type": "string" + }, + "destinationPoint": { + "type": "string" + }, + "groupBy": { + "type": "string", + "enum": [ + "siteName", + "routingDomain", + "stpDomain" + ] + }, + "networkMode": { + "type": "boolean" + }, + "securedPath": { + "type": "boolean" + }, + "ttl": { + "type": "integer" + }, + "l4Options": { + "type": "object", + "properties": { + "srcPorts": { + "type": "string" + }, + "dstPorts": { + "type": "string" + }, + "flags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ack", + "fin", + "psh", + "rst", + "syn", + "urg" + ] + } + } + } + } + }, + "required": [ + "type", + "pathLookupType", + "startingPoint", + "destinationPoint" + ] + } + }, + "required": [ + "parameters" + ] }, "_id": { "type": "string", @@ -220,379 +280,118 @@ } } }, - "createdVersion": "5.29.14-2020.2.47.0", - "font_size": 12, - "lastUpdatedVersion": "5.55.2-2023.2.13", - "last_updated": "2025-01-23T21:10:30.375Z", - "preAutomationTime": 0, - "sla": 0, - "type": "automation", + "last_updated": "2026-08-13T05:20:07.172Z", "last_updated_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, + "lastUpdatedVersion": "4.69.69", "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "92adb4e2-35ce-4ffe-ae20-1d935934dd8a", "canvasVersion": 3, "created_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, "tags": [], "groups": [], - "migrationVersion": 3 + "migrationVersion": 8 } }, { - "iid": 1, - "reference": "3e2dbc92-6a6f-4f6f-a8ae-b177fd922560", + "iid": 7, + "reference": "92d7915b-a338-4167-894b-cd63a27cc684", "type": "workflow", - "folder": "/Compare Snapshot Inventory", + "folder": "/Jobs", "document": { - "name": "Compare Snapshot Inventory", + "name": "Cancel IP Fabric Job", + "description": "Cancel IP Fabric Job", + "type": "automation", + "font_size": 12, "tasks": { "workflow_start": { "name": "workflow_start", "groups": [], "nodeLocation": { - "x": 168, - "y": 552 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 180, - "y": 1032 - } - }, - "ec60": { - "name": "query", - "canvasName": "query", - "summary": "Query Removed Devices", - "description": "Query removed devices", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response.data[*status=removed]", - "obj": "$var.a630.result" - }, - "outgoing": { - "return_data": "$var.job.devicesRemoved" - }, - "error": "", - "decorators": [] - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 24, - "y": 960 + "x": 264, + "y": 0 } }, - "79a9": { - "name": "query", - "canvasName": "query", - "summary": "Query Newly Added Devices", - "description": "Query newly added devices", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", + "a1a1": { + "name": "cancelJob", + "canvasName": "cancelJob", + "summary": "cancelJob", + "description": "cancelJob", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", "variables": { "incoming": { - "pass_on_null": false, - "query": "response.data[*status=added]", - "obj": "$var.a630.result" + "adapter_id": "IP Fabric", + "jobId": "$var.job.jobId" }, "outgoing": { - "return_data": "$var.job.devicesAdded" + "response": null }, "error": "", "decorators": [] }, "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 336, - "y": 960 - } - }, - "5df2": { - "name": "query", - "canvasName": "query", - "summary": "Query Second Last Snapshot ID", - "description": "Query second last snapshot ID", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response._meta.snapshot", - "obj": "$var.a541.result" - }, - "outgoing": { - "return_data": null - }, - "error": "" - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 24, - "y": 720 - } - }, - "4cfa": { - "name": "query", - "canvasName": "query", - "summary": "Query Last Snapshot ID", - "description": "Query last snapshot ID", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "pass_on_null": false, - "query": "response._meta.snapshot", - "obj": "$var.3f89.result" - }, - "outgoing": { - "return_data": null - }, - "error": "" - }, - "groups": [], - "scheduled": false, - "nodeLocation": { - "x": 324, - "y": 720 - } - }, - "83af": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Create Inventory Diff Payload", - "description": "Create inventory diff payload", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "60d1f5de24b88d0119edef27", - "variableMap": { - "snapshotidlast": "$var.4cfa.return_data", - "snapshotidprev": "$var.5df2.return_data" - }, - "options": { - "extractOutput": false, - "validateIncoming": true, - "revertToDefaultValue": true - } - }, - "outgoing": { - "payload": null, - "snapshotidlast": null - }, - "decorators": [] - }, - "groups": [], - "task_name": "CreateInvDiffPayload", - "retrySettings": null, - "nodeLocation": { - "x": 180, - "y": 804 - } - }, - "3f89": { - "name": "postTablesInventorySites", - "canvasName": "postTablesInventorySites", - "summary": "Identify Last Inventory Snapshot", - "description": "This task requests the more recent inventory snapshot from IP Fabric", - "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", - "type": "automatic", - "displayName": "IPFabric", - "variables": { - "incoming": { - "body": { - "columns": ["id"], - "filters": {}, - "snapshot": "$last" - }, - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", - "groups": [], - "nodeLocation": { - "x": 324, - "y": 636 - } - }, - "a541": { - "name": "postTablesInventorySites", - "canvasName": "postTablesInventorySites", - "summary": "Identify Previous Inventory Snapshot", - "description": "This task requests the second more recent inventory snapshot from IP Fabric", - "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", - "type": "automatic", - "displayName": "IPFabric", - "variables": { - "incoming": { - "body": { - "columns": ["id"], - "filters": {}, - "snapshot": "$prev" - }, - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "" - } - }, "actor": "Pronghorn", - "groups": [], + "scheduled": false, "nodeLocation": { - "x": 24, - "y": 636 + "x": 264, + "y": 150 } }, - "a630": { - "name": "deviceDiff", - "canvasName": "deviceDiff", - "summary": "Get Inventory Difference", - "description": "Difference in devices after changes have been made", - "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", - "type": "automatic", - "displayName": "IPFabric", - "variables": { - "incoming": { - "body": "$var.83af.payload", - "adapter_id": "$var.job.adapterId" - }, - "outgoing": { - "result": "" - } - }, - "actor": "Pronghorn", + "workflow_end": { + "name": "workflow_end", "groups": [], "nodeLocation": { - "x": 180, - "y": 888 + "x": 264, + "y": 300 } } }, "transitions": { "workflow_start": { - "3f89": { - "state": "success", - "type": "standard" - }, - "a541": { - "state": "success", - "type": "standard" - } - }, - "workflow_end": {}, - "ec60": { - "workflow_end": { + "a1a1": { "type": "standard", "state": "success" } }, - "79a9": { + "a1a1": { "workflow_end": { "type": "standard", "state": "success" } }, - "5df2": { - "83af": { - "type": "standard", - "state": "success" - } - }, - "4cfa": { - "83af": { - "type": "standard", - "state": "success" - } - }, - "83af": { - "a630": { - "state": "success", - "type": "standard" - } - }, - "3f89": { - "4cfa": { - "state": "success", - "type": "standard" - } - }, - "a541": { - "5df2": { - "state": "success", - "type": "standard" - } - }, - "a630": { - "79a9": { - "state": "success", - "type": "standard" - }, - "ec60": { - "state": "success", - "type": "standard" - } - }, - "d0f2": {}, - "f64f": {} + "workflow_end": {} }, "inputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] + "jobId": { + "type": "string" } }, - "required": ["adapterId"] + "required": [ + "jobId" + ] }, "outputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] + "jobId": { + "type": "string" }, "_id": { "type": "string", @@ -600,128 +399,69 @@ }, "initiator": { "type": "string" - }, - "devicesRemoved": { - "title": "return_data", - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "examples": ["value"] - }, - "devicesAdded": { - "title": "return_data", - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "examples": ["value"] } } }, - "type": "automation", - "font_size": 12, - "last_updated": "2025-01-23T21:10:30.376Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.29.14-2020.2.47", - "preAutomationTime": 0, - "sla": 0, + "last_updated": "2026-08-13T05:20:07.172Z", "last_updated_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, + "lastUpdatedVersion": "4.69.69", "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "fdfe91f8-93be-4aad-948e-3322f118ecc8", "canvasVersion": 3, "created_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, "tags": [], "groups": [], - "migrationVersion": 3 + "migrationVersion": 8 } }, { - "iid": 2, - "reference": "6305c5d8-2282-4029-b4e2-3890701a4b37", + "iid": 8, + "reference": "91880384-984a-4ae5-8799-a89cec2b60d0", "type": "workflow", - "folder": "/", + "folder": "/Jobs", "document": { - "name": "Create Network Snapshot", + "name": "Download Job Result", + "description": "Download Job Result", + "type": "automation", + "font_size": 12, "tasks": { "workflow_start": { "name": "workflow_start", "groups": [], "nodeLocation": { - "x": 36, - "y": 744 - } - }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 36, - "y": 996 + "x": 264, + "y": 0 } }, - "f89": { - "name": "createSnapshot", - "canvasName": "createSnapshot", - "summary": "Create New Snapshot", - "description": "Create new snapshot with global or new settings", + "a1a1": { + "name": "downloadJob", + "canvasName": "downloadJob", + "summary": "downloadJob", + "description": "downloadJob", "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "IpFabric", + "displayName": "IP Fabric", "variables": { "incoming": { - "body": "$var.bcb1.merged_object", - "adapter_id": "$var.job.adapterId" + "adapter_id": "IP Fabric", + "jobId": "$var.job.jobId" }, "outgoing": { - "result": "$var.job.snapshotDetails" + "response": null }, "error": "", "decorators": [] @@ -730,118 +470,50 @@ "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 36, - "y": 912 + "x": 264, + "y": 150 } }, - "bcb1": { - "name": "merge", - "canvasName": "merge", - "summary": "Merge Inputs", - "description": "Merge inputs to create snapshot payload", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "data_to_merge": [ - { - "key": "snapshotName", - "value": { - "task": "job", - "variable": "snapshotName" - } - }, - { - "key": "snapshotNote", - "value": { - "task": "job", - "variable": "snapshotNote" - } - }, - { - "key": "credentials", - "value": { - "task": "job", - "variable": "credentials" - } - } - ] - }, - "outgoing": { - "merged_object": "" - } - }, - "actor": "Pronghorn", + "workflow_end": { + "name": "workflow_end", "groups": [], "nodeLocation": { - "x": 36, - "y": 828 + "x": 264, + "y": 300 } } }, "transitions": { "workflow_start": { - "bcb1": { - "state": "success", - "type": "standard" + "a1a1": { + "type": "standard", + "state": "success" } }, - "workflow_end": {}, - "f89": { + "a1a1": { "workflow_end": { "type": "standard", "state": "success" } }, - "bcb1": { - "f89": { - "state": "success", - "type": "standard" - } - }, - "d0f2": {}, - "f64f": {} + "workflow_end": {} }, "inputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "snapshotName": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "snapshotNote": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "credentials": { - "type": ["array", "boolean", "null", "number", "object", "string"] + "jobId": { + "type": "string" } }, "required": [ - "adapterId", - "snapshotName", - "snapshotNote", - "credentials" + "jobId" ] }, "outputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "snapshotName": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "snapshotNote": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "credentials": { - "type": ["array", "boolean", "null", "number", "object", "string"] + "jobId": { + "type": "string" }, "_id": { "type": "string", @@ -849,83 +521,69 @@ }, "initiator": { "type": "string" - }, - "snapshotDetails": { - "type": ["array", "boolean", "null", "number", "object", "string"] } } }, - "type": "automation", - "font_size": 12, - "last_updated": "2025-01-23T21:10:30.377Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.29.14-2020.2.47.0", - "preAutomationTime": 0, - "sla": 0, + "last_updated": "2026-08-13T05:20:07.172Z", "last_updated_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, + "lastUpdatedVersion": "4.69.69", "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "86605eb7-451e-43a4-bb52-34905557b0fa", "canvasVersion": 3, "created_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, "tags": [], "groups": [], - "migrationVersion": 3 + "migrationVersion": 8 } }, { - "iid": 3, - "reference": "b439ae5a-8b38-4f0e-9448-4afda1989e61", + "iid": 9, + "reference": "1241652d-90d3-46fc-9f62-b618cfa67e6b", "type": "workflow", - "folder": "/Analyze Service Path", + "folder": "/Jobs", "document": { - "name": "Analyze Service Path", + "name": "Stop Job", + "description": "Stop Job", + "type": "automation", + "font_size": 12, "tasks": { "workflow_start": { "name": "workflow_start", "groups": [], "nodeLocation": { - "x": 1140, - "y": 192 + "x": 264, + "y": 0 } }, - "workflow_end": { - "name": "workflow_end", - "groups": [], - "nodeLocation": { - "x": 1140, - "y": 864 - } - }, - "a1": { - "name": "pathLookup", - "canvasName": "pathLookup", - "summary": "End To End Application Path Lookup", - "description": "End to end application path lookup", + "a1a1": { + "name": "stopJob", + "canvasName": "stopJob", + "summary": "stopJob", + "description": "stopJob", "location": "Adapter", - "locationType": "IpFabric", - "app": "IpFabric", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "IpFabric", + "displayName": "IP Fabric", "variables": { "incoming": { - "body": "$var.326b.pathLookUpPayload", - "adapter_id": "$var.job.adapterId" + "adapter_id": "IP Fabric", + "jobId": "$var.job.jobId" }, "outgoing": { - "result": null + "response": null }, "error": "", "decorators": [] @@ -934,325 +592,363 @@ "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 1140, - "y": 384 + "x": 264, + "y": 150 } }, - "eb4a": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Evaluate Topic ACL", - "description": "Topic ACL", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": false, - "evaluation_groups": [ - { - "all_true_flag": false, - "evaluations": [ - { - "query": "ACL.30", - "operand_1": { - "variable": "return_data", - "task": "11ce" - }, - "operator": "==", - "operand_2": { - "variable": 0, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "jobId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "520f48bb-4d49-452f-8041-297e55f59229", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 10, + "reference": "05bfd601-8864-489f-8499-ed9dd709f273", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "List Snapshots", + "description": "List Snapshots", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", "groups": [], "nodeLocation": { - "x": 1452, - "y": 492 + "x": 264, + "y": 0 } }, - "71af": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Evaluate Topic Forwarding", - "description": "Topic Forwarding", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", + "a1a1": { + "name": "listSnapshots", + "canvasName": "listSnapshots", + "summary": "listSnapshots", + "description": "listSnapshots", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", "variables": { "incoming": { - "all_true_flag": true, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "FORWARDING.0", - "operand_1": { - "variable": "return_data", - "task": "11ce" - }, - "operator": "==", - "operand_2": { - "variable": 0, - "task": "static" - } - }, - { - "query": "FORWARDING.10", - "operand_1": { - "variable": "return_data", - "task": "11ce" - }, - "operator": "==", - "operand_2": { - "variable": 0, - "task": "static" - } - }, - { - "query": "FORWARDING.20", - "operand_1": { - "variable": "return_data", - "task": "11ce" - }, - "operator": "==", - "operand_2": { - "variable": 0, - "task": "static" - } - }, - { - "query": "FORWARDING.30", - "operand_1": { - "variable": "return_data", - "task": "11ce" - }, - "operator": "==", - "operand_2": { - "variable": 0, - "task": "static" - } - } - ] - } - ] + "adapter_id": "IP Fabric" }, "outgoing": { - "return_value": null - } + "response": null + }, + "error": "", + "decorators": [] }, "groups": [], + "actor": "Pronghorn", + "scheduled": false, "nodeLocation": { - "x": 1140, - "y": 564 + "x": 264, + "y": 150 } }, - "509d": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Evaluate Topic ZONEFW", - "description": "ZONEFW", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": true, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "ZONEFW.30", - "operand_1": { - "variable": "return_data", - "task": "11ce" - }, - "operator": "==", - "operand_2": { - "variable": 0, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": {} + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "bf66a16b-c59d-4111-a41b-ed9181bc158e", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 11, + "reference": "4bd665f6-902f-4e68-a4d1-4866fa8b4542", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Create Snapshot", + "description": "Create Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", "groups": [], "nodeLocation": { - "x": 1452, - "y": 408 + "x": 264, + "y": 0 } }, - "11ce": { - "name": "query", - "canvasName": "query", - "summary": "Query Topics", - "description": "Query topics", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", + "a1a1": { + "name": "createSnapshot", + "canvasName": "createSnapshot", + "summary": "createSnapshot", + "description": "createSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", "variables": { "incoming": { - "pass_on_null": false, - "query": "response.pathlookup.eventsSummary.topics", - "obj": "$var.a1.result" + "adapter_id": "IP Fabric", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" }, "outgoing": { - "return_data": null + "response": null }, "error": "", "decorators": [] }, "groups": [], + "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 1140, - "y": 468 + "x": 264, + "y": 150 } }, - "282e": { - "name": "evaluation", - "canvasName": "evaluation", - "summary": "Verify Operations Topics Are All True", - "description": "Verify operations topics are all true", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "all_true_flag": true, - "evaluation_groups": [ - { - "all_true_flag": true, - "evaluations": [ - { - "query": "", - "operand_1": { - "variable": "return_value", - "task": "509d" - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - }, - { - "query": "", - "operand_1": { - "variable": "return_value", - "task": "71af" - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - }, - { - "query": "", - "operand_1": { - "variable": "return_value", - "task": "eb4a" - }, - "operator": "==", - "operand_2": { - "variable": true, - "task": "static" - } - } - ] - } - ] - }, - "outgoing": { - "return_value": null - } - }, + "workflow_end": { + "name": "workflow_end", "groups": [], "nodeLocation": { - "x": 1140, - "y": 660 + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" } }, - "326b": { - "name": "transformation", - "canvasName": "transformation", - "summary": "Create Path Lookup Payload", - "description": "Create path lookup payload", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", - "type": "operation", - "displayName": "WorkFlowEngine", - "variables": { - "incoming": { - "tr_id": "6399ffec2c79bd019461556d", - "variableMap": { - "source": "$var.job.source", - "destination": "$var.job.destination", - "sourcePort": "$var.job.sourcePort", - "destinationPort": "$var.job.destinationPort", - "protocol": "$var.job.protocol" - }, - "options": { - "extractOutput": true, - "validateIncoming": true, - "revertToDefaultValue": true + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "spec": { + "type": "object", + "properties": { + "discoveryTaskId": { + "type": "string" } - }, - "outgoing": { - "pathLookUpPayload": null - }, - "decorators": [] + } + } + }, + "required": [ + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "spec": { + "type": "object", + "properties": { + "discoveryTaskId": { + "type": "string" + } + } + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "e943c82b-b7c9-4374-805e-f76e349ca408", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 12, + "reference": "8d695195-343f-41c3-baa3-df64e61dc3f7", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Rename Snapshot", + "description": "Rename Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", "groups": [], - "task_name": "PreBuiltPathLookUp", - "retrySettings": null, "nodeLocation": { - "x": 1140, - "y": 300 + "x": 264, + "y": 0 } }, - "31f9": { - "name": "stub", - "canvasName": "stub", - "summary": "ZonesFW Issue", - "description": "Create a stub for ZonesFW issue", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", + "a1a1": { + "name": "renameSnapshot", + "canvasName": "renameSnapshot", + "summary": "renameSnapshot", + "description": "renameSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "Tools", + "displayName": "IP Fabric", "variables": { "incoming": { - "type": "success", - "delay": "", - "response": "ZonesFW - The traffic will not flow as per the request." + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" }, "outgoing": { "response": null @@ -1264,25 +960,8326 @@ "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 1740, - "y": 408 + "x": 264, + "y": 150 } }, - "cab0": { - "name": "stub", - "canvasName": "stub", - "summary": "Forwarding Issue", - "description": "Create a stub for Forwarding issue", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "note": { + "type": "string" + } + } + } + }, + "required": [ + "snapshotId", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "note": { + "type": "string" + } + } + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "958d1523-3310-4c1c-bd3a-f162426ba50d", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 13, + "reference": "5222453a-4943-4794-83ed-ec201e31350d", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Delete Snapshot", + "description": "Delete Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "deleteSnapshot", + "canvasName": "deleteSnapshot", + "summary": "deleteSnapshot", + "description": "deleteSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "4cd4b35f-19e0-4f65-936d-88eca363e2e7", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 14, + "reference": "4943f048-f5f5-492c-a7d4-0357479d31e3", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Clone Snapshot", + "description": "Clone Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "cloneSnapshot", + "canvasName": "cloneSnapshot", + "summary": "cloneSnapshot", + "description": "cloneSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "b8e98ca3-df0f-4f83-b31c-9fb716ce4b14", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 15, + "reference": "f2e6af32-e715-4573-942d-67d49785a28d", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Download Snapshot", + "description": "Download Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "downloadSnapshot", + "canvasName": "downloadSnapshot", + "summary": "downloadSnapshot", + "description": "downloadSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "44b34ca8-51f6-4b45-8adb-5a31a852d0e4", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 16, + "reference": "03cb84d9-2e60-4813-a482-0ac819b70683", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Load Snapshot", + "description": "Load Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "loadSnapshot", + "canvasName": "loadSnapshot", + "summary": "loadSnapshot", + "description": "loadSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "c59b240b-e06a-4b5b-875b-9c1f78604137", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 17, + "reference": "f1b310ec-5d58-4ef1-b4ad-f2c5caaabdc8", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Lock Snapshot", + "description": "Lock Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "lockSnapshot", + "canvasName": "lockSnapshot", + "summary": "lockSnapshot", + "description": "lockSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "e0f3c0c8-f82a-4099-a5ae-9bcb4a3ff31c", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 18, + "reference": "86f8adf0-fadc-4b24-acc5-f0e5949abffa", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Get Snapshot Settings", + "description": "Get Snapshot Settings", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getSnapshotSettings", + "canvasName": "getSnapshotSettings", + "summary": "getSnapshotSettings", + "description": "getSnapshotSettings", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "c1de4ced-fc45-4313-b3db-326cc2477410", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 19, + "reference": "097458fa-ae86-4c08-8d2a-e8e9f58a0eff", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Update Snapshot Settings", + "description": "Update Snapshot Settings", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "updateSnapshotSettings", + "canvasName": "updateSnapshotSettings", + "summary": "updateSnapshotSettings", + "description": "updateSnapshotSettings", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "spec": { + "type": "object" + } + }, + "required": [ + "snapshotId", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "spec": { + "type": "object" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "3d93ad60-9d8c-4f75-b3db-a314936191bd", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 20, + "reference": "f8652874-b801-4ad6-9ec3-9a71c4f7602e", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Unload Snapshot", + "description": "Unload Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "unloadSnapshot", + "canvasName": "unloadSnapshot", + "summary": "unloadSnapshot", + "description": "unloadSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "95b6ab1b-6dc3-4d1f-8b4b-da3bf194d151", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 21, + "reference": "7bf0cfee-ae8c-441d-9d0b-867f21c2ae4a", + "type": "workflow", + "folder": "/Snapshots", + "document": { + "name": "Unlock Snapshot", + "description": "Unlock Snapshot", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "unlockSnapshot", + "canvasName": "unlockSnapshot", + "summary": "unlockSnapshot", + "description": "unlockSnapshot", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "snapshotId": "$var.job.snapshotId" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + } + }, + "required": [ + "snapshotId" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "c601bf5a-64ac-4c0e-ab9d-3d32e1e9af23", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 22, + "reference": "c9340483-82ec-4dc6-bb0d-a9db9f9f9ee1", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query ACI Table", + "description": "Query ACI Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryACITable", + "canvasName": "queryACITable", + "summary": "queryACITable", + "description": "queryACITable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "fbbc23cf-ee66-407b-8dae-113a31b19170", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 23, + "reference": "e6fd7729-2369-4099-b2c5-e8d2516ffa37", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Addressing Table", + "description": "Query Addressing Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryAddressingTable", + "canvasName": "queryAddressingTable", + "summary": "queryAddressingTable", + "description": "queryAddressingTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "56578766-ab6c-4485-a71c-bcd2f0a3e136", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 24, + "reference": "bbe78840-8625-4894-807d-e72f75524150", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Addressing Table (2-Segment)", + "description": "Query Addressing Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryAddressingTable2", + "canvasName": "queryAddressingTable2", + "summary": "queryAddressingTable2", + "description": "queryAddressingTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "61a4a0a3-c801-4d31-80aa-34b0f7e6e76e", + "created": "2026-08-13T05:19:32.794Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 25, + "reference": "39e476c9-33e3-4412-af4e-014d70d8cefd", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query FHRP Table", + "description": "Query FHRP Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryFHRPTable", + "canvasName": "queryFHRPTable", + "summary": "queryFHRPTable", + "description": "queryFHRPTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "479f1e83-6da2-4370-8cb2-9148e8f2124f", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 26, + "reference": "be5e59e1-f107-4936-b921-111fa968c75c", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Interfaces Table", + "description": "Query Interfaces Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryInterfacesTable", + "canvasName": "queryInterfacesTable", + "summary": "queryInterfacesTable", + "description": "queryInterfacesTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "67d4bf62-244a-4298-98a1-fe6a89c6d74c", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 27, + "reference": "94f09eee-4e20-4671-895e-b2c69f91b350", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Interfaces Table (2-Segment)", + "description": "Query Interfaces Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryInterfacesTable2", + "canvasName": "queryInterfacesTable2", + "summary": "queryInterfacesTable2", + "description": "queryInterfacesTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "eb5f49b2-4db8-49ca-a59d-794d61cb0a5f", + "created": "2026-08-13T05:19:32.879Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 28, + "reference": "e075b362-8c0c-45eb-94e2-f5a67acc0f20", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Interfaces Table (3-Segment)", + "description": "Query Interfaces Table (3-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryInterfacesTable3", + "canvasName": "queryInterfacesTable3", + "summary": "queryInterfacesTable3", + "description": "queryInterfacesTable3", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "seg3": "$var.job.seg3", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "seg3", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "17e77e19-cd5b-43a0-87b0-bc35989bd587", + "created": "2026-08-13T05:19:32.910Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 29, + "reference": "98390146-34ae-43f4-80e1-3189dde4a013", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Inventory Table", + "description": "Query Inventory Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryInventoryTable", + "canvasName": "queryInventoryTable", + "summary": "queryInventoryTable", + "description": "queryInventoryTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "df8b14ad-7a4b-4be5-bf3c-ae9e37b15438", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 30, + "reference": "be36a694-1a9d-429d-997a-a0a41e926ab0", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Inventory Table (2-Segment)", + "description": "Query Inventory Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryInventoryTable2", + "canvasName": "queryInventoryTable2", + "summary": "queryInventoryTable2", + "description": "queryInventoryTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "076a3d7a-f30e-4bb7-9375-c83b37259991", + "created": "2026-08-13T05:19:32.965Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 31, + "reference": "836b8539-a2a2-4539-ab53-60ac959593b1", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Management Table", + "description": "Query Management Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryManagementTable", + "canvasName": "queryManagementTable", + "summary": "queryManagementTable", + "description": "queryManagementTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "08145407-017b-4f2b-8388-69ec48c8f62a", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 32, + "reference": "e6009a51-b4be-4cd4-bc90-b8df4581edd8", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Management Table (2-Segment)", + "description": "Query Management Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryManagementTable2", + "canvasName": "queryManagementTable2", + "summary": "queryManagementTable2", + "description": "queryManagementTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "b6eea877-da15-42d3-ae28-442ded695985", + "created": "2026-08-13T05:19:33.021Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 33, + "reference": "97097b08-1b27-4034-b757-b6b23afebd9e", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Management Table (3-Segment)", + "description": "Query Management Table (3-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryManagementTable3", + "canvasName": "queryManagementTable3", + "summary": "queryManagementTable3", + "description": "queryManagementTable3", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "seg3": "$var.job.seg3", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "seg3", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "13d65633-2604-4967-a68a-c71777664651", + "created": "2026-08-13T05:19:33.052Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 34, + "reference": "b3906030-3866-4fc8-93f0-e500a6f10d9d", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query MPLS Table", + "description": "Query MPLS Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryMPLSTable", + "canvasName": "queryMPLSTable", + "summary": "queryMPLSTable", + "description": "queryMPLSTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "570df1af-cf4c-40ff-a911-501bdb1849c8", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 35, + "reference": "89387ae8-a2e7-4106-bd12-d5b19241cb5d", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query MPLS Table (2-Segment)", + "description": "Query MPLS Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryMPLSTable2", + "canvasName": "queryMPLSTable2", + "summary": "queryMPLSTable2", + "description": "queryMPLSTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "28104993-829d-40d6-b5ed-98697f7c325e", + "created": "2026-08-13T05:19:33.118Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 36, + "reference": "109c0294-974e-4dec-b171-490c76f2a31a", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Multicast Table", + "description": "Query Multicast Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryMulticastTable", + "canvasName": "queryMulticastTable", + "summary": "queryMulticastTable", + "description": "queryMulticastTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "20b613bc-ba58-4f0e-afcc-3aa719b02cc3", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 37, + "reference": "505f4154-9821-443b-b9a6-e5e6852eb20e", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Multicast Table (2-Segment)", + "description": "Query Multicast Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryMulticastTable2", + "canvasName": "queryMulticastTable2", + "summary": "queryMulticastTable2", + "description": "queryMulticastTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "07f7c9d1-7101-47a0-9ded-066f11ebd8df", + "created": "2026-08-13T05:19:33.209Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 38, + "reference": "15c0bbce-9695-4ebb-8850-be2de414bbe9", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Multicast Table (3-Segment)", + "description": "Query Multicast Table (3-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryMulticastTable3", + "canvasName": "queryMulticastTable3", + "summary": "queryMulticastTable3", + "description": "queryMulticastTable3", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "seg3": "$var.job.seg3", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "seg3", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "ad29ecb8-c15a-4443-8fa2-82be2c0990c6", + "created": "2026-08-13T05:19:33.237Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 39, + "reference": "efac1150-2b58-47f6-a59b-cd401a1580fe", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Neighbors Table", + "description": "Query Neighbors Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryNeighborsTable", + "canvasName": "queryNeighborsTable", + "summary": "queryNeighborsTable", + "description": "queryNeighborsTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "2dc8eb2f-6212-40e9-87ea-59889abf0679", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 40, + "reference": "d79dae9f-99fb-458a-a443-9709549a7c44", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Networks Table", + "description": "Query Networks Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryNetworksTable", + "canvasName": "queryNetworksTable", + "summary": "queryNetworksTable", + "description": "queryNetworksTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "fd0cbbdf-bffe-4b34-a4b1-d8a4297a90d6", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 41, + "reference": "bc06358a-dc5e-4c99-bc84-081ade3e1747", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Networks Table (3-Segment)", + "description": "Query Networks Table (3-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryNetworksTable3", + "canvasName": "queryNetworksTable3", + "summary": "queryNetworksTable3", + "description": "queryNetworksTable3", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "seg3": "$var.job.seg3", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "seg3", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "49c41e0a-214d-44be-b1ef-63b56d4f7810", + "created": "2026-08-13T05:19:33.323Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 42, + "reference": "6879f712-db24-4e03-900f-dbf635fc14e9", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Platforms Table", + "description": "Query Platforms Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryPlatformsTable", + "canvasName": "queryPlatformsTable", + "summary": "queryPlatformsTable", + "description": "queryPlatformsTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "7c0b7889-5827-4e47-8162-3d3f570c02cc", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 43, + "reference": "e37192ee-d050-4b23-92f8-0e4e344710ac", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Platforms Table (2-Segment)", + "description": "Query Platforms Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryPlatformsTable2", + "canvasName": "queryPlatformsTable2", + "summary": "queryPlatformsTable2", + "description": "queryPlatformsTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "88a7e846-89d7-4c1d-9fea-11c169fae3ba", + "created": "2026-08-13T05:19:33.377Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 44, + "reference": "514a1a19-9165-4113-9eb8-6f99433a9f15", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query QoS Table", + "description": "Query QoS Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryQoSTable", + "canvasName": "queryQoSTable", + "summary": "queryQoSTable", + "description": "queryQoSTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "0ef76f27-c672-49b4-8663-dbe6c07ef1ed", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 45, + "reference": "8a85dd2e-f24d-4f46-9f73-b772899b005c", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Routing Table (3-Segment)", + "description": "Query Routing Table (3-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryRoutingTable3", + "canvasName": "queryRoutingTable3", + "summary": "queryRoutingTable3", + "description": "queryRoutingTable3", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "seg3": "$var.job.seg3", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "seg3", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "seg3": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "d46ec283-9162-403c-92a2-9ff6712c40ac", + "created": "2026-08-13T05:19:33.430Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 46, + "reference": "bf219a31-c325-4b09-8286-c752d10dfe77", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Security Table", + "description": "Query Security Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "querySecurityTable", + "canvasName": "querySecurityTable", + "summary": "querySecurityTable", + "description": "querySecurityTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "81667ba6-991f-4ad5-9b3c-02fdee791a08", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 47, + "reference": "ed6aecc5-dfe4-4736-bd12-5400c92f780d", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Security Table (2-Segment)", + "description": "Query Security Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "querySecurityTable2", + "canvasName": "querySecurityTable2", + "summary": "querySecurityTable2", + "description": "querySecurityTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "a666d94f-2644-4281-9f72-9752912dc274", + "created": "2026-08-13T05:19:33.483Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 48, + "reference": "13cd575b-a753-4fc9-bab3-d0bd0dc618a1", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Spanning Tree Table", + "description": "Query Spanning Tree Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "querySpanningTreeTable", + "canvasName": "querySpanningTreeTable", + "summary": "querySpanningTreeTable", + "description": "querySpanningTreeTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "b6c7d9a2-d0f5-4350-89c2-003b1e7e4d9d", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 49, + "reference": "5ea3a013-3d5d-4430-9d7d-e95cfa6127e9", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Spanning Tree Table (2-Segment)", + "description": "Query Spanning Tree Table (2-Segment)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "querySpanningTreeTable2", + "canvasName": "querySpanningTreeTable2", + "summary": "querySpanningTreeTable2", + "description": "querySpanningTreeTable2", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "seg2": "$var.job.seg2", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "seg2", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "seg2": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "uuid": "1d08ce8f-dd2d-4600-8ac0-54abe1008a36", + "created": "2026-08-13T05:19:33.537Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "5.55.5", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 50, + "reference": "9de5a861-6a84-4784-844f-25b35d3476df", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query VLAN Table", + "description": "Query VLAN Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryVLANTable", + "canvasName": "queryVLANTable", + "summary": "queryVLANTable", + "description": "queryVLANTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", + "type": "automatic", + "displayName": "IP Fabric", + "variables": { + "incoming": { + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "8e07c8ae-9480-43e1-9aed-83c551766950", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 51, + "reference": "5b6d3a57-ad89-4234-8597-1a5d8d9a12b6", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query VRF Table", + "description": "Query VRF Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "queryVRFTable", + "canvasName": "queryVRFTable", + "summary": "queryVRFTable", + "description": "queryVRFTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "Tools", + "displayName": "IP Fabric", "variables": { "incoming": { - "type": "success", - "delay": "", - "response": "Forwarding - The traffic will not flow as per the request." + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" }, "outgoing": { "response": null @@ -1294,25 +9291,234 @@ "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 1452, - "y": 564 + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "1ed40842-e588-4d63-97d1-0882fbfe1fff", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 52, + "reference": "d13aadec-a571-4eea-acfa-0d1f36b39651", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query VXLAN Table", + "description": "Query VXLAN Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 } }, - "a755": { - "name": "stub", - "canvasName": "stub", - "summary": "Perfect", - "description": "Create a stub for perfect traffic flow", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", + "a1a1": { + "name": "queryVXLANTable", + "canvasName": "queryVXLANTable", + "summary": "queryVXLANTable", + "description": "queryVXLANTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "Tools", + "displayName": "IP Fabric", "variables": { "incoming": { - "type": "success", - "delay": "", - "response": "Perfect - The traffic is flowing as per the request" + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" }, "outgoing": { "response": null @@ -1321,28 +9527,237 @@ "decorators": [] }, "groups": [], - "actor": "Pronghorn", - "scheduled": false, + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + } + }, + "required": [ + "seg1", + "spec" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "seg1": { + "type": "string" + }, + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] + }, + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-08-13T05:20:07.172Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "4.69.69", + "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "684af1c4-5c7e-4a4f-a45f-90a881b88ab2", + "canvasVersion": 3, + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 53, + "reference": "9fa48339-077d-46ee-9584-e282bcaba96f", + "type": "workflow", + "folder": "/Tables", + "document": { + "name": "Query Wireless Table", + "description": "Query Wireless Table", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], "nodeLocation": { - "x": 1140, - "y": 756 + "x": 264, + "y": 0 } }, - "ea77": { - "name": "stub", - "canvasName": "stub", - "summary": "ACL - Issue", - "description": "Create a stub for ACL issue", - "location": "Application", - "locationType": null, - "app": "WorkFlowEngine", + "a1a1": { + "name": "queryWirelessTable", + "canvasName": "queryWirelessTable", + "summary": "queryWirelessTable", + "description": "queryWirelessTable", + "location": "Adapter", + "locationType": "IP Fabric API:latest", + "app": "IP Fabric API:latest", "type": "automatic", - "displayName": "Tools", + "displayName": "IP Fabric", "variables": { "incoming": { - "type": "success", - "delay": "", - "response": "ACL - The traffic will not flow as per the request." + "adapter_id": "IP Fabric", + "seg1": "$var.job.seg1", + "bodyContentType": "application/json", + "requestBodyPayload": "$var.job.spec" }, "outgoing": { "response": null @@ -1354,158 +9769,165 @@ "actor": "Pronghorn", "scheduled": false, "nodeLocation": { - "x": 1740, - "y": 492 + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 } } }, "transitions": { - "4116": {}, "workflow_start": { - "326b": { - "type": "standard", - "state": "success" - } - }, - "workflow_end": {}, - "a1": { - "11ce": { - "type": "standard", - "state": "success" - } - }, - "eb4a": { - "282e": { - "type": "standard", - "state": "success" - }, - "ea77": { - "type": "standard", - "state": "failure" - } - }, - "71af": { - "282e": { - "type": "standard", - "state": "success" - }, - "cab0": { - "type": "standard", - "state": "failure" - } - }, - "509d": { - "282e": { - "type": "standard", - "state": "success" - }, - "31f9": { - "type": "standard", - "state": "failure" - } - }, - "11ce": { - "eb4a": { - "type": "standard", - "state": "success" - }, - "71af": { - "type": "standard", - "state": "success" - }, - "509d": { - "type": "standard", - "state": "success" - } - }, - "282e": { - "a755": { - "type": "standard", - "state": "success" - } - }, - "326b": { - "a1": { - "type": "standard", - "state": "success" - } - }, - "31f9": { - "workflow_end": { + "a1a1": { "type": "standard", "state": "success" } }, - "cab0": { + "a1a1": { "workflow_end": { "type": "standard", "state": "success" } }, - "a755": { - "workflow_end": { - "type": "standard", - "state": "success" - } - }, - "ea77": { - "workflow_end": { - "type": "standard", - "state": "success" - } - } + "workflow_end": {} }, "inputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "source": { - "type": "string" - }, - "destination": { - "type": "string" - }, - "sourcePort": { - "type": "string" - }, - "destinationPort": { + "seg1": { "type": "string" }, - "protocol": { - "type": "string" + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] } }, "required": [ - "adapterId", - "source", - "destination", - "sourcePort", - "destinationPort", - "protocol" + "seg1", + "spec" ] }, "outputSchema": { "type": "object", "properties": { - "adapterId": { - "type": ["array", "boolean", "null", "number", "object", "string"] - }, - "source": { + "seg1": { "type": "string" }, - "destination": { - "type": "string" - }, - "sourcePort": { - "type": "string" - }, - "destinationPort": { - "type": "string" - }, - "protocol": { - "type": "string" + "spec": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Column names to return. Valid values vary per table; see the IP Fabric API reference for the specific table." + }, + "filters": { + "type": "object", + "description": "Column filter expressions, e.g. {\"hostname\": [\"eq\", \"value\"]}." + }, + "attributeFilters": { + "type": "object", + "description": "Attribute-based filters, e.g. {\"siteName\": [\"SiteName\"]}." + }, + "pagination": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "limit": { + "type": "integer" + } + } + }, + "sort": { + "type": "object", + "properties": { + "column": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + }, + "snapshot": { + "type": "string", + "description": "Snapshot ID, or \"$last\"/\"$prev\"/\"$lastLocked\"." + }, + "reports": { + "type": "string", + "description": "GUI report path this table corresponds to, for reference (optional)." + } + }, + "required": [ + "columns" + ] }, "_id": { "type": "string", @@ -1516,411 +9938,244 @@ } } }, - "type": "automation", - "font_size": 12, - "last_updated": "2025-01-23T21:10:30.376Z", - "lastUpdatedVersion": "5.55.2-2023.2.13", - "createdVersion": "5.40.5-2021.1.109.0", - "preAutomationTime": 0, - "sla": 0, + "last_updated": "2026-08-13T05:20:07.172Z", "last_updated_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, + "lastUpdatedVersion": "4.69.69", "created": "1970-01-01T00:00:00.000Z", + "createdVersion": "5.55.5", + "scenarios": [], + "uuid": "ab7bf651-144c-4f0d-9a6f-a39a00d1efa5", "canvasVersion": 3, "created_by": { - "provenance": "Okta", + "provenance": "LDAP", "username": "admin@itential", "firstname": "admin@itential", - "inactive": false, - "sso": true, - "nameID": "admin@itential" + "inactive": false }, "tags": [], "groups": [], - "migrationVersion": 3 - } - }, - { - "iid": 4, - "reference": "6792acedb320bf2f072b34fe", - "type": "transformation", - "folder": "/Analyze Service Path", - "document": { - "_id": "6792acedb320bf2f072b34fe", - "name": "Create Path Lookup Payload (1)", - "description": "", - "incoming": [ - { - "$id": "source", - "type": "string" - }, - { - "$id": "destination", - "type": "string" - }, - { - "$id": "sourcePort", - "type": "string" - }, - { - "$id": "destinationPort", - "type": "string" - }, - { - "$id": "protocol", - "type": "string" - } - ], - "outgoing": [ - { - "$id": "pathLookUpPayload", - "type": "object", - "properties": {}, - "required": [] - } - ], - "steps": [ - { - "id": 6, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "{\n \"parameters\": {\n \"destinationPoint\": \"${destinationPoint}\",\n \"groupBy\": \"siteName\",\n \"networkMode\": false,\n \"pathLookupType\": \"unicast\",\n \"securedPath\": false,\n \"startingPoint\": \"${startingPoint}\",\n \"type\": \"pathLookup\",\n \"firstHopAlgorithm\": {\n \"type\": \"automatic\"\n },\n \"protocol\": \"${protocol}\",\n \"srcRegions\": \".*\",\n \"dstRegions\": \".*\",\n \"enableRegions\": false,\n \"ttl\": 128,\n \"fragmentOffset\": 0,\n \"otherOptions\": {\n \"applications\": \".*\",\n \"tracked\": false\n },\n \"l4Options\": {\n \"dstPorts\": \"${dstPorts}\",\n \"srcPorts\": \"${srcPorts}\",\n \"flags\": []\n }\n },\n \"snapshot\": \"$last\"\n}", - "args": [null, null, null, null, null], - "view": { - "row": 2, - "col": 1 - } - }, - { - "id": 8, - "type": "method", - "library": "JSON", - "method": "parse", - "args": [null, null], - "view": { - "row": 2, - "col": 2 - } - }, - { - "id": 10, - "type": "assign", - "from": { - "location": "method", - "name": 8, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "pathLookUpPayload", - "ptr": "" - } - }, - { - "id": 16, - "type": "assign", - "from": { - "location": "incoming", - "name": "source", - "ptr": "" - }, - "to": { - "location": "template", - "name": 6, - "ptr": "/args/1/value" - }, - "context": "#" - }, - { - "id": 18, - "type": "assign", - "from": { - "location": "incoming", - "name": "sourcePort", - "ptr": "" - }, - "to": { - "location": "template", - "name": 6, - "ptr": "/args/4/value" - }, - "context": "#" - }, - { - "id": 19, - "type": "assign", - "from": { - "location": "incoming", - "name": "destinationPort", - "ptr": "" - }, - "to": { - "location": "template", - "name": 6, - "ptr": "/args/3/value" - }, - "context": "#" - }, - { - "id": 20, - "type": "assign", - "from": { - "location": "incoming", - "name": "protocol", - "ptr": "" - }, - "to": { - "location": "template", - "name": 6, - "ptr": "/args/2/value" - }, - "context": "#" - }, - { - "id": 21, - "type": "assign", - "from": { - "location": "incoming", - "name": "destination", - "ptr": "" - }, - "to": { - "location": "template", - "name": 6, - "ptr": "/args/0/value" - }, - "context": "#" - }, - { - "id": 22, - "type": "assign", - "from": { - "location": "template", - "name": 6, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 8, - "ptr": "/args/0/value" - }, - "context": "#" - } - ], - "functions": [], - "comments": [], - "view": { - "col": 2, - "row": 5 - }, - "created": "2025-01-23T20:56:13.703Z", - "createdBy": { - "_id": "67531c63592f8c45f4eabe88", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-23T21:10:30.381Z", - "lastUpdatedBy": { - "_id": "67531c63592f8c45f4eabe88", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] - } - }, - { - "iid": 5, - "reference": "60d1f5de24b88d0119edef27", - "type": "transformation", - "folder": "/Compare Snapshot Inventory", - "document": { - "_id": "60d1f5de24b88d0119edef27", - "name": "Create Inventory Diff Payload", - "description": "", - "incoming": [ - { - "$id": "snapshotidlast", - "type": "string", - "examples": ["snap1"] - }, - { - "$id": "snapshotidprev", - "type": "string", - "examples": ["snap2"] - } - ], - "outgoing": [ - { - "$id": "snapshotidlast", - "type": "string", - "examples": ["snap1"] - }, - { - "$id": "payload", - "type": "object", - "properties": {}, - "required": [] - } - ], - "steps": [ - { - "id": 1, - "type": "template", - "library": "String", - "method": "templateLiteral", - "template": "{\n \"columns\": [\n \"hostname\",\n \"loginIp\",\n \"version\",\n \"uptime\",\n \"status\"\n ],\n \"bindVariables\": {\n \"after\": \"${lastSnap}\",\n \"before\": \"${prevSnap}\"\n },\n \"filters\": {}\n}", - "args": [null, null], - "view": { - "row": 2, - "col": 2 - } - }, - { - "id": 2, - "type": "assign", - "from": { - "location": "incoming", - "name": "snapshotidlast", - "ptr": "" - }, - "to": { - "location": "template", - "name": 1, - "ptr": "/args/0/value" - } - }, - { - "id": 3, - "type": "assign", - "from": { - "location": "incoming", - "name": "snapshotidprev", - "ptr": "" - }, - "to": { - "location": "template", - "name": 1, - "ptr": "/args/1/value" - } - }, - { - "id": 4, - "type": "method", - "library": "JSON", - "method": "parse", - "args": [null, null], - "view": { - "row": 2, - "col": 3 - } - }, - { - "id": 5, - "type": "assign", - "from": { - "location": "template", - "name": 1, - "ptr": "/return" - }, - "to": { - "location": "method", - "name": 4, - "ptr": "/args/0/value" - } - }, - { - "id": 6, - "type": "assign", - "from": { - "location": "method", - "name": 4, - "ptr": "/return" - }, - "to": { - "location": "outgoing", - "name": "payload", - "ptr": "" - } - }, - { - "id": 7, - "type": "assign", - "from": { - "location": "incoming", - "name": "snapshotidlast", - "ptr": "" - }, - "to": { - "location": "outgoing", - "name": "snapshotidlast", - "ptr": "" - } - } - ], - "functions": [], - "comments": [], - "view": { - "col": 3, - "row": 5 - }, - "created": "2025-01-23T20:56:13.704Z", - "createdBy": { - "_id": "67531c63592f8c45f4eabe88", - "provenance": "Okta", - "username": "admin@itential" - }, - "lastUpdated": "2025-01-23T21:10:30.377Z", - "lastUpdatedBy": { - "_id": "67531c63592f8c45f4eabe88", - "provenance": "Okta", - "username": "admin@itential" - }, - "version": "4.3.6-2023.2.5", - "tags": [] + "migrationVersion": 8 } } ], "folders": [ { - "iid": 2, - "nodeType": "component" + "nodeType": "folder", + "name": "Path Lookup", + "children": [ + { + "iid": 6, + "nodeType": "component" + } + ] }, { "nodeType": "folder", - "name": "Compare Snapshot Inventory", + "name": "Jobs", "children": [ { - "iid": 1, + "iid": 7, "nodeType": "component" }, { - "iid": 5, + "iid": 8, + "nodeType": "component" + }, + { + "iid": 9, "nodeType": "component" } ] }, { - "iid": 0, - "nodeType": "component" + "nodeType": "folder", + "name": "Snapshots", + "children": [ + { + "iid": 10, + "nodeType": "component" + }, + { + "iid": 11, + "nodeType": "component" + }, + { + "iid": 12, + "nodeType": "component" + }, + { + "iid": 13, + "nodeType": "component" + }, + { + "iid": 14, + "nodeType": "component" + }, + { + "iid": 15, + "nodeType": "component" + }, + { + "iid": 16, + "nodeType": "component" + }, + { + "iid": 17, + "nodeType": "component" + }, + { + "iid": 18, + "nodeType": "component" + }, + { + "iid": 19, + "nodeType": "component" + }, + { + "iid": 20, + "nodeType": "component" + }, + { + "iid": 21, + "nodeType": "component" + } + ] }, { "nodeType": "folder", - "name": "Analyze Service Path", + "name": "Tables", "children": [ { - "iid": 3, + "iid": 22, + "nodeType": "component" + }, + { + "iid": 23, + "nodeType": "component" + }, + { + "iid": 24, + "nodeType": "component" + }, + { + "iid": 25, + "nodeType": "component" + }, + { + "iid": 26, + "nodeType": "component" + }, + { + "iid": 27, + "nodeType": "component" + }, + { + "iid": 28, + "nodeType": "component" + }, + { + "iid": 29, + "nodeType": "component" + }, + { + "iid": 30, + "nodeType": "component" + }, + { + "iid": 31, + "nodeType": "component" + }, + { + "iid": 32, + "nodeType": "component" + }, + { + "iid": 33, + "nodeType": "component" + }, + { + "iid": 34, + "nodeType": "component" + }, + { + "iid": 35, + "nodeType": "component" + }, + { + "iid": 36, + "nodeType": "component" + }, + { + "iid": 37, + "nodeType": "component" + }, + { + "iid": 38, + "nodeType": "component" + }, + { + "iid": 39, + "nodeType": "component" + }, + { + "iid": 40, + "nodeType": "component" + }, + { + "iid": 41, + "nodeType": "component" + }, + { + "iid": 42, + "nodeType": "component" + }, + { + "iid": 43, + "nodeType": "component" + }, + { + "iid": 44, + "nodeType": "component" + }, + { + "iid": 45, + "nodeType": "component" + }, + { + "iid": 46, + "nodeType": "component" + }, + { + "iid": 47, + "nodeType": "component" + }, + { + "iid": 48, + "nodeType": "component" + }, + { + "iid": 49, + "nodeType": "component" + }, + { + "iid": 50, + "nodeType": "component" + }, + { + "iid": 51, + "nodeType": "component" + }, + { + "iid": 52, "nodeType": "component" }, { - "iid": 4, + "iid": 53, "nodeType": "component" } ] @@ -1941,4 +10196,4 @@ "iid": 65, "thumbnail": "data:image/png;base64,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", "backgroundColor": "#FFFFFF" -} +} \ No newline at end of file