Overview
The CLI has no scm set/show/delete/backup/load network ipsec-tunnel commands despite the SDK (scm.config.network.ipsec_tunnel, scm.models.network.ipsec_tunnel) fully supporting IPsec tunnel CRUD. This blocks the service connection workflow — scm set sase service-connection --ipsec-tunnel <name> requires a valid tunnel reference, but users can't create one through the CLI.
Context
- SDK module:
scm.config.network.ipsec_tunnel (class IPsecTunnel)
- SDK model:
scm.models.network.ipsec_tunnel (IPsecTunnelCreateModel)
- The CLI already has IKE gateway (
ike-gateway) and IPsec crypto profile (ipsec-crypto-profile) commands in network.py
- IPsec tunnels reference IKE gateways + IPsec crypto profiles via
auto_key config
- Discovered while attempting to create a service connection end-to-end via CLI
Impact
Service connection creation is broken without this. Users must drop to raw Python SDK calls to create IPsec tunnels before they can use scm set sase service-connection.
Scope
- In scope: Full CRUD commands: set, show, delete, backup, load for
ipsec-tunnel in network.py
- In scope: SDK client methods in
sdk_client.py
- In scope: Validator model in
validators.py
- In scope: Documentation page at
docs/cli/network/ipsec-tunnel.md
- Out of scope: Changes to service connection commands
Acceptance Criteria
Implementation Plan
- Add
IPsecTunnel validator model to validators.py based on SDK schema
- Add CRUD methods to
sdk_client.py (create_ipsec_tunnel, get_ipsec_tunnel, list_ipsec_tunnels, delete_ipsec_tunnel)
- Add commands to
network.py following existing ike-gateway patterns
- Register in
main.py
- Add tests
- Add docs page
Overview
The CLI has no
scm set/show/delete/backup/load network ipsec-tunnelcommands despite the SDK (scm.config.network.ipsec_tunnel,scm.models.network.ipsec_tunnel) fully supporting IPsec tunnel CRUD. This blocks the service connection workflow —scm set sase service-connection --ipsec-tunnel <name>requires a valid tunnel reference, but users can't create one through the CLI.Context
scm.config.network.ipsec_tunnel(classIPsecTunnel)scm.models.network.ipsec_tunnel(IPsecTunnelCreateModel)ike-gateway) and IPsec crypto profile (ipsec-crypto-profile) commands innetwork.pyauto_keyconfigImpact
Service connection creation is broken without this. Users must drop to raw Python SDK calls to create IPsec tunnels before they can use
scm set sase service-connection.Scope
ipsec-tunnelinnetwork.pysdk_client.pyvalidators.pydocs/cli/network/ipsec-tunnel.mdAcceptance Criteria
scm set network ipsec-tunnelcreates/updates tunnels with auto_key (IKE gateway ref + IPsec crypto profile)scm show network ipsec-tunnellists/shows tunnel configsscm delete network ipsec-tunneldeletes tunnelsscm backup network ipsec-tunnelexports to YAMLscm load network ipsec-tunnelimports from YAMLImplementation Plan
IPsecTunnelvalidator model tovalidators.pybased on SDK schemasdk_client.py(create_ipsec_tunnel,get_ipsec_tunnel,list_ipsec_tunnels,delete_ipsec_tunnel)network.pyfollowing existingike-gatewaypatternsmain.py