tencent_sdk/api/
cvm.rs

1use crate::{
2    Result,
3    client::RequestOptions,
4    types::cvm::{
5        DescribeImagesRequest, DescribeImagesResponse, DescribeInstanceVncUrlRequest,
6        DescribeInstanceVncUrlResponse, DescribeInstancesRequest, DescribeInstancesResponse,
7        GenericActionResponse, ModifyInstancesProjectRequest, RebootInstancesRequest,
8        ResetInstancesPasswordRequest, RunInstancesRequest, RunInstancesResponse,
9        StartInstancesRequest, StopInstancesRequest, TerminateInstancesRequest,
10    },
11};
12
13#[cfg(feature = "async")]
14use crate::client::Client;
15
16#[cfg(feature = "async")]
17#[derive(Clone)]
18pub struct CvmService {
19    client: Client,
20}
21
22#[cfg(feature = "async")]
23impl CvmService {
24    pub(crate) fn new(client: Client) -> Self {
25        Self { client }
26    }
27
28    pub async fn describe_instances(
29        &self,
30        request: &DescribeInstancesRequest,
31    ) -> Result<DescribeInstancesResponse> {
32        self.client.execute(request, None).await
33    }
34
35    pub async fn describe_instances_with_options(
36        &self,
37        request: &DescribeInstancesRequest,
38        options: &RequestOptions,
39    ) -> Result<DescribeInstancesResponse> {
40        self.client.execute(request, Some(options)).await
41    }
42
43    pub async fn reset_instances_password(
44        &self,
45        request: &ResetInstancesPasswordRequest,
46    ) -> Result<GenericActionResponse> {
47        self.client.execute(request, None).await
48    }
49
50    pub async fn reset_instances_password_with_options(
51        &self,
52        request: &ResetInstancesPasswordRequest,
53        options: &RequestOptions,
54    ) -> Result<GenericActionResponse> {
55        self.client.execute(request, Some(options)).await
56    }
57
58    pub async fn describe_instance_vnc_url(
59        &self,
60        request: &DescribeInstanceVncUrlRequest,
61    ) -> Result<DescribeInstanceVncUrlResponse> {
62        self.client.execute(request, None).await
63    }
64
65    pub async fn describe_instance_vnc_url_with_options(
66        &self,
67        request: &DescribeInstanceVncUrlRequest,
68        options: &RequestOptions,
69    ) -> Result<DescribeInstanceVncUrlResponse> {
70        self.client.execute(request, Some(options)).await
71    }
72
73    pub async fn run_instances(
74        &self,
75        request: &RunInstancesRequest,
76    ) -> Result<RunInstancesResponse> {
77        self.client.execute(request, None).await
78    }
79
80    pub async fn run_instances_with_options(
81        &self,
82        request: &RunInstancesRequest,
83        options: &RequestOptions,
84    ) -> Result<RunInstancesResponse> {
85        self.client.execute(request, Some(options)).await
86    }
87
88    pub async fn start_instances(
89        &self,
90        request: &StartInstancesRequest,
91    ) -> Result<GenericActionResponse> {
92        self.client.execute(request, None).await
93    }
94
95    pub async fn start_instances_with_options(
96        &self,
97        request: &StartInstancesRequest,
98        options: &RequestOptions,
99    ) -> Result<GenericActionResponse> {
100        self.client.execute(request, Some(options)).await
101    }
102
103    pub async fn reboot_instances(
104        &self,
105        request: &RebootInstancesRequest,
106    ) -> Result<GenericActionResponse> {
107        self.client.execute(request, None).await
108    }
109
110    pub async fn reboot_instances_with_options(
111        &self,
112        request: &RebootInstancesRequest,
113        options: &RequestOptions,
114    ) -> Result<GenericActionResponse> {
115        self.client.execute(request, Some(options)).await
116    }
117
118    pub async fn stop_instances(
119        &self,
120        request: &StopInstancesRequest,
121    ) -> Result<GenericActionResponse> {
122        self.client.execute(request, None).await
123    }
124
125    pub async fn stop_instances_with_options(
126        &self,
127        request: &StopInstancesRequest,
128        options: &RequestOptions,
129    ) -> Result<GenericActionResponse> {
130        self.client.execute(request, Some(options)).await
131    }
132
133    pub async fn modify_instances_project(
134        &self,
135        request: &ModifyInstancesProjectRequest,
136    ) -> Result<GenericActionResponse> {
137        self.client.execute(request, None).await
138    }
139
140    pub async fn modify_instances_project_with_options(
141        &self,
142        request: &ModifyInstancesProjectRequest,
143        options: &RequestOptions,
144    ) -> Result<GenericActionResponse> {
145        self.client.execute(request, Some(options)).await
146    }
147
148    pub async fn terminate_instances(
149        &self,
150        request: &TerminateInstancesRequest,
151    ) -> Result<GenericActionResponse> {
152        self.client.execute(request, None).await
153    }
154
155    pub async fn terminate_instances_with_options(
156        &self,
157        request: &TerminateInstancesRequest,
158        options: &RequestOptions,
159    ) -> Result<GenericActionResponse> {
160        self.client.execute(request, Some(options)).await
161    }
162
163    pub async fn describe_images(
164        &self,
165        request: &DescribeImagesRequest,
166    ) -> Result<DescribeImagesResponse> {
167        self.client.execute(request, None).await
168    }
169
170    pub async fn describe_images_with_options(
171        &self,
172        request: &DescribeImagesRequest,
173        options: &RequestOptions,
174    ) -> Result<DescribeImagesResponse> {
175        self.client.execute(request, Some(options)).await
176    }
177}
178
179#[cfg(feature = "blocking")]
180use crate::client::BlockingClient;
181
182#[cfg(feature = "blocking")]
183#[derive(Clone)]
184pub struct BlockingCvmService {
185    client: BlockingClient,
186}
187
188#[cfg(feature = "blocking")]
189impl BlockingCvmService {
190    pub(crate) fn new(client: BlockingClient) -> Self {
191        Self { client }
192    }
193
194    pub fn describe_instances(
195        &self,
196        request: &DescribeInstancesRequest,
197    ) -> Result<DescribeInstancesResponse> {
198        self.client.execute(request, None)
199    }
200
201    pub fn describe_instances_with_options(
202        &self,
203        request: &DescribeInstancesRequest,
204        options: &RequestOptions,
205    ) -> Result<DescribeInstancesResponse> {
206        self.client.execute(request, Some(options))
207    }
208
209    pub fn reset_instances_password(
210        &self,
211        request: &ResetInstancesPasswordRequest,
212    ) -> Result<GenericActionResponse> {
213        self.client.execute(request, None)
214    }
215
216    pub fn reset_instances_password_with_options(
217        &self,
218        request: &ResetInstancesPasswordRequest,
219        options: &RequestOptions,
220    ) -> Result<GenericActionResponse> {
221        self.client.execute(request, Some(options))
222    }
223
224    pub fn describe_instance_vnc_url(
225        &self,
226        request: &DescribeInstanceVncUrlRequest,
227    ) -> Result<DescribeInstanceVncUrlResponse> {
228        self.client.execute(request, None)
229    }
230
231    pub fn describe_instance_vnc_url_with_options(
232        &self,
233        request: &DescribeInstanceVncUrlRequest,
234        options: &RequestOptions,
235    ) -> Result<DescribeInstanceVncUrlResponse> {
236        self.client.execute(request, Some(options))
237    }
238
239    pub fn run_instances(&self, request: &RunInstancesRequest) -> Result<RunInstancesResponse> {
240        self.client.execute(request, None)
241    }
242
243    pub fn run_instances_with_options(
244        &self,
245        request: &RunInstancesRequest,
246        options: &RequestOptions,
247    ) -> Result<RunInstancesResponse> {
248        self.client.execute(request, Some(options))
249    }
250
251    pub fn start_instances(
252        &self,
253        request: &StartInstancesRequest,
254    ) -> Result<GenericActionResponse> {
255        self.client.execute(request, None)
256    }
257
258    pub fn start_instances_with_options(
259        &self,
260        request: &StartInstancesRequest,
261        options: &RequestOptions,
262    ) -> Result<GenericActionResponse> {
263        self.client.execute(request, Some(options))
264    }
265
266    pub fn reboot_instances(
267        &self,
268        request: &RebootInstancesRequest,
269    ) -> Result<GenericActionResponse> {
270        self.client.execute(request, None)
271    }
272
273    pub fn reboot_instances_with_options(
274        &self,
275        request: &RebootInstancesRequest,
276        options: &RequestOptions,
277    ) -> Result<GenericActionResponse> {
278        self.client.execute(request, Some(options))
279    }
280
281    pub fn stop_instances(&self, request: &StopInstancesRequest) -> Result<GenericActionResponse> {
282        self.client.execute(request, None)
283    }
284
285    pub fn stop_instances_with_options(
286        &self,
287        request: &StopInstancesRequest,
288        options: &RequestOptions,
289    ) -> Result<GenericActionResponse> {
290        self.client.execute(request, Some(options))
291    }
292
293    pub fn modify_instances_project(
294        &self,
295        request: &ModifyInstancesProjectRequest,
296    ) -> Result<GenericActionResponse> {
297        self.client.execute(request, None)
298    }
299
300    pub fn modify_instances_project_with_options(
301        &self,
302        request: &ModifyInstancesProjectRequest,
303        options: &RequestOptions,
304    ) -> Result<GenericActionResponse> {
305        self.client.execute(request, Some(options))
306    }
307
308    pub fn terminate_instances(
309        &self,
310        request: &TerminateInstancesRequest,
311    ) -> Result<GenericActionResponse> {
312        self.client.execute(request, None)
313    }
314
315    pub fn terminate_instances_with_options(
316        &self,
317        request: &TerminateInstancesRequest,
318        options: &RequestOptions,
319    ) -> Result<GenericActionResponse> {
320        self.client.execute(request, Some(options))
321    }
322
323    pub fn describe_images(
324        &self,
325        request: &DescribeImagesRequest,
326    ) -> Result<DescribeImagesResponse> {
327        self.client.execute(request, None)
328    }
329
330    pub fn describe_images_with_options(
331        &self,
332        request: &DescribeImagesRequest,
333        options: &RequestOptions,
334    ) -> Result<DescribeImagesResponse> {
335        self.client.execute(request, Some(options))
336    }
337}