unitycatalog_client/codegen/model_versions/
builders.rs1#![allow(unused_mut)]
3#![allow(unused_imports)]
4type BoxFut<'a, T> = ::futures::future::BoxFuture<'a, T>;
5type BoxStr<'a, T> = ::futures::stream::BoxStream<'a, T>;
6use super::super::stream_paginated;
7use super::client::*;
8use crate::Result;
9use futures::{StreamExt, TryStreamExt};
10use std::future::IntoFuture;
11use unitycatalog_common::models::model_versions::v1::*;
12pub struct ListModelVersionsBuilder {
14 client: ModelVersionServiceClient,
15 request: ListModelVersionsRequest,
16}
17impl ListModelVersionsBuilder {
18 pub(crate) fn new(client: ModelVersionServiceClient, full_name: impl Into<String>) -> Self {
21 let request = ListModelVersionsRequest {
22 full_name: full_name.into(),
23 ..Default::default()
24 };
25 Self { client, request }
26 }
27 pub fn with_max_results(mut self, max_results: impl Into<Option<i32>>) -> Self {
29 self.request.max_results = max_results.into();
30 self
31 }
32 pub fn with_page_token(mut self, page_token: impl Into<Option<String>>) -> Self {
34 self.request.page_token = page_token.into();
35 self
36 }
37 pub fn with_include_browse(mut self, include_browse: impl Into<Option<bool>>) -> Self {
40 self.request.include_browse = include_browse.into();
41 self
42 }
43 pub fn into_stream(self) -> BoxStr<'static, Result<ModelVersion>> {
45 let remaining = self.request.max_results;
46 let stream = stream_paginated(
47 (self, remaining),
48 move |(mut builder, mut remaining), page_token| async move {
49 builder.request.page_token = page_token;
50 let res = builder.client.list_model_versions(&builder.request).await?;
51 if let Some(ref mut rem) = remaining {
52 *rem -= res.model_versions.len() as i32;
53 }
54 let next_page_token = if remaining.is_some_and(|r| r <= 0) {
55 None
56 } else {
57 res.next_page_token.clone()
58 };
59 Ok((res, (builder, remaining), next_page_token))
60 },
61 )
62 .map_ok(|resp| futures::stream::iter(resp.model_versions.into_iter().map(Ok)))
63 .try_flatten();
64 stream.boxed()
65 }
66}
67impl IntoFuture for ListModelVersionsBuilder {
68 type Output = Result<ListModelVersionsResponse>;
69 type IntoFuture = BoxFut<'static, Self::Output>;
70 fn into_future(self) -> Self::IntoFuture {
71 let client = self.client;
72 let request = self.request;
73 Box::pin(async move { client.list_model_versions(&request).await })
74 }
75}
76pub struct CreateModelVersionBuilder {
78 client: ModelVersionServiceClient,
79 request: CreateModelVersionRequest,
80}
81impl CreateModelVersionBuilder {
82 pub(crate) fn new(
85 client: ModelVersionServiceClient,
86 model_name: impl Into<String>,
87 catalog_name: impl Into<String>,
88 schema_name: impl Into<String>,
89 source: impl Into<String>,
90 ) -> Self {
91 let request = CreateModelVersionRequest {
92 model_name: model_name.into(),
93 catalog_name: catalog_name.into(),
94 schema_name: schema_name.into(),
95 source: source.into(),
96 ..Default::default()
97 };
98 Self { client, request }
99 }
100 pub fn with_run_id(mut self, run_id: impl Into<Option<String>>) -> Self {
102 self.request.run_id = run_id.into();
103 self
104 }
105 pub fn with_comment(mut self, comment: impl Into<Option<String>>) -> Self {
107 self.request.comment = comment.into();
108 self
109 }
110}
111impl IntoFuture for CreateModelVersionBuilder {
112 type Output = Result<ModelVersion>;
113 type IntoFuture = BoxFut<'static, Self::Output>;
114 fn into_future(self) -> Self::IntoFuture {
115 let client = self.client;
116 let request = self.request;
117 Box::pin(async move { client.create_model_version(&request).await })
118 }
119}
120pub struct GetModelVersionBuilder {
122 client: ModelVersionServiceClient,
123 request: GetModelVersionRequest,
124}
125impl GetModelVersionBuilder {
126 pub(crate) fn new(
129 client: ModelVersionServiceClient,
130 full_name: impl Into<String>,
131 version: i64,
132 ) -> Self {
133 let request = GetModelVersionRequest {
134 full_name: full_name.into(),
135 version,
136 ..Default::default()
137 };
138 Self { client, request }
139 }
140 pub fn with_include_browse(mut self, include_browse: impl Into<Option<bool>>) -> Self {
143 self.request.include_browse = include_browse.into();
144 self
145 }
146}
147impl IntoFuture for GetModelVersionBuilder {
148 type Output = Result<ModelVersion>;
149 type IntoFuture = BoxFut<'static, Self::Output>;
150 fn into_future(self) -> Self::IntoFuture {
151 let client = self.client;
152 let request = self.request;
153 Box::pin(async move { client.get_model_version(&request).await })
154 }
155}
156pub struct UpdateModelVersionBuilder {
158 client: ModelVersionServiceClient,
159 request: UpdateModelVersionRequest,
160}
161impl UpdateModelVersionBuilder {
162 pub(crate) fn new(
165 client: ModelVersionServiceClient,
166 full_name: impl Into<String>,
167 version: i64,
168 ) -> Self {
169 let request = UpdateModelVersionRequest {
170 full_name: full_name.into(),
171 version,
172 ..Default::default()
173 };
174 Self { client, request }
175 }
176 pub fn with_comment(mut self, comment: impl Into<Option<String>>) -> Self {
178 self.request.comment = comment.into();
179 self
180 }
181}
182impl IntoFuture for UpdateModelVersionBuilder {
183 type Output = Result<ModelVersion>;
184 type IntoFuture = BoxFut<'static, Self::Output>;
185 fn into_future(self) -> Self::IntoFuture {
186 let client = self.client;
187 let request = self.request;
188 Box::pin(async move { client.update_model_version(&request).await })
189 }
190}
191pub struct DeleteModelVersionBuilder {
193 client: ModelVersionServiceClient,
194 request: DeleteModelVersionRequest,
195}
196impl DeleteModelVersionBuilder {
197 pub(crate) fn new(
200 client: ModelVersionServiceClient,
201 full_name: impl Into<String>,
202 version: i64,
203 ) -> Self {
204 let request = DeleteModelVersionRequest {
205 full_name: full_name.into(),
206 version,
207 ..Default::default()
208 };
209 Self { client, request }
210 }
211}
212impl IntoFuture for DeleteModelVersionBuilder {
213 type Output = Result<()>;
214 type IntoFuture = BoxFut<'static, Self::Output>;
215 fn into_future(self) -> Self::IntoFuture {
216 let client = self.client;
217 let request = self.request;
218 Box::pin(async move { client.delete_model_version(&request).await })
219 }
220}
221pub struct FinalizeModelVersionBuilder {
223 client: ModelVersionServiceClient,
224 request: FinalizeModelVersionRequest,
225}
226impl FinalizeModelVersionBuilder {
227 pub(crate) fn new(
230 client: ModelVersionServiceClient,
231 full_name: impl Into<String>,
232 version: i64,
233 ) -> Self {
234 let request = FinalizeModelVersionRequest {
235 full_name: full_name.into(),
236 version,
237 ..Default::default()
238 };
239 Self { client, request }
240 }
241}
242impl IntoFuture for FinalizeModelVersionBuilder {
243 type Output = Result<ModelVersion>;
244 type IntoFuture = BoxFut<'static, Self::Output>;
245 fn into_future(self) -> Self::IntoFuture {
246 let client = self.client;
247 let request = self.request;
248 Box::pin(async move { client.finalize_model_version(&request).await })
249 }
250}