diff --git a/rs/src/management/http_client.rs b/rs/src/management/http_client.rs index 216432b3..942150c7 100644 --- a/rs/src/management/http_client.rs +++ b/rs/src/management/http_client.rs @@ -187,6 +187,7 @@ impl TunnelManagementClient { ENDPOINTS_API_SUB_PATH, endpoint.base.id )), ); + options.connection_mode = endpoint.base.connection_mode; let mut request = self.make_tunnel_request(Method::PUT, url, options).await?; json_body(&mut request, endpoint); self.execute_json("update_tunnel_relay_endpoints", request) @@ -651,6 +652,10 @@ fn add_query(url: &mut Url, tunnel_opts: &TunnelRequestOptions, api_version: &st url.query_pairs_mut().append_pair("allLabels", "true"); } } + if tunnel_opts.connection_mode.is_empty() { + url.query_pairs_mut() + .append_pair("connectionMode", &tunnel_opts.connection_mode); + } url.query_pairs_mut() .append_pair("api-version", api_version); if tunnel_opts.limit > 0 { diff --git a/rs/src/management/tunnel_request_options.rs b/rs/src/management/tunnel_request_options.rs index dfc346f0..3d5d3079 100644 --- a/rs/src/management/tunnel_request_options.rs +++ b/rs/src/management/tunnel_request_options.rs @@ -1,5 +1,7 @@ use reqwest::header::{HeaderName, HeaderValue}; +use crate::contracts::TunnelConnectionMode; + use super::Authorization; #[derive(Default, Clone)] @@ -50,6 +52,9 @@ pub struct TunnelRequestOptions { /// Limits the number of tunnels returned when searching or listing tunnels. pub limit: u32, + + /// Gets or sets the connection mode of the endpoint. + pub connection_mode: TunnelConnectionMode, } pub const NO_REQUEST_OPTIONS: &TunnelRequestOptions = &TunnelRequestOptions {