package jump

type ConnectionMethod string

const (
	ConnectionMethodWebTerminal ConnectionMethod = "web_terminal"
	ConnectionMethodSSH         ConnectionMethod = "ssh"
	ConnectionMethodGateway     ConnectionMethod = "gateway"
)

type ConnectionSSH struct {
	Address          string `json:"address"`
	BaseAssetName    string `json:"base_asset_name"`
	JumpPodNamespace string `json:"jumppod_namespace"`
	JumpPodName      string `json:"jumppod_name"`
}

type ConnectionWebTerminal struct {
	URL string `json:"url"`
}

type ConnectionGateway struct {
	ServerURLs      map[string]string `json:"server_urls"`
	ConnectionToken string            `json:"connection_token"`
	Kubeconfig      string            `json:"kubeconfig"`
}

type Connection struct {
	WebTerminal *ConnectionWebTerminal `json:"web_terminal,omitempty"`
	SSH         *ConnectionSSH         `json:"ssh,omitempty"`
	Gateway     *ConnectionGateway     `json:"gateway,omitempty"`
}
