package deploy

// TunnelStatusJSON is returned by tunnel_status on the agent.
type TunnelStatusJSON struct {
	CloudflaredRunning bool             `json:"cloudflared_running"`
	CloudflaredURL     string           `json:"cloudflared_url,omitempty"`
	CloudflaredPID     int              `json:"cloudflared_pid,omitempty"`
	WireGuardActive    bool             `json:"wireguard_active,omitempty"`
	WireGuardDetail    string           `json:"wireguard_detail,omitempty"`
	SSHForwards        []SSHForwardLive `json:"ssh_forwards"`
}

// SSHForwardLive is an active SSH local forward.
type SSHForwardLive struct {
	LocalPort  int    `json:"local_port"`
	RemoteHost string `json:"remote_host"`
	RemotePort int    `json:"remote_port"`
	SSHUser    string `json:"ssh_user,omitempty"`
	JumpHost   string `json:"jump_host,omitempty"`
	PID        int    `json:"pid"`
	Running    bool   `json:"running"`
}
