VPC
- POST /network/routers/{router_id}/diagnostics
Run network diagnostic on router (ping/arping/traceroute)
- POST /network/routers/{router_id}/diagnostics/files
Get diagnostics files from router (returns signed download URL)
- POST /network/vpc-offerings
Ensure (idempotent create) Karios VPC offering
- Request JSON Object:
display_text (string)
name (string)
network_mode (string)
redundant_router (boolean) – RedundantRouter, when true, advertises the RedundantRouter capability on the offering’s SourceNat service (NATTED) or Gateway service (ROUTED), so every VPC created against this offering comes up with an HA VR pair. This replaces the post-create restartVPC(makeredundant=true) path — CS’s makeredundant forcibly swaps the VPC onto the stock “Redundant VPC offering” (VpcManagerImpl.restartVpc), destroying the Karios family marker. Baking redundancy into a dedicated offering variant avoids that.
routing_mode (string)
service_offering_id (string)
service_provider_list (object) – ServiceProviderList advertises which providers can supply each service at the VPC level. Multiple providers per service are supported (e.g. {“Lb”: [“VpcVirtualRouter”, “InternalLbVm”]} so tiers inside the VPC can pick Public LB or Internal LB independently). When empty, CS auto- picks the first registered provider per service (typically VpcVirtualRouter). Note: csgo-sdk’s CreateVPCOfferingParams.SetServiceproviderlist takes map[string]string (single-provider). Multi-provider goes through a raw HMAC-signed HTTP call — see createVPCOfferingMultiProvider in vpc.go.
specify_as_number (boolean)
supported_services[] (string)
- POST /network/vpc-offerings/ensure-for-size
Compose (lazy create) a VPC offering for a chosen VR size
- Request JSON Object:
cpu_number (integer)
isolation (string) – Isolation selects the VPC offering family at composition time. “vlan” (default, empty) → karios-vpc-natted-<size> “vxlan” → karios-vpc-vxlan-<size> The VLAN-vs-VXLAN decision is purely Karios-side (CS’s VpcOffering has no Tags field); composed-name suffix drives Karios-layer pairing validation when tiers are later created inside the VPC.
memory_mb (integer)
network_mode (string)
redundant_router (boolean) – RedundantRouter selects the HA offering variant. When true the composed name gains a “-redundant” suffix (karios-vpc-vxlan-medium-redundant) and the offering is created with the RedundantRouter capability. The VPC is then born redundant from the offering — the caller MUST NOT also fire restartVPC(makeredundant=true), which would swap the offering away.
routing_mode (string)
service_provider_list (object) – ServiceProviderList carries the same multi-provider intent as EnsureOfferingRequest.ServiceProviderList — propagated so per-size variants (karios-vpc-natted-medium etc.) inherit the multi-provider Lb advertisement from their base spec.
supported_services[] (string)
vr_size_id (string)
vr_size_name (string)
zone_id (string)
- POST /network/vpcs
Create VPC
- Request JSON Object:
cidr (string)
display_text (string)
max_tiers (integer) – MaxTiers is the soft per-VPC tier limit persisted on the parent NetBox prefix as karios_max_tiers. <=0 means use the karios default (atlassdn.DefaultVPCMaxTiers). Operator-editable via NetBox UI later.
name (string)
network_domain (string)
offering_id (string)
public_mtu (integer)
redundant_vr (boolean) – RedundantVR=true makes the VPC come up with a redundant VR pair (HA). CS’s createVPC API doesn’t take a redundancy flag directly — we achieve this by calling restartVPC?makeredundant=true immediately after create. The VPC is briefly non-redundant before the restart promotes it; total time is ~30s for the second VR to deploy.
skip_start (boolean) – SkipStart=true tells the wrapper to set CS start=false on the create call so the VPC stays Inactive (no VR system VM). Default false — CS will implement the VPC eagerly per its normal create flow.
zone_id (string)
- Status Codes:
200 OK – existing reused
201 Created – newly created
- DELETE /network/vpcs/acl-lists
Delete VPC ACL list
- Request JSON Object:
acl_list_id (string)
vpc_id (string)
- POST /network/vpcs/acl-lists
Create VPC ACL list
- Request JSON Object:
description (string)
name (string)
vpc_id (string)
- PUT /network/vpcs/acl-lists
Update VPC ACL list
- Request JSON Object:
acl_list_id (string)
description (string)
name (string)
vpc_id (string)
- POST /network/vpcs/acl-lists/attach
Attach ACL list to tier
- Request JSON Object:
acl_list_id (string)
tier_network_id (string)
vpc_id (string)
- DELETE /network/vpcs/acl-lists/items
Delete ACL item
- Request JSON Object:
acl_list_id (string)
acl_rule_id (string)
vpc_id (string)
- POST /network/vpcs/acl-lists/items
Create ACL item
- Request JSON Object:
acl_list_id (string)
action (string) – allow|deny
cidr_list[] (string)
end_port (integer)
icmp_code (integer)
icmp_type (integer)
number (integer) – rule order; default = max+10
protocol (string)
reason (string)
start_port (integer)
traffic_type (string) – ingress|egress
vpc_id (string)
- PUT /network/vpcs/acl-lists/items
Update ACL item
- Request JSON Object:
acl_list_id (string)
acl_rule_id (string)
action (string)
cidr_list[] (string)
end_port (integer)
icmp_code (integer)
icmp_type (integer)
number (integer)
protocol (string)
reason (string)
start_port (integer)
traffic_type (string)
vpc_id (string)
- POST /network/vpcs/acl-lists/items/list
List ACL items
- Request JSON Object:
acl_list_id (string)
vpc_id (string)
- POST /network/vpcs/acl-lists/items/reposition
Reposition ACL item by explicit siblings, returns ordered items
- Request JSON Object:
acl_list_id (string)
acl_rule_id (string)
next_acl_rule_id (string)
previous_acl_rule_id (string)
vpc_id (string)
- POST /network/vpcs/acl-lists/items/shift-position
Shift ACL item position one step (up|down), returns ordered items
- Request JSON Object:
acl_list_id (string)
acl_rule_id (string)
direction (string) – “up” | “down”
vpc_id (string)
- POST /network/vpcs/acl-lists/list
List VPC ACL lists
- Request JSON Object:
vpc_id (string)
- POST /network/vpcs/public-ips/acquire
Acquire a public IP for a VPC (CS auto-picks from zone pool)
- Request JSON Object:
description (string) – default “vpc:<id>”
vpc_id (string) – (required)
- POST /network/vpcs/tiers
Create VPC tier
- Request JSON Object:
acl_id (string)
display_text (string)
gateway (string)
name (string)
netmask (string)
network_offering_id (string)
vlan (string) – VLAN carries the isolation tag the offering’s SpecifyVLAN=true flag requires. For VLAN-based offerings this is a VLAN tag (1-4094); for VXLAN-based offerings (future) it is a VNI. Optional only when the resolved offering has SpecifyVLAN=false.
vpc_id (string)
zone_id (string)
- DELETE /network/vpcs/{id}
Delete VPC
- Parameters:
id (string) – VPC ID
- GET /network/vpcs/{id}
Get VPC
- Parameters:
id (string) – VPC ID
- PUT /network/vpcs/{id}
Update VPC
- Parameters:
id (string) – VPC ID
- Request JSON Object:
display_text (string)
id (string)
name (string)
public_mtu (integer)
- POST /network/vpcs/{id}/bgp-peers/change
Change BGP peers for VPC (atomic bulk apply)
- Parameters:
id (string) – VPC ID
- POST /network/vpcs/{id}/private-gateways
Create VPC private gateway
- Parameters:
id (string) – VPC ID
- Request JSON Object:
acl_id (string)
gateway (string)
ip_address (string)
netmask (string)
physical_network_id (string)
source_nat_supported (boolean)
vlan (string)
vpc_id (string)
- POST /network/vpcs/{id}/private-gateways/list
List VPC private gateways
- Parameters:
id (string) – VPC ID
- DELETE /network/vpcs/{id}/private-gateways/{gw_id}
Delete VPC private gateway
- Parameters:
id (string) – VPC ID (scope only)
gw_id (string) – Private Gateway ID
- PUT /network/vpcs/{id}/restart
Restart VPC
- Parameters:
id (string) – VPC ID
- Query Parameters:
cleanup (boolean) – force VR redeploy
- POST /network/vpcs/{id}/routers/list
List VPC routers (system VMs)
- Parameters:
id (string) – VPC ID
- DELETE /network/vpcs/{id}/routers/{router_id}
Destroy VPC router (force redeploy)
- POST /network/vpcs/{id}/routers/{router_id}/reboot
Reboot VPC router
- POST /network/vpcs/{id}/routers/{router_id}/start
Start VPC router
- POST /network/vpcs/{id}/routers/{router_id}/stop
Stop VPC router
- POST /network/vpcs/{id}/routers/{router_id}/usage-history
Get VPC router usage history (CPU/Mem/Disk/Net time series)
- Parameters:
router_id (string) – Router ID
- POST /network/vpcs/{id}/static-routes
Create VPC static route
- POST /network/vpcs/{id}/static-routes/list
List VPC static routes
- Parameters:
id (string) – VPC ID
- DELETE /network/vpcs/{id}/static-routes/{route_id}
Delete VPC static route
- Parameters:
route_id (string) – route ID
- POST /network/vpcs/{id}/tiers/list
List VPC tiers
- Parameters:
id (string) – VPC ID
- DELETE /network/vpcs/{id}/tiers/{tier_id}
Delete VPC tier
- Parameters:
id (string) – VPC ID (scope only)
tier_id (string) – Tier ID
- PUT /network/vpcs/{id}/tiers/{tier_id}
Update VPC tier
- Parameters:
id (string) – VPC ID (scope only)
tier_id (string) – Tier ID
- Request JSON Object:
display_text (string)
id (string)
name (string)
network_offering_id (string)