Cushy cloud-connections API: list and create accounts (AWS, GCP, Azure, Alibaba), verify health, disconnect/purge/reconnect, sync, read synced inventory, reachability analysis, cross-cloud connections, provisioning opt-in and per-resource metrics endpoints.
Connect and read cloud accounts. Reads are open to any member; mutations require manage_cloud_accounts (SRE · Cloud Admin or Org Admin). Cross-org ids return 404.
GET/api/cloud/accountsSession or Bearer
List your org's cloud accounts with status, health detail and per-type sync runs. Never includes the encrypted connection payload.
limit out of 1–200, a negative cursor, or a non-positive-integer accountId.
401
Not signed in / invalid token.
POST/api/cloud/reachabilitySession
Network reachability / path analysis (NET), provider-aware across all four clouds. Given a source and destination IP, returns whether traffic is reachable and the ordered per-layer hop list (on AWS: security-group egress → NACL egress → route → gateway → NACL ingress → security-group ingress + the stateless return path; Azure NSGs / GCP VPC firewalls / Alibaba security groups use their own layers and defaults), naming the blocking layer.
Parameters
Name
In
Required
Description
sourceIp
body
yes
Source IPv4 address.
destIp
body
yes
Destination IPv4 address.
protocol
body
no
tcp | udp | icmp | all (default tcp).
port
body
no
0–65535 (default 443).
sourceComponentId
body
no
A resource nativeId to disambiguate the source.
destComponentId
body
no
A resource nativeId to disambiguate the destination.
Enable or disable REAL Terraform provisioning for this account (default OFF). Enabling requires an explicit acknowledgement — it authorizes real, billable resource creation with short-lived write credentials. Audited cloud.provisioning_enabled/disabled.
List your org's cross-cloud / peering connections (site-to-site VPN across any of the six cloud pairs, or same-provider peering drawn on the topology map). The pre-shared key is never returned — the DTO carries secretSet only.
Create a connection between two healthy accounts (different providers ⇒ s2s_vpn; same provider ⇒ peering) and kick auto-provisioning through the Terraform engine. Also accepts the topology editor's draw payload (aNativeId/bNativeId endpoints + direction + rules + emitEgress). DELETE /api/cloud/connections/{id} soft-deletes.
Parameters
Name
In
Required
Description
aAccountId / bAccountId
body
no
The two account ids (classic path).
aNativeId / bNativeId
body
no
Two network/subnet native ids (draw-a-connector path).
connType
body
no
s2s_vpn | peering | interconnect (interconnect is tracked model-only, never auto-provisioned).
direction / rules / emitEgress
body
no
Connector direction, allow rules and egress emission (topology editor).
Per-resource metrics endpoint: GET returns the resolved non-secret config + per-provider collector install instructions; PUT saves { baseUrl, token?, labelFilter? } (https-only; the bearer token is encrypted and never echoed); DELETE removes it. The endpoint is keyed to the synced resource's native id — the collector agent lives on that resource.
Cushy's trust anchors for onboarding (the platform AWS account id and OIDC/WIF issuer your cloud-side role or federation must trust). Managers view them so the connect instructions render real values; they are managed by Cushy.
Disconnect vs delete.DELETE /api/cloud/accounts/{id} is a SOFT disconnect (rows retained, marked account_disconnected); DELETE /api/cloud/accounts/{id}?purge=1 is the explicit hard delete of an already-disconnected account — it removes the account row and all its synced data, and answers 409 for a live account or one that still has Terraform workspaces or a live connection. A disconnected account can also be reconnected: a healthy POST …/validate flips it back to active and kicks a fresh sync.