1use crate::{
8 AwsHttpClient, Result,
9 ops::eks::EksOps,
10 types::eks::{
11 DescribeClusterResponse, DescribeNodegroupResponse, ListNodegroupsResponse,
12 UpdateNodegroupConfigRequest, UpdateNodegroupConfigResponse,
13 },
14};
15
16pub struct EksClient<'a> {
18 ops: EksOps<'a>,
19}
20
21impl<'a> EksClient<'a> {
22 pub(crate) fn new(client: &'a AwsHttpClient) -> Self {
24 Self {
25 ops: EksOps::new(client),
26 }
27 }
28
29 pub async fn describe_cluster(&self, name: &str) -> Result<DescribeClusterResponse> {
31 self.ops.describe_cluster(name).await
32 }
33
34 pub async fn list_nodegroups(
36 &self,
37 name: &str,
38 max_results: &str,
39 next_token: &str,
40 ) -> Result<ListNodegroupsResponse> {
41 self.ops
42 .list_nodegroups(name, max_results, next_token)
43 .await
44 }
45
46 pub async fn describe_nodegroup(
48 &self,
49 name: &str,
50 nodegroup_name: &str,
51 ) -> Result<DescribeNodegroupResponse> {
52 self.ops.describe_nodegroup(name, nodegroup_name).await
53 }
54
55 pub async fn update_nodegroup_config(
57 &self,
58 name: &str,
59 nodegroup_name: &str,
60 body: &UpdateNodegroupConfigRequest,
61 ) -> Result<UpdateNodegroupConfigResponse> {
62 self.ops
63 .update_nodegroup_config(name, nodegroup_name, body)
64 .await
65 }
66}