The System API base URL is http://{swXtch-ctrl-ip}:{port}
Monitoring
monitoring/components
Components state index including static data and metrics
Endpoint:
<base_url>/swx/monitoring/componentsRequest:
json{List of swxtch control TCP addresses to filter by}{ "swxtchAddresses": [ "IP1", "IP2", . ] }
If the list is empty (i.e. []), the endpoint will list all the known cloudSwXtches.
Response:
json
Example Response: On AWS asking for the list of all cloudSwXtches available in the environment →
$ curl 172.31.25.214/swx/monitoring/components -d '{ "swxtchAddresses": [] }' { "172.31.16.54": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": {}, "tx": {} }, "streamLinks": { "ens6": { "egress": { "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.107.182:48045 | AdjacentDst = 172.31.103.162:9999": { "adjacentComponentId": "172.31.25.214", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197310528, "byteRate": 190653, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1027659, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1027659, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296190830797947 } }, "ingress": {} } }, "totals": { "ens6": { "rxCounters": { "byteCount": 0, "packetCount": 0 }, "rxDropCounters": { "byteCount": 0, "packetCount": 0 }, "rxRates": { "byteCount": 0, "packetCount": 0 }, "timestamp": 1762296190830775038, "txCounters": { "byteCount": 197310528, "packetCount": 1027659 }, "txDropCounters": { "byteCount": 0, "packetCount": 0 }, "txRates": { "byteCount": 190653, "packetCount": 993 } } } }, "state": { "componentKindCode": "xnic", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-16-54", "instanceTypeName": "m5.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.16.54", "mac": "0a:ff:e7:c0:0d:5b", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.107.182", "mac": "0a:ff:ed:44:79:d1", "masterOf": null, "mtu": 3900, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "swx0": { "broadcastIp": "172.30.15.255", "driverName": null, "index": 4, "ip": "172.30.0.54", "mac": "d6:2f:de:ce:3f:1d", "masterOf": null, "mtu": 4096, "name": "swx0", "pciAddress": null, "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.30.0.0/20", "vpc": null } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.16.54", "name": "ip-172-31-16-54" } }, "172.31.17.125": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": {}, "tx": {} }, "streamLinks": { "ens6": { "egress": { "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.97.142:56282 | AdjacentDst = 172.31.101.149:9999": { "adjacentComponentId": "172.31.18.246", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197682048, "byteRate": 190618, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1029594, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1029594, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296191009586051 } }, "ingress": {} } }, "totals": { "ens6": { "rxCounters": { "byteCount": 0, "packetCount": 0 }, "rxDropCounters": { "byteCount": 0, "packetCount": 0 }, "rxRates": { "byteCount": 0, "packetCount": 0 }, "timestamp": 1762296191009564781, "txCounters": { "byteCount": 197682048, "packetCount": 1029594 }, "txDropCounters": { "byteCount": 0, "packetCount": 0 }, "txRates": { "byteCount": 190618, "packetCount": 993 } } } }, "state": { "componentKindCode": "xnic", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-17-125", "instanceTypeName": "m5.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.17.125", "mac": "0a:ff:c5:39:de:d7", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.97.142", "mac": "0a:ff:df:28:b8:77", "masterOf": null, "mtu": 3900, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "swx0": { "broadcastIp": "172.30.15.255", "driverName": null, "index": 4, "ip": "172.30.1.125", "mac": "2e:20:5e:93:ad:4b", "masterOf": null, "mtu": 4096, "name": "swx0", "pciAddress": null, "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.30.0.0/20", "vpc": null } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.17.125", "name": "ip-172-31-17-125" } }, "172.31.17.56": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": {}, "tx": {} }, "streamLinks": { "ens6": { "egress": {}, "ingress": { "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.101.149:4877 | AdjacentDst = 172.31.105.44:9999": { "adjacentComponentId": "172.31.18.246", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197718144, "byteRate": 190602, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1029782, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1029782, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296191199707537 } } } }, "totals": { "ens6": { "rxCounters": { "byteCount": 197718144, "packetCount": 1029782 }, "rxDropCounters": { "byteCount": 0, "packetCount": 0 }, "rxRates": { "byteCount": 190602, "packetCount": 993 }, "timestamp": 1762296191199687810, "txCounters": { "byteCount": 0, "packetCount": 0 }, "txDropCounters": { "byteCount": 0, "packetCount": 0 }, "txRates": { "byteCount": 0, "packetCount": 0 } } } }, "state": { "componentKindCode": "xnic", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-17-56", "instanceTypeName": "m5.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.17.56", "mac": "0a:ff:db:e3:36:0f", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.105.44", "mac": "0a:ff:fa:52:62:2b", "masterOf": null, "mtu": 3900, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "swx0": { "broadcastIp": "172.30.15.255", "driverName": null, "index": 4, "ip": "172.30.1.56", "mac": "12:f3:28:6c:a3:98", "masterOf": null, "mtu": 4096, "name": "swx0", "pciAddress": null, "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.30.0.0/20", "vpc": null } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.17.56", "name": "ip-172-31-17-56" } }, "172.31.18.246": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": {}, "tx": {} }, "streamLinks": { "ens6": { "egress": { "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.101.149:4877 | AdjacentDst = 172.31.105.44:9999": { "adjacentComponentId": "172.31.17.56", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197802240, "byteRate": 190603, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1030220, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1030220, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296191639664480 } }, "ingress": { "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.97.142:56282 | AdjacentDst = 172.31.101.149:9999": { "adjacentComponentId": "172.31.17.125", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197788800, "byteRate": 190603, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1030150, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1030150, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296191569164470 } } } }, "totals": { "ens6": { "rxCounters": { "byteCount": 197788800, "packetCount": 1030150 }, "rxDropCounters": { "byteCount": 0, "packetCount": 0 }, "rxRates": { "byteCount": 189265, "packetCount": 986 }, "timestamp": 1762296191653150411, "txCounters": { "byteCount": 197802240, "packetCount": 1030220 }, "txDropCounters": null, "txRates": { "byteCount": 190705, "packetCount": 993 } } } }, "state": { "componentKindCode": "swxtch", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-18-246", "instanceTypeName": "m6i.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.18.246", "mac": "0a:ff:f8:a8:ee:5f", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.101.149", "mac": "0a:ff:c1:b5:60:eb", "masterOf": null, "mtu": 9001, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.18.246", "name": "ip-172-31-18-246" } }, "172.31.23.166": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": {}, "tx": {} }, "streamLinks": { "ens6": { "egress": {}, "ingress": { "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.103.162:4877 | AdjacentDst = 172.31.111.50:9999": { "adjacentComponentId": "172.31.25.214", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197400192, "byteRate": 190620, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1028126, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1028126, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296191302223705 } } } }, "totals": { "ens6": { "rxCounters": { "byteCount": 197400192, "packetCount": 1028126 }, "rxDropCounters": { "byteCount": 0, "packetCount": 0 }, "rxRates": { "byteCount": 190620, "packetCount": 993 }, "timestamp": 1762296191302200904, "txCounters": { "byteCount": 0, "packetCount": 0 }, "txDropCounters": { "byteCount": 0, "packetCount": 0 }, "txRates": { "byteCount": 0, "packetCount": 0 } } } }, "state": { "componentKindCode": "xnic", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-23-166", "instanceTypeName": "m5.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.23.166", "mac": "0a:ff:ef:92:c5:fb", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.111.50", "mac": "0a:ff:cd:94:db:b7", "masterOf": null, "mtu": 3900, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "swx0": { "broadcastIp": "172.30.15.255", "driverName": null, "index": 4, "ip": "172.30.7.166", "mac": "22:c1:d2:68:60:1c", "masterOf": null, "mtu": 4096, "name": "swx0", "pciAddress": null, "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.30.0.0/20", "vpc": null } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.23.166", "name": "ip-172-31-23-166" } }, "172.31.25.214": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": { "172.31.106.148-172.31.103.162": { "adjacentComponentId": "172.31.29.118", "adjacentComponentNetworkInterfaceName": "ens6", "metrics": { "lostPacketCount": 0, "originalPacketCount": 0, "retryPacketCount": 0, "rtt": 142476, "rttVariance": 8456 }, "networkInterfaceName": "ens6" } }, "tx": { "172.31.103.162-172.31.106.148": { "adjacentComponentId": "172.31.29.118", "adjacentComponentNetworkInterfaceName": "ens6", "metrics": { "originalPacketCount": 0, "retryPacketCount": 0, "rtt": 137192, "rttVariance": 1732 }, "networkInterfaceName": "ens6" } } }, "streamLinks": { "ens6": { "egress": { "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.103.162:4877 | AdjacentDst = 172.31.111.50:9999": { "adjacentComponentId": "172.31.23.166", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197214720, "byteRate": 190653, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1027160, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1027160, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296190327693211 } }, "ingress": { "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.107.182:48045 | AdjacentDst = 172.31.103.162:9999": { "adjacentComponentId": "172.31.16.54", "adjacentComponentNetworkInterfaceName": "ens6", "byteCount": 197204160, "byteRate": 190653, "fragmentationMetrics": { "averageFragmentCount": 1, "fragmentCount": 1027105, "packetCount": 0, "packetRate": 0 }, "haPathId": null, "networkInterfaceName": "ens6", "packetCount": 1027105, "packetRate": 993, "protocolName": "xMC", "timestamp": 1762296190272277005 } } } }, "totals": { "ens6": { "rxCounters": { "byteCount": 197204160, "packetCount": 1027105 }, "rxDropCounters": { "byteCount": 0, "packetCount": 0 }, "rxRates": { "byteCount": 192225, "packetCount": 1001 }, "timestamp": 1762296190330757487, "txCounters": { "byteCount": 197214720, "packetCount": 1027160 }, "txDropCounters": null, "txRates": { "byteCount": 191073, "packetCount": 995 } } } }, "state": { "componentKindCode": "swxtch", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-25-214", "instanceTypeName": "m6i.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.25.214", "mac": "0a:ff:e4:b4:bf:23", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.103.162", "mac": "0a:ff:ef:a0:10:47", "masterOf": null, "mtu": 9001, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.25.214", "name": "ip-172-31-25-214" } }, "172.31.29.118": { "metrics": { "ha": { "aggregations": null, "streams": [] }, "slp": { "rx": { "172.31.103.162-172.31.106.148": { "adjacentComponentId": "172.31.25.214", "adjacentComponentNetworkInterfaceName": "ens6", "metrics": { "lostPacketCount": 0, "originalPacketCount": 0, "retryPacketCount": 0, "rtt": 139428, "rttVariance": 1580 }, "networkInterfaceName": "ens6" } }, "tx": { "172.31.106.148-172.31.103.162": { "adjacentComponentId": "172.31.25.214", "adjacentComponentNetworkInterfaceName": "ens6", "metrics": { "originalPacketCount": 0, "retryPacketCount": 0, "rtt": 136178, "rttVariance": 1924 }, "networkInterfaceName": "ens6" } } }, "streamLinks": {}, "totals": { "ens6": { "rxCounters": { "byteCount": 0, "packetCount": 0 }, "rxDropCounters": null, "rxRates": { "byteCount": 0, "packetCount": 0 }, "timestamp": 1762296191649550784, "txCounters": { "byteCount": 0, "packetCount": 0 }, "txDropCounters": null, "txRates": { "byteCount": 0, "packetCount": 0 } } } }, "state": { "componentKindCode": "bridge", "environment": { "cloudName": "AWS", "hostname": "ip-172-31-29-118", "instanceTypeName": "m6i.xlarge", "osDistribution": "Ubuntu 24.04", "regionName": "us-east-1" }, "hardware": { "nics": { "ens5": { "broadcastIp": "172.31.31.255", "driverName": "ena", "index": 2, "ip": "172.31.29.118", "mac": "0a:ff:f1:b9:20:4f", "masterOf": null, "mtu": 9001, "name": "ens5", "pciAddress": "0000:00:05.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.16.0/20", "vpc": "vpc-0432c512c8de7a80b" }, "ens6": { "broadcastIp": "172.31.111.255", "driverName": "ena", "index": 3, "ip": "172.31.106.148", "mac": "0a:ff:d6:e1:c9:b9", "masterOf": null, "mtu": 9001, "name": "ens6", "pciAddress": "0000:00:06.0", "publicIp": null, "subnetMask": "255.255.240.0", "subnetPrefix": "172.31.96.0/20", "vpc": "vpc-0432c512c8de7a80b" } }, "vpcs": { "ens5": "vpc-0432c512c8de7a80b", "ens6": "vpc-0432c512c8de7a80b" } }, "id": "172.31.29.118", "name": "ip-172-31-29-118" } } }
Flows
/swx/flows/deployFlow
Create and deploy an adaptors flow configuration
Endpoint:
<base_url>/swx/flows/deployFlowRequest:
json{ "flowConfig": { "destinations": [ { "adaptorConfig": { "active": "string", "options": [ { "name": "string", "value": "string" } ], "protocolCode": "string", "socketIp": "string", "socketPort": 0 }, "bridgeAddress": "string", "id": "string", "swxtchAddress": "string" } ], "flowName": "string", "id": "string", "source": { "adaptorConfig": { "active": "string", "options": [ { "name": "string", "value": "string" } ], "protocolCode": "string", "socketIp": "string", "socketPort": 0 }, "bridgeAddress": "string", "swxtchAddress": "string" }, "spaceName": "string", "streamIp": "string", "streamPort": 0 }, "propagationResults": { "error": "string", "resultItems": [ { "error": "string", "result": "string", "swxtchAddress": "string" } ] } }Response:
200json
Example Response: Create a simple Flow consisting of a multicast source and two UDP destinations→
$ curl 172.31.25.214/swx/flows/deployFlow -d '{"flowConfig":{"id":null,"flowName":"testFlow","streamIp":"239.1.1.1","streamPort":10000,"destinations":[{"swxtchAddress":"172.31.25.214:80","bridgeAddress":null,"adaptorConfig":{"protocolCode":"udp","socketIp":"172.31.23.166","socketPort":10001,"options":[],"active":true}},{"swxtchAddress":"172.31.25.214:80","bridgeAddress":null,"adaptorConfig":{"protocolCode":"udp","socketIp":"172.31.23.166","socketPort":10002,"options":[],"active":true}}]}}' { "flowConfig": { "id": "4e3340e4-3d09-c4a3-588d-951c882b2bad", "flowName": "testFlow", "spaceName": "flow.4e3340e4-3d09-c4a3-588d-951c882b2bad", "streamIp": "239.1.1.1", "streamPort": 10000, "source": null, "destinations": [ { "id": "38e45d0b-d4f5-4581-5e8b-1803f39a34ce", "swxtchAddress": "172.31.25.214:80", "bridgeAddress": null, "adaptorConfig": { "protocolCode": "udp", "socketIp": "172.31.23.166", "socketPort": 10001, "options": [], "active": true } }, { "id": "0673abf7-2b07-b38c-a751-9dcea412fb6a", "swxtchAddress": "172.31.25.214:80", "bridgeAddress": null, "adaptorConfig": { "protocolCode": "udp", "socketIp": "172.31.23.166", "socketPort": 10002, "options": [], "active": true } } ] }, "propagationResults": { "resultItems": [ { "swxtchAddress": "http://172.31.25.214:80/propagate", "result": null, "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 } }
/swx/flows/destroyFlow
Destroy a flow deployment
Endpoint:
<base_url>/swx/flows/destroyFlowRequest:
json{ "flowId": "string" }Response:
200OK
500Error: flow cannot be found
Example Response: →
$ curl 172.31.25.214/swx/flows/destroyFlow -d '{ "flowId": "add97709-217a-b06d-17e9-fca647c3b123" }' { "resultItems": [ { "swxtchAddress": "http://172.31.25.214:80/propagate", "result": [], "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 }
/swx/flows/flowState
Report a flow's deployment state
Endpoint:
<base_url>/swx/flows/flowStateRequest:
json{ "flowId": "string" }Response:
200OK
500Error: flow cannot be found
Example Response: Get the current state of a given flow→
$ curl 172.31.25.214/swx/flows/flowState -d '{ "flowId": "add97709-217a-b06d-17e9-fca647c3b123" }' { "flowConfig": { "id": "add97709-217a-b06d-17e9-fca647c3b123", "flowName": "testFlow", "spaceName": "flow.add97709-217a-b06d-17e9-fca647c3b123", "streamIp": "239.1.1.1", "streamPort": 10000, "source": null, "destinations": [ { "id": "92341862-5968-1bfa-5b40-bd02fe9c51df", "swxtchAddress": "172.31.25.214:80", "bridgeAddress": null, "adaptorConfig": { "protocolCode": "udp", "socketIp": "172.31.111.50", "socketPort": 10001, "options": [], "active": true } } ] }, "source": null, "destinations": { "92341862-5968-1bfa-5b40-bd02fe9c51df": { "adaptorId": "17711257960751278390", "errorMessage": null, "backendStatus": { "isActive": false, "isConnected": false, "socketIp": "172.31.111.50" } } }, "communicationErrors": {} }
/swx/flows/listFlowConfig
Return a list of flow configs visible in this environment
Endpoint:
<base_url>/swx/flows/listFlowConfigRequest:
Empty
Response:
200OK
Example Response: List existing flows on a given cloudSwXtch. Only one flow present with one destination.
$ curl 172.31.25.214/swx/flows/listFlowConfig [ { "id": "add97709-217a-b06d-17e9-fca647c3b123", "flowName": "testFlow", "spaceName": "flow.add97709-217a-b06d-17e9-fca647c3b123", "streamIp": "239.1.1.1", "streamPort": 10000, "source": null, "destinations": [ { "id": "92341862-5968-1bfa-5b40-bd02fe9c51df", "swxtchAddress": "172.31.25.214:80", "bridgeAddress": null, "adaptorConfig": { "protocolCode": "udp", "socketIp": "172.31.111.50", "socketPort": 10001, "options": [], "active": true } } ] } ]
Clusters
/swx/clusters/deployCluster
Create and deploy cluster configuration
Endpoint:
<base_url>/swx/clusters/deployClusterRequest:
json{ "clusterConfig": { "clusterId": "string", "dynamicSegmentAssignment": "string", "name": "string", "segmentation": "string", "segments": [ { "groupRanges": [ "string" ], "name": "string", "rootNode": { "address": "string", "children": [ {} ] }, "segmentId": "string", "spaceName": "string", "swxtchAddresses": [ "string" ] } ], "spaceName": "string", "tagName": "string" } }Response:
200OK
jsonerror
Example Response: Create a simple static Cluster consisting of a single cloudSwXtch
$ curl 172.31.18.246/swx/clusters/deployCluster -d '{"clusterConfig":{"name":"testCluster","tagName":"","segments":[{"name":"testCluster","swxtchAddresses":null,"rootNode":{"address":"172.31.18.246:80","children":[],"addressOption":{"key":"172.31.18.246:80","value":"172.31.18.246:80","label":"172.31.18.246:80 (ip-172-31-18-246)"}},"groupRanges":null}],"segmentation":false,"dynamicSegmentAssignment":false}}' { "clusterConfig": { "clusterId": "7f2d8a89-af11-3391-493f-4ac398c050c0", "name": "testCluster", "spaceName": "cluster.7f2d8a89-af11-3391-493f-4ac398c050c0", "tagName": "", "segmentation": false, "segments": [ { "segmentId": "d310ba9b-389a-f5b7-b214-0de468888914", "name": "testCluster", "swxtchAddresses": null, "rootNode": { "address": "172.31.18.246:80", "children": [] }, "spaceName": "segment.7f2d8a89-af11-3391-493f-4ac398c050c0", "groupRanges": null } ], "dynamicSegmentAssignment": false }, "propagationResult": { "resultItems": [ { "swxtchAddress": "http://172.31.18.246:80/propagate", "result": null, "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 } }
/swx/clusters/deployHa
Create an HA configuration
Endpoint:
<base_url>/swx/clusters/deployHaRequest:
json. The paths list should be between 2 and 8 elements long.{ "configName": "string", "pairNodes": "string", "paths": [ { "clusterId": "string", "color": "string", "name": "string" }, { "clusterId": "string", "color": "string", "name": "string" }, . . ] }Response:
200OK
jsonerror: The swxtch is already participating in an HA deployment named ‘string’
jsonerror: Could not resolve a cluster configuration with id ‘string’ visible to this node.
Example Response: Create an HA array consisting of two Clusters
$ curl 172.31.25.214/swx/clusters/deployHa -d '{"configName":"testHAArray","paths":[{"clusterId":"7f2d8a89-af11-3391-493f-4ac398c050c0","name":"testPathRed","color":"#fc0303","addresses":["172.31.18.246:80"]},{"clusterId":"c734ed74-4a84-8f0a-9e27-d8807c4fdd7e","name":"testPathBlue","color":"#033dfc","addresses":["172.31.25.214:80"]}],"pairNodes":true}' { "haConfig": { "configId": "50696999-26ee-5b44-4a56-66fa2aed35bb", "configName": "testHAArray", "paths": [ { "index": 0, "name": "testPathRed", "color": "#fc0303", "clusterConfig": { "clusterId": "7f2d8a89-af11-3391-493f-4ac398c050c0", "name": "testCluster", "spaceName": "cluster.7f2d8a89-af11-3391-493f-4ac398c050c0", "tagName": "", "segmentation": false, "segments": [ { "segmentId": "d310ba9b-389a-f5b7-b214-0de468888914", "name": "testCluster", "swxtchAddresses": null, "rootNode": { "address": "172.31.18.246:80", "children": [] }, "spaceName": "segment.7f2d8a89-af11-3391-493f-4ac398c050c0", "groupRanges": null } ], "dynamicSegmentAssignment": false } }, { "index": 1, "name": "testPathBlue", "color": "#033dfc", "clusterConfig": { "clusterId": "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "name": "testCluster2", "spaceName": "cluster.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "tagName": "", "segmentation": false, "segments": [ { "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f", "name": "testCluster2", "swxtchAddresses": null, "rootNode": { "address": "172.31.25.214:80", "children": [] }, "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "groupRanges": null } ], "dynamicSegmentAssignment": false } } ], "pairNodes": true }, "propagationResults": { "7f2d8a89-af11-3391-493f-4ac398c050c0": { "resultItems": [ { "swxtchAddress": "http://172.31.18.246:80/propagate", "result": null, "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 }, "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e": { "resultItems": [ { "swxtchAddress": "http://172.31.25.214:80/propagate", "result": null, "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 } } }
/swx/clusters/destroyCluster
Destroy a cluster configuration and tear down deployment
Endpoint:
<base_url>/swx/clusters/destroyClusterRequest:
json{List of swxtch control TCP addresses to filter by}{ "clusterId": "string" }Response:
200OK
500errorMessage: "Could not resolve a cluster configuration with id ‘string’ visible to this node.
Example Response: Destroy a Cluster
$ curl 172.31.25.214/swx/clusters/destroyCluster -d '{ "clusterId": "7f2d8a89-af11-3391-493f-4ac398c050c0" }' { "resultItems": [ { "swxtchAddress": "http://172.31.18.246:80/propagate", "result": null, "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 }
/swx/clusters/destroyHa
Destroy an HA configuration and tear down deployment
Endpoint:
<base_url>/swx/clusters/destroyHaRequest:
jsonID of the HA array to be destroyed{ "configId": "string" }Response:
200OK
500errorMessage: Could not find an HA config with id ‘string’ visible to the current node
Example Response: Destroy an HA array
$ curl 172.31.18.246/swx/clusters/destroyHa -d '{ "configId": [50696999-26ee-5b44-4a56-66fa2aed35bb] }' { "resultItems": [ { "swxtchAddress": "http://172.31.25.214:80/propagate", "result": null, "error": null }, { "swxtchAddress": "http://172.31.18.246:80/propagate", "result": null, "error": null } ], "error": null, "hasItemErrors": false, "itemErrorCount": 0 }
/swx/clusters/retrieveHaConfig
Return a given HA configuration
Endpoint:
<base_url>/swx/clusters/retrieveHaConfigRequest:
jsonID of the target HA Array{ "configId": "string" }Response:
200OKjson
500errorMessage: Could not find an HA config with id ‘string’ visible to the current node
Example Response: Get info on a given HA Array
$ curl 172.31.25.214/swx/clusters/retrieveHaConfig -d '{ "configId": "c3fd6c0c-b0c8-30b9-0874-7d58dd366674" }' { "configId": "c3fd6c0c-b0c8-30b9-0874-7d58dd366674", "configName": "testHAArray", "paths": [ { "index": 0, "name": "testPathRed", "color": "#fc0303", "clusterConfig": { "clusterId": "f5f0e5d3-285c-a6ed-03c1-c81fdd7a4542", "name": "testCluster", "spaceName": "cluster.f5f0e5d3-285c-a6ed-03c1-c81fdd7a4542", "tagName": "", "segmentation": false, "segments": [ { "segmentId": "88657df7-3ba7-57d9-92e5-20f7671ea514", "name": "testCluster", "swxtchAddresses": null, "rootNode": { "address": "172.31.18.246:80", "children": [] }, "spaceName": "segment.f5f0e5d3-285c-a6ed-03c1-c81fdd7a4542", "groupRanges": null } ], "dynamicSegmentAssignment": false } }, { "index": 1, "name": "testPathBlue", "color": "#033dfc", "clusterConfig": { "clusterId": "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "name": "testCluster2", "spaceName": "cluster.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "tagName": "", "segmentation": false, "segments": [ { "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f", "name": "testCluster2", "swxtchAddresses": null, "rootNode": { "address": "172.31.25.214:80", "children": [] }, "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "groupRanges": null } ], "dynamicSegmentAssignment": false } } ], "pairNodes": true }
/swx/clusters/state
Return a given cluster's configuration and deployment state
Endpoint:
<base_url>/swx/clusters/stateRequest:
jsonA list of the target Clusters{ "clusterIds": [ "ID1", "ID2", . ] }Response:
200OKjson
Example Response: Get information about two Clusters
$ curl 172.31.25.214/swx/clusters/state -d '{"clusterIds":["7f2d8a89-af11-3391-493f-4ac398c050c0","c734ed74-4a84-8f0a-9e27-d8807c4fdd7e"]}' [ { "clusterConfig": { "clusterId": "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "name": "testCluster2", "spaceName": "cluster.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "tagName": "", "segmentation": false, "segments": [ { "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f", "name": "testCluster2", "swxtchAddresses": null, "rootNode": { "address": "172.31.25.214:80", "children": [] }, "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "groupRanges": null } ], "dynamicSegmentAssignment": false }, "segmentStates": [ { "segmentConfig": { "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f", "name": "testCluster2", "swxtchAddresses": null, "rootNode": { "address": "172.31.25.214:80", "children": [] }, "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "groupRanges": null }, "members": { "http://172.31.25.214:80/propagate": { "memberInfo": { "destinations": {}, "swxtchSubscriptions": {}, "tree": { "address": "http://172.31.25.214:80/propagate", "children": null }, "visibleSwxtches": { "http://172.31.25.214:80/propagate": [] }, "fullyConnected": true, "config": { "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f", "name": "testCluster2", "swxtchAddresses": null, "rootNode": { "address": "172.31.25.214:80", "children": [] }, "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e", "groupRanges": null } }, "joinStatusErrorMessage": null } } } ] } ]
.png?sv=2022-11-02&spr=https&st=2025-12-24T16%3A50%3A57Z&se=2025-12-24T18%3A12%3A57Z&sr=c&sp=r&sig=WDroXbTebM5roi1i5g5tiA5irNGr2vtyMYBgZr8MiGY%3D)