bssh 2.1.2

Parallel SSH command execution tool for cluster management
Documentation
// Copyright 2025 Lablup Inc. and Jeongkyu Shin
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

use crate::ssh::known_hosts::StrictHostKeyChecking;
use crate::ssh::tokio_client::SshConnectionConfig;
use std::path::Path;

/// Configuration for SSH connection and command execution
#[derive(Clone)]
pub struct ConnectionConfig<'a> {
    pub key_path: Option<&'a Path>,
    pub strict_mode: Option<StrictHostKeyChecking>,
    pub use_agent: bool,
    pub use_password: bool,
    #[cfg(target_os = "macos")]
    pub use_keychain: bool,
    pub timeout_seconds: Option<u64>,
    pub connect_timeout_seconds: Option<u64>,
    pub jump_hosts_spec: Option<&'a str>,
    /// SSH keepalive / inactivity settings. `None` falls back to defaults.
    pub ssh_connection_config: Option<&'a SshConnectionConfig>,
}