unitycatalog_client/codegen/providers/
builders.rs1#![allow(unused_mut)]
3#![allow(unused_imports)]
4#[cfg(not(target_arch = "wasm32"))]
5type BoxFut<'a, T> = ::futures::future::BoxFuture<'a, T>;
6#[cfg(target_arch = "wasm32")]
7type BoxFut<'a, T> = ::futures::future::LocalBoxFuture<'a, T>;
8#[cfg(not(target_arch = "wasm32"))]
9type BoxStr<'a, T> = ::futures::stream::BoxStream<'a, T>;
10#[cfg(target_arch = "wasm32")]
11type BoxStr<'a, T> = ::futures::stream::LocalBoxStream<'a, T>;
12use super::super::stream_paginated;
13use super::client::*;
14use crate::Result;
15use futures::{StreamExt, TryStreamExt};
16use std::future::IntoFuture;
17use unitycatalog_common::models::providers::v1::*;
18pub struct ListProvidersBuilder {
20 client: ProviderServiceClient,
21 request: ListProvidersRequest,
22}
23impl ListProvidersBuilder {
24 pub(crate) fn new(client: ProviderServiceClient) -> Self {
27 let request = ListProvidersRequest {
28 ..Default::default()
29 };
30 Self { client, request }
31 }
32 pub fn with_max_results(mut self, max_results: impl Into<Option<i32>>) -> Self {
34 self.request.max_results = max_results.into();
35 self
36 }
37 pub fn with_page_token(mut self, page_token: impl Into<Option<String>>) -> Self {
39 self.request.page_token = page_token.into();
40 self
41 }
42 pub fn into_stream(self) -> BoxStr<'static, Result<Provider>> {
44 let remaining = self.request.max_results;
45 let stream = stream_paginated(
46 (self, remaining),
47 move |(mut builder, mut remaining), page_token| async move {
48 builder.request.page_token = page_token;
49 let res = builder.client.list_providers(&builder.request).await?;
50 if let Some(ref mut rem) = remaining {
51 *rem -= res.providers.len() as i32;
52 }
53 let next_page_token = if remaining.is_some_and(|r| r <= 0) {
54 None
55 } else {
56 res.next_page_token.clone()
57 };
58 Ok((res, (builder, remaining), next_page_token))
59 },
60 )
61 .map_ok(|resp| futures::stream::iter(resp.providers.into_iter().map(Ok)))
62 .try_flatten();
63 #[cfg(not(target_arch = "wasm32"))]
64 let stream = stream.boxed();
65 #[cfg(target_arch = "wasm32")]
66 let stream = stream.boxed_local();
67 stream
68 }
69}
70impl IntoFuture for ListProvidersBuilder {
71 type Output = Result<ListProvidersResponse>;
72 type IntoFuture = BoxFut<'static, Self::Output>;
73 fn into_future(self) -> Self::IntoFuture {
74 let client = self.client;
75 let request = self.request;
76 Box::pin(async move { client.list_providers(&request).await })
77 }
78}
79pub struct CreateProviderBuilder {
81 client: ProviderServiceClient,
82 request: CreateProviderRequest,
83}
84impl CreateProviderBuilder {
85 pub(crate) fn new(
88 client: ProviderServiceClient,
89 name: impl Into<String>,
90 authentication_type: ProviderAuthenticationType,
91 ) -> Self {
92 let request = CreateProviderRequest {
93 name: name.into(),
94 authentication_type: buffa::EnumValue::Known(authentication_type),
95 ..Default::default()
96 };
97 Self { client, request }
98 }
99 pub fn with_owner(mut self, owner: impl Into<Option<String>>) -> Self {
101 self.request.owner = owner.into();
102 self
103 }
104 pub fn with_comment(mut self, comment: impl Into<Option<String>>) -> Self {
106 self.request.comment = comment.into();
107 self
108 }
109 pub fn with_recipient_profile_str(
112 mut self,
113 recipient_profile_str: impl Into<Option<String>>,
114 ) -> Self {
115 self.request.recipient_profile_str = recipient_profile_str.into();
116 self
117 }
118 pub fn with_properties<I, K, V>(mut self, properties: I) -> Self
120 where
121 I: IntoIterator<Item = (K, V)>,
122 K: Into<String>,
123 V: Into<String>,
124 {
125 self.request.properties = properties
126 .into_iter()
127 .map(|(k, v)| (k.into(), v.into()))
128 .collect();
129 self
130 }
131}
132impl IntoFuture for CreateProviderBuilder {
133 type Output = Result<Provider>;
134 type IntoFuture = BoxFut<'static, Self::Output>;
135 fn into_future(self) -> Self::IntoFuture {
136 let client = self.client;
137 let request = self.request;
138 Box::pin(async move { client.create_provider(&request).await })
139 }
140}
141pub struct GetProviderBuilder {
143 client: ProviderServiceClient,
144 request: GetProviderRequest,
145}
146impl GetProviderBuilder {
147 pub(crate) fn new(client: ProviderServiceClient, name: impl Into<String>) -> Self {
150 let request = GetProviderRequest {
151 name: name.into(),
152 ..Default::default()
153 };
154 Self { client, request }
155 }
156}
157impl IntoFuture for GetProviderBuilder {
158 type Output = Result<Provider>;
159 type IntoFuture = BoxFut<'static, Self::Output>;
160 fn into_future(self) -> Self::IntoFuture {
161 let client = self.client;
162 let request = self.request;
163 Box::pin(async move { client.get_provider(&request).await })
164 }
165}
166pub struct UpdateProviderBuilder {
168 client: ProviderServiceClient,
169 request: UpdateProviderRequest,
170}
171impl UpdateProviderBuilder {
172 pub(crate) fn new(client: ProviderServiceClient, name: impl Into<String>) -> Self {
175 let request = UpdateProviderRequest {
176 name: name.into(),
177 ..Default::default()
178 };
179 Self { client, request }
180 }
181 pub fn with_new_name(mut self, new_name: impl Into<Option<String>>) -> Self {
183 self.request.new_name = new_name.into();
184 self
185 }
186 pub fn with_owner(mut self, owner: impl Into<Option<String>>) -> Self {
188 self.request.owner = owner.into();
189 self
190 }
191 pub fn with_comment(mut self, comment: impl Into<Option<String>>) -> Self {
193 self.request.comment = comment.into();
194 self
195 }
196 pub fn with_recipient_profile_str(
199 mut self,
200 recipient_profile_str: impl Into<Option<String>>,
201 ) -> Self {
202 self.request.recipient_profile_str = recipient_profile_str.into();
203 self
204 }
205 pub fn with_properties<I, K, V>(mut self, properties: I) -> Self
210 where
211 I: IntoIterator<Item = (K, V)>,
212 K: Into<String>,
213 V: Into<String>,
214 {
215 self.request.properties = properties
216 .into_iter()
217 .map(|(k, v)| (k.into(), v.into()))
218 .collect();
219 self
220 }
221}
222impl IntoFuture for UpdateProviderBuilder {
223 type Output = Result<Provider>;
224 type IntoFuture = BoxFut<'static, Self::Output>;
225 fn into_future(self) -> Self::IntoFuture {
226 let client = self.client;
227 let request = self.request;
228 Box::pin(async move { client.update_provider(&request).await })
229 }
230}
231pub struct DeleteProviderBuilder {
233 client: ProviderServiceClient,
234 request: DeleteProviderRequest,
235}
236impl DeleteProviderBuilder {
237 pub(crate) fn new(client: ProviderServiceClient, name: impl Into<String>) -> Self {
240 let request = DeleteProviderRequest {
241 name: name.into(),
242 ..Default::default()
243 };
244 Self { client, request }
245 }
246}
247impl IntoFuture for DeleteProviderBuilder {
248 type Output = Result<()>;
249 type IntoFuture = BoxFut<'static, Self::Output>;
250 fn into_future(self) -> Self::IntoFuture {
251 let client = self.client;
252 let request = self.request;
253 Box::pin(async move { client.delete_provider(&request).await })
254 }
255}