podman_autogen_api/apis/
exec_compat_api.rs1use std::borrow::Borrow;
12#[allow(unused_imports)]
13use std::option::Option;
14use std::pin::Pin;
15use std::sync::Arc;
16
17use futures::Future;
18use hyper;
19use hyper_util::client::legacy::connect::Connect;
20
21use super::request as __internal_request;
22use super::{configuration, Error};
23use crate::models;
24
25pub struct ExecCompatApiClient<C: Connect>
26where
27 C: Clone + std::marker::Send + Sync + 'static,
28{
29 configuration: Arc<configuration::Configuration<C>>,
30}
31
32impl<C: Connect> ExecCompatApiClient<C>
33where
34 C: Clone + std::marker::Send + Sync,
35{
36 pub fn new(configuration: Arc<configuration::Configuration<C>>) -> ExecCompatApiClient<C> {
37 ExecCompatApiClient { configuration }
38 }
39}
40
41pub trait ExecCompatApi: Send + Sync {
42 fn container_exec(
43 &self,
44 name: &str,
45 control: Option<models::ContainerExecRequest>,
46 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
47 fn exec_inspect(
48 &self,
49 id: &str,
50 ) -> Pin<Box<dyn Future<Output = Result<models::InspectExecSession, Error>> + Send>>;
51 fn exec_resize(
52 &self,
53 id: &str,
54 h: Option<i32>,
55 w: Option<i32>,
56 running: Option<bool>,
57 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
58 fn exec_start(
59 &self,
60 id: &str,
61 control: Option<models::ExecStartRequest>,
62 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
63}
64
65impl<C: Connect> ExecCompatApi for ExecCompatApiClient<C>
66where
67 C: Clone + std::marker::Send + Sync,
68{
69 #[allow(unused_mut)]
70 fn container_exec(
71 &self,
72 name: &str,
73 control: Option<models::ContainerExecRequest>,
74 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send>> {
75 let mut req = __internal_request::Request::new(
76 hyper::Method::POST,
77 "/containers/{name}/exec".to_string(),
78 );
79 req = req.with_path_param("name".to_string(), name.to_string());
80 req = req.with_body_param(control);
81 req = req.returns_nothing();
82
83 req.execute(self.configuration.borrow())
84 }
85
86 #[allow(unused_mut)]
87 fn exec_inspect(
88 &self,
89 id: &str,
90 ) -> Pin<Box<dyn Future<Output = Result<models::InspectExecSession, Error>> + Send>> {
91 let mut req =
92 __internal_request::Request::new(hyper::Method::GET, "/exec/{id}/json".to_string());
93 req = req.with_path_param("id".to_string(), id.to_string());
94
95 req.execute(self.configuration.borrow())
96 }
97
98 #[allow(unused_mut)]
99 fn exec_resize(
100 &self,
101 id: &str,
102 h: Option<i32>,
103 w: Option<i32>,
104 running: Option<bool>,
105 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send>> {
106 let mut req =
107 __internal_request::Request::new(hyper::Method::POST, "/exec/{id}/resize".to_string());
108 if let Some(ref s) = h {
109 let query_value = s.to_string();
110 req = req.with_query_param("h".to_string(), query_value);
111 }
112 if let Some(ref s) = w {
113 let query_value = s.to_string();
114 req = req.with_query_param("w".to_string(), query_value);
115 }
116 if let Some(ref s) = running {
117 let query_value = s.to_string();
118 req = req.with_query_param("running".to_string(), query_value);
119 }
120 req = req.with_path_param("id".to_string(), id.to_string());
121 req = req.returns_nothing();
122
123 req.execute(self.configuration.borrow())
124 }
125
126 #[allow(unused_mut)]
127 fn exec_start(
128 &self,
129 id: &str,
130 control: Option<models::ExecStartRequest>,
131 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send>> {
132 let mut req =
133 __internal_request::Request::new(hyper::Method::POST, "/exec/{id}/start".to_string());
134 req = req.with_path_param("id".to_string(), id.to_string());
135 req = req.with_body_param(control);
136 req = req.returns_nothing();
137
138 req.execute(self.configuration.borrow())
139 }
140}