1#![allow(clippy::needless_lifetimes)]
2
3use crate::core::cli_session::DaggerSessionProc;
4use crate::core::graphql_client::DynGraphQLClient;
5use crate::errors::DaggerError;
6use crate::id::IntoID;
7use crate::querybuilder::Selection;
8use derive_builder::Builder;
9use serde::{Deserialize, Serialize};
10use std::sync::Arc;
11
12#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
13pub struct BindingId(pub String);
14impl From<&str> for BindingId {
15 fn from(value: &str) -> Self {
16 Self(value.to_string())
17 }
18}
19impl From<String> for BindingId {
20 fn from(value: String) -> Self {
21 Self(value)
22 }
23}
24impl IntoID<BindingId> for Binding {
25 fn into_id(
26 self,
27 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<BindingId, DaggerError>> + Send>>
28 {
29 Box::pin(async move { self.id().await })
30 }
31}
32impl IntoID<BindingId> for BindingId {
33 fn into_id(
34 self,
35 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<BindingId, DaggerError>> + Send>>
36 {
37 Box::pin(async move { Ok::<BindingId, DaggerError>(self) })
38 }
39}
40impl BindingId {
41 fn quote(&self) -> String {
42 format!("\"{}\"", self.0.clone())
43 }
44}
45#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
46pub struct CacheVolumeId(pub String);
47impl From<&str> for CacheVolumeId {
48 fn from(value: &str) -> Self {
49 Self(value.to_string())
50 }
51}
52impl From<String> for CacheVolumeId {
53 fn from(value: String) -> Self {
54 Self(value)
55 }
56}
57impl IntoID<CacheVolumeId> for CacheVolume {
58 fn into_id(
59 self,
60 ) -> std::pin::Pin<
61 Box<dyn core::future::Future<Output = Result<CacheVolumeId, DaggerError>> + Send>,
62 > {
63 Box::pin(async move { self.id().await })
64 }
65}
66impl IntoID<CacheVolumeId> for CacheVolumeId {
67 fn into_id(
68 self,
69 ) -> std::pin::Pin<
70 Box<dyn core::future::Future<Output = Result<CacheVolumeId, DaggerError>> + Send>,
71 > {
72 Box::pin(async move { Ok::<CacheVolumeId, DaggerError>(self) })
73 }
74}
75impl CacheVolumeId {
76 fn quote(&self) -> String {
77 format!("\"{}\"", self.0.clone())
78 }
79}
80#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
81pub struct CloudId(pub String);
82impl From<&str> for CloudId {
83 fn from(value: &str) -> Self {
84 Self(value.to_string())
85 }
86}
87impl From<String> for CloudId {
88 fn from(value: String) -> Self {
89 Self(value)
90 }
91}
92impl IntoID<CloudId> for Cloud {
93 fn into_id(
94 self,
95 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<CloudId, DaggerError>> + Send>>
96 {
97 Box::pin(async move { self.id().await })
98 }
99}
100impl IntoID<CloudId> for CloudId {
101 fn into_id(
102 self,
103 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<CloudId, DaggerError>> + Send>>
104 {
105 Box::pin(async move { Ok::<CloudId, DaggerError>(self) })
106 }
107}
108impl CloudId {
109 fn quote(&self) -> String {
110 format!("\"{}\"", self.0.clone())
111 }
112}
113#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
114pub struct ContainerId(pub String);
115impl From<&str> for ContainerId {
116 fn from(value: &str) -> Self {
117 Self(value.to_string())
118 }
119}
120impl From<String> for ContainerId {
121 fn from(value: String) -> Self {
122 Self(value)
123 }
124}
125impl IntoID<ContainerId> for Container {
126 fn into_id(
127 self,
128 ) -> std::pin::Pin<
129 Box<dyn core::future::Future<Output = Result<ContainerId, DaggerError>> + Send>,
130 > {
131 Box::pin(async move { self.id().await })
132 }
133}
134impl IntoID<ContainerId> for ContainerId {
135 fn into_id(
136 self,
137 ) -> std::pin::Pin<
138 Box<dyn core::future::Future<Output = Result<ContainerId, DaggerError>> + Send>,
139 > {
140 Box::pin(async move { Ok::<ContainerId, DaggerError>(self) })
141 }
142}
143impl ContainerId {
144 fn quote(&self) -> String {
145 format!("\"{}\"", self.0.clone())
146 }
147}
148#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
149pub struct CurrentModuleId(pub String);
150impl From<&str> for CurrentModuleId {
151 fn from(value: &str) -> Self {
152 Self(value.to_string())
153 }
154}
155impl From<String> for CurrentModuleId {
156 fn from(value: String) -> Self {
157 Self(value)
158 }
159}
160impl IntoID<CurrentModuleId> for CurrentModule {
161 fn into_id(
162 self,
163 ) -> std::pin::Pin<
164 Box<dyn core::future::Future<Output = Result<CurrentModuleId, DaggerError>> + Send>,
165 > {
166 Box::pin(async move { self.id().await })
167 }
168}
169impl IntoID<CurrentModuleId> for CurrentModuleId {
170 fn into_id(
171 self,
172 ) -> std::pin::Pin<
173 Box<dyn core::future::Future<Output = Result<CurrentModuleId, DaggerError>> + Send>,
174 > {
175 Box::pin(async move { Ok::<CurrentModuleId, DaggerError>(self) })
176 }
177}
178impl CurrentModuleId {
179 fn quote(&self) -> String {
180 format!("\"{}\"", self.0.clone())
181 }
182}
183#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
184pub struct DirectoryId(pub String);
185impl From<&str> for DirectoryId {
186 fn from(value: &str) -> Self {
187 Self(value.to_string())
188 }
189}
190impl From<String> for DirectoryId {
191 fn from(value: String) -> Self {
192 Self(value)
193 }
194}
195impl IntoID<DirectoryId> for Directory {
196 fn into_id(
197 self,
198 ) -> std::pin::Pin<
199 Box<dyn core::future::Future<Output = Result<DirectoryId, DaggerError>> + Send>,
200 > {
201 Box::pin(async move { self.id().await })
202 }
203}
204impl IntoID<DirectoryId> for DirectoryId {
205 fn into_id(
206 self,
207 ) -> std::pin::Pin<
208 Box<dyn core::future::Future<Output = Result<DirectoryId, DaggerError>> + Send>,
209 > {
210 Box::pin(async move { Ok::<DirectoryId, DaggerError>(self) })
211 }
212}
213impl DirectoryId {
214 fn quote(&self) -> String {
215 format!("\"{}\"", self.0.clone())
216 }
217}
218#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
219pub struct EngineCacheEntryId(pub String);
220impl From<&str> for EngineCacheEntryId {
221 fn from(value: &str) -> Self {
222 Self(value.to_string())
223 }
224}
225impl From<String> for EngineCacheEntryId {
226 fn from(value: String) -> Self {
227 Self(value)
228 }
229}
230impl IntoID<EngineCacheEntryId> for EngineCacheEntry {
231 fn into_id(
232 self,
233 ) -> std::pin::Pin<
234 Box<dyn core::future::Future<Output = Result<EngineCacheEntryId, DaggerError>> + Send>,
235 > {
236 Box::pin(async move { self.id().await })
237 }
238}
239impl IntoID<EngineCacheEntryId> for EngineCacheEntryId {
240 fn into_id(
241 self,
242 ) -> std::pin::Pin<
243 Box<dyn core::future::Future<Output = Result<EngineCacheEntryId, DaggerError>> + Send>,
244 > {
245 Box::pin(async move { Ok::<EngineCacheEntryId, DaggerError>(self) })
246 }
247}
248impl EngineCacheEntryId {
249 fn quote(&self) -> String {
250 format!("\"{}\"", self.0.clone())
251 }
252}
253#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
254pub struct EngineCacheEntrySetId(pub String);
255impl From<&str> for EngineCacheEntrySetId {
256 fn from(value: &str) -> Self {
257 Self(value.to_string())
258 }
259}
260impl From<String> for EngineCacheEntrySetId {
261 fn from(value: String) -> Self {
262 Self(value)
263 }
264}
265impl IntoID<EngineCacheEntrySetId> for EngineCacheEntrySet {
266 fn into_id(
267 self,
268 ) -> std::pin::Pin<
269 Box<dyn core::future::Future<Output = Result<EngineCacheEntrySetId, DaggerError>> + Send>,
270 > {
271 Box::pin(async move { self.id().await })
272 }
273}
274impl IntoID<EngineCacheEntrySetId> for EngineCacheEntrySetId {
275 fn into_id(
276 self,
277 ) -> std::pin::Pin<
278 Box<dyn core::future::Future<Output = Result<EngineCacheEntrySetId, DaggerError>> + Send>,
279 > {
280 Box::pin(async move { Ok::<EngineCacheEntrySetId, DaggerError>(self) })
281 }
282}
283impl EngineCacheEntrySetId {
284 fn quote(&self) -> String {
285 format!("\"{}\"", self.0.clone())
286 }
287}
288#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
289pub struct EngineCacheId(pub String);
290impl From<&str> for EngineCacheId {
291 fn from(value: &str) -> Self {
292 Self(value.to_string())
293 }
294}
295impl From<String> for EngineCacheId {
296 fn from(value: String) -> Self {
297 Self(value)
298 }
299}
300impl IntoID<EngineCacheId> for EngineCache {
301 fn into_id(
302 self,
303 ) -> std::pin::Pin<
304 Box<dyn core::future::Future<Output = Result<EngineCacheId, DaggerError>> + Send>,
305 > {
306 Box::pin(async move { self.id().await })
307 }
308}
309impl IntoID<EngineCacheId> for EngineCacheId {
310 fn into_id(
311 self,
312 ) -> std::pin::Pin<
313 Box<dyn core::future::Future<Output = Result<EngineCacheId, DaggerError>> + Send>,
314 > {
315 Box::pin(async move { Ok::<EngineCacheId, DaggerError>(self) })
316 }
317}
318impl EngineCacheId {
319 fn quote(&self) -> String {
320 format!("\"{}\"", self.0.clone())
321 }
322}
323#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
324pub struct EngineId(pub String);
325impl From<&str> for EngineId {
326 fn from(value: &str) -> Self {
327 Self(value.to_string())
328 }
329}
330impl From<String> for EngineId {
331 fn from(value: String) -> Self {
332 Self(value)
333 }
334}
335impl IntoID<EngineId> for Engine {
336 fn into_id(
337 self,
338 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EngineId, DaggerError>> + Send>>
339 {
340 Box::pin(async move { self.id().await })
341 }
342}
343impl IntoID<EngineId> for EngineId {
344 fn into_id(
345 self,
346 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EngineId, DaggerError>> + Send>>
347 {
348 Box::pin(async move { Ok::<EngineId, DaggerError>(self) })
349 }
350}
351impl EngineId {
352 fn quote(&self) -> String {
353 format!("\"{}\"", self.0.clone())
354 }
355}
356#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
357pub struct EnumTypeDefId(pub String);
358impl From<&str> for EnumTypeDefId {
359 fn from(value: &str) -> Self {
360 Self(value.to_string())
361 }
362}
363impl From<String> for EnumTypeDefId {
364 fn from(value: String) -> Self {
365 Self(value)
366 }
367}
368impl IntoID<EnumTypeDefId> for EnumTypeDef {
369 fn into_id(
370 self,
371 ) -> std::pin::Pin<
372 Box<dyn core::future::Future<Output = Result<EnumTypeDefId, DaggerError>> + Send>,
373 > {
374 Box::pin(async move { self.id().await })
375 }
376}
377impl IntoID<EnumTypeDefId> for EnumTypeDefId {
378 fn into_id(
379 self,
380 ) -> std::pin::Pin<
381 Box<dyn core::future::Future<Output = Result<EnumTypeDefId, DaggerError>> + Send>,
382 > {
383 Box::pin(async move { Ok::<EnumTypeDefId, DaggerError>(self) })
384 }
385}
386impl EnumTypeDefId {
387 fn quote(&self) -> String {
388 format!("\"{}\"", self.0.clone())
389 }
390}
391#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
392pub struct EnumValueTypeDefId(pub String);
393impl From<&str> for EnumValueTypeDefId {
394 fn from(value: &str) -> Self {
395 Self(value.to_string())
396 }
397}
398impl From<String> for EnumValueTypeDefId {
399 fn from(value: String) -> Self {
400 Self(value)
401 }
402}
403impl IntoID<EnumValueTypeDefId> for EnumValueTypeDef {
404 fn into_id(
405 self,
406 ) -> std::pin::Pin<
407 Box<dyn core::future::Future<Output = Result<EnumValueTypeDefId, DaggerError>> + Send>,
408 > {
409 Box::pin(async move { self.id().await })
410 }
411}
412impl IntoID<EnumValueTypeDefId> for EnumValueTypeDefId {
413 fn into_id(
414 self,
415 ) -> std::pin::Pin<
416 Box<dyn core::future::Future<Output = Result<EnumValueTypeDefId, DaggerError>> + Send>,
417 > {
418 Box::pin(async move { Ok::<EnumValueTypeDefId, DaggerError>(self) })
419 }
420}
421impl EnumValueTypeDefId {
422 fn quote(&self) -> String {
423 format!("\"{}\"", self.0.clone())
424 }
425}
426#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
427pub struct EnvId(pub String);
428impl From<&str> for EnvId {
429 fn from(value: &str) -> Self {
430 Self(value.to_string())
431 }
432}
433impl From<String> for EnvId {
434 fn from(value: String) -> Self {
435 Self(value)
436 }
437}
438impl IntoID<EnvId> for Env {
439 fn into_id(
440 self,
441 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EnvId, DaggerError>> + Send>>
442 {
443 Box::pin(async move { self.id().await })
444 }
445}
446impl IntoID<EnvId> for EnvId {
447 fn into_id(
448 self,
449 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EnvId, DaggerError>> + Send>>
450 {
451 Box::pin(async move { Ok::<EnvId, DaggerError>(self) })
452 }
453}
454impl EnvId {
455 fn quote(&self) -> String {
456 format!("\"{}\"", self.0.clone())
457 }
458}
459#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
460pub struct EnvVariableId(pub String);
461impl From<&str> for EnvVariableId {
462 fn from(value: &str) -> Self {
463 Self(value.to_string())
464 }
465}
466impl From<String> for EnvVariableId {
467 fn from(value: String) -> Self {
468 Self(value)
469 }
470}
471impl IntoID<EnvVariableId> for EnvVariable {
472 fn into_id(
473 self,
474 ) -> std::pin::Pin<
475 Box<dyn core::future::Future<Output = Result<EnvVariableId, DaggerError>> + Send>,
476 > {
477 Box::pin(async move { self.id().await })
478 }
479}
480impl IntoID<EnvVariableId> for EnvVariableId {
481 fn into_id(
482 self,
483 ) -> std::pin::Pin<
484 Box<dyn core::future::Future<Output = Result<EnvVariableId, DaggerError>> + Send>,
485 > {
486 Box::pin(async move { Ok::<EnvVariableId, DaggerError>(self) })
487 }
488}
489impl EnvVariableId {
490 fn quote(&self) -> String {
491 format!("\"{}\"", self.0.clone())
492 }
493}
494#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
495pub struct ErrorId(pub String);
496impl From<&str> for ErrorId {
497 fn from(value: &str) -> Self {
498 Self(value.to_string())
499 }
500}
501impl From<String> for ErrorId {
502 fn from(value: String) -> Self {
503 Self(value)
504 }
505}
506impl IntoID<ErrorId> for Error {
507 fn into_id(
508 self,
509 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ErrorId, DaggerError>> + Send>>
510 {
511 Box::pin(async move { self.id().await })
512 }
513}
514impl IntoID<ErrorId> for ErrorId {
515 fn into_id(
516 self,
517 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ErrorId, DaggerError>> + Send>>
518 {
519 Box::pin(async move { Ok::<ErrorId, DaggerError>(self) })
520 }
521}
522impl ErrorId {
523 fn quote(&self) -> String {
524 format!("\"{}\"", self.0.clone())
525 }
526}
527#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
528pub struct ErrorValueId(pub String);
529impl From<&str> for ErrorValueId {
530 fn from(value: &str) -> Self {
531 Self(value.to_string())
532 }
533}
534impl From<String> for ErrorValueId {
535 fn from(value: String) -> Self {
536 Self(value)
537 }
538}
539impl IntoID<ErrorValueId> for ErrorValue {
540 fn into_id(
541 self,
542 ) -> std::pin::Pin<
543 Box<dyn core::future::Future<Output = Result<ErrorValueId, DaggerError>> + Send>,
544 > {
545 Box::pin(async move { self.id().await })
546 }
547}
548impl IntoID<ErrorValueId> for ErrorValueId {
549 fn into_id(
550 self,
551 ) -> std::pin::Pin<
552 Box<dyn core::future::Future<Output = Result<ErrorValueId, DaggerError>> + Send>,
553 > {
554 Box::pin(async move { Ok::<ErrorValueId, DaggerError>(self) })
555 }
556}
557impl ErrorValueId {
558 fn quote(&self) -> String {
559 format!("\"{}\"", self.0.clone())
560 }
561}
562#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
563pub struct FieldTypeDefId(pub String);
564impl From<&str> for FieldTypeDefId {
565 fn from(value: &str) -> Self {
566 Self(value.to_string())
567 }
568}
569impl From<String> for FieldTypeDefId {
570 fn from(value: String) -> Self {
571 Self(value)
572 }
573}
574impl IntoID<FieldTypeDefId> for FieldTypeDef {
575 fn into_id(
576 self,
577 ) -> std::pin::Pin<
578 Box<dyn core::future::Future<Output = Result<FieldTypeDefId, DaggerError>> + Send>,
579 > {
580 Box::pin(async move { self.id().await })
581 }
582}
583impl IntoID<FieldTypeDefId> for FieldTypeDefId {
584 fn into_id(
585 self,
586 ) -> std::pin::Pin<
587 Box<dyn core::future::Future<Output = Result<FieldTypeDefId, DaggerError>> + Send>,
588 > {
589 Box::pin(async move { Ok::<FieldTypeDefId, DaggerError>(self) })
590 }
591}
592impl FieldTypeDefId {
593 fn quote(&self) -> String {
594 format!("\"{}\"", self.0.clone())
595 }
596}
597#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
598pub struct FileId(pub String);
599impl From<&str> for FileId {
600 fn from(value: &str) -> Self {
601 Self(value.to_string())
602 }
603}
604impl From<String> for FileId {
605 fn from(value: String) -> Self {
606 Self(value)
607 }
608}
609impl IntoID<FileId> for File {
610 fn into_id(
611 self,
612 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FileId, DaggerError>> + Send>>
613 {
614 Box::pin(async move { self.id().await })
615 }
616}
617impl IntoID<FileId> for FileId {
618 fn into_id(
619 self,
620 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FileId, DaggerError>> + Send>>
621 {
622 Box::pin(async move { Ok::<FileId, DaggerError>(self) })
623 }
624}
625impl FileId {
626 fn quote(&self) -> String {
627 format!("\"{}\"", self.0.clone())
628 }
629}
630#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
631pub struct FunctionArgId(pub String);
632impl From<&str> for FunctionArgId {
633 fn from(value: &str) -> Self {
634 Self(value.to_string())
635 }
636}
637impl From<String> for FunctionArgId {
638 fn from(value: String) -> Self {
639 Self(value)
640 }
641}
642impl IntoID<FunctionArgId> for FunctionArg {
643 fn into_id(
644 self,
645 ) -> std::pin::Pin<
646 Box<dyn core::future::Future<Output = Result<FunctionArgId, DaggerError>> + Send>,
647 > {
648 Box::pin(async move { self.id().await })
649 }
650}
651impl IntoID<FunctionArgId> for FunctionArgId {
652 fn into_id(
653 self,
654 ) -> std::pin::Pin<
655 Box<dyn core::future::Future<Output = Result<FunctionArgId, DaggerError>> + Send>,
656 > {
657 Box::pin(async move { Ok::<FunctionArgId, DaggerError>(self) })
658 }
659}
660impl FunctionArgId {
661 fn quote(&self) -> String {
662 format!("\"{}\"", self.0.clone())
663 }
664}
665#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
666pub struct FunctionCallArgValueId(pub String);
667impl From<&str> for FunctionCallArgValueId {
668 fn from(value: &str) -> Self {
669 Self(value.to_string())
670 }
671}
672impl From<String> for FunctionCallArgValueId {
673 fn from(value: String) -> Self {
674 Self(value)
675 }
676}
677impl IntoID<FunctionCallArgValueId> for FunctionCallArgValue {
678 fn into_id(
679 self,
680 ) -> std::pin::Pin<
681 Box<dyn core::future::Future<Output = Result<FunctionCallArgValueId, DaggerError>> + Send>,
682 > {
683 Box::pin(async move { self.id().await })
684 }
685}
686impl IntoID<FunctionCallArgValueId> for FunctionCallArgValueId {
687 fn into_id(
688 self,
689 ) -> std::pin::Pin<
690 Box<dyn core::future::Future<Output = Result<FunctionCallArgValueId, DaggerError>> + Send>,
691 > {
692 Box::pin(async move { Ok::<FunctionCallArgValueId, DaggerError>(self) })
693 }
694}
695impl FunctionCallArgValueId {
696 fn quote(&self) -> String {
697 format!("\"{}\"", self.0.clone())
698 }
699}
700#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
701pub struct FunctionCallId(pub String);
702impl From<&str> for FunctionCallId {
703 fn from(value: &str) -> Self {
704 Self(value.to_string())
705 }
706}
707impl From<String> for FunctionCallId {
708 fn from(value: String) -> Self {
709 Self(value)
710 }
711}
712impl IntoID<FunctionCallId> for FunctionCall {
713 fn into_id(
714 self,
715 ) -> std::pin::Pin<
716 Box<dyn core::future::Future<Output = Result<FunctionCallId, DaggerError>> + Send>,
717 > {
718 Box::pin(async move { self.id().await })
719 }
720}
721impl IntoID<FunctionCallId> for FunctionCallId {
722 fn into_id(
723 self,
724 ) -> std::pin::Pin<
725 Box<dyn core::future::Future<Output = Result<FunctionCallId, DaggerError>> + Send>,
726 > {
727 Box::pin(async move { Ok::<FunctionCallId, DaggerError>(self) })
728 }
729}
730impl FunctionCallId {
731 fn quote(&self) -> String {
732 format!("\"{}\"", self.0.clone())
733 }
734}
735#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
736pub struct FunctionId(pub String);
737impl From<&str> for FunctionId {
738 fn from(value: &str) -> Self {
739 Self(value.to_string())
740 }
741}
742impl From<String> for FunctionId {
743 fn from(value: String) -> Self {
744 Self(value)
745 }
746}
747impl IntoID<FunctionId> for Function {
748 fn into_id(
749 self,
750 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FunctionId, DaggerError>> + Send>>
751 {
752 Box::pin(async move { self.id().await })
753 }
754}
755impl IntoID<FunctionId> for FunctionId {
756 fn into_id(
757 self,
758 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FunctionId, DaggerError>> + Send>>
759 {
760 Box::pin(async move { Ok::<FunctionId, DaggerError>(self) })
761 }
762}
763impl FunctionId {
764 fn quote(&self) -> String {
765 format!("\"{}\"", self.0.clone())
766 }
767}
768#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
769pub struct GeneratedCodeId(pub String);
770impl From<&str> for GeneratedCodeId {
771 fn from(value: &str) -> Self {
772 Self(value.to_string())
773 }
774}
775impl From<String> for GeneratedCodeId {
776 fn from(value: String) -> Self {
777 Self(value)
778 }
779}
780impl IntoID<GeneratedCodeId> for GeneratedCode {
781 fn into_id(
782 self,
783 ) -> std::pin::Pin<
784 Box<dyn core::future::Future<Output = Result<GeneratedCodeId, DaggerError>> + Send>,
785 > {
786 Box::pin(async move { self.id().await })
787 }
788}
789impl IntoID<GeneratedCodeId> for GeneratedCodeId {
790 fn into_id(
791 self,
792 ) -> std::pin::Pin<
793 Box<dyn core::future::Future<Output = Result<GeneratedCodeId, DaggerError>> + Send>,
794 > {
795 Box::pin(async move { Ok::<GeneratedCodeId, DaggerError>(self) })
796 }
797}
798impl GeneratedCodeId {
799 fn quote(&self) -> String {
800 format!("\"{}\"", self.0.clone())
801 }
802}
803#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
804pub struct GitRefId(pub String);
805impl From<&str> for GitRefId {
806 fn from(value: &str) -> Self {
807 Self(value.to_string())
808 }
809}
810impl From<String> for GitRefId {
811 fn from(value: String) -> Self {
812 Self(value)
813 }
814}
815impl IntoID<GitRefId> for GitRef {
816 fn into_id(
817 self,
818 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<GitRefId, DaggerError>> + Send>>
819 {
820 Box::pin(async move { self.id().await })
821 }
822}
823impl IntoID<GitRefId> for GitRefId {
824 fn into_id(
825 self,
826 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<GitRefId, DaggerError>> + Send>>
827 {
828 Box::pin(async move { Ok::<GitRefId, DaggerError>(self) })
829 }
830}
831impl GitRefId {
832 fn quote(&self) -> String {
833 format!("\"{}\"", self.0.clone())
834 }
835}
836#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
837pub struct GitRepositoryId(pub String);
838impl From<&str> for GitRepositoryId {
839 fn from(value: &str) -> Self {
840 Self(value.to_string())
841 }
842}
843impl From<String> for GitRepositoryId {
844 fn from(value: String) -> Self {
845 Self(value)
846 }
847}
848impl IntoID<GitRepositoryId> for GitRepository {
849 fn into_id(
850 self,
851 ) -> std::pin::Pin<
852 Box<dyn core::future::Future<Output = Result<GitRepositoryId, DaggerError>> + Send>,
853 > {
854 Box::pin(async move { self.id().await })
855 }
856}
857impl IntoID<GitRepositoryId> for GitRepositoryId {
858 fn into_id(
859 self,
860 ) -> std::pin::Pin<
861 Box<dyn core::future::Future<Output = Result<GitRepositoryId, DaggerError>> + Send>,
862 > {
863 Box::pin(async move { Ok::<GitRepositoryId, DaggerError>(self) })
864 }
865}
866impl GitRepositoryId {
867 fn quote(&self) -> String {
868 format!("\"{}\"", self.0.clone())
869 }
870}
871#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
872pub struct HostId(pub String);
873impl From<&str> for HostId {
874 fn from(value: &str) -> Self {
875 Self(value.to_string())
876 }
877}
878impl From<String> for HostId {
879 fn from(value: String) -> Self {
880 Self(value)
881 }
882}
883impl IntoID<HostId> for Host {
884 fn into_id(
885 self,
886 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<HostId, DaggerError>> + Send>>
887 {
888 Box::pin(async move { self.id().await })
889 }
890}
891impl IntoID<HostId> for HostId {
892 fn into_id(
893 self,
894 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<HostId, DaggerError>> + Send>>
895 {
896 Box::pin(async move { Ok::<HostId, DaggerError>(self) })
897 }
898}
899impl HostId {
900 fn quote(&self) -> String {
901 format!("\"{}\"", self.0.clone())
902 }
903}
904#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
905pub struct InputTypeDefId(pub String);
906impl From<&str> for InputTypeDefId {
907 fn from(value: &str) -> Self {
908 Self(value.to_string())
909 }
910}
911impl From<String> for InputTypeDefId {
912 fn from(value: String) -> Self {
913 Self(value)
914 }
915}
916impl IntoID<InputTypeDefId> for InputTypeDef {
917 fn into_id(
918 self,
919 ) -> std::pin::Pin<
920 Box<dyn core::future::Future<Output = Result<InputTypeDefId, DaggerError>> + Send>,
921 > {
922 Box::pin(async move { self.id().await })
923 }
924}
925impl IntoID<InputTypeDefId> for InputTypeDefId {
926 fn into_id(
927 self,
928 ) -> std::pin::Pin<
929 Box<dyn core::future::Future<Output = Result<InputTypeDefId, DaggerError>> + Send>,
930 > {
931 Box::pin(async move { Ok::<InputTypeDefId, DaggerError>(self) })
932 }
933}
934impl InputTypeDefId {
935 fn quote(&self) -> String {
936 format!("\"{}\"", self.0.clone())
937 }
938}
939#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
940pub struct InterfaceTypeDefId(pub String);
941impl From<&str> for InterfaceTypeDefId {
942 fn from(value: &str) -> Self {
943 Self(value.to_string())
944 }
945}
946impl From<String> for InterfaceTypeDefId {
947 fn from(value: String) -> Self {
948 Self(value)
949 }
950}
951impl IntoID<InterfaceTypeDefId> for InterfaceTypeDef {
952 fn into_id(
953 self,
954 ) -> std::pin::Pin<
955 Box<dyn core::future::Future<Output = Result<InterfaceTypeDefId, DaggerError>> + Send>,
956 > {
957 Box::pin(async move { self.id().await })
958 }
959}
960impl IntoID<InterfaceTypeDefId> for InterfaceTypeDefId {
961 fn into_id(
962 self,
963 ) -> std::pin::Pin<
964 Box<dyn core::future::Future<Output = Result<InterfaceTypeDefId, DaggerError>> + Send>,
965 > {
966 Box::pin(async move { Ok::<InterfaceTypeDefId, DaggerError>(self) })
967 }
968}
969impl InterfaceTypeDefId {
970 fn quote(&self) -> String {
971 format!("\"{}\"", self.0.clone())
972 }
973}
974#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
975pub struct Json(pub String);
976impl From<&str> for Json {
977 fn from(value: &str) -> Self {
978 Self(value.to_string())
979 }
980}
981impl From<String> for Json {
982 fn from(value: String) -> Self {
983 Self(value)
984 }
985}
986impl Json {
987 fn quote(&self) -> String {
988 format!("\"{}\"", self.0.clone())
989 }
990}
991#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
992pub struct Llmid(pub String);
993impl From<&str> for Llmid {
994 fn from(value: &str) -> Self {
995 Self(value.to_string())
996 }
997}
998impl From<String> for Llmid {
999 fn from(value: String) -> Self {
1000 Self(value)
1001 }
1002}
1003impl IntoID<Llmid> for Llm {
1004 fn into_id(
1005 self,
1006 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<Llmid, DaggerError>> + Send>>
1007 {
1008 Box::pin(async move { self.id().await })
1009 }
1010}
1011impl IntoID<Llmid> for Llmid {
1012 fn into_id(
1013 self,
1014 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<Llmid, DaggerError>> + Send>>
1015 {
1016 Box::pin(async move { Ok::<Llmid, DaggerError>(self) })
1017 }
1018}
1019impl Llmid {
1020 fn quote(&self) -> String {
1021 format!("\"{}\"", self.0.clone())
1022 }
1023}
1024#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1025pub struct LlmTokenUsageId(pub String);
1026impl From<&str> for LlmTokenUsageId {
1027 fn from(value: &str) -> Self {
1028 Self(value.to_string())
1029 }
1030}
1031impl From<String> for LlmTokenUsageId {
1032 fn from(value: String) -> Self {
1033 Self(value)
1034 }
1035}
1036impl IntoID<LlmTokenUsageId> for LlmTokenUsage {
1037 fn into_id(
1038 self,
1039 ) -> std::pin::Pin<
1040 Box<dyn core::future::Future<Output = Result<LlmTokenUsageId, DaggerError>> + Send>,
1041 > {
1042 Box::pin(async move { self.id().await })
1043 }
1044}
1045impl IntoID<LlmTokenUsageId> for LlmTokenUsageId {
1046 fn into_id(
1047 self,
1048 ) -> std::pin::Pin<
1049 Box<dyn core::future::Future<Output = Result<LlmTokenUsageId, DaggerError>> + Send>,
1050 > {
1051 Box::pin(async move { Ok::<LlmTokenUsageId, DaggerError>(self) })
1052 }
1053}
1054impl LlmTokenUsageId {
1055 fn quote(&self) -> String {
1056 format!("\"{}\"", self.0.clone())
1057 }
1058}
1059#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1060pub struct LabelId(pub String);
1061impl From<&str> for LabelId {
1062 fn from(value: &str) -> Self {
1063 Self(value.to_string())
1064 }
1065}
1066impl From<String> for LabelId {
1067 fn from(value: String) -> Self {
1068 Self(value)
1069 }
1070}
1071impl IntoID<LabelId> for Label {
1072 fn into_id(
1073 self,
1074 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<LabelId, DaggerError>> + Send>>
1075 {
1076 Box::pin(async move { self.id().await })
1077 }
1078}
1079impl IntoID<LabelId> for LabelId {
1080 fn into_id(
1081 self,
1082 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<LabelId, DaggerError>> + Send>>
1083 {
1084 Box::pin(async move { Ok::<LabelId, DaggerError>(self) })
1085 }
1086}
1087impl LabelId {
1088 fn quote(&self) -> String {
1089 format!("\"{}\"", self.0.clone())
1090 }
1091}
1092#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1093pub struct ListTypeDefId(pub String);
1094impl From<&str> for ListTypeDefId {
1095 fn from(value: &str) -> Self {
1096 Self(value.to_string())
1097 }
1098}
1099impl From<String> for ListTypeDefId {
1100 fn from(value: String) -> Self {
1101 Self(value)
1102 }
1103}
1104impl IntoID<ListTypeDefId> for ListTypeDef {
1105 fn into_id(
1106 self,
1107 ) -> std::pin::Pin<
1108 Box<dyn core::future::Future<Output = Result<ListTypeDefId, DaggerError>> + Send>,
1109 > {
1110 Box::pin(async move { self.id().await })
1111 }
1112}
1113impl IntoID<ListTypeDefId> for ListTypeDefId {
1114 fn into_id(
1115 self,
1116 ) -> std::pin::Pin<
1117 Box<dyn core::future::Future<Output = Result<ListTypeDefId, DaggerError>> + Send>,
1118 > {
1119 Box::pin(async move { Ok::<ListTypeDefId, DaggerError>(self) })
1120 }
1121}
1122impl ListTypeDefId {
1123 fn quote(&self) -> String {
1124 format!("\"{}\"", self.0.clone())
1125 }
1126}
1127#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1128pub struct ModuleConfigClientId(pub String);
1129impl From<&str> for ModuleConfigClientId {
1130 fn from(value: &str) -> Self {
1131 Self(value.to_string())
1132 }
1133}
1134impl From<String> for ModuleConfigClientId {
1135 fn from(value: String) -> Self {
1136 Self(value)
1137 }
1138}
1139impl IntoID<ModuleConfigClientId> for ModuleConfigClient {
1140 fn into_id(
1141 self,
1142 ) -> std::pin::Pin<
1143 Box<dyn core::future::Future<Output = Result<ModuleConfigClientId, DaggerError>> + Send>,
1144 > {
1145 Box::pin(async move { self.id().await })
1146 }
1147}
1148impl IntoID<ModuleConfigClientId> for ModuleConfigClientId {
1149 fn into_id(
1150 self,
1151 ) -> std::pin::Pin<
1152 Box<dyn core::future::Future<Output = Result<ModuleConfigClientId, DaggerError>> + Send>,
1153 > {
1154 Box::pin(async move { Ok::<ModuleConfigClientId, DaggerError>(self) })
1155 }
1156}
1157impl ModuleConfigClientId {
1158 fn quote(&self) -> String {
1159 format!("\"{}\"", self.0.clone())
1160 }
1161}
1162#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1163pub struct ModuleId(pub String);
1164impl From<&str> for ModuleId {
1165 fn from(value: &str) -> Self {
1166 Self(value.to_string())
1167 }
1168}
1169impl From<String> for ModuleId {
1170 fn from(value: String) -> Self {
1171 Self(value)
1172 }
1173}
1174impl IntoID<ModuleId> for Module {
1175 fn into_id(
1176 self,
1177 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ModuleId, DaggerError>> + Send>>
1178 {
1179 Box::pin(async move { self.id().await })
1180 }
1181}
1182impl IntoID<ModuleId> for ModuleId {
1183 fn into_id(
1184 self,
1185 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ModuleId, DaggerError>> + Send>>
1186 {
1187 Box::pin(async move { Ok::<ModuleId, DaggerError>(self) })
1188 }
1189}
1190impl ModuleId {
1191 fn quote(&self) -> String {
1192 format!("\"{}\"", self.0.clone())
1193 }
1194}
1195#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1196pub struct ModuleSourceId(pub String);
1197impl From<&str> for ModuleSourceId {
1198 fn from(value: &str) -> Self {
1199 Self(value.to_string())
1200 }
1201}
1202impl From<String> for ModuleSourceId {
1203 fn from(value: String) -> Self {
1204 Self(value)
1205 }
1206}
1207impl IntoID<ModuleSourceId> for ModuleSource {
1208 fn into_id(
1209 self,
1210 ) -> std::pin::Pin<
1211 Box<dyn core::future::Future<Output = Result<ModuleSourceId, DaggerError>> + Send>,
1212 > {
1213 Box::pin(async move { self.id().await })
1214 }
1215}
1216impl IntoID<ModuleSourceId> for ModuleSourceId {
1217 fn into_id(
1218 self,
1219 ) -> std::pin::Pin<
1220 Box<dyn core::future::Future<Output = Result<ModuleSourceId, DaggerError>> + Send>,
1221 > {
1222 Box::pin(async move { Ok::<ModuleSourceId, DaggerError>(self) })
1223 }
1224}
1225impl ModuleSourceId {
1226 fn quote(&self) -> String {
1227 format!("\"{}\"", self.0.clone())
1228 }
1229}
1230#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1231pub struct ObjectTypeDefId(pub String);
1232impl From<&str> for ObjectTypeDefId {
1233 fn from(value: &str) -> Self {
1234 Self(value.to_string())
1235 }
1236}
1237impl From<String> for ObjectTypeDefId {
1238 fn from(value: String) -> Self {
1239 Self(value)
1240 }
1241}
1242impl IntoID<ObjectTypeDefId> for ObjectTypeDef {
1243 fn into_id(
1244 self,
1245 ) -> std::pin::Pin<
1246 Box<dyn core::future::Future<Output = Result<ObjectTypeDefId, DaggerError>> + Send>,
1247 > {
1248 Box::pin(async move { self.id().await })
1249 }
1250}
1251impl IntoID<ObjectTypeDefId> for ObjectTypeDefId {
1252 fn into_id(
1253 self,
1254 ) -> std::pin::Pin<
1255 Box<dyn core::future::Future<Output = Result<ObjectTypeDefId, DaggerError>> + Send>,
1256 > {
1257 Box::pin(async move { Ok::<ObjectTypeDefId, DaggerError>(self) })
1258 }
1259}
1260impl ObjectTypeDefId {
1261 fn quote(&self) -> String {
1262 format!("\"{}\"", self.0.clone())
1263 }
1264}
1265#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1266pub struct Platform(pub String);
1267impl From<&str> for Platform {
1268 fn from(value: &str) -> Self {
1269 Self(value.to_string())
1270 }
1271}
1272impl From<String> for Platform {
1273 fn from(value: String) -> Self {
1274 Self(value)
1275 }
1276}
1277impl Platform {
1278 fn quote(&self) -> String {
1279 format!("\"{}\"", self.0.clone())
1280 }
1281}
1282#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1283pub struct PortId(pub String);
1284impl From<&str> for PortId {
1285 fn from(value: &str) -> Self {
1286 Self(value.to_string())
1287 }
1288}
1289impl From<String> for PortId {
1290 fn from(value: String) -> Self {
1291 Self(value)
1292 }
1293}
1294impl IntoID<PortId> for Port {
1295 fn into_id(
1296 self,
1297 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<PortId, DaggerError>> + Send>>
1298 {
1299 Box::pin(async move { self.id().await })
1300 }
1301}
1302impl IntoID<PortId> for PortId {
1303 fn into_id(
1304 self,
1305 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<PortId, DaggerError>> + Send>>
1306 {
1307 Box::pin(async move { Ok::<PortId, DaggerError>(self) })
1308 }
1309}
1310impl PortId {
1311 fn quote(&self) -> String {
1312 format!("\"{}\"", self.0.clone())
1313 }
1314}
1315#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1316pub struct SdkConfigId(pub String);
1317impl From<&str> for SdkConfigId {
1318 fn from(value: &str) -> Self {
1319 Self(value.to_string())
1320 }
1321}
1322impl From<String> for SdkConfigId {
1323 fn from(value: String) -> Self {
1324 Self(value)
1325 }
1326}
1327impl IntoID<SdkConfigId> for SdkConfig {
1328 fn into_id(
1329 self,
1330 ) -> std::pin::Pin<
1331 Box<dyn core::future::Future<Output = Result<SdkConfigId, DaggerError>> + Send>,
1332 > {
1333 Box::pin(async move { self.id().await })
1334 }
1335}
1336impl IntoID<SdkConfigId> for SdkConfigId {
1337 fn into_id(
1338 self,
1339 ) -> std::pin::Pin<
1340 Box<dyn core::future::Future<Output = Result<SdkConfigId, DaggerError>> + Send>,
1341 > {
1342 Box::pin(async move { Ok::<SdkConfigId, DaggerError>(self) })
1343 }
1344}
1345impl SdkConfigId {
1346 fn quote(&self) -> String {
1347 format!("\"{}\"", self.0.clone())
1348 }
1349}
1350#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1351pub struct ScalarTypeDefId(pub String);
1352impl From<&str> for ScalarTypeDefId {
1353 fn from(value: &str) -> Self {
1354 Self(value.to_string())
1355 }
1356}
1357impl From<String> for ScalarTypeDefId {
1358 fn from(value: String) -> Self {
1359 Self(value)
1360 }
1361}
1362impl IntoID<ScalarTypeDefId> for ScalarTypeDef {
1363 fn into_id(
1364 self,
1365 ) -> std::pin::Pin<
1366 Box<dyn core::future::Future<Output = Result<ScalarTypeDefId, DaggerError>> + Send>,
1367 > {
1368 Box::pin(async move { self.id().await })
1369 }
1370}
1371impl IntoID<ScalarTypeDefId> for ScalarTypeDefId {
1372 fn into_id(
1373 self,
1374 ) -> std::pin::Pin<
1375 Box<dyn core::future::Future<Output = Result<ScalarTypeDefId, DaggerError>> + Send>,
1376 > {
1377 Box::pin(async move { Ok::<ScalarTypeDefId, DaggerError>(self) })
1378 }
1379}
1380impl ScalarTypeDefId {
1381 fn quote(&self) -> String {
1382 format!("\"{}\"", self.0.clone())
1383 }
1384}
1385#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1386pub struct SecretId(pub String);
1387impl From<&str> for SecretId {
1388 fn from(value: &str) -> Self {
1389 Self(value.to_string())
1390 }
1391}
1392impl From<String> for SecretId {
1393 fn from(value: String) -> Self {
1394 Self(value)
1395 }
1396}
1397impl IntoID<SecretId> for Secret {
1398 fn into_id(
1399 self,
1400 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SecretId, DaggerError>> + Send>>
1401 {
1402 Box::pin(async move { self.id().await })
1403 }
1404}
1405impl IntoID<SecretId> for SecretId {
1406 fn into_id(
1407 self,
1408 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SecretId, DaggerError>> + Send>>
1409 {
1410 Box::pin(async move { Ok::<SecretId, DaggerError>(self) })
1411 }
1412}
1413impl SecretId {
1414 fn quote(&self) -> String {
1415 format!("\"{}\"", self.0.clone())
1416 }
1417}
1418#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1419pub struct ServiceId(pub String);
1420impl From<&str> for ServiceId {
1421 fn from(value: &str) -> Self {
1422 Self(value.to_string())
1423 }
1424}
1425impl From<String> for ServiceId {
1426 fn from(value: String) -> Self {
1427 Self(value)
1428 }
1429}
1430impl IntoID<ServiceId> for Service {
1431 fn into_id(
1432 self,
1433 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ServiceId, DaggerError>> + Send>>
1434 {
1435 Box::pin(async move { self.id().await })
1436 }
1437}
1438impl IntoID<ServiceId> for ServiceId {
1439 fn into_id(
1440 self,
1441 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ServiceId, DaggerError>> + Send>>
1442 {
1443 Box::pin(async move { Ok::<ServiceId, DaggerError>(self) })
1444 }
1445}
1446impl ServiceId {
1447 fn quote(&self) -> String {
1448 format!("\"{}\"", self.0.clone())
1449 }
1450}
1451#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1452pub struct SocketId(pub String);
1453impl From<&str> for SocketId {
1454 fn from(value: &str) -> Self {
1455 Self(value.to_string())
1456 }
1457}
1458impl From<String> for SocketId {
1459 fn from(value: String) -> Self {
1460 Self(value)
1461 }
1462}
1463impl IntoID<SocketId> for Socket {
1464 fn into_id(
1465 self,
1466 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SocketId, DaggerError>> + Send>>
1467 {
1468 Box::pin(async move { self.id().await })
1469 }
1470}
1471impl IntoID<SocketId> for SocketId {
1472 fn into_id(
1473 self,
1474 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SocketId, DaggerError>> + Send>>
1475 {
1476 Box::pin(async move { Ok::<SocketId, DaggerError>(self) })
1477 }
1478}
1479impl SocketId {
1480 fn quote(&self) -> String {
1481 format!("\"{}\"", self.0.clone())
1482 }
1483}
1484#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1485pub struct SourceMapId(pub String);
1486impl From<&str> for SourceMapId {
1487 fn from(value: &str) -> Self {
1488 Self(value.to_string())
1489 }
1490}
1491impl From<String> for SourceMapId {
1492 fn from(value: String) -> Self {
1493 Self(value)
1494 }
1495}
1496impl IntoID<SourceMapId> for SourceMap {
1497 fn into_id(
1498 self,
1499 ) -> std::pin::Pin<
1500 Box<dyn core::future::Future<Output = Result<SourceMapId, DaggerError>> + Send>,
1501 > {
1502 Box::pin(async move { self.id().await })
1503 }
1504}
1505impl IntoID<SourceMapId> for SourceMapId {
1506 fn into_id(
1507 self,
1508 ) -> std::pin::Pin<
1509 Box<dyn core::future::Future<Output = Result<SourceMapId, DaggerError>> + Send>,
1510 > {
1511 Box::pin(async move { Ok::<SourceMapId, DaggerError>(self) })
1512 }
1513}
1514impl SourceMapId {
1515 fn quote(&self) -> String {
1516 format!("\"{}\"", self.0.clone())
1517 }
1518}
1519#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1520pub struct TerminalId(pub String);
1521impl From<&str> for TerminalId {
1522 fn from(value: &str) -> Self {
1523 Self(value.to_string())
1524 }
1525}
1526impl From<String> for TerminalId {
1527 fn from(value: String) -> Self {
1528 Self(value)
1529 }
1530}
1531impl IntoID<TerminalId> for Terminal {
1532 fn into_id(
1533 self,
1534 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TerminalId, DaggerError>> + Send>>
1535 {
1536 Box::pin(async move { self.id().await })
1537 }
1538}
1539impl IntoID<TerminalId> for TerminalId {
1540 fn into_id(
1541 self,
1542 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TerminalId, DaggerError>> + Send>>
1543 {
1544 Box::pin(async move { Ok::<TerminalId, DaggerError>(self) })
1545 }
1546}
1547impl TerminalId {
1548 fn quote(&self) -> String {
1549 format!("\"{}\"", self.0.clone())
1550 }
1551}
1552#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1553pub struct TypeDefId(pub String);
1554impl From<&str> for TypeDefId {
1555 fn from(value: &str) -> Self {
1556 Self(value.to_string())
1557 }
1558}
1559impl From<String> for TypeDefId {
1560 fn from(value: String) -> Self {
1561 Self(value)
1562 }
1563}
1564impl IntoID<TypeDefId> for TypeDef {
1565 fn into_id(
1566 self,
1567 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TypeDefId, DaggerError>> + Send>>
1568 {
1569 Box::pin(async move { self.id().await })
1570 }
1571}
1572impl IntoID<TypeDefId> for TypeDefId {
1573 fn into_id(
1574 self,
1575 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TypeDefId, DaggerError>> + Send>>
1576 {
1577 Box::pin(async move { Ok::<TypeDefId, DaggerError>(self) })
1578 }
1579}
1580impl TypeDefId {
1581 fn quote(&self) -> String {
1582 format!("\"{}\"", self.0.clone())
1583 }
1584}
1585#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1586pub struct Void(pub String);
1587impl From<&str> for Void {
1588 fn from(value: &str) -> Self {
1589 Self(value.to_string())
1590 }
1591}
1592impl From<String> for Void {
1593 fn from(value: String) -> Self {
1594 Self(value)
1595 }
1596}
1597impl Void {
1598 fn quote(&self) -> String {
1599 format!("\"{}\"", self.0.clone())
1600 }
1601}
1602#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
1603pub struct BuildArg {
1604 pub name: String,
1605 pub value: String,
1606}
1607#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
1608pub struct PipelineLabel {
1609 pub name: String,
1610 pub value: String,
1611}
1612#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
1613pub struct PortForward {
1614 pub backend: isize,
1615 pub frontend: isize,
1616 pub protocol: NetworkProtocol,
1617}
1618#[derive(Clone)]
1619pub struct Binding {
1620 pub proc: Option<Arc<DaggerSessionProc>>,
1621 pub selection: Selection,
1622 pub graphql_client: DynGraphQLClient,
1623}
1624impl Binding {
1625 pub fn as_cache_volume(&self) -> CacheVolume {
1627 let query = self.selection.select("asCacheVolume");
1628 CacheVolume {
1629 proc: self.proc.clone(),
1630 selection: query,
1631 graphql_client: self.graphql_client.clone(),
1632 }
1633 }
1634 pub fn as_cloud(&self) -> Cloud {
1636 let query = self.selection.select("asCloud");
1637 Cloud {
1638 proc: self.proc.clone(),
1639 selection: query,
1640 graphql_client: self.graphql_client.clone(),
1641 }
1642 }
1643 pub fn as_container(&self) -> Container {
1645 let query = self.selection.select("asContainer");
1646 Container {
1647 proc: self.proc.clone(),
1648 selection: query,
1649 graphql_client: self.graphql_client.clone(),
1650 }
1651 }
1652 pub fn as_directory(&self) -> Directory {
1654 let query = self.selection.select("asDirectory");
1655 Directory {
1656 proc: self.proc.clone(),
1657 selection: query,
1658 graphql_client: self.graphql_client.clone(),
1659 }
1660 }
1661 pub fn as_env(&self) -> Env {
1663 let query = self.selection.select("asEnv");
1664 Env {
1665 proc: self.proc.clone(),
1666 selection: query,
1667 graphql_client: self.graphql_client.clone(),
1668 }
1669 }
1670 pub fn as_file(&self) -> File {
1672 let query = self.selection.select("asFile");
1673 File {
1674 proc: self.proc.clone(),
1675 selection: query,
1676 graphql_client: self.graphql_client.clone(),
1677 }
1678 }
1679 pub fn as_git_ref(&self) -> GitRef {
1681 let query = self.selection.select("asGitRef");
1682 GitRef {
1683 proc: self.proc.clone(),
1684 selection: query,
1685 graphql_client: self.graphql_client.clone(),
1686 }
1687 }
1688 pub fn as_git_repository(&self) -> GitRepository {
1690 let query = self.selection.select("asGitRepository");
1691 GitRepository {
1692 proc: self.proc.clone(),
1693 selection: query,
1694 graphql_client: self.graphql_client.clone(),
1695 }
1696 }
1697 pub fn as_llm(&self) -> Llm {
1699 let query = self.selection.select("asLLM");
1700 Llm {
1701 proc: self.proc.clone(),
1702 selection: query,
1703 graphql_client: self.graphql_client.clone(),
1704 }
1705 }
1706 pub fn as_module(&self) -> Module {
1708 let query = self.selection.select("asModule");
1709 Module {
1710 proc: self.proc.clone(),
1711 selection: query,
1712 graphql_client: self.graphql_client.clone(),
1713 }
1714 }
1715 pub fn as_module_config_client(&self) -> ModuleConfigClient {
1717 let query = self.selection.select("asModuleConfigClient");
1718 ModuleConfigClient {
1719 proc: self.proc.clone(),
1720 selection: query,
1721 graphql_client: self.graphql_client.clone(),
1722 }
1723 }
1724 pub fn as_module_source(&self) -> ModuleSource {
1726 let query = self.selection.select("asModuleSource");
1727 ModuleSource {
1728 proc: self.proc.clone(),
1729 selection: query,
1730 graphql_client: self.graphql_client.clone(),
1731 }
1732 }
1733 pub fn as_secret(&self) -> Secret {
1735 let query = self.selection.select("asSecret");
1736 Secret {
1737 proc: self.proc.clone(),
1738 selection: query,
1739 graphql_client: self.graphql_client.clone(),
1740 }
1741 }
1742 pub fn as_service(&self) -> Service {
1744 let query = self.selection.select("asService");
1745 Service {
1746 proc: self.proc.clone(),
1747 selection: query,
1748 graphql_client: self.graphql_client.clone(),
1749 }
1750 }
1751 pub fn as_socket(&self) -> Socket {
1753 let query = self.selection.select("asSocket");
1754 Socket {
1755 proc: self.proc.clone(),
1756 selection: query,
1757 graphql_client: self.graphql_client.clone(),
1758 }
1759 }
1760 pub async fn as_string(&self) -> Result<String, DaggerError> {
1762 let query = self.selection.select("asString");
1763 query.execute(self.graphql_client.clone()).await
1764 }
1765 pub async fn digest(&self) -> Result<String, DaggerError> {
1767 let query = self.selection.select("digest");
1768 query.execute(self.graphql_client.clone()).await
1769 }
1770 pub async fn id(&self) -> Result<BindingId, DaggerError> {
1772 let query = self.selection.select("id");
1773 query.execute(self.graphql_client.clone()).await
1774 }
1775 pub async fn is_null(&self) -> Result<bool, DaggerError> {
1777 let query = self.selection.select("isNull");
1778 query.execute(self.graphql_client.clone()).await
1779 }
1780 pub async fn name(&self) -> Result<String, DaggerError> {
1782 let query = self.selection.select("name");
1783 query.execute(self.graphql_client.clone()).await
1784 }
1785 pub async fn type_name(&self) -> Result<String, DaggerError> {
1787 let query = self.selection.select("typeName");
1788 query.execute(self.graphql_client.clone()).await
1789 }
1790}
1791#[derive(Clone)]
1792pub struct CacheVolume {
1793 pub proc: Option<Arc<DaggerSessionProc>>,
1794 pub selection: Selection,
1795 pub graphql_client: DynGraphQLClient,
1796}
1797impl CacheVolume {
1798 pub async fn id(&self) -> Result<CacheVolumeId, DaggerError> {
1800 let query = self.selection.select("id");
1801 query.execute(self.graphql_client.clone()).await
1802 }
1803}
1804#[derive(Clone)]
1805pub struct Cloud {
1806 pub proc: Option<Arc<DaggerSessionProc>>,
1807 pub selection: Selection,
1808 pub graphql_client: DynGraphQLClient,
1809}
1810impl Cloud {
1811 pub async fn id(&self) -> Result<CloudId, DaggerError> {
1813 let query = self.selection.select("id");
1814 query.execute(self.graphql_client.clone()).await
1815 }
1816 pub async fn trace_url(&self) -> Result<String, DaggerError> {
1818 let query = self.selection.select("traceURL");
1819 query.execute(self.graphql_client.clone()).await
1820 }
1821}
1822#[derive(Clone)]
1823pub struct Container {
1824 pub proc: Option<Arc<DaggerSessionProc>>,
1825 pub selection: Selection,
1826 pub graphql_client: DynGraphQLClient,
1827}
1828#[derive(Builder, Debug, PartialEq)]
1829pub struct ContainerAsServiceOpts<'a> {
1830 #[builder(setter(into, strip_option), default)]
1833 pub args: Option<Vec<&'a str>>,
1834 #[builder(setter(into, strip_option), default)]
1836 pub expand: Option<bool>,
1837 #[builder(setter(into, strip_option), default)]
1839 pub experimental_privileged_nesting: Option<bool>,
1840 #[builder(setter(into, strip_option), default)]
1842 pub insecure_root_capabilities: Option<bool>,
1843 #[builder(setter(into, strip_option), default)]
1846 pub no_init: Option<bool>,
1847 #[builder(setter(into, strip_option), default)]
1849 pub use_entrypoint: Option<bool>,
1850}
1851#[derive(Builder, Debug, PartialEq)]
1852pub struct ContainerAsTarballOpts {
1853 #[builder(setter(into, strip_option), default)]
1856 pub forced_compression: Option<ImageLayerCompression>,
1857 #[builder(setter(into, strip_option), default)]
1860 pub media_types: Option<ImageMediaTypes>,
1861 #[builder(setter(into, strip_option), default)]
1864 pub platform_variants: Option<Vec<ContainerId>>,
1865}
1866#[derive(Builder, Debug, PartialEq)]
1867pub struct ContainerBuildOpts<'a> {
1868 #[builder(setter(into, strip_option), default)]
1870 pub build_args: Option<Vec<BuildArg>>,
1871 #[builder(setter(into, strip_option), default)]
1873 pub dockerfile: Option<&'a str>,
1874 #[builder(setter(into, strip_option), default)]
1877 pub no_init: Option<bool>,
1878 #[builder(setter(into, strip_option), default)]
1882 pub secrets: Option<Vec<SecretId>>,
1883 #[builder(setter(into, strip_option), default)]
1885 pub target: Option<&'a str>,
1886}
1887#[derive(Builder, Debug, PartialEq)]
1888pub struct ContainerDirectoryOpts {
1889 #[builder(setter(into, strip_option), default)]
1891 pub expand: Option<bool>,
1892}
1893#[derive(Builder, Debug, PartialEq)]
1894pub struct ContainerExportOpts {
1895 #[builder(setter(into, strip_option), default)]
1897 pub expand: Option<bool>,
1898 #[builder(setter(into, strip_option), default)]
1901 pub forced_compression: Option<ImageLayerCompression>,
1902 #[builder(setter(into, strip_option), default)]
1905 pub media_types: Option<ImageMediaTypes>,
1906 #[builder(setter(into, strip_option), default)]
1909 pub platform_variants: Option<Vec<ContainerId>>,
1910}
1911#[derive(Builder, Debug, PartialEq)]
1912pub struct ContainerFileOpts {
1913 #[builder(setter(into, strip_option), default)]
1915 pub expand: Option<bool>,
1916}
1917#[derive(Builder, Debug, PartialEq)]
1918pub struct ContainerImportOpts<'a> {
1919 #[builder(setter(into, strip_option), default)]
1921 pub tag: Option<&'a str>,
1922}
1923#[derive(Builder, Debug, PartialEq)]
1924pub struct ContainerPublishOpts {
1925 #[builder(setter(into, strip_option), default)]
1928 pub forced_compression: Option<ImageLayerCompression>,
1929 #[builder(setter(into, strip_option), default)]
1932 pub media_types: Option<ImageMediaTypes>,
1933 #[builder(setter(into, strip_option), default)]
1936 pub platform_variants: Option<Vec<ContainerId>>,
1937}
1938#[derive(Builder, Debug, PartialEq)]
1939pub struct ContainerTerminalOpts<'a> {
1940 #[builder(setter(into, strip_option), default)]
1942 pub cmd: Option<Vec<&'a str>>,
1943 #[builder(setter(into, strip_option), default)]
1945 pub experimental_privileged_nesting: Option<bool>,
1946 #[builder(setter(into, strip_option), default)]
1948 pub insecure_root_capabilities: Option<bool>,
1949}
1950#[derive(Builder, Debug, PartialEq)]
1951pub struct ContainerUpOpts<'a> {
1952 #[builder(setter(into, strip_option), default)]
1955 pub args: Option<Vec<&'a str>>,
1956 #[builder(setter(into, strip_option), default)]
1958 pub expand: Option<bool>,
1959 #[builder(setter(into, strip_option), default)]
1961 pub experimental_privileged_nesting: Option<bool>,
1962 #[builder(setter(into, strip_option), default)]
1964 pub insecure_root_capabilities: Option<bool>,
1965 #[builder(setter(into, strip_option), default)]
1968 pub no_init: Option<bool>,
1969 #[builder(setter(into, strip_option), default)]
1972 pub ports: Option<Vec<PortForward>>,
1973 #[builder(setter(into, strip_option), default)]
1975 pub random: Option<bool>,
1976 #[builder(setter(into, strip_option), default)]
1978 pub use_entrypoint: Option<bool>,
1979}
1980#[derive(Builder, Debug, PartialEq)]
1981pub struct ContainerWithDefaultTerminalCmdOpts {
1982 #[builder(setter(into, strip_option), default)]
1984 pub experimental_privileged_nesting: Option<bool>,
1985 #[builder(setter(into, strip_option), default)]
1987 pub insecure_root_capabilities: Option<bool>,
1988}
1989#[derive(Builder, Debug, PartialEq)]
1990pub struct ContainerWithDirectoryOpts<'a> {
1991 #[builder(setter(into, strip_option), default)]
1993 pub exclude: Option<Vec<&'a str>>,
1994 #[builder(setter(into, strip_option), default)]
1996 pub expand: Option<bool>,
1997 #[builder(setter(into, strip_option), default)]
1999 pub include: Option<Vec<&'a str>>,
2000 #[builder(setter(into, strip_option), default)]
2004 pub owner: Option<&'a str>,
2005}
2006#[derive(Builder, Debug, PartialEq)]
2007pub struct ContainerWithEntrypointOpts {
2008 #[builder(setter(into, strip_option), default)]
2010 pub keep_default_args: Option<bool>,
2011}
2012#[derive(Builder, Debug, PartialEq)]
2013pub struct ContainerWithEnvVariableOpts {
2014 #[builder(setter(into, strip_option), default)]
2016 pub expand: Option<bool>,
2017}
2018#[derive(Builder, Debug, PartialEq)]
2019pub struct ContainerWithExecOpts<'a> {
2020 #[builder(setter(into, strip_option), default)]
2022 pub expand: Option<bool>,
2023 #[builder(setter(into, strip_option), default)]
2025 pub expect: Option<ReturnType>,
2026 #[builder(setter(into, strip_option), default)]
2028 pub experimental_privileged_nesting: Option<bool>,
2029 #[builder(setter(into, strip_option), default)]
2032 pub insecure_root_capabilities: Option<bool>,
2033 #[builder(setter(into, strip_option), default)]
2036 pub no_init: Option<bool>,
2037 #[builder(setter(into, strip_option), default)]
2039 pub redirect_stderr: Option<&'a str>,
2040 #[builder(setter(into, strip_option), default)]
2042 pub redirect_stdout: Option<&'a str>,
2043 #[builder(setter(into, strip_option), default)]
2045 pub stdin: Option<&'a str>,
2046 #[builder(setter(into, strip_option), default)]
2048 pub use_entrypoint: Option<bool>,
2049}
2050#[derive(Builder, Debug, PartialEq)]
2051pub struct ContainerWithExposedPortOpts<'a> {
2052 #[builder(setter(into, strip_option), default)]
2054 pub description: Option<&'a str>,
2055 #[builder(setter(into, strip_option), default)]
2057 pub experimental_skip_healthcheck: Option<bool>,
2058 #[builder(setter(into, strip_option), default)]
2060 pub protocol: Option<NetworkProtocol>,
2061}
2062#[derive(Builder, Debug, PartialEq)]
2063pub struct ContainerWithFileOpts<'a> {
2064 #[builder(setter(into, strip_option), default)]
2066 pub expand: Option<bool>,
2067 #[builder(setter(into, strip_option), default)]
2071 pub owner: Option<&'a str>,
2072 #[builder(setter(into, strip_option), default)]
2074 pub permissions: Option<isize>,
2075}
2076#[derive(Builder, Debug, PartialEq)]
2077pub struct ContainerWithFilesOpts<'a> {
2078 #[builder(setter(into, strip_option), default)]
2080 pub expand: Option<bool>,
2081 #[builder(setter(into, strip_option), default)]
2085 pub owner: Option<&'a str>,
2086 #[builder(setter(into, strip_option), default)]
2088 pub permissions: Option<isize>,
2089}
2090#[derive(Builder, Debug, PartialEq)]
2091pub struct ContainerWithMountedCacheOpts<'a> {
2092 #[builder(setter(into, strip_option), default)]
2094 pub expand: Option<bool>,
2095 #[builder(setter(into, strip_option), default)]
2100 pub owner: Option<&'a str>,
2101 #[builder(setter(into, strip_option), default)]
2103 pub sharing: Option<CacheSharingMode>,
2104 #[builder(setter(into, strip_option), default)]
2106 pub source: Option<DirectoryId>,
2107}
2108#[derive(Builder, Debug, PartialEq)]
2109pub struct ContainerWithMountedDirectoryOpts<'a> {
2110 #[builder(setter(into, strip_option), default)]
2112 pub expand: Option<bool>,
2113 #[builder(setter(into, strip_option), default)]
2117 pub owner: Option<&'a str>,
2118}
2119#[derive(Builder, Debug, PartialEq)]
2120pub struct ContainerWithMountedFileOpts<'a> {
2121 #[builder(setter(into, strip_option), default)]
2123 pub expand: Option<bool>,
2124 #[builder(setter(into, strip_option), default)]
2128 pub owner: Option<&'a str>,
2129}
2130#[derive(Builder, Debug, PartialEq)]
2131pub struct ContainerWithMountedSecretOpts<'a> {
2132 #[builder(setter(into, strip_option), default)]
2134 pub expand: Option<bool>,
2135 #[builder(setter(into, strip_option), default)]
2138 pub mode: Option<isize>,
2139 #[builder(setter(into, strip_option), default)]
2143 pub owner: Option<&'a str>,
2144}
2145#[derive(Builder, Debug, PartialEq)]
2146pub struct ContainerWithMountedTempOpts {
2147 #[builder(setter(into, strip_option), default)]
2149 pub expand: Option<bool>,
2150 #[builder(setter(into, strip_option), default)]
2152 pub size: Option<isize>,
2153}
2154#[derive(Builder, Debug, PartialEq)]
2155pub struct ContainerWithNewFileOpts<'a> {
2156 #[builder(setter(into, strip_option), default)]
2158 pub expand: Option<bool>,
2159 #[builder(setter(into, strip_option), default)]
2163 pub owner: Option<&'a str>,
2164 #[builder(setter(into, strip_option), default)]
2166 pub permissions: Option<isize>,
2167}
2168#[derive(Builder, Debug, PartialEq)]
2169pub struct ContainerWithSymlinkOpts {
2170 #[builder(setter(into, strip_option), default)]
2172 pub expand: Option<bool>,
2173}
2174#[derive(Builder, Debug, PartialEq)]
2175pub struct ContainerWithUnixSocketOpts<'a> {
2176 #[builder(setter(into, strip_option), default)]
2178 pub expand: Option<bool>,
2179 #[builder(setter(into, strip_option), default)]
2183 pub owner: Option<&'a str>,
2184}
2185#[derive(Builder, Debug, PartialEq)]
2186pub struct ContainerWithWorkdirOpts {
2187 #[builder(setter(into, strip_option), default)]
2189 pub expand: Option<bool>,
2190}
2191#[derive(Builder, Debug, PartialEq)]
2192pub struct ContainerWithoutDirectoryOpts {
2193 #[builder(setter(into, strip_option), default)]
2195 pub expand: Option<bool>,
2196}
2197#[derive(Builder, Debug, PartialEq)]
2198pub struct ContainerWithoutEntrypointOpts {
2199 #[builder(setter(into, strip_option), default)]
2201 pub keep_default_args: Option<bool>,
2202}
2203#[derive(Builder, Debug, PartialEq)]
2204pub struct ContainerWithoutExposedPortOpts {
2205 #[builder(setter(into, strip_option), default)]
2207 pub protocol: Option<NetworkProtocol>,
2208}
2209#[derive(Builder, Debug, PartialEq)]
2210pub struct ContainerWithoutFileOpts {
2211 #[builder(setter(into, strip_option), default)]
2213 pub expand: Option<bool>,
2214}
2215#[derive(Builder, Debug, PartialEq)]
2216pub struct ContainerWithoutFilesOpts {
2217 #[builder(setter(into, strip_option), default)]
2219 pub expand: Option<bool>,
2220}
2221#[derive(Builder, Debug, PartialEq)]
2222pub struct ContainerWithoutMountOpts {
2223 #[builder(setter(into, strip_option), default)]
2225 pub expand: Option<bool>,
2226}
2227#[derive(Builder, Debug, PartialEq)]
2228pub struct ContainerWithoutUnixSocketOpts {
2229 #[builder(setter(into, strip_option), default)]
2231 pub expand: Option<bool>,
2232}
2233impl Container {
2234 pub fn as_service(&self) -> Service {
2241 let query = self.selection.select("asService");
2242 Service {
2243 proc: self.proc.clone(),
2244 selection: query,
2245 graphql_client: self.graphql_client.clone(),
2246 }
2247 }
2248 pub fn as_service_opts<'a>(&self, opts: ContainerAsServiceOpts<'a>) -> Service {
2255 let mut query = self.selection.select("asService");
2256 if let Some(args) = opts.args {
2257 query = query.arg("args", args);
2258 }
2259 if let Some(use_entrypoint) = opts.use_entrypoint {
2260 query = query.arg("useEntrypoint", use_entrypoint);
2261 }
2262 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
2263 query = query.arg(
2264 "experimentalPrivilegedNesting",
2265 experimental_privileged_nesting,
2266 );
2267 }
2268 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
2269 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
2270 }
2271 if let Some(expand) = opts.expand {
2272 query = query.arg("expand", expand);
2273 }
2274 if let Some(no_init) = opts.no_init {
2275 query = query.arg("noInit", no_init);
2276 }
2277 Service {
2278 proc: self.proc.clone(),
2279 selection: query,
2280 graphql_client: self.graphql_client.clone(),
2281 }
2282 }
2283 pub fn as_tarball(&self) -> File {
2289 let query = self.selection.select("asTarball");
2290 File {
2291 proc: self.proc.clone(),
2292 selection: query,
2293 graphql_client: self.graphql_client.clone(),
2294 }
2295 }
2296 pub fn as_tarball_opts(&self, opts: ContainerAsTarballOpts) -> File {
2302 let mut query = self.selection.select("asTarball");
2303 if let Some(platform_variants) = opts.platform_variants {
2304 query = query.arg("platformVariants", platform_variants);
2305 }
2306 if let Some(forced_compression) = opts.forced_compression {
2307 query = query.arg("forcedCompression", forced_compression);
2308 }
2309 if let Some(media_types) = opts.media_types {
2310 query = query.arg("mediaTypes", media_types);
2311 }
2312 File {
2313 proc: self.proc.clone(),
2314 selection: query,
2315 graphql_client: self.graphql_client.clone(),
2316 }
2317 }
2318 pub fn build(&self, context: impl IntoID<DirectoryId>) -> Container {
2325 let mut query = self.selection.select("build");
2326 query = query.arg_lazy(
2327 "context",
2328 Box::new(move || {
2329 let context = context.clone();
2330 Box::pin(async move { context.into_id().await.unwrap().quote() })
2331 }),
2332 );
2333 Container {
2334 proc: self.proc.clone(),
2335 selection: query,
2336 graphql_client: self.graphql_client.clone(),
2337 }
2338 }
2339 pub fn build_opts<'a>(
2346 &self,
2347 context: impl IntoID<DirectoryId>,
2348 opts: ContainerBuildOpts<'a>,
2349 ) -> Container {
2350 let mut query = self.selection.select("build");
2351 query = query.arg_lazy(
2352 "context",
2353 Box::new(move || {
2354 let context = context.clone();
2355 Box::pin(async move { context.into_id().await.unwrap().quote() })
2356 }),
2357 );
2358 if let Some(dockerfile) = opts.dockerfile {
2359 query = query.arg("dockerfile", dockerfile);
2360 }
2361 if let Some(target) = opts.target {
2362 query = query.arg("target", target);
2363 }
2364 if let Some(build_args) = opts.build_args {
2365 query = query.arg("buildArgs", build_args);
2366 }
2367 if let Some(secrets) = opts.secrets {
2368 query = query.arg("secrets", secrets);
2369 }
2370 if let Some(no_init) = opts.no_init {
2371 query = query.arg("noInit", no_init);
2372 }
2373 Container {
2374 proc: self.proc.clone(),
2375 selection: query,
2376 graphql_client: self.graphql_client.clone(),
2377 }
2378 }
2379 pub async fn default_args(&self) -> Result<Vec<String>, DaggerError> {
2381 let query = self.selection.select("defaultArgs");
2382 query.execute(self.graphql_client.clone()).await
2383 }
2384 pub fn directory(&self, path: impl Into<String>) -> Directory {
2392 let mut query = self.selection.select("directory");
2393 query = query.arg("path", path.into());
2394 Directory {
2395 proc: self.proc.clone(),
2396 selection: query,
2397 graphql_client: self.graphql_client.clone(),
2398 }
2399 }
2400 pub fn directory_opts(
2408 &self,
2409 path: impl Into<String>,
2410 opts: ContainerDirectoryOpts,
2411 ) -> Directory {
2412 let mut query = self.selection.select("directory");
2413 query = query.arg("path", path.into());
2414 if let Some(expand) = opts.expand {
2415 query = query.arg("expand", expand);
2416 }
2417 Directory {
2418 proc: self.proc.clone(),
2419 selection: query,
2420 graphql_client: self.graphql_client.clone(),
2421 }
2422 }
2423 pub async fn entrypoint(&self) -> Result<Vec<String>, DaggerError> {
2425 let query = self.selection.select("entrypoint");
2426 query.execute(self.graphql_client.clone()).await
2427 }
2428 pub async fn env_variable(&self, name: impl Into<String>) -> Result<String, DaggerError> {
2434 let mut query = self.selection.select("envVariable");
2435 query = query.arg("name", name.into());
2436 query.execute(self.graphql_client.clone()).await
2437 }
2438 pub fn env_variables(&self) -> Vec<EnvVariable> {
2440 let query = self.selection.select("envVariables");
2441 vec![EnvVariable {
2442 proc: self.proc.clone(),
2443 selection: query,
2444 graphql_client: self.graphql_client.clone(),
2445 }]
2446 }
2447 pub async fn exit_code(&self) -> Result<isize, DaggerError> {
2450 let query = self.selection.select("exitCode");
2451 query.execute(self.graphql_client.clone()).await
2452 }
2453 pub fn experimental_with_all_gp_us(&self) -> Container {
2457 let query = self.selection.select("experimentalWithAllGPUs");
2458 Container {
2459 proc: self.proc.clone(),
2460 selection: query,
2461 graphql_client: self.graphql_client.clone(),
2462 }
2463 }
2464 pub fn experimental_with_gpu(&self, devices: Vec<impl Into<String>>) -> Container {
2472 let mut query = self.selection.select("experimentalWithGPU");
2473 query = query.arg(
2474 "devices",
2475 devices
2476 .into_iter()
2477 .map(|i| i.into())
2478 .collect::<Vec<String>>(),
2479 );
2480 Container {
2481 proc: self.proc.clone(),
2482 selection: query,
2483 graphql_client: self.graphql_client.clone(),
2484 }
2485 }
2486 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
2496 let mut query = self.selection.select("export");
2497 query = query.arg("path", path.into());
2498 query.execute(self.graphql_client.clone()).await
2499 }
2500 pub async fn export_opts(
2510 &self,
2511 path: impl Into<String>,
2512 opts: ContainerExportOpts,
2513 ) -> Result<String, DaggerError> {
2514 let mut query = self.selection.select("export");
2515 query = query.arg("path", path.into());
2516 if let Some(platform_variants) = opts.platform_variants {
2517 query = query.arg("platformVariants", platform_variants);
2518 }
2519 if let Some(forced_compression) = opts.forced_compression {
2520 query = query.arg("forcedCompression", forced_compression);
2521 }
2522 if let Some(media_types) = opts.media_types {
2523 query = query.arg("mediaTypes", media_types);
2524 }
2525 if let Some(expand) = opts.expand {
2526 query = query.arg("expand", expand);
2527 }
2528 query.execute(self.graphql_client.clone()).await
2529 }
2530 pub fn exposed_ports(&self) -> Vec<Port> {
2533 let query = self.selection.select("exposedPorts");
2534 vec![Port {
2535 proc: self.proc.clone(),
2536 selection: query,
2537 graphql_client: self.graphql_client.clone(),
2538 }]
2539 }
2540 pub fn file(&self, path: impl Into<String>) -> File {
2548 let mut query = self.selection.select("file");
2549 query = query.arg("path", path.into());
2550 File {
2551 proc: self.proc.clone(),
2552 selection: query,
2553 graphql_client: self.graphql_client.clone(),
2554 }
2555 }
2556 pub fn file_opts(&self, path: impl Into<String>, opts: ContainerFileOpts) -> File {
2564 let mut query = self.selection.select("file");
2565 query = query.arg("path", path.into());
2566 if let Some(expand) = opts.expand {
2567 query = query.arg("expand", expand);
2568 }
2569 File {
2570 proc: self.proc.clone(),
2571 selection: query,
2572 graphql_client: self.graphql_client.clone(),
2573 }
2574 }
2575 pub fn from(&self, address: impl Into<String>) -> Container {
2581 let mut query = self.selection.select("from");
2582 query = query.arg("address", address.into());
2583 Container {
2584 proc: self.proc.clone(),
2585 selection: query,
2586 graphql_client: self.graphql_client.clone(),
2587 }
2588 }
2589 pub async fn id(&self) -> Result<ContainerId, DaggerError> {
2591 let query = self.selection.select("id");
2592 query.execute(self.graphql_client.clone()).await
2593 }
2594 pub async fn image_ref(&self) -> Result<String, DaggerError> {
2596 let query = self.selection.select("imageRef");
2597 query.execute(self.graphql_client.clone()).await
2598 }
2599 pub fn import(&self, source: impl IntoID<FileId>) -> Container {
2606 let mut query = self.selection.select("import");
2607 query = query.arg_lazy(
2608 "source",
2609 Box::new(move || {
2610 let source = source.clone();
2611 Box::pin(async move { source.into_id().await.unwrap().quote() })
2612 }),
2613 );
2614 Container {
2615 proc: self.proc.clone(),
2616 selection: query,
2617 graphql_client: self.graphql_client.clone(),
2618 }
2619 }
2620 pub fn import_opts<'a>(
2627 &self,
2628 source: impl IntoID<FileId>,
2629 opts: ContainerImportOpts<'a>,
2630 ) -> Container {
2631 let mut query = self.selection.select("import");
2632 query = query.arg_lazy(
2633 "source",
2634 Box::new(move || {
2635 let source = source.clone();
2636 Box::pin(async move { source.into_id().await.unwrap().quote() })
2637 }),
2638 );
2639 if let Some(tag) = opts.tag {
2640 query = query.arg("tag", tag);
2641 }
2642 Container {
2643 proc: self.proc.clone(),
2644 selection: query,
2645 graphql_client: self.graphql_client.clone(),
2646 }
2647 }
2648 pub async fn label(&self, name: impl Into<String>) -> Result<String, DaggerError> {
2654 let mut query = self.selection.select("label");
2655 query = query.arg("name", name.into());
2656 query.execute(self.graphql_client.clone()).await
2657 }
2658 pub fn labels(&self) -> Vec<Label> {
2660 let query = self.selection.select("labels");
2661 vec![Label {
2662 proc: self.proc.clone(),
2663 selection: query,
2664 graphql_client: self.graphql_client.clone(),
2665 }]
2666 }
2667 pub async fn mounts(&self) -> Result<Vec<String>, DaggerError> {
2669 let query = self.selection.select("mounts");
2670 query.execute(self.graphql_client.clone()).await
2671 }
2672 pub async fn platform(&self) -> Result<Platform, DaggerError> {
2674 let query = self.selection.select("platform");
2675 query.execute(self.graphql_client.clone()).await
2676 }
2677 pub async fn publish(&self, address: impl Into<String>) -> Result<String, DaggerError> {
2687 let mut query = self.selection.select("publish");
2688 query = query.arg("address", address.into());
2689 query.execute(self.graphql_client.clone()).await
2690 }
2691 pub async fn publish_opts(
2701 &self,
2702 address: impl Into<String>,
2703 opts: ContainerPublishOpts,
2704 ) -> Result<String, DaggerError> {
2705 let mut query = self.selection.select("publish");
2706 query = query.arg("address", address.into());
2707 if let Some(platform_variants) = opts.platform_variants {
2708 query = query.arg("platformVariants", platform_variants);
2709 }
2710 if let Some(forced_compression) = opts.forced_compression {
2711 query = query.arg("forcedCompression", forced_compression);
2712 }
2713 if let Some(media_types) = opts.media_types {
2714 query = query.arg("mediaTypes", media_types);
2715 }
2716 query.execute(self.graphql_client.clone()).await
2717 }
2718 pub fn rootfs(&self) -> Directory {
2720 let query = self.selection.select("rootfs");
2721 Directory {
2722 proc: self.proc.clone(),
2723 selection: query,
2724 graphql_client: self.graphql_client.clone(),
2725 }
2726 }
2727 pub async fn stderr(&self) -> Result<String, DaggerError> {
2730 let query = self.selection.select("stderr");
2731 query.execute(self.graphql_client.clone()).await
2732 }
2733 pub async fn stdout(&self) -> Result<String, DaggerError> {
2736 let query = self.selection.select("stdout");
2737 query.execute(self.graphql_client.clone()).await
2738 }
2739 pub async fn sync(&self) -> Result<ContainerId, DaggerError> {
2742 let query = self.selection.select("sync");
2743 query.execute(self.graphql_client.clone()).await
2744 }
2745 pub fn terminal(&self) -> Container {
2751 let query = self.selection.select("terminal");
2752 Container {
2753 proc: self.proc.clone(),
2754 selection: query,
2755 graphql_client: self.graphql_client.clone(),
2756 }
2757 }
2758 pub fn terminal_opts<'a>(&self, opts: ContainerTerminalOpts<'a>) -> Container {
2764 let mut query = self.selection.select("terminal");
2765 if let Some(cmd) = opts.cmd {
2766 query = query.arg("cmd", cmd);
2767 }
2768 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
2769 query = query.arg(
2770 "experimentalPrivilegedNesting",
2771 experimental_privileged_nesting,
2772 );
2773 }
2774 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
2775 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
2776 }
2777 Container {
2778 proc: self.proc.clone(),
2779 selection: query,
2780 graphql_client: self.graphql_client.clone(),
2781 }
2782 }
2783 pub async fn up(&self) -> Result<Void, DaggerError> {
2790 let query = self.selection.select("up");
2791 query.execute(self.graphql_client.clone()).await
2792 }
2793 pub async fn up_opts<'a>(&self, opts: ContainerUpOpts<'a>) -> Result<Void, DaggerError> {
2800 let mut query = self.selection.select("up");
2801 if let Some(random) = opts.random {
2802 query = query.arg("random", random);
2803 }
2804 if let Some(ports) = opts.ports {
2805 query = query.arg("ports", ports);
2806 }
2807 if let Some(args) = opts.args {
2808 query = query.arg("args", args);
2809 }
2810 if let Some(use_entrypoint) = opts.use_entrypoint {
2811 query = query.arg("useEntrypoint", use_entrypoint);
2812 }
2813 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
2814 query = query.arg(
2815 "experimentalPrivilegedNesting",
2816 experimental_privileged_nesting,
2817 );
2818 }
2819 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
2820 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
2821 }
2822 if let Some(expand) = opts.expand {
2823 query = query.arg("expand", expand);
2824 }
2825 if let Some(no_init) = opts.no_init {
2826 query = query.arg("noInit", no_init);
2827 }
2828 query.execute(self.graphql_client.clone()).await
2829 }
2830 pub async fn user(&self) -> Result<String, DaggerError> {
2832 let query = self.selection.select("user");
2833 query.execute(self.graphql_client.clone()).await
2834 }
2835 pub fn with_annotation(&self, name: impl Into<String>, value: impl Into<String>) -> Container {
2842 let mut query = self.selection.select("withAnnotation");
2843 query = query.arg("name", name.into());
2844 query = query.arg("value", value.into());
2845 Container {
2846 proc: self.proc.clone(),
2847 selection: query,
2848 graphql_client: self.graphql_client.clone(),
2849 }
2850 }
2851 pub fn with_default_args(&self, args: Vec<impl Into<String>>) -> Container {
2857 let mut query = self.selection.select("withDefaultArgs");
2858 query = query.arg(
2859 "args",
2860 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
2861 );
2862 Container {
2863 proc: self.proc.clone(),
2864 selection: query,
2865 graphql_client: self.graphql_client.clone(),
2866 }
2867 }
2868 pub fn with_default_terminal_cmd(&self, args: Vec<impl Into<String>>) -> Container {
2875 let mut query = self.selection.select("withDefaultTerminalCmd");
2876 query = query.arg(
2877 "args",
2878 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
2879 );
2880 Container {
2881 proc: self.proc.clone(),
2882 selection: query,
2883 graphql_client: self.graphql_client.clone(),
2884 }
2885 }
2886 pub fn with_default_terminal_cmd_opts(
2893 &self,
2894 args: Vec<impl Into<String>>,
2895 opts: ContainerWithDefaultTerminalCmdOpts,
2896 ) -> Container {
2897 let mut query = self.selection.select("withDefaultTerminalCmd");
2898 query = query.arg(
2899 "args",
2900 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
2901 );
2902 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
2903 query = query.arg(
2904 "experimentalPrivilegedNesting",
2905 experimental_privileged_nesting,
2906 );
2907 }
2908 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
2909 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
2910 }
2911 Container {
2912 proc: self.proc.clone(),
2913 selection: query,
2914 graphql_client: self.graphql_client.clone(),
2915 }
2916 }
2917 pub fn with_directory(
2925 &self,
2926 path: impl Into<String>,
2927 directory: impl IntoID<DirectoryId>,
2928 ) -> Container {
2929 let mut query = self.selection.select("withDirectory");
2930 query = query.arg("path", path.into());
2931 query = query.arg_lazy(
2932 "directory",
2933 Box::new(move || {
2934 let directory = directory.clone();
2935 Box::pin(async move { directory.into_id().await.unwrap().quote() })
2936 }),
2937 );
2938 Container {
2939 proc: self.proc.clone(),
2940 selection: query,
2941 graphql_client: self.graphql_client.clone(),
2942 }
2943 }
2944 pub fn with_directory_opts<'a>(
2952 &self,
2953 path: impl Into<String>,
2954 directory: impl IntoID<DirectoryId>,
2955 opts: ContainerWithDirectoryOpts<'a>,
2956 ) -> Container {
2957 let mut query = self.selection.select("withDirectory");
2958 query = query.arg("path", path.into());
2959 query = query.arg_lazy(
2960 "directory",
2961 Box::new(move || {
2962 let directory = directory.clone();
2963 Box::pin(async move { directory.into_id().await.unwrap().quote() })
2964 }),
2965 );
2966 if let Some(exclude) = opts.exclude {
2967 query = query.arg("exclude", exclude);
2968 }
2969 if let Some(include) = opts.include {
2970 query = query.arg("include", include);
2971 }
2972 if let Some(owner) = opts.owner {
2973 query = query.arg("owner", owner);
2974 }
2975 if let Some(expand) = opts.expand {
2976 query = query.arg("expand", expand);
2977 }
2978 Container {
2979 proc: self.proc.clone(),
2980 selection: query,
2981 graphql_client: self.graphql_client.clone(),
2982 }
2983 }
2984 pub fn with_entrypoint(&self, args: Vec<impl Into<String>>) -> Container {
2991 let mut query = self.selection.select("withEntrypoint");
2992 query = query.arg(
2993 "args",
2994 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
2995 );
2996 Container {
2997 proc: self.proc.clone(),
2998 selection: query,
2999 graphql_client: self.graphql_client.clone(),
3000 }
3001 }
3002 pub fn with_entrypoint_opts(
3009 &self,
3010 args: Vec<impl Into<String>>,
3011 opts: ContainerWithEntrypointOpts,
3012 ) -> Container {
3013 let mut query = self.selection.select("withEntrypoint");
3014 query = query.arg(
3015 "args",
3016 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
3017 );
3018 if let Some(keep_default_args) = opts.keep_default_args {
3019 query = query.arg("keepDefaultArgs", keep_default_args);
3020 }
3021 Container {
3022 proc: self.proc.clone(),
3023 selection: query,
3024 graphql_client: self.graphql_client.clone(),
3025 }
3026 }
3027 pub fn with_env_variable(
3035 &self,
3036 name: impl Into<String>,
3037 value: impl Into<String>,
3038 ) -> Container {
3039 let mut query = self.selection.select("withEnvVariable");
3040 query = query.arg("name", name.into());
3041 query = query.arg("value", value.into());
3042 Container {
3043 proc: self.proc.clone(),
3044 selection: query,
3045 graphql_client: self.graphql_client.clone(),
3046 }
3047 }
3048 pub fn with_env_variable_opts(
3056 &self,
3057 name: impl Into<String>,
3058 value: impl Into<String>,
3059 opts: ContainerWithEnvVariableOpts,
3060 ) -> Container {
3061 let mut query = self.selection.select("withEnvVariable");
3062 query = query.arg("name", name.into());
3063 query = query.arg("value", value.into());
3064 if let Some(expand) = opts.expand {
3065 query = query.arg("expand", expand);
3066 }
3067 Container {
3068 proc: self.proc.clone(),
3069 selection: query,
3070 graphql_client: self.graphql_client.clone(),
3071 }
3072 }
3073 pub fn with_exec(&self, args: Vec<impl Into<String>>) -> Container {
3084 let mut query = self.selection.select("withExec");
3085 query = query.arg(
3086 "args",
3087 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
3088 );
3089 Container {
3090 proc: self.proc.clone(),
3091 selection: query,
3092 graphql_client: self.graphql_client.clone(),
3093 }
3094 }
3095 pub fn with_exec_opts<'a>(
3106 &self,
3107 args: Vec<impl Into<String>>,
3108 opts: ContainerWithExecOpts<'a>,
3109 ) -> Container {
3110 let mut query = self.selection.select("withExec");
3111 query = query.arg(
3112 "args",
3113 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
3114 );
3115 if let Some(use_entrypoint) = opts.use_entrypoint {
3116 query = query.arg("useEntrypoint", use_entrypoint);
3117 }
3118 if let Some(stdin) = opts.stdin {
3119 query = query.arg("stdin", stdin);
3120 }
3121 if let Some(redirect_stdout) = opts.redirect_stdout {
3122 query = query.arg("redirectStdout", redirect_stdout);
3123 }
3124 if let Some(redirect_stderr) = opts.redirect_stderr {
3125 query = query.arg("redirectStderr", redirect_stderr);
3126 }
3127 if let Some(expect) = opts.expect {
3128 query = query.arg("expect", expect);
3129 }
3130 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
3131 query = query.arg(
3132 "experimentalPrivilegedNesting",
3133 experimental_privileged_nesting,
3134 );
3135 }
3136 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
3137 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
3138 }
3139 if let Some(expand) = opts.expand {
3140 query = query.arg("expand", expand);
3141 }
3142 if let Some(no_init) = opts.no_init {
3143 query = query.arg("noInit", no_init);
3144 }
3145 Container {
3146 proc: self.proc.clone(),
3147 selection: query,
3148 graphql_client: self.graphql_client.clone(),
3149 }
3150 }
3151 pub fn with_exposed_port(&self, port: isize) -> Container {
3161 let mut query = self.selection.select("withExposedPort");
3162 query = query.arg("port", port);
3163 Container {
3164 proc: self.proc.clone(),
3165 selection: query,
3166 graphql_client: self.graphql_client.clone(),
3167 }
3168 }
3169 pub fn with_exposed_port_opts<'a>(
3179 &self,
3180 port: isize,
3181 opts: ContainerWithExposedPortOpts<'a>,
3182 ) -> Container {
3183 let mut query = self.selection.select("withExposedPort");
3184 query = query.arg("port", port);
3185 if let Some(protocol) = opts.protocol {
3186 query = query.arg("protocol", protocol);
3187 }
3188 if let Some(description) = opts.description {
3189 query = query.arg("description", description);
3190 }
3191 if let Some(experimental_skip_healthcheck) = opts.experimental_skip_healthcheck {
3192 query = query.arg("experimentalSkipHealthcheck", experimental_skip_healthcheck);
3193 }
3194 Container {
3195 proc: self.proc.clone(),
3196 selection: query,
3197 graphql_client: self.graphql_client.clone(),
3198 }
3199 }
3200 pub fn with_file(&self, path: impl Into<String>, source: impl IntoID<FileId>) -> Container {
3208 let mut query = self.selection.select("withFile");
3209 query = query.arg("path", path.into());
3210 query = query.arg_lazy(
3211 "source",
3212 Box::new(move || {
3213 let source = source.clone();
3214 Box::pin(async move { source.into_id().await.unwrap().quote() })
3215 }),
3216 );
3217 Container {
3218 proc: self.proc.clone(),
3219 selection: query,
3220 graphql_client: self.graphql_client.clone(),
3221 }
3222 }
3223 pub fn with_file_opts<'a>(
3231 &self,
3232 path: impl Into<String>,
3233 source: impl IntoID<FileId>,
3234 opts: ContainerWithFileOpts<'a>,
3235 ) -> Container {
3236 let mut query = self.selection.select("withFile");
3237 query = query.arg("path", path.into());
3238 query = query.arg_lazy(
3239 "source",
3240 Box::new(move || {
3241 let source = source.clone();
3242 Box::pin(async move { source.into_id().await.unwrap().quote() })
3243 }),
3244 );
3245 if let Some(permissions) = opts.permissions {
3246 query = query.arg("permissions", permissions);
3247 }
3248 if let Some(owner) = opts.owner {
3249 query = query.arg("owner", owner);
3250 }
3251 if let Some(expand) = opts.expand {
3252 query = query.arg("expand", expand);
3253 }
3254 Container {
3255 proc: self.proc.clone(),
3256 selection: query,
3257 graphql_client: self.graphql_client.clone(),
3258 }
3259 }
3260 pub fn with_files(&self, path: impl Into<String>, sources: Vec<FileId>) -> Container {
3268 let mut query = self.selection.select("withFiles");
3269 query = query.arg("path", path.into());
3270 query = query.arg("sources", sources);
3271 Container {
3272 proc: self.proc.clone(),
3273 selection: query,
3274 graphql_client: self.graphql_client.clone(),
3275 }
3276 }
3277 pub fn with_files_opts<'a>(
3285 &self,
3286 path: impl Into<String>,
3287 sources: Vec<FileId>,
3288 opts: ContainerWithFilesOpts<'a>,
3289 ) -> Container {
3290 let mut query = self.selection.select("withFiles");
3291 query = query.arg("path", path.into());
3292 query = query.arg("sources", sources);
3293 if let Some(permissions) = opts.permissions {
3294 query = query.arg("permissions", permissions);
3295 }
3296 if let Some(owner) = opts.owner {
3297 query = query.arg("owner", owner);
3298 }
3299 if let Some(expand) = opts.expand {
3300 query = query.arg("expand", expand);
3301 }
3302 Container {
3303 proc: self.proc.clone(),
3304 selection: query,
3305 graphql_client: self.graphql_client.clone(),
3306 }
3307 }
3308 pub fn with_label(&self, name: impl Into<String>, value: impl Into<String>) -> Container {
3315 let mut query = self.selection.select("withLabel");
3316 query = query.arg("name", name.into());
3317 query = query.arg("value", value.into());
3318 Container {
3319 proc: self.proc.clone(),
3320 selection: query,
3321 graphql_client: self.graphql_client.clone(),
3322 }
3323 }
3324 pub fn with_mounted_cache(
3332 &self,
3333 path: impl Into<String>,
3334 cache: impl IntoID<CacheVolumeId>,
3335 ) -> Container {
3336 let mut query = self.selection.select("withMountedCache");
3337 query = query.arg("path", path.into());
3338 query = query.arg_lazy(
3339 "cache",
3340 Box::new(move || {
3341 let cache = cache.clone();
3342 Box::pin(async move { cache.into_id().await.unwrap().quote() })
3343 }),
3344 );
3345 Container {
3346 proc: self.proc.clone(),
3347 selection: query,
3348 graphql_client: self.graphql_client.clone(),
3349 }
3350 }
3351 pub fn with_mounted_cache_opts<'a>(
3359 &self,
3360 path: impl Into<String>,
3361 cache: impl IntoID<CacheVolumeId>,
3362 opts: ContainerWithMountedCacheOpts<'a>,
3363 ) -> Container {
3364 let mut query = self.selection.select("withMountedCache");
3365 query = query.arg("path", path.into());
3366 query = query.arg_lazy(
3367 "cache",
3368 Box::new(move || {
3369 let cache = cache.clone();
3370 Box::pin(async move { cache.into_id().await.unwrap().quote() })
3371 }),
3372 );
3373 if let Some(source) = opts.source {
3374 query = query.arg("source", source);
3375 }
3376 if let Some(sharing) = opts.sharing {
3377 query = query.arg("sharing", sharing);
3378 }
3379 if let Some(owner) = opts.owner {
3380 query = query.arg("owner", owner);
3381 }
3382 if let Some(expand) = opts.expand {
3383 query = query.arg("expand", expand);
3384 }
3385 Container {
3386 proc: self.proc.clone(),
3387 selection: query,
3388 graphql_client: self.graphql_client.clone(),
3389 }
3390 }
3391 pub fn with_mounted_directory(
3399 &self,
3400 path: impl Into<String>,
3401 source: impl IntoID<DirectoryId>,
3402 ) -> Container {
3403 let mut query = self.selection.select("withMountedDirectory");
3404 query = query.arg("path", path.into());
3405 query = query.arg_lazy(
3406 "source",
3407 Box::new(move || {
3408 let source = source.clone();
3409 Box::pin(async move { source.into_id().await.unwrap().quote() })
3410 }),
3411 );
3412 Container {
3413 proc: self.proc.clone(),
3414 selection: query,
3415 graphql_client: self.graphql_client.clone(),
3416 }
3417 }
3418 pub fn with_mounted_directory_opts<'a>(
3426 &self,
3427 path: impl Into<String>,
3428 source: impl IntoID<DirectoryId>,
3429 opts: ContainerWithMountedDirectoryOpts<'a>,
3430 ) -> Container {
3431 let mut query = self.selection.select("withMountedDirectory");
3432 query = query.arg("path", path.into());
3433 query = query.arg_lazy(
3434 "source",
3435 Box::new(move || {
3436 let source = source.clone();
3437 Box::pin(async move { source.into_id().await.unwrap().quote() })
3438 }),
3439 );
3440 if let Some(owner) = opts.owner {
3441 query = query.arg("owner", owner);
3442 }
3443 if let Some(expand) = opts.expand {
3444 query = query.arg("expand", expand);
3445 }
3446 Container {
3447 proc: self.proc.clone(),
3448 selection: query,
3449 graphql_client: self.graphql_client.clone(),
3450 }
3451 }
3452 pub fn with_mounted_file(
3460 &self,
3461 path: impl Into<String>,
3462 source: impl IntoID<FileId>,
3463 ) -> Container {
3464 let mut query = self.selection.select("withMountedFile");
3465 query = query.arg("path", path.into());
3466 query = query.arg_lazy(
3467 "source",
3468 Box::new(move || {
3469 let source = source.clone();
3470 Box::pin(async move { source.into_id().await.unwrap().quote() })
3471 }),
3472 );
3473 Container {
3474 proc: self.proc.clone(),
3475 selection: query,
3476 graphql_client: self.graphql_client.clone(),
3477 }
3478 }
3479 pub fn with_mounted_file_opts<'a>(
3487 &self,
3488 path: impl Into<String>,
3489 source: impl IntoID<FileId>,
3490 opts: ContainerWithMountedFileOpts<'a>,
3491 ) -> Container {
3492 let mut query = self.selection.select("withMountedFile");
3493 query = query.arg("path", path.into());
3494 query = query.arg_lazy(
3495 "source",
3496 Box::new(move || {
3497 let source = source.clone();
3498 Box::pin(async move { source.into_id().await.unwrap().quote() })
3499 }),
3500 );
3501 if let Some(owner) = opts.owner {
3502 query = query.arg("owner", owner);
3503 }
3504 if let Some(expand) = opts.expand {
3505 query = query.arg("expand", expand);
3506 }
3507 Container {
3508 proc: self.proc.clone(),
3509 selection: query,
3510 graphql_client: self.graphql_client.clone(),
3511 }
3512 }
3513 pub fn with_mounted_secret(
3521 &self,
3522 path: impl Into<String>,
3523 source: impl IntoID<SecretId>,
3524 ) -> Container {
3525 let mut query = self.selection.select("withMountedSecret");
3526 query = query.arg("path", path.into());
3527 query = query.arg_lazy(
3528 "source",
3529 Box::new(move || {
3530 let source = source.clone();
3531 Box::pin(async move { source.into_id().await.unwrap().quote() })
3532 }),
3533 );
3534 Container {
3535 proc: self.proc.clone(),
3536 selection: query,
3537 graphql_client: self.graphql_client.clone(),
3538 }
3539 }
3540 pub fn with_mounted_secret_opts<'a>(
3548 &self,
3549 path: impl Into<String>,
3550 source: impl IntoID<SecretId>,
3551 opts: ContainerWithMountedSecretOpts<'a>,
3552 ) -> Container {
3553 let mut query = self.selection.select("withMountedSecret");
3554 query = query.arg("path", path.into());
3555 query = query.arg_lazy(
3556 "source",
3557 Box::new(move || {
3558 let source = source.clone();
3559 Box::pin(async move { source.into_id().await.unwrap().quote() })
3560 }),
3561 );
3562 if let Some(owner) = opts.owner {
3563 query = query.arg("owner", owner);
3564 }
3565 if let Some(mode) = opts.mode {
3566 query = query.arg("mode", mode);
3567 }
3568 if let Some(expand) = opts.expand {
3569 query = query.arg("expand", expand);
3570 }
3571 Container {
3572 proc: self.proc.clone(),
3573 selection: query,
3574 graphql_client: self.graphql_client.clone(),
3575 }
3576 }
3577 pub fn with_mounted_temp(&self, path: impl Into<String>) -> Container {
3584 let mut query = self.selection.select("withMountedTemp");
3585 query = query.arg("path", path.into());
3586 Container {
3587 proc: self.proc.clone(),
3588 selection: query,
3589 graphql_client: self.graphql_client.clone(),
3590 }
3591 }
3592 pub fn with_mounted_temp_opts(
3599 &self,
3600 path: impl Into<String>,
3601 opts: ContainerWithMountedTempOpts,
3602 ) -> Container {
3603 let mut query = self.selection.select("withMountedTemp");
3604 query = query.arg("path", path.into());
3605 if let Some(size) = opts.size {
3606 query = query.arg("size", size);
3607 }
3608 if let Some(expand) = opts.expand {
3609 query = query.arg("expand", expand);
3610 }
3611 Container {
3612 proc: self.proc.clone(),
3613 selection: query,
3614 graphql_client: self.graphql_client.clone(),
3615 }
3616 }
3617 pub fn with_new_file(&self, path: impl Into<String>, contents: impl Into<String>) -> Container {
3625 let mut query = self.selection.select("withNewFile");
3626 query = query.arg("path", path.into());
3627 query = query.arg("contents", contents.into());
3628 Container {
3629 proc: self.proc.clone(),
3630 selection: query,
3631 graphql_client: self.graphql_client.clone(),
3632 }
3633 }
3634 pub fn with_new_file_opts<'a>(
3642 &self,
3643 path: impl Into<String>,
3644 contents: impl Into<String>,
3645 opts: ContainerWithNewFileOpts<'a>,
3646 ) -> Container {
3647 let mut query = self.selection.select("withNewFile");
3648 query = query.arg("path", path.into());
3649 query = query.arg("contents", contents.into());
3650 if let Some(permissions) = opts.permissions {
3651 query = query.arg("permissions", permissions);
3652 }
3653 if let Some(owner) = opts.owner {
3654 query = query.arg("owner", owner);
3655 }
3656 if let Some(expand) = opts.expand {
3657 query = query.arg("expand", expand);
3658 }
3659 Container {
3660 proc: self.proc.clone(),
3661 selection: query,
3662 graphql_client: self.graphql_client.clone(),
3663 }
3664 }
3665 pub fn with_registry_auth(
3673 &self,
3674 address: impl Into<String>,
3675 username: impl Into<String>,
3676 secret: impl IntoID<SecretId>,
3677 ) -> Container {
3678 let mut query = self.selection.select("withRegistryAuth");
3679 query = query.arg("address", address.into());
3680 query = query.arg("username", username.into());
3681 query = query.arg_lazy(
3682 "secret",
3683 Box::new(move || {
3684 let secret = secret.clone();
3685 Box::pin(async move { secret.into_id().await.unwrap().quote() })
3686 }),
3687 );
3688 Container {
3689 proc: self.proc.clone(),
3690 selection: query,
3691 graphql_client: self.graphql_client.clone(),
3692 }
3693 }
3694 pub fn with_rootfs(&self, directory: impl IntoID<DirectoryId>) -> Container {
3700 let mut query = self.selection.select("withRootfs");
3701 query = query.arg_lazy(
3702 "directory",
3703 Box::new(move || {
3704 let directory = directory.clone();
3705 Box::pin(async move { directory.into_id().await.unwrap().quote() })
3706 }),
3707 );
3708 Container {
3709 proc: self.proc.clone(),
3710 selection: query,
3711 graphql_client: self.graphql_client.clone(),
3712 }
3713 }
3714 pub fn with_secret_variable(
3721 &self,
3722 name: impl Into<String>,
3723 secret: impl IntoID<SecretId>,
3724 ) -> Container {
3725 let mut query = self.selection.select("withSecretVariable");
3726 query = query.arg("name", name.into());
3727 query = query.arg_lazy(
3728 "secret",
3729 Box::new(move || {
3730 let secret = secret.clone();
3731 Box::pin(async move { secret.into_id().await.unwrap().quote() })
3732 }),
3733 );
3734 Container {
3735 proc: self.proc.clone(),
3736 selection: query,
3737 graphql_client: self.graphql_client.clone(),
3738 }
3739 }
3740 pub fn with_service_binding(
3750 &self,
3751 alias: impl Into<String>,
3752 service: impl IntoID<ServiceId>,
3753 ) -> Container {
3754 let mut query = self.selection.select("withServiceBinding");
3755 query = query.arg("alias", alias.into());
3756 query = query.arg_lazy(
3757 "service",
3758 Box::new(move || {
3759 let service = service.clone();
3760 Box::pin(async move { service.into_id().await.unwrap().quote() })
3761 }),
3762 );
3763 Container {
3764 proc: self.proc.clone(),
3765 selection: query,
3766 graphql_client: self.graphql_client.clone(),
3767 }
3768 }
3769 pub fn with_symlink(
3777 &self,
3778 target: impl Into<String>,
3779 link_name: impl Into<String>,
3780 ) -> Container {
3781 let mut query = self.selection.select("withSymlink");
3782 query = query.arg("target", target.into());
3783 query = query.arg("linkName", link_name.into());
3784 Container {
3785 proc: self.proc.clone(),
3786 selection: query,
3787 graphql_client: self.graphql_client.clone(),
3788 }
3789 }
3790 pub fn with_symlink_opts(
3798 &self,
3799 target: impl Into<String>,
3800 link_name: impl Into<String>,
3801 opts: ContainerWithSymlinkOpts,
3802 ) -> Container {
3803 let mut query = self.selection.select("withSymlink");
3804 query = query.arg("target", target.into());
3805 query = query.arg("linkName", link_name.into());
3806 if let Some(expand) = opts.expand {
3807 query = query.arg("expand", expand);
3808 }
3809 Container {
3810 proc: self.proc.clone(),
3811 selection: query,
3812 graphql_client: self.graphql_client.clone(),
3813 }
3814 }
3815 pub fn with_unix_socket(
3823 &self,
3824 path: impl Into<String>,
3825 source: impl IntoID<SocketId>,
3826 ) -> Container {
3827 let mut query = self.selection.select("withUnixSocket");
3828 query = query.arg("path", path.into());
3829 query = query.arg_lazy(
3830 "source",
3831 Box::new(move || {
3832 let source = source.clone();
3833 Box::pin(async move { source.into_id().await.unwrap().quote() })
3834 }),
3835 );
3836 Container {
3837 proc: self.proc.clone(),
3838 selection: query,
3839 graphql_client: self.graphql_client.clone(),
3840 }
3841 }
3842 pub fn with_unix_socket_opts<'a>(
3850 &self,
3851 path: impl Into<String>,
3852 source: impl IntoID<SocketId>,
3853 opts: ContainerWithUnixSocketOpts<'a>,
3854 ) -> Container {
3855 let mut query = self.selection.select("withUnixSocket");
3856 query = query.arg("path", path.into());
3857 query = query.arg_lazy(
3858 "source",
3859 Box::new(move || {
3860 let source = source.clone();
3861 Box::pin(async move { source.into_id().await.unwrap().quote() })
3862 }),
3863 );
3864 if let Some(owner) = opts.owner {
3865 query = query.arg("owner", owner);
3866 }
3867 if let Some(expand) = opts.expand {
3868 query = query.arg("expand", expand);
3869 }
3870 Container {
3871 proc: self.proc.clone(),
3872 selection: query,
3873 graphql_client: self.graphql_client.clone(),
3874 }
3875 }
3876 pub fn with_user(&self, name: impl Into<String>) -> Container {
3882 let mut query = self.selection.select("withUser");
3883 query = query.arg("name", name.into());
3884 Container {
3885 proc: self.proc.clone(),
3886 selection: query,
3887 graphql_client: self.graphql_client.clone(),
3888 }
3889 }
3890 pub fn with_workdir(&self, path: impl Into<String>) -> Container {
3897 let mut query = self.selection.select("withWorkdir");
3898 query = query.arg("path", path.into());
3899 Container {
3900 proc: self.proc.clone(),
3901 selection: query,
3902 graphql_client: self.graphql_client.clone(),
3903 }
3904 }
3905 pub fn with_workdir_opts(
3912 &self,
3913 path: impl Into<String>,
3914 opts: ContainerWithWorkdirOpts,
3915 ) -> Container {
3916 let mut query = self.selection.select("withWorkdir");
3917 query = query.arg("path", path.into());
3918 if let Some(expand) = opts.expand {
3919 query = query.arg("expand", expand);
3920 }
3921 Container {
3922 proc: self.proc.clone(),
3923 selection: query,
3924 graphql_client: self.graphql_client.clone(),
3925 }
3926 }
3927 pub fn without_annotation(&self, name: impl Into<String>) -> Container {
3933 let mut query = self.selection.select("withoutAnnotation");
3934 query = query.arg("name", name.into());
3935 Container {
3936 proc: self.proc.clone(),
3937 selection: query,
3938 graphql_client: self.graphql_client.clone(),
3939 }
3940 }
3941 pub fn without_default_args(&self) -> Container {
3943 let query = self.selection.select("withoutDefaultArgs");
3944 Container {
3945 proc: self.proc.clone(),
3946 selection: query,
3947 graphql_client: self.graphql_client.clone(),
3948 }
3949 }
3950 pub fn without_directory(&self, path: impl Into<String>) -> Container {
3957 let mut query = self.selection.select("withoutDirectory");
3958 query = query.arg("path", path.into());
3959 Container {
3960 proc: self.proc.clone(),
3961 selection: query,
3962 graphql_client: self.graphql_client.clone(),
3963 }
3964 }
3965 pub fn without_directory_opts(
3972 &self,
3973 path: impl Into<String>,
3974 opts: ContainerWithoutDirectoryOpts,
3975 ) -> Container {
3976 let mut query = self.selection.select("withoutDirectory");
3977 query = query.arg("path", path.into());
3978 if let Some(expand) = opts.expand {
3979 query = query.arg("expand", expand);
3980 }
3981 Container {
3982 proc: self.proc.clone(),
3983 selection: query,
3984 graphql_client: self.graphql_client.clone(),
3985 }
3986 }
3987 pub fn without_entrypoint(&self) -> Container {
3993 let query = self.selection.select("withoutEntrypoint");
3994 Container {
3995 proc: self.proc.clone(),
3996 selection: query,
3997 graphql_client: self.graphql_client.clone(),
3998 }
3999 }
4000 pub fn without_entrypoint_opts(&self, opts: ContainerWithoutEntrypointOpts) -> Container {
4006 let mut query = self.selection.select("withoutEntrypoint");
4007 if let Some(keep_default_args) = opts.keep_default_args {
4008 query = query.arg("keepDefaultArgs", keep_default_args);
4009 }
4010 Container {
4011 proc: self.proc.clone(),
4012 selection: query,
4013 graphql_client: self.graphql_client.clone(),
4014 }
4015 }
4016 pub fn without_env_variable(&self, name: impl Into<String>) -> Container {
4022 let mut query = self.selection.select("withoutEnvVariable");
4023 query = query.arg("name", name.into());
4024 Container {
4025 proc: self.proc.clone(),
4026 selection: query,
4027 graphql_client: self.graphql_client.clone(),
4028 }
4029 }
4030 pub fn without_exposed_port(&self, port: isize) -> Container {
4037 let mut query = self.selection.select("withoutExposedPort");
4038 query = query.arg("port", port);
4039 Container {
4040 proc: self.proc.clone(),
4041 selection: query,
4042 graphql_client: self.graphql_client.clone(),
4043 }
4044 }
4045 pub fn without_exposed_port_opts(
4052 &self,
4053 port: isize,
4054 opts: ContainerWithoutExposedPortOpts,
4055 ) -> Container {
4056 let mut query = self.selection.select("withoutExposedPort");
4057 query = query.arg("port", port);
4058 if let Some(protocol) = opts.protocol {
4059 query = query.arg("protocol", protocol);
4060 }
4061 Container {
4062 proc: self.proc.clone(),
4063 selection: query,
4064 graphql_client: self.graphql_client.clone(),
4065 }
4066 }
4067 pub fn without_file(&self, path: impl Into<String>) -> Container {
4074 let mut query = self.selection.select("withoutFile");
4075 query = query.arg("path", path.into());
4076 Container {
4077 proc: self.proc.clone(),
4078 selection: query,
4079 graphql_client: self.graphql_client.clone(),
4080 }
4081 }
4082 pub fn without_file_opts(
4089 &self,
4090 path: impl Into<String>,
4091 opts: ContainerWithoutFileOpts,
4092 ) -> Container {
4093 let mut query = self.selection.select("withoutFile");
4094 query = query.arg("path", path.into());
4095 if let Some(expand) = opts.expand {
4096 query = query.arg("expand", expand);
4097 }
4098 Container {
4099 proc: self.proc.clone(),
4100 selection: query,
4101 graphql_client: self.graphql_client.clone(),
4102 }
4103 }
4104 pub fn without_files(&self, paths: Vec<impl Into<String>>) -> Container {
4111 let mut query = self.selection.select("withoutFiles");
4112 query = query.arg(
4113 "paths",
4114 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
4115 );
4116 Container {
4117 proc: self.proc.clone(),
4118 selection: query,
4119 graphql_client: self.graphql_client.clone(),
4120 }
4121 }
4122 pub fn without_files_opts(
4129 &self,
4130 paths: Vec<impl Into<String>>,
4131 opts: ContainerWithoutFilesOpts,
4132 ) -> Container {
4133 let mut query = self.selection.select("withoutFiles");
4134 query = query.arg(
4135 "paths",
4136 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
4137 );
4138 if let Some(expand) = opts.expand {
4139 query = query.arg("expand", expand);
4140 }
4141 Container {
4142 proc: self.proc.clone(),
4143 selection: query,
4144 graphql_client: self.graphql_client.clone(),
4145 }
4146 }
4147 pub fn without_label(&self, name: impl Into<String>) -> Container {
4153 let mut query = self.selection.select("withoutLabel");
4154 query = query.arg("name", name.into());
4155 Container {
4156 proc: self.proc.clone(),
4157 selection: query,
4158 graphql_client: self.graphql_client.clone(),
4159 }
4160 }
4161 pub fn without_mount(&self, path: impl Into<String>) -> Container {
4168 let mut query = self.selection.select("withoutMount");
4169 query = query.arg("path", path.into());
4170 Container {
4171 proc: self.proc.clone(),
4172 selection: query,
4173 graphql_client: self.graphql_client.clone(),
4174 }
4175 }
4176 pub fn without_mount_opts(
4183 &self,
4184 path: impl Into<String>,
4185 opts: ContainerWithoutMountOpts,
4186 ) -> Container {
4187 let mut query = self.selection.select("withoutMount");
4188 query = query.arg("path", path.into());
4189 if let Some(expand) = opts.expand {
4190 query = query.arg("expand", expand);
4191 }
4192 Container {
4193 proc: self.proc.clone(),
4194 selection: query,
4195 graphql_client: self.graphql_client.clone(),
4196 }
4197 }
4198 pub fn without_registry_auth(&self, address: impl Into<String>) -> Container {
4206 let mut query = self.selection.select("withoutRegistryAuth");
4207 query = query.arg("address", address.into());
4208 Container {
4209 proc: self.proc.clone(),
4210 selection: query,
4211 graphql_client: self.graphql_client.clone(),
4212 }
4213 }
4214 pub fn without_secret_variable(&self, name: impl Into<String>) -> Container {
4220 let mut query = self.selection.select("withoutSecretVariable");
4221 query = query.arg("name", name.into());
4222 Container {
4223 proc: self.proc.clone(),
4224 selection: query,
4225 graphql_client: self.graphql_client.clone(),
4226 }
4227 }
4228 pub fn without_unix_socket(&self, path: impl Into<String>) -> Container {
4235 let mut query = self.selection.select("withoutUnixSocket");
4236 query = query.arg("path", path.into());
4237 Container {
4238 proc: self.proc.clone(),
4239 selection: query,
4240 graphql_client: self.graphql_client.clone(),
4241 }
4242 }
4243 pub fn without_unix_socket_opts(
4250 &self,
4251 path: impl Into<String>,
4252 opts: ContainerWithoutUnixSocketOpts,
4253 ) -> Container {
4254 let mut query = self.selection.select("withoutUnixSocket");
4255 query = query.arg("path", path.into());
4256 if let Some(expand) = opts.expand {
4257 query = query.arg("expand", expand);
4258 }
4259 Container {
4260 proc: self.proc.clone(),
4261 selection: query,
4262 graphql_client: self.graphql_client.clone(),
4263 }
4264 }
4265 pub fn without_user(&self) -> Container {
4268 let query = self.selection.select("withoutUser");
4269 Container {
4270 proc: self.proc.clone(),
4271 selection: query,
4272 graphql_client: self.graphql_client.clone(),
4273 }
4274 }
4275 pub fn without_workdir(&self) -> Container {
4278 let query = self.selection.select("withoutWorkdir");
4279 Container {
4280 proc: self.proc.clone(),
4281 selection: query,
4282 graphql_client: self.graphql_client.clone(),
4283 }
4284 }
4285 pub async fn workdir(&self) -> Result<String, DaggerError> {
4287 let query = self.selection.select("workdir");
4288 query.execute(self.graphql_client.clone()).await
4289 }
4290}
4291#[derive(Clone)]
4292pub struct CurrentModule {
4293 pub proc: Option<Arc<DaggerSessionProc>>,
4294 pub selection: Selection,
4295 pub graphql_client: DynGraphQLClient,
4296}
4297#[derive(Builder, Debug, PartialEq)]
4298pub struct CurrentModuleWorkdirOpts<'a> {
4299 #[builder(setter(into, strip_option), default)]
4301 pub exclude: Option<Vec<&'a str>>,
4302 #[builder(setter(into, strip_option), default)]
4304 pub include: Option<Vec<&'a str>>,
4305}
4306impl CurrentModule {
4307 pub async fn id(&self) -> Result<CurrentModuleId, DaggerError> {
4309 let query = self.selection.select("id");
4310 query.execute(self.graphql_client.clone()).await
4311 }
4312 pub async fn name(&self) -> Result<String, DaggerError> {
4314 let query = self.selection.select("name");
4315 query.execute(self.graphql_client.clone()).await
4316 }
4317 pub fn source(&self) -> Directory {
4319 let query = self.selection.select("source");
4320 Directory {
4321 proc: self.proc.clone(),
4322 selection: query,
4323 graphql_client: self.graphql_client.clone(),
4324 }
4325 }
4326 pub fn workdir(&self, path: impl Into<String>) -> Directory {
4333 let mut query = self.selection.select("workdir");
4334 query = query.arg("path", path.into());
4335 Directory {
4336 proc: self.proc.clone(),
4337 selection: query,
4338 graphql_client: self.graphql_client.clone(),
4339 }
4340 }
4341 pub fn workdir_opts<'a>(
4348 &self,
4349 path: impl Into<String>,
4350 opts: CurrentModuleWorkdirOpts<'a>,
4351 ) -> Directory {
4352 let mut query = self.selection.select("workdir");
4353 query = query.arg("path", path.into());
4354 if let Some(exclude) = opts.exclude {
4355 query = query.arg("exclude", exclude);
4356 }
4357 if let Some(include) = opts.include {
4358 query = query.arg("include", include);
4359 }
4360 Directory {
4361 proc: self.proc.clone(),
4362 selection: query,
4363 graphql_client: self.graphql_client.clone(),
4364 }
4365 }
4366 pub fn workdir_file(&self, path: impl Into<String>) -> File {
4372 let mut query = self.selection.select("workdirFile");
4373 query = query.arg("path", path.into());
4374 File {
4375 proc: self.proc.clone(),
4376 selection: query,
4377 graphql_client: self.graphql_client.clone(),
4378 }
4379 }
4380}
4381#[derive(Clone)]
4382pub struct Directory {
4383 pub proc: Option<Arc<DaggerSessionProc>>,
4384 pub selection: Selection,
4385 pub graphql_client: DynGraphQLClient,
4386}
4387#[derive(Builder, Debug, PartialEq)]
4388pub struct DirectoryAsModuleOpts<'a> {
4389 #[builder(setter(into, strip_option), default)]
4392 pub source_root_path: Option<&'a str>,
4393}
4394#[derive(Builder, Debug, PartialEq)]
4395pub struct DirectoryAsModuleSourceOpts<'a> {
4396 #[builder(setter(into, strip_option), default)]
4399 pub source_root_path: Option<&'a str>,
4400}
4401#[derive(Builder, Debug, PartialEq)]
4402pub struct DirectoryDockerBuildOpts<'a> {
4403 #[builder(setter(into, strip_option), default)]
4405 pub build_args: Option<Vec<BuildArg>>,
4406 #[builder(setter(into, strip_option), default)]
4408 pub dockerfile: Option<&'a str>,
4409 #[builder(setter(into, strip_option), default)]
4412 pub no_init: Option<bool>,
4413 #[builder(setter(into, strip_option), default)]
4415 pub platform: Option<Platform>,
4416 #[builder(setter(into, strip_option), default)]
4419 pub secrets: Option<Vec<SecretId>>,
4420 #[builder(setter(into, strip_option), default)]
4422 pub target: Option<&'a str>,
4423}
4424#[derive(Builder, Debug, PartialEq)]
4425pub struct DirectoryEntriesOpts<'a> {
4426 #[builder(setter(into, strip_option), default)]
4428 pub path: Option<&'a str>,
4429}
4430#[derive(Builder, Debug, PartialEq)]
4431pub struct DirectoryExportOpts {
4432 #[builder(setter(into, strip_option), default)]
4434 pub wipe: Option<bool>,
4435}
4436#[derive(Builder, Debug, PartialEq)]
4437pub struct DirectoryFilterOpts<'a> {
4438 #[builder(setter(into, strip_option), default)]
4440 pub exclude: Option<Vec<&'a str>>,
4441 #[builder(setter(into, strip_option), default)]
4443 pub include: Option<Vec<&'a str>>,
4444}
4445#[derive(Builder, Debug, PartialEq)]
4446pub struct DirectoryTerminalOpts<'a> {
4447 #[builder(setter(into, strip_option), default)]
4449 pub cmd: Option<Vec<&'a str>>,
4450 #[builder(setter(into, strip_option), default)]
4452 pub container: Option<ContainerId>,
4453 #[builder(setter(into, strip_option), default)]
4455 pub experimental_privileged_nesting: Option<bool>,
4456 #[builder(setter(into, strip_option), default)]
4458 pub insecure_root_capabilities: Option<bool>,
4459}
4460#[derive(Builder, Debug, PartialEq)]
4461pub struct DirectoryWithDirectoryOpts<'a> {
4462 #[builder(setter(into, strip_option), default)]
4464 pub exclude: Option<Vec<&'a str>>,
4465 #[builder(setter(into, strip_option), default)]
4467 pub include: Option<Vec<&'a str>>,
4468}
4469#[derive(Builder, Debug, PartialEq)]
4470pub struct DirectoryWithFileOpts {
4471 #[builder(setter(into, strip_option), default)]
4473 pub permissions: Option<isize>,
4474}
4475#[derive(Builder, Debug, PartialEq)]
4476pub struct DirectoryWithFilesOpts {
4477 #[builder(setter(into, strip_option), default)]
4479 pub permissions: Option<isize>,
4480}
4481#[derive(Builder, Debug, PartialEq)]
4482pub struct DirectoryWithNewDirectoryOpts {
4483 #[builder(setter(into, strip_option), default)]
4485 pub permissions: Option<isize>,
4486}
4487#[derive(Builder, Debug, PartialEq)]
4488pub struct DirectoryWithNewFileOpts {
4489 #[builder(setter(into, strip_option), default)]
4491 pub permissions: Option<isize>,
4492}
4493impl Directory {
4494 pub fn as_git(&self) -> GitRepository {
4496 let query = self.selection.select("asGit");
4497 GitRepository {
4498 proc: self.proc.clone(),
4499 selection: query,
4500 graphql_client: self.graphql_client.clone(),
4501 }
4502 }
4503 pub fn as_module(&self) -> Module {
4509 let query = self.selection.select("asModule");
4510 Module {
4511 proc: self.proc.clone(),
4512 selection: query,
4513 graphql_client: self.graphql_client.clone(),
4514 }
4515 }
4516 pub fn as_module_opts<'a>(&self, opts: DirectoryAsModuleOpts<'a>) -> Module {
4522 let mut query = self.selection.select("asModule");
4523 if let Some(source_root_path) = opts.source_root_path {
4524 query = query.arg("sourceRootPath", source_root_path);
4525 }
4526 Module {
4527 proc: self.proc.clone(),
4528 selection: query,
4529 graphql_client: self.graphql_client.clone(),
4530 }
4531 }
4532 pub fn as_module_source(&self) -> ModuleSource {
4538 let query = self.selection.select("asModuleSource");
4539 ModuleSource {
4540 proc: self.proc.clone(),
4541 selection: query,
4542 graphql_client: self.graphql_client.clone(),
4543 }
4544 }
4545 pub fn as_module_source_opts<'a>(&self, opts: DirectoryAsModuleSourceOpts<'a>) -> ModuleSource {
4551 let mut query = self.selection.select("asModuleSource");
4552 if let Some(source_root_path) = opts.source_root_path {
4553 query = query.arg("sourceRootPath", source_root_path);
4554 }
4555 ModuleSource {
4556 proc: self.proc.clone(),
4557 selection: query,
4558 graphql_client: self.graphql_client.clone(),
4559 }
4560 }
4561 pub fn diff(&self, other: impl IntoID<DirectoryId>) -> Directory {
4567 let mut query = self.selection.select("diff");
4568 query = query.arg_lazy(
4569 "other",
4570 Box::new(move || {
4571 let other = other.clone();
4572 Box::pin(async move { other.into_id().await.unwrap().quote() })
4573 }),
4574 );
4575 Directory {
4576 proc: self.proc.clone(),
4577 selection: query,
4578 graphql_client: self.graphql_client.clone(),
4579 }
4580 }
4581 pub async fn digest(&self) -> Result<String, DaggerError> {
4583 let query = self.selection.select("digest");
4584 query.execute(self.graphql_client.clone()).await
4585 }
4586 pub fn directory(&self, path: impl Into<String>) -> Directory {
4592 let mut query = self.selection.select("directory");
4593 query = query.arg("path", path.into());
4594 Directory {
4595 proc: self.proc.clone(),
4596 selection: query,
4597 graphql_client: self.graphql_client.clone(),
4598 }
4599 }
4600 pub fn docker_build(&self) -> Container {
4606 let query = self.selection.select("dockerBuild");
4607 Container {
4608 proc: self.proc.clone(),
4609 selection: query,
4610 graphql_client: self.graphql_client.clone(),
4611 }
4612 }
4613 pub fn docker_build_opts<'a>(&self, opts: DirectoryDockerBuildOpts<'a>) -> Container {
4619 let mut query = self.selection.select("dockerBuild");
4620 if let Some(dockerfile) = opts.dockerfile {
4621 query = query.arg("dockerfile", dockerfile);
4622 }
4623 if let Some(platform) = opts.platform {
4624 query = query.arg("platform", platform);
4625 }
4626 if let Some(build_args) = opts.build_args {
4627 query = query.arg("buildArgs", build_args);
4628 }
4629 if let Some(target) = opts.target {
4630 query = query.arg("target", target);
4631 }
4632 if let Some(secrets) = opts.secrets {
4633 query = query.arg("secrets", secrets);
4634 }
4635 if let Some(no_init) = opts.no_init {
4636 query = query.arg("noInit", no_init);
4637 }
4638 Container {
4639 proc: self.proc.clone(),
4640 selection: query,
4641 graphql_client: self.graphql_client.clone(),
4642 }
4643 }
4644 pub async fn entries(&self) -> Result<Vec<String>, DaggerError> {
4650 let query = self.selection.select("entries");
4651 query.execute(self.graphql_client.clone()).await
4652 }
4653 pub async fn entries_opts<'a>(
4659 &self,
4660 opts: DirectoryEntriesOpts<'a>,
4661 ) -> Result<Vec<String>, DaggerError> {
4662 let mut query = self.selection.select("entries");
4663 if let Some(path) = opts.path {
4664 query = query.arg("path", path);
4665 }
4666 query.execute(self.graphql_client.clone()).await
4667 }
4668 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
4675 let mut query = self.selection.select("export");
4676 query = query.arg("path", path.into());
4677 query.execute(self.graphql_client.clone()).await
4678 }
4679 pub async fn export_opts(
4686 &self,
4687 path: impl Into<String>,
4688 opts: DirectoryExportOpts,
4689 ) -> Result<String, DaggerError> {
4690 let mut query = self.selection.select("export");
4691 query = query.arg("path", path.into());
4692 if let Some(wipe) = opts.wipe {
4693 query = query.arg("wipe", wipe);
4694 }
4695 query.execute(self.graphql_client.clone()).await
4696 }
4697 pub fn file(&self, path: impl Into<String>) -> File {
4703 let mut query = self.selection.select("file");
4704 query = query.arg("path", path.into());
4705 File {
4706 proc: self.proc.clone(),
4707 selection: query,
4708 graphql_client: self.graphql_client.clone(),
4709 }
4710 }
4711 pub fn filter(&self) -> Directory {
4717 let query = self.selection.select("filter");
4718 Directory {
4719 proc: self.proc.clone(),
4720 selection: query,
4721 graphql_client: self.graphql_client.clone(),
4722 }
4723 }
4724 pub fn filter_opts<'a>(&self, opts: DirectoryFilterOpts<'a>) -> Directory {
4730 let mut query = self.selection.select("filter");
4731 if let Some(exclude) = opts.exclude {
4732 query = query.arg("exclude", exclude);
4733 }
4734 if let Some(include) = opts.include {
4735 query = query.arg("include", include);
4736 }
4737 Directory {
4738 proc: self.proc.clone(),
4739 selection: query,
4740 graphql_client: self.graphql_client.clone(),
4741 }
4742 }
4743 pub async fn glob(&self, pattern: impl Into<String>) -> Result<Vec<String>, DaggerError> {
4749 let mut query = self.selection.select("glob");
4750 query = query.arg("pattern", pattern.into());
4751 query.execute(self.graphql_client.clone()).await
4752 }
4753 pub async fn id(&self) -> Result<DirectoryId, DaggerError> {
4755 let query = self.selection.select("id");
4756 query.execute(self.graphql_client.clone()).await
4757 }
4758 pub async fn name(&self) -> Result<String, DaggerError> {
4760 let query = self.selection.select("name");
4761 query.execute(self.graphql_client.clone()).await
4762 }
4763 pub async fn sync(&self) -> Result<DirectoryId, DaggerError> {
4765 let query = self.selection.select("sync");
4766 query.execute(self.graphql_client.clone()).await
4767 }
4768 pub fn terminal(&self) -> Directory {
4774 let query = self.selection.select("terminal");
4775 Directory {
4776 proc: self.proc.clone(),
4777 selection: query,
4778 graphql_client: self.graphql_client.clone(),
4779 }
4780 }
4781 pub fn terminal_opts<'a>(&self, opts: DirectoryTerminalOpts<'a>) -> Directory {
4787 let mut query = self.selection.select("terminal");
4788 if let Some(container) = opts.container {
4789 query = query.arg("container", container);
4790 }
4791 if let Some(cmd) = opts.cmd {
4792 query = query.arg("cmd", cmd);
4793 }
4794 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
4795 query = query.arg(
4796 "experimentalPrivilegedNesting",
4797 experimental_privileged_nesting,
4798 );
4799 }
4800 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
4801 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
4802 }
4803 Directory {
4804 proc: self.proc.clone(),
4805 selection: query,
4806 graphql_client: self.graphql_client.clone(),
4807 }
4808 }
4809 pub fn with_directory(
4817 &self,
4818 path: impl Into<String>,
4819 directory: impl IntoID<DirectoryId>,
4820 ) -> Directory {
4821 let mut query = self.selection.select("withDirectory");
4822 query = query.arg("path", path.into());
4823 query = query.arg_lazy(
4824 "directory",
4825 Box::new(move || {
4826 let directory = directory.clone();
4827 Box::pin(async move { directory.into_id().await.unwrap().quote() })
4828 }),
4829 );
4830 Directory {
4831 proc: self.proc.clone(),
4832 selection: query,
4833 graphql_client: self.graphql_client.clone(),
4834 }
4835 }
4836 pub fn with_directory_opts<'a>(
4844 &self,
4845 path: impl Into<String>,
4846 directory: impl IntoID<DirectoryId>,
4847 opts: DirectoryWithDirectoryOpts<'a>,
4848 ) -> Directory {
4849 let mut query = self.selection.select("withDirectory");
4850 query = query.arg("path", path.into());
4851 query = query.arg_lazy(
4852 "directory",
4853 Box::new(move || {
4854 let directory = directory.clone();
4855 Box::pin(async move { directory.into_id().await.unwrap().quote() })
4856 }),
4857 );
4858 if let Some(exclude) = opts.exclude {
4859 query = query.arg("exclude", exclude);
4860 }
4861 if let Some(include) = opts.include {
4862 query = query.arg("include", include);
4863 }
4864 Directory {
4865 proc: self.proc.clone(),
4866 selection: query,
4867 graphql_client: self.graphql_client.clone(),
4868 }
4869 }
4870 pub fn with_file(&self, path: impl Into<String>, source: impl IntoID<FileId>) -> Directory {
4878 let mut query = self.selection.select("withFile");
4879 query = query.arg("path", path.into());
4880 query = query.arg_lazy(
4881 "source",
4882 Box::new(move || {
4883 let source = source.clone();
4884 Box::pin(async move { source.into_id().await.unwrap().quote() })
4885 }),
4886 );
4887 Directory {
4888 proc: self.proc.clone(),
4889 selection: query,
4890 graphql_client: self.graphql_client.clone(),
4891 }
4892 }
4893 pub fn with_file_opts(
4901 &self,
4902 path: impl Into<String>,
4903 source: impl IntoID<FileId>,
4904 opts: DirectoryWithFileOpts,
4905 ) -> Directory {
4906 let mut query = self.selection.select("withFile");
4907 query = query.arg("path", path.into());
4908 query = query.arg_lazy(
4909 "source",
4910 Box::new(move || {
4911 let source = source.clone();
4912 Box::pin(async move { source.into_id().await.unwrap().quote() })
4913 }),
4914 );
4915 if let Some(permissions) = opts.permissions {
4916 query = query.arg("permissions", permissions);
4917 }
4918 Directory {
4919 proc: self.proc.clone(),
4920 selection: query,
4921 graphql_client: self.graphql_client.clone(),
4922 }
4923 }
4924 pub fn with_files(&self, path: impl Into<String>, sources: Vec<FileId>) -> Directory {
4932 let mut query = self.selection.select("withFiles");
4933 query = query.arg("path", path.into());
4934 query = query.arg("sources", sources);
4935 Directory {
4936 proc: self.proc.clone(),
4937 selection: query,
4938 graphql_client: self.graphql_client.clone(),
4939 }
4940 }
4941 pub fn with_files_opts(
4949 &self,
4950 path: impl Into<String>,
4951 sources: Vec<FileId>,
4952 opts: DirectoryWithFilesOpts,
4953 ) -> Directory {
4954 let mut query = self.selection.select("withFiles");
4955 query = query.arg("path", path.into());
4956 query = query.arg("sources", sources);
4957 if let Some(permissions) = opts.permissions {
4958 query = query.arg("permissions", permissions);
4959 }
4960 Directory {
4961 proc: self.proc.clone(),
4962 selection: query,
4963 graphql_client: self.graphql_client.clone(),
4964 }
4965 }
4966 pub fn with_new_directory(&self, path: impl Into<String>) -> Directory {
4973 let mut query = self.selection.select("withNewDirectory");
4974 query = query.arg("path", path.into());
4975 Directory {
4976 proc: self.proc.clone(),
4977 selection: query,
4978 graphql_client: self.graphql_client.clone(),
4979 }
4980 }
4981 pub fn with_new_directory_opts(
4988 &self,
4989 path: impl Into<String>,
4990 opts: DirectoryWithNewDirectoryOpts,
4991 ) -> Directory {
4992 let mut query = self.selection.select("withNewDirectory");
4993 query = query.arg("path", path.into());
4994 if let Some(permissions) = opts.permissions {
4995 query = query.arg("permissions", permissions);
4996 }
4997 Directory {
4998 proc: self.proc.clone(),
4999 selection: query,
5000 graphql_client: self.graphql_client.clone(),
5001 }
5002 }
5003 pub fn with_new_file(&self, path: impl Into<String>, contents: impl Into<String>) -> Directory {
5011 let mut query = self.selection.select("withNewFile");
5012 query = query.arg("path", path.into());
5013 query = query.arg("contents", contents.into());
5014 Directory {
5015 proc: self.proc.clone(),
5016 selection: query,
5017 graphql_client: self.graphql_client.clone(),
5018 }
5019 }
5020 pub fn with_new_file_opts(
5028 &self,
5029 path: impl Into<String>,
5030 contents: impl Into<String>,
5031 opts: DirectoryWithNewFileOpts,
5032 ) -> Directory {
5033 let mut query = self.selection.select("withNewFile");
5034 query = query.arg("path", path.into());
5035 query = query.arg("contents", contents.into());
5036 if let Some(permissions) = opts.permissions {
5037 query = query.arg("permissions", permissions);
5038 }
5039 Directory {
5040 proc: self.proc.clone(),
5041 selection: query,
5042 graphql_client: self.graphql_client.clone(),
5043 }
5044 }
5045 pub fn with_symlink(
5052 &self,
5053 target: impl Into<String>,
5054 link_name: impl Into<String>,
5055 ) -> Directory {
5056 let mut query = self.selection.select("withSymlink");
5057 query = query.arg("target", target.into());
5058 query = query.arg("linkName", link_name.into());
5059 Directory {
5060 proc: self.proc.clone(),
5061 selection: query,
5062 graphql_client: self.graphql_client.clone(),
5063 }
5064 }
5065 pub fn with_timestamps(&self, timestamp: isize) -> Directory {
5073 let mut query = self.selection.select("withTimestamps");
5074 query = query.arg("timestamp", timestamp);
5075 Directory {
5076 proc: self.proc.clone(),
5077 selection: query,
5078 graphql_client: self.graphql_client.clone(),
5079 }
5080 }
5081 pub fn without_directory(&self, path: impl Into<String>) -> Directory {
5087 let mut query = self.selection.select("withoutDirectory");
5088 query = query.arg("path", path.into());
5089 Directory {
5090 proc: self.proc.clone(),
5091 selection: query,
5092 graphql_client: self.graphql_client.clone(),
5093 }
5094 }
5095 pub fn without_file(&self, path: impl Into<String>) -> Directory {
5101 let mut query = self.selection.select("withoutFile");
5102 query = query.arg("path", path.into());
5103 Directory {
5104 proc: self.proc.clone(),
5105 selection: query,
5106 graphql_client: self.graphql_client.clone(),
5107 }
5108 }
5109 pub fn without_files(&self, paths: Vec<impl Into<String>>) -> Directory {
5115 let mut query = self.selection.select("withoutFiles");
5116 query = query.arg(
5117 "paths",
5118 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
5119 );
5120 Directory {
5121 proc: self.proc.clone(),
5122 selection: query,
5123 graphql_client: self.graphql_client.clone(),
5124 }
5125 }
5126}
5127#[derive(Clone)]
5128pub struct Engine {
5129 pub proc: Option<Arc<DaggerSessionProc>>,
5130 pub selection: Selection,
5131 pub graphql_client: DynGraphQLClient,
5132}
5133impl Engine {
5134 pub async fn id(&self) -> Result<EngineId, DaggerError> {
5136 let query = self.selection.select("id");
5137 query.execute(self.graphql_client.clone()).await
5138 }
5139 pub fn local_cache(&self) -> EngineCache {
5141 let query = self.selection.select("localCache");
5142 EngineCache {
5143 proc: self.proc.clone(),
5144 selection: query,
5145 graphql_client: self.graphql_client.clone(),
5146 }
5147 }
5148}
5149#[derive(Clone)]
5150pub struct EngineCache {
5151 pub proc: Option<Arc<DaggerSessionProc>>,
5152 pub selection: Selection,
5153 pub graphql_client: DynGraphQLClient,
5154}
5155#[derive(Builder, Debug, PartialEq)]
5156pub struct EngineCacheEntrySetOpts<'a> {
5157 #[builder(setter(into, strip_option), default)]
5158 pub key: Option<&'a str>,
5159}
5160#[derive(Builder, Debug, PartialEq)]
5161pub struct EngineCachePruneOpts {
5162 #[builder(setter(into, strip_option), default)]
5164 pub use_default_policy: Option<bool>,
5165}
5166impl EngineCache {
5167 pub fn entry_set(&self) -> EngineCacheEntrySet {
5173 let query = self.selection.select("entrySet");
5174 EngineCacheEntrySet {
5175 proc: self.proc.clone(),
5176 selection: query,
5177 graphql_client: self.graphql_client.clone(),
5178 }
5179 }
5180 pub fn entry_set_opts<'a>(&self, opts: EngineCacheEntrySetOpts<'a>) -> EngineCacheEntrySet {
5186 let mut query = self.selection.select("entrySet");
5187 if let Some(key) = opts.key {
5188 query = query.arg("key", key);
5189 }
5190 EngineCacheEntrySet {
5191 proc: self.proc.clone(),
5192 selection: query,
5193 graphql_client: self.graphql_client.clone(),
5194 }
5195 }
5196 pub async fn id(&self) -> Result<EngineCacheId, DaggerError> {
5198 let query = self.selection.select("id");
5199 query.execute(self.graphql_client.clone()).await
5200 }
5201 pub async fn keep_bytes(&self) -> Result<isize, DaggerError> {
5203 let query = self.selection.select("keepBytes");
5204 query.execute(self.graphql_client.clone()).await
5205 }
5206 pub async fn max_used_space(&self) -> Result<isize, DaggerError> {
5208 let query = self.selection.select("maxUsedSpace");
5209 query.execute(self.graphql_client.clone()).await
5210 }
5211 pub async fn min_free_space(&self) -> Result<isize, DaggerError> {
5213 let query = self.selection.select("minFreeSpace");
5214 query.execute(self.graphql_client.clone()).await
5215 }
5216 pub async fn prune(&self) -> Result<Void, DaggerError> {
5222 let query = self.selection.select("prune");
5223 query.execute(self.graphql_client.clone()).await
5224 }
5225 pub async fn prune_opts(&self, opts: EngineCachePruneOpts) -> Result<Void, DaggerError> {
5231 let mut query = self.selection.select("prune");
5232 if let Some(use_default_policy) = opts.use_default_policy {
5233 query = query.arg("useDefaultPolicy", use_default_policy);
5234 }
5235 query.execute(self.graphql_client.clone()).await
5236 }
5237 pub async fn reserved_space(&self) -> Result<isize, DaggerError> {
5239 let query = self.selection.select("reservedSpace");
5240 query.execute(self.graphql_client.clone()).await
5241 }
5242 pub async fn target_space(&self) -> Result<isize, DaggerError> {
5244 let query = self.selection.select("targetSpace");
5245 query.execute(self.graphql_client.clone()).await
5246 }
5247}
5248#[derive(Clone)]
5249pub struct EngineCacheEntry {
5250 pub proc: Option<Arc<DaggerSessionProc>>,
5251 pub selection: Selection,
5252 pub graphql_client: DynGraphQLClient,
5253}
5254impl EngineCacheEntry {
5255 pub async fn actively_used(&self) -> Result<bool, DaggerError> {
5257 let query = self.selection.select("activelyUsed");
5258 query.execute(self.graphql_client.clone()).await
5259 }
5260 pub async fn created_time_unix_nano(&self) -> Result<isize, DaggerError> {
5262 let query = self.selection.select("createdTimeUnixNano");
5263 query.execute(self.graphql_client.clone()).await
5264 }
5265 pub async fn description(&self) -> Result<String, DaggerError> {
5267 let query = self.selection.select("description");
5268 query.execute(self.graphql_client.clone()).await
5269 }
5270 pub async fn disk_space_bytes(&self) -> Result<isize, DaggerError> {
5272 let query = self.selection.select("diskSpaceBytes");
5273 query.execute(self.graphql_client.clone()).await
5274 }
5275 pub async fn id(&self) -> Result<EngineCacheEntryId, DaggerError> {
5277 let query = self.selection.select("id");
5278 query.execute(self.graphql_client.clone()).await
5279 }
5280 pub async fn most_recent_use_time_unix_nano(&self) -> Result<isize, DaggerError> {
5282 let query = self.selection.select("mostRecentUseTimeUnixNano");
5283 query.execute(self.graphql_client.clone()).await
5284 }
5285}
5286#[derive(Clone)]
5287pub struct EngineCacheEntrySet {
5288 pub proc: Option<Arc<DaggerSessionProc>>,
5289 pub selection: Selection,
5290 pub graphql_client: DynGraphQLClient,
5291}
5292impl EngineCacheEntrySet {
5293 pub async fn disk_space_bytes(&self) -> Result<isize, DaggerError> {
5295 let query = self.selection.select("diskSpaceBytes");
5296 query.execute(self.graphql_client.clone()).await
5297 }
5298 pub fn entries(&self) -> Vec<EngineCacheEntry> {
5300 let query = self.selection.select("entries");
5301 vec![EngineCacheEntry {
5302 proc: self.proc.clone(),
5303 selection: query,
5304 graphql_client: self.graphql_client.clone(),
5305 }]
5306 }
5307 pub async fn entry_count(&self) -> Result<isize, DaggerError> {
5309 let query = self.selection.select("entryCount");
5310 query.execute(self.graphql_client.clone()).await
5311 }
5312 pub async fn id(&self) -> Result<EngineCacheEntrySetId, DaggerError> {
5314 let query = self.selection.select("id");
5315 query.execute(self.graphql_client.clone()).await
5316 }
5317}
5318#[derive(Clone)]
5319pub struct EnumTypeDef {
5320 pub proc: Option<Arc<DaggerSessionProc>>,
5321 pub selection: Selection,
5322 pub graphql_client: DynGraphQLClient,
5323}
5324impl EnumTypeDef {
5325 pub async fn description(&self) -> Result<String, DaggerError> {
5327 let query = self.selection.select("description");
5328 query.execute(self.graphql_client.clone()).await
5329 }
5330 pub async fn id(&self) -> Result<EnumTypeDefId, DaggerError> {
5332 let query = self.selection.select("id");
5333 query.execute(self.graphql_client.clone()).await
5334 }
5335 pub fn members(&self) -> Vec<EnumValueTypeDef> {
5337 let query = self.selection.select("members");
5338 vec![EnumValueTypeDef {
5339 proc: self.proc.clone(),
5340 selection: query,
5341 graphql_client: self.graphql_client.clone(),
5342 }]
5343 }
5344 pub async fn name(&self) -> Result<String, DaggerError> {
5346 let query = self.selection.select("name");
5347 query.execute(self.graphql_client.clone()).await
5348 }
5349 pub fn source_map(&self) -> SourceMap {
5351 let query = self.selection.select("sourceMap");
5352 SourceMap {
5353 proc: self.proc.clone(),
5354 selection: query,
5355 graphql_client: self.graphql_client.clone(),
5356 }
5357 }
5358 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
5360 let query = self.selection.select("sourceModuleName");
5361 query.execute(self.graphql_client.clone()).await
5362 }
5363 pub fn values(&self) -> Vec<EnumValueTypeDef> {
5364 let query = self.selection.select("values");
5365 vec![EnumValueTypeDef {
5366 proc: self.proc.clone(),
5367 selection: query,
5368 graphql_client: self.graphql_client.clone(),
5369 }]
5370 }
5371}
5372#[derive(Clone)]
5373pub struct EnumValueTypeDef {
5374 pub proc: Option<Arc<DaggerSessionProc>>,
5375 pub selection: Selection,
5376 pub graphql_client: DynGraphQLClient,
5377}
5378impl EnumValueTypeDef {
5379 pub async fn description(&self) -> Result<String, DaggerError> {
5381 let query = self.selection.select("description");
5382 query.execute(self.graphql_client.clone()).await
5383 }
5384 pub async fn id(&self) -> Result<EnumValueTypeDefId, DaggerError> {
5386 let query = self.selection.select("id");
5387 query.execute(self.graphql_client.clone()).await
5388 }
5389 pub async fn name(&self) -> Result<String, DaggerError> {
5391 let query = self.selection.select("name");
5392 query.execute(self.graphql_client.clone()).await
5393 }
5394 pub fn source_map(&self) -> SourceMap {
5396 let query = self.selection.select("sourceMap");
5397 SourceMap {
5398 proc: self.proc.clone(),
5399 selection: query,
5400 graphql_client: self.graphql_client.clone(),
5401 }
5402 }
5403 pub async fn value(&self) -> Result<String, DaggerError> {
5405 let query = self.selection.select("value");
5406 query.execute(self.graphql_client.clone()).await
5407 }
5408}
5409#[derive(Clone)]
5410pub struct Env {
5411 pub proc: Option<Arc<DaggerSessionProc>>,
5412 pub selection: Selection,
5413 pub graphql_client: DynGraphQLClient,
5414}
5415impl Env {
5416 pub async fn id(&self) -> Result<EnvId, DaggerError> {
5418 let query = self.selection.select("id");
5419 query.execute(self.graphql_client.clone()).await
5420 }
5421 pub fn input(&self, name: impl Into<String>) -> Binding {
5423 let mut query = self.selection.select("input");
5424 query = query.arg("name", name.into());
5425 Binding {
5426 proc: self.proc.clone(),
5427 selection: query,
5428 graphql_client: self.graphql_client.clone(),
5429 }
5430 }
5431 pub fn inputs(&self) -> Vec<Binding> {
5433 let query = self.selection.select("inputs");
5434 vec![Binding {
5435 proc: self.proc.clone(),
5436 selection: query,
5437 graphql_client: self.graphql_client.clone(),
5438 }]
5439 }
5440 pub fn output(&self, name: impl Into<String>) -> Binding {
5442 let mut query = self.selection.select("output");
5443 query = query.arg("name", name.into());
5444 Binding {
5445 proc: self.proc.clone(),
5446 selection: query,
5447 graphql_client: self.graphql_client.clone(),
5448 }
5449 }
5450 pub fn outputs(&self) -> Vec<Binding> {
5452 let query = self.selection.select("outputs");
5453 vec![Binding {
5454 proc: self.proc.clone(),
5455 selection: query,
5456 graphql_client: self.graphql_client.clone(),
5457 }]
5458 }
5459 pub fn with_cache_volume_input(
5467 &self,
5468 name: impl Into<String>,
5469 value: impl IntoID<CacheVolumeId>,
5470 description: impl Into<String>,
5471 ) -> Env {
5472 let mut query = self.selection.select("withCacheVolumeInput");
5473 query = query.arg("name", name.into());
5474 query = query.arg_lazy(
5475 "value",
5476 Box::new(move || {
5477 let value = value.clone();
5478 Box::pin(async move { value.into_id().await.unwrap().quote() })
5479 }),
5480 );
5481 query = query.arg("description", description.into());
5482 Env {
5483 proc: self.proc.clone(),
5484 selection: query,
5485 graphql_client: self.graphql_client.clone(),
5486 }
5487 }
5488 pub fn with_cache_volume_output(
5495 &self,
5496 name: impl Into<String>,
5497 description: impl Into<String>,
5498 ) -> Env {
5499 let mut query = self.selection.select("withCacheVolumeOutput");
5500 query = query.arg("name", name.into());
5501 query = query.arg("description", description.into());
5502 Env {
5503 proc: self.proc.clone(),
5504 selection: query,
5505 graphql_client: self.graphql_client.clone(),
5506 }
5507 }
5508 pub fn with_cloud_input(
5516 &self,
5517 name: impl Into<String>,
5518 value: impl IntoID<CloudId>,
5519 description: impl Into<String>,
5520 ) -> Env {
5521 let mut query = self.selection.select("withCloudInput");
5522 query = query.arg("name", name.into());
5523 query = query.arg_lazy(
5524 "value",
5525 Box::new(move || {
5526 let value = value.clone();
5527 Box::pin(async move { value.into_id().await.unwrap().quote() })
5528 }),
5529 );
5530 query = query.arg("description", description.into());
5531 Env {
5532 proc: self.proc.clone(),
5533 selection: query,
5534 graphql_client: self.graphql_client.clone(),
5535 }
5536 }
5537 pub fn with_cloud_output(
5544 &self,
5545 name: impl Into<String>,
5546 description: impl Into<String>,
5547 ) -> Env {
5548 let mut query = self.selection.select("withCloudOutput");
5549 query = query.arg("name", name.into());
5550 query = query.arg("description", description.into());
5551 Env {
5552 proc: self.proc.clone(),
5553 selection: query,
5554 graphql_client: self.graphql_client.clone(),
5555 }
5556 }
5557 pub fn with_container_input(
5565 &self,
5566 name: impl Into<String>,
5567 value: impl IntoID<ContainerId>,
5568 description: impl Into<String>,
5569 ) -> Env {
5570 let mut query = self.selection.select("withContainerInput");
5571 query = query.arg("name", name.into());
5572 query = query.arg_lazy(
5573 "value",
5574 Box::new(move || {
5575 let value = value.clone();
5576 Box::pin(async move { value.into_id().await.unwrap().quote() })
5577 }),
5578 );
5579 query = query.arg("description", description.into());
5580 Env {
5581 proc: self.proc.clone(),
5582 selection: query,
5583 graphql_client: self.graphql_client.clone(),
5584 }
5585 }
5586 pub fn with_container_output(
5593 &self,
5594 name: impl Into<String>,
5595 description: impl Into<String>,
5596 ) -> Env {
5597 let mut query = self.selection.select("withContainerOutput");
5598 query = query.arg("name", name.into());
5599 query = query.arg("description", description.into());
5600 Env {
5601 proc: self.proc.clone(),
5602 selection: query,
5603 graphql_client: self.graphql_client.clone(),
5604 }
5605 }
5606 pub fn with_directory_input(
5614 &self,
5615 name: impl Into<String>,
5616 value: impl IntoID<DirectoryId>,
5617 description: impl Into<String>,
5618 ) -> Env {
5619 let mut query = self.selection.select("withDirectoryInput");
5620 query = query.arg("name", name.into());
5621 query = query.arg_lazy(
5622 "value",
5623 Box::new(move || {
5624 let value = value.clone();
5625 Box::pin(async move { value.into_id().await.unwrap().quote() })
5626 }),
5627 );
5628 query = query.arg("description", description.into());
5629 Env {
5630 proc: self.proc.clone(),
5631 selection: query,
5632 graphql_client: self.graphql_client.clone(),
5633 }
5634 }
5635 pub fn with_directory_output(
5642 &self,
5643 name: impl Into<String>,
5644 description: impl Into<String>,
5645 ) -> Env {
5646 let mut query = self.selection.select("withDirectoryOutput");
5647 query = query.arg("name", name.into());
5648 query = query.arg("description", description.into());
5649 Env {
5650 proc: self.proc.clone(),
5651 selection: query,
5652 graphql_client: self.graphql_client.clone(),
5653 }
5654 }
5655 pub fn with_env_input(
5663 &self,
5664 name: impl Into<String>,
5665 value: impl IntoID<EnvId>,
5666 description: impl Into<String>,
5667 ) -> Env {
5668 let mut query = self.selection.select("withEnvInput");
5669 query = query.arg("name", name.into());
5670 query = query.arg_lazy(
5671 "value",
5672 Box::new(move || {
5673 let value = value.clone();
5674 Box::pin(async move { value.into_id().await.unwrap().quote() })
5675 }),
5676 );
5677 query = query.arg("description", description.into());
5678 Env {
5679 proc: self.proc.clone(),
5680 selection: query,
5681 graphql_client: self.graphql_client.clone(),
5682 }
5683 }
5684 pub fn with_env_output(&self, name: impl Into<String>, description: impl Into<String>) -> Env {
5691 let mut query = self.selection.select("withEnvOutput");
5692 query = query.arg("name", name.into());
5693 query = query.arg("description", description.into());
5694 Env {
5695 proc: self.proc.clone(),
5696 selection: query,
5697 graphql_client: self.graphql_client.clone(),
5698 }
5699 }
5700 pub fn with_file_input(
5708 &self,
5709 name: impl Into<String>,
5710 value: impl IntoID<FileId>,
5711 description: impl Into<String>,
5712 ) -> Env {
5713 let mut query = self.selection.select("withFileInput");
5714 query = query.arg("name", name.into());
5715 query = query.arg_lazy(
5716 "value",
5717 Box::new(move || {
5718 let value = value.clone();
5719 Box::pin(async move { value.into_id().await.unwrap().quote() })
5720 }),
5721 );
5722 query = query.arg("description", description.into());
5723 Env {
5724 proc: self.proc.clone(),
5725 selection: query,
5726 graphql_client: self.graphql_client.clone(),
5727 }
5728 }
5729 pub fn with_file_output(&self, name: impl Into<String>, description: impl Into<String>) -> Env {
5736 let mut query = self.selection.select("withFileOutput");
5737 query = query.arg("name", name.into());
5738 query = query.arg("description", description.into());
5739 Env {
5740 proc: self.proc.clone(),
5741 selection: query,
5742 graphql_client: self.graphql_client.clone(),
5743 }
5744 }
5745 pub fn with_git_ref_input(
5753 &self,
5754 name: impl Into<String>,
5755 value: impl IntoID<GitRefId>,
5756 description: impl Into<String>,
5757 ) -> Env {
5758 let mut query = self.selection.select("withGitRefInput");
5759 query = query.arg("name", name.into());
5760 query = query.arg_lazy(
5761 "value",
5762 Box::new(move || {
5763 let value = value.clone();
5764 Box::pin(async move { value.into_id().await.unwrap().quote() })
5765 }),
5766 );
5767 query = query.arg("description", description.into());
5768 Env {
5769 proc: self.proc.clone(),
5770 selection: query,
5771 graphql_client: self.graphql_client.clone(),
5772 }
5773 }
5774 pub fn with_git_ref_output(
5781 &self,
5782 name: impl Into<String>,
5783 description: impl Into<String>,
5784 ) -> Env {
5785 let mut query = self.selection.select("withGitRefOutput");
5786 query = query.arg("name", name.into());
5787 query = query.arg("description", description.into());
5788 Env {
5789 proc: self.proc.clone(),
5790 selection: query,
5791 graphql_client: self.graphql_client.clone(),
5792 }
5793 }
5794 pub fn with_git_repository_input(
5802 &self,
5803 name: impl Into<String>,
5804 value: impl IntoID<GitRepositoryId>,
5805 description: impl Into<String>,
5806 ) -> Env {
5807 let mut query = self.selection.select("withGitRepositoryInput");
5808 query = query.arg("name", name.into());
5809 query = query.arg_lazy(
5810 "value",
5811 Box::new(move || {
5812 let value = value.clone();
5813 Box::pin(async move { value.into_id().await.unwrap().quote() })
5814 }),
5815 );
5816 query = query.arg("description", description.into());
5817 Env {
5818 proc: self.proc.clone(),
5819 selection: query,
5820 graphql_client: self.graphql_client.clone(),
5821 }
5822 }
5823 pub fn with_git_repository_output(
5830 &self,
5831 name: impl Into<String>,
5832 description: impl Into<String>,
5833 ) -> Env {
5834 let mut query = self.selection.select("withGitRepositoryOutput");
5835 query = query.arg("name", name.into());
5836 query = query.arg("description", description.into());
5837 Env {
5838 proc: self.proc.clone(),
5839 selection: query,
5840 graphql_client: self.graphql_client.clone(),
5841 }
5842 }
5843 pub fn with_llm_input(
5851 &self,
5852 name: impl Into<String>,
5853 value: impl IntoID<Llmid>,
5854 description: impl Into<String>,
5855 ) -> Env {
5856 let mut query = self.selection.select("withLLMInput");
5857 query = query.arg("name", name.into());
5858 query = query.arg_lazy(
5859 "value",
5860 Box::new(move || {
5861 let value = value.clone();
5862 Box::pin(async move { value.into_id().await.unwrap().quote() })
5863 }),
5864 );
5865 query = query.arg("description", description.into());
5866 Env {
5867 proc: self.proc.clone(),
5868 selection: query,
5869 graphql_client: self.graphql_client.clone(),
5870 }
5871 }
5872 pub fn with_llm_output(&self, name: impl Into<String>, description: impl Into<String>) -> Env {
5879 let mut query = self.selection.select("withLLMOutput");
5880 query = query.arg("name", name.into());
5881 query = query.arg("description", description.into());
5882 Env {
5883 proc: self.proc.clone(),
5884 selection: query,
5885 graphql_client: self.graphql_client.clone(),
5886 }
5887 }
5888 pub fn with_module_config_client_input(
5896 &self,
5897 name: impl Into<String>,
5898 value: impl IntoID<ModuleConfigClientId>,
5899 description: impl Into<String>,
5900 ) -> Env {
5901 let mut query = self.selection.select("withModuleConfigClientInput");
5902 query = query.arg("name", name.into());
5903 query = query.arg_lazy(
5904 "value",
5905 Box::new(move || {
5906 let value = value.clone();
5907 Box::pin(async move { value.into_id().await.unwrap().quote() })
5908 }),
5909 );
5910 query = query.arg("description", description.into());
5911 Env {
5912 proc: self.proc.clone(),
5913 selection: query,
5914 graphql_client: self.graphql_client.clone(),
5915 }
5916 }
5917 pub fn with_module_config_client_output(
5924 &self,
5925 name: impl Into<String>,
5926 description: impl Into<String>,
5927 ) -> Env {
5928 let mut query = self.selection.select("withModuleConfigClientOutput");
5929 query = query.arg("name", name.into());
5930 query = query.arg("description", description.into());
5931 Env {
5932 proc: self.proc.clone(),
5933 selection: query,
5934 graphql_client: self.graphql_client.clone(),
5935 }
5936 }
5937 pub fn with_module_input(
5945 &self,
5946 name: impl Into<String>,
5947 value: impl IntoID<ModuleId>,
5948 description: impl Into<String>,
5949 ) -> Env {
5950 let mut query = self.selection.select("withModuleInput");
5951 query = query.arg("name", name.into());
5952 query = query.arg_lazy(
5953 "value",
5954 Box::new(move || {
5955 let value = value.clone();
5956 Box::pin(async move { value.into_id().await.unwrap().quote() })
5957 }),
5958 );
5959 query = query.arg("description", description.into());
5960 Env {
5961 proc: self.proc.clone(),
5962 selection: query,
5963 graphql_client: self.graphql_client.clone(),
5964 }
5965 }
5966 pub fn with_module_output(
5973 &self,
5974 name: impl Into<String>,
5975 description: impl Into<String>,
5976 ) -> Env {
5977 let mut query = self.selection.select("withModuleOutput");
5978 query = query.arg("name", name.into());
5979 query = query.arg("description", description.into());
5980 Env {
5981 proc: self.proc.clone(),
5982 selection: query,
5983 graphql_client: self.graphql_client.clone(),
5984 }
5985 }
5986 pub fn with_module_source_input(
5994 &self,
5995 name: impl Into<String>,
5996 value: impl IntoID<ModuleSourceId>,
5997 description: impl Into<String>,
5998 ) -> Env {
5999 let mut query = self.selection.select("withModuleSourceInput");
6000 query = query.arg("name", name.into());
6001 query = query.arg_lazy(
6002 "value",
6003 Box::new(move || {
6004 let value = value.clone();
6005 Box::pin(async move { value.into_id().await.unwrap().quote() })
6006 }),
6007 );
6008 query = query.arg("description", description.into());
6009 Env {
6010 proc: self.proc.clone(),
6011 selection: query,
6012 graphql_client: self.graphql_client.clone(),
6013 }
6014 }
6015 pub fn with_module_source_output(
6022 &self,
6023 name: impl Into<String>,
6024 description: impl Into<String>,
6025 ) -> Env {
6026 let mut query = self.selection.select("withModuleSourceOutput");
6027 query = query.arg("name", name.into());
6028 query = query.arg("description", description.into());
6029 Env {
6030 proc: self.proc.clone(),
6031 selection: query,
6032 graphql_client: self.graphql_client.clone(),
6033 }
6034 }
6035 pub fn with_secret_input(
6043 &self,
6044 name: impl Into<String>,
6045 value: impl IntoID<SecretId>,
6046 description: impl Into<String>,
6047 ) -> Env {
6048 let mut query = self.selection.select("withSecretInput");
6049 query = query.arg("name", name.into());
6050 query = query.arg_lazy(
6051 "value",
6052 Box::new(move || {
6053 let value = value.clone();
6054 Box::pin(async move { value.into_id().await.unwrap().quote() })
6055 }),
6056 );
6057 query = query.arg("description", description.into());
6058 Env {
6059 proc: self.proc.clone(),
6060 selection: query,
6061 graphql_client: self.graphql_client.clone(),
6062 }
6063 }
6064 pub fn with_secret_output(
6071 &self,
6072 name: impl Into<String>,
6073 description: impl Into<String>,
6074 ) -> Env {
6075 let mut query = self.selection.select("withSecretOutput");
6076 query = query.arg("name", name.into());
6077 query = query.arg("description", description.into());
6078 Env {
6079 proc: self.proc.clone(),
6080 selection: query,
6081 graphql_client: self.graphql_client.clone(),
6082 }
6083 }
6084 pub fn with_service_input(
6092 &self,
6093 name: impl Into<String>,
6094 value: impl IntoID<ServiceId>,
6095 description: impl Into<String>,
6096 ) -> Env {
6097 let mut query = self.selection.select("withServiceInput");
6098 query = query.arg("name", name.into());
6099 query = query.arg_lazy(
6100 "value",
6101 Box::new(move || {
6102 let value = value.clone();
6103 Box::pin(async move { value.into_id().await.unwrap().quote() })
6104 }),
6105 );
6106 query = query.arg("description", description.into());
6107 Env {
6108 proc: self.proc.clone(),
6109 selection: query,
6110 graphql_client: self.graphql_client.clone(),
6111 }
6112 }
6113 pub fn with_service_output(
6120 &self,
6121 name: impl Into<String>,
6122 description: impl Into<String>,
6123 ) -> Env {
6124 let mut query = self.selection.select("withServiceOutput");
6125 query = query.arg("name", name.into());
6126 query = query.arg("description", description.into());
6127 Env {
6128 proc: self.proc.clone(),
6129 selection: query,
6130 graphql_client: self.graphql_client.clone(),
6131 }
6132 }
6133 pub fn with_socket_input(
6141 &self,
6142 name: impl Into<String>,
6143 value: impl IntoID<SocketId>,
6144 description: impl Into<String>,
6145 ) -> Env {
6146 let mut query = self.selection.select("withSocketInput");
6147 query = query.arg("name", name.into());
6148 query = query.arg_lazy(
6149 "value",
6150 Box::new(move || {
6151 let value = value.clone();
6152 Box::pin(async move { value.into_id().await.unwrap().quote() })
6153 }),
6154 );
6155 query = query.arg("description", description.into());
6156 Env {
6157 proc: self.proc.clone(),
6158 selection: query,
6159 graphql_client: self.graphql_client.clone(),
6160 }
6161 }
6162 pub fn with_socket_output(
6169 &self,
6170 name: impl Into<String>,
6171 description: impl Into<String>,
6172 ) -> Env {
6173 let mut query = self.selection.select("withSocketOutput");
6174 query = query.arg("name", name.into());
6175 query = query.arg("description", description.into());
6176 Env {
6177 proc: self.proc.clone(),
6178 selection: query,
6179 graphql_client: self.graphql_client.clone(),
6180 }
6181 }
6182 pub fn with_string_input(
6190 &self,
6191 name: impl Into<String>,
6192 value: impl Into<String>,
6193 description: impl Into<String>,
6194 ) -> Env {
6195 let mut query = self.selection.select("withStringInput");
6196 query = query.arg("name", name.into());
6197 query = query.arg("value", value.into());
6198 query = query.arg("description", description.into());
6199 Env {
6200 proc: self.proc.clone(),
6201 selection: query,
6202 graphql_client: self.graphql_client.clone(),
6203 }
6204 }
6205 pub fn with_string_output(
6212 &self,
6213 name: impl Into<String>,
6214 description: impl Into<String>,
6215 ) -> Env {
6216 let mut query = self.selection.select("withStringOutput");
6217 query = query.arg("name", name.into());
6218 query = query.arg("description", description.into());
6219 Env {
6220 proc: self.proc.clone(),
6221 selection: query,
6222 graphql_client: self.graphql_client.clone(),
6223 }
6224 }
6225}
6226#[derive(Clone)]
6227pub struct EnvVariable {
6228 pub proc: Option<Arc<DaggerSessionProc>>,
6229 pub selection: Selection,
6230 pub graphql_client: DynGraphQLClient,
6231}
6232impl EnvVariable {
6233 pub async fn id(&self) -> Result<EnvVariableId, DaggerError> {
6235 let query = self.selection.select("id");
6236 query.execute(self.graphql_client.clone()).await
6237 }
6238 pub async fn name(&self) -> Result<String, DaggerError> {
6240 let query = self.selection.select("name");
6241 query.execute(self.graphql_client.clone()).await
6242 }
6243 pub async fn value(&self) -> Result<String, DaggerError> {
6245 let query = self.selection.select("value");
6246 query.execute(self.graphql_client.clone()).await
6247 }
6248}
6249#[derive(Clone)]
6250pub struct Error {
6251 pub proc: Option<Arc<DaggerSessionProc>>,
6252 pub selection: Selection,
6253 pub graphql_client: DynGraphQLClient,
6254}
6255impl Error {
6256 pub async fn id(&self) -> Result<ErrorId, DaggerError> {
6258 let query = self.selection.select("id");
6259 query.execute(self.graphql_client.clone()).await
6260 }
6261 pub async fn message(&self) -> Result<String, DaggerError> {
6263 let query = self.selection.select("message");
6264 query.execute(self.graphql_client.clone()).await
6265 }
6266 pub fn values(&self) -> Vec<ErrorValue> {
6268 let query = self.selection.select("values");
6269 vec![ErrorValue {
6270 proc: self.proc.clone(),
6271 selection: query,
6272 graphql_client: self.graphql_client.clone(),
6273 }]
6274 }
6275 pub fn with_value(&self, name: impl Into<String>, value: Json) -> Error {
6282 let mut query = self.selection.select("withValue");
6283 query = query.arg("name", name.into());
6284 query = query.arg("value", value);
6285 Error {
6286 proc: self.proc.clone(),
6287 selection: query,
6288 graphql_client: self.graphql_client.clone(),
6289 }
6290 }
6291}
6292#[derive(Clone)]
6293pub struct ErrorValue {
6294 pub proc: Option<Arc<DaggerSessionProc>>,
6295 pub selection: Selection,
6296 pub graphql_client: DynGraphQLClient,
6297}
6298impl ErrorValue {
6299 pub async fn id(&self) -> Result<ErrorValueId, DaggerError> {
6301 let query = self.selection.select("id");
6302 query.execute(self.graphql_client.clone()).await
6303 }
6304 pub async fn name(&self) -> Result<String, DaggerError> {
6306 let query = self.selection.select("name");
6307 query.execute(self.graphql_client.clone()).await
6308 }
6309 pub async fn value(&self) -> Result<Json, DaggerError> {
6311 let query = self.selection.select("value");
6312 query.execute(self.graphql_client.clone()).await
6313 }
6314}
6315#[derive(Clone)]
6316pub struct FieldTypeDef {
6317 pub proc: Option<Arc<DaggerSessionProc>>,
6318 pub selection: Selection,
6319 pub graphql_client: DynGraphQLClient,
6320}
6321impl FieldTypeDef {
6322 pub async fn description(&self) -> Result<String, DaggerError> {
6324 let query = self.selection.select("description");
6325 query.execute(self.graphql_client.clone()).await
6326 }
6327 pub async fn id(&self) -> Result<FieldTypeDefId, DaggerError> {
6329 let query = self.selection.select("id");
6330 query.execute(self.graphql_client.clone()).await
6331 }
6332 pub async fn name(&self) -> Result<String, DaggerError> {
6334 let query = self.selection.select("name");
6335 query.execute(self.graphql_client.clone()).await
6336 }
6337 pub fn source_map(&self) -> SourceMap {
6339 let query = self.selection.select("sourceMap");
6340 SourceMap {
6341 proc: self.proc.clone(),
6342 selection: query,
6343 graphql_client: self.graphql_client.clone(),
6344 }
6345 }
6346 pub fn type_def(&self) -> TypeDef {
6348 let query = self.selection.select("typeDef");
6349 TypeDef {
6350 proc: self.proc.clone(),
6351 selection: query,
6352 graphql_client: self.graphql_client.clone(),
6353 }
6354 }
6355}
6356#[derive(Clone)]
6357pub struct File {
6358 pub proc: Option<Arc<DaggerSessionProc>>,
6359 pub selection: Selection,
6360 pub graphql_client: DynGraphQLClient,
6361}
6362#[derive(Builder, Debug, PartialEq)]
6363pub struct FileDigestOpts {
6364 #[builder(setter(into, strip_option), default)]
6366 pub exclude_metadata: Option<bool>,
6367}
6368#[derive(Builder, Debug, PartialEq)]
6369pub struct FileExportOpts {
6370 #[builder(setter(into, strip_option), default)]
6372 pub allow_parent_dir_path: Option<bool>,
6373}
6374impl File {
6375 pub async fn contents(&self) -> Result<String, DaggerError> {
6377 let query = self.selection.select("contents");
6378 query.execute(self.graphql_client.clone()).await
6379 }
6380 pub async fn digest(&self) -> Result<String, DaggerError> {
6386 let query = self.selection.select("digest");
6387 query.execute(self.graphql_client.clone()).await
6388 }
6389 pub async fn digest_opts(&self, opts: FileDigestOpts) -> Result<String, DaggerError> {
6395 let mut query = self.selection.select("digest");
6396 if let Some(exclude_metadata) = opts.exclude_metadata {
6397 query = query.arg("excludeMetadata", exclude_metadata);
6398 }
6399 query.execute(self.graphql_client.clone()).await
6400 }
6401 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
6408 let mut query = self.selection.select("export");
6409 query = query.arg("path", path.into());
6410 query.execute(self.graphql_client.clone()).await
6411 }
6412 pub async fn export_opts(
6419 &self,
6420 path: impl Into<String>,
6421 opts: FileExportOpts,
6422 ) -> Result<String, DaggerError> {
6423 let mut query = self.selection.select("export");
6424 query = query.arg("path", path.into());
6425 if let Some(allow_parent_dir_path) = opts.allow_parent_dir_path {
6426 query = query.arg("allowParentDirPath", allow_parent_dir_path);
6427 }
6428 query.execute(self.graphql_client.clone()).await
6429 }
6430 pub async fn id(&self) -> Result<FileId, DaggerError> {
6432 let query = self.selection.select("id");
6433 query.execute(self.graphql_client.clone()).await
6434 }
6435 pub async fn name(&self) -> Result<String, DaggerError> {
6437 let query = self.selection.select("name");
6438 query.execute(self.graphql_client.clone()).await
6439 }
6440 pub async fn size(&self) -> Result<isize, DaggerError> {
6442 let query = self.selection.select("size");
6443 query.execute(self.graphql_client.clone()).await
6444 }
6445 pub async fn sync(&self) -> Result<FileId, DaggerError> {
6447 let query = self.selection.select("sync");
6448 query.execute(self.graphql_client.clone()).await
6449 }
6450 pub fn with_name(&self, name: impl Into<String>) -> File {
6456 let mut query = self.selection.select("withName");
6457 query = query.arg("name", name.into());
6458 File {
6459 proc: self.proc.clone(),
6460 selection: query,
6461 graphql_client: self.graphql_client.clone(),
6462 }
6463 }
6464 pub fn with_timestamps(&self, timestamp: isize) -> File {
6472 let mut query = self.selection.select("withTimestamps");
6473 query = query.arg("timestamp", timestamp);
6474 File {
6475 proc: self.proc.clone(),
6476 selection: query,
6477 graphql_client: self.graphql_client.clone(),
6478 }
6479 }
6480}
6481#[derive(Clone)]
6482pub struct Function {
6483 pub proc: Option<Arc<DaggerSessionProc>>,
6484 pub selection: Selection,
6485 pub graphql_client: DynGraphQLClient,
6486}
6487#[derive(Builder, Debug, PartialEq)]
6488pub struct FunctionWithArgOpts<'a> {
6489 #[builder(setter(into, strip_option), default)]
6491 pub default_path: Option<&'a str>,
6492 #[builder(setter(into, strip_option), default)]
6494 pub default_value: Option<Json>,
6495 #[builder(setter(into, strip_option), default)]
6497 pub description: Option<&'a str>,
6498 #[builder(setter(into, strip_option), default)]
6500 pub ignore: Option<Vec<&'a str>>,
6501 #[builder(setter(into, strip_option), default)]
6503 pub source_map: Option<SourceMapId>,
6504}
6505impl Function {
6506 pub fn args(&self) -> Vec<FunctionArg> {
6508 let query = self.selection.select("args");
6509 vec![FunctionArg {
6510 proc: self.proc.clone(),
6511 selection: query,
6512 graphql_client: self.graphql_client.clone(),
6513 }]
6514 }
6515 pub async fn description(&self) -> Result<String, DaggerError> {
6517 let query = self.selection.select("description");
6518 query.execute(self.graphql_client.clone()).await
6519 }
6520 pub async fn id(&self) -> Result<FunctionId, DaggerError> {
6522 let query = self.selection.select("id");
6523 query.execute(self.graphql_client.clone()).await
6524 }
6525 pub async fn name(&self) -> Result<String, DaggerError> {
6527 let query = self.selection.select("name");
6528 query.execute(self.graphql_client.clone()).await
6529 }
6530 pub fn return_type(&self) -> TypeDef {
6532 let query = self.selection.select("returnType");
6533 TypeDef {
6534 proc: self.proc.clone(),
6535 selection: query,
6536 graphql_client: self.graphql_client.clone(),
6537 }
6538 }
6539 pub fn source_map(&self) -> SourceMap {
6541 let query = self.selection.select("sourceMap");
6542 SourceMap {
6543 proc: self.proc.clone(),
6544 selection: query,
6545 graphql_client: self.graphql_client.clone(),
6546 }
6547 }
6548 pub fn with_arg(&self, name: impl Into<String>, type_def: impl IntoID<TypeDefId>) -> Function {
6556 let mut query = self.selection.select("withArg");
6557 query = query.arg("name", name.into());
6558 query = query.arg_lazy(
6559 "typeDef",
6560 Box::new(move || {
6561 let type_def = type_def.clone();
6562 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
6563 }),
6564 );
6565 Function {
6566 proc: self.proc.clone(),
6567 selection: query,
6568 graphql_client: self.graphql_client.clone(),
6569 }
6570 }
6571 pub fn with_arg_opts<'a>(
6579 &self,
6580 name: impl Into<String>,
6581 type_def: impl IntoID<TypeDefId>,
6582 opts: FunctionWithArgOpts<'a>,
6583 ) -> Function {
6584 let mut query = self.selection.select("withArg");
6585 query = query.arg("name", name.into());
6586 query = query.arg_lazy(
6587 "typeDef",
6588 Box::new(move || {
6589 let type_def = type_def.clone();
6590 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
6591 }),
6592 );
6593 if let Some(description) = opts.description {
6594 query = query.arg("description", description);
6595 }
6596 if let Some(default_value) = opts.default_value {
6597 query = query.arg("defaultValue", default_value);
6598 }
6599 if let Some(default_path) = opts.default_path {
6600 query = query.arg("defaultPath", default_path);
6601 }
6602 if let Some(ignore) = opts.ignore {
6603 query = query.arg("ignore", ignore);
6604 }
6605 if let Some(source_map) = opts.source_map {
6606 query = query.arg("sourceMap", source_map);
6607 }
6608 Function {
6609 proc: self.proc.clone(),
6610 selection: query,
6611 graphql_client: self.graphql_client.clone(),
6612 }
6613 }
6614 pub fn with_description(&self, description: impl Into<String>) -> Function {
6620 let mut query = self.selection.select("withDescription");
6621 query = query.arg("description", description.into());
6622 Function {
6623 proc: self.proc.clone(),
6624 selection: query,
6625 graphql_client: self.graphql_client.clone(),
6626 }
6627 }
6628 pub fn with_source_map(&self, source_map: impl IntoID<SourceMapId>) -> Function {
6634 let mut query = self.selection.select("withSourceMap");
6635 query = query.arg_lazy(
6636 "sourceMap",
6637 Box::new(move || {
6638 let source_map = source_map.clone();
6639 Box::pin(async move { source_map.into_id().await.unwrap().quote() })
6640 }),
6641 );
6642 Function {
6643 proc: self.proc.clone(),
6644 selection: query,
6645 graphql_client: self.graphql_client.clone(),
6646 }
6647 }
6648}
6649#[derive(Clone)]
6650pub struct FunctionArg {
6651 pub proc: Option<Arc<DaggerSessionProc>>,
6652 pub selection: Selection,
6653 pub graphql_client: DynGraphQLClient,
6654}
6655impl FunctionArg {
6656 pub async fn default_path(&self) -> Result<String, DaggerError> {
6658 let query = self.selection.select("defaultPath");
6659 query.execute(self.graphql_client.clone()).await
6660 }
6661 pub async fn default_value(&self) -> Result<Json, DaggerError> {
6663 let query = self.selection.select("defaultValue");
6664 query.execute(self.graphql_client.clone()).await
6665 }
6666 pub async fn description(&self) -> Result<String, DaggerError> {
6668 let query = self.selection.select("description");
6669 query.execute(self.graphql_client.clone()).await
6670 }
6671 pub async fn id(&self) -> Result<FunctionArgId, DaggerError> {
6673 let query = self.selection.select("id");
6674 query.execute(self.graphql_client.clone()).await
6675 }
6676 pub async fn ignore(&self) -> Result<Vec<String>, DaggerError> {
6678 let query = self.selection.select("ignore");
6679 query.execute(self.graphql_client.clone()).await
6680 }
6681 pub async fn name(&self) -> Result<String, DaggerError> {
6683 let query = self.selection.select("name");
6684 query.execute(self.graphql_client.clone()).await
6685 }
6686 pub fn source_map(&self) -> SourceMap {
6688 let query = self.selection.select("sourceMap");
6689 SourceMap {
6690 proc: self.proc.clone(),
6691 selection: query,
6692 graphql_client: self.graphql_client.clone(),
6693 }
6694 }
6695 pub fn type_def(&self) -> TypeDef {
6697 let query = self.selection.select("typeDef");
6698 TypeDef {
6699 proc: self.proc.clone(),
6700 selection: query,
6701 graphql_client: self.graphql_client.clone(),
6702 }
6703 }
6704}
6705#[derive(Clone)]
6706pub struct FunctionCall {
6707 pub proc: Option<Arc<DaggerSessionProc>>,
6708 pub selection: Selection,
6709 pub graphql_client: DynGraphQLClient,
6710}
6711impl FunctionCall {
6712 pub async fn id(&self) -> Result<FunctionCallId, DaggerError> {
6714 let query = self.selection.select("id");
6715 query.execute(self.graphql_client.clone()).await
6716 }
6717 pub fn input_args(&self) -> Vec<FunctionCallArgValue> {
6719 let query = self.selection.select("inputArgs");
6720 vec![FunctionCallArgValue {
6721 proc: self.proc.clone(),
6722 selection: query,
6723 graphql_client: self.graphql_client.clone(),
6724 }]
6725 }
6726 pub async fn name(&self) -> Result<String, DaggerError> {
6728 let query = self.selection.select("name");
6729 query.execute(self.graphql_client.clone()).await
6730 }
6731 pub async fn parent(&self) -> Result<Json, DaggerError> {
6733 let query = self.selection.select("parent");
6734 query.execute(self.graphql_client.clone()).await
6735 }
6736 pub async fn parent_name(&self) -> Result<String, DaggerError> {
6738 let query = self.selection.select("parentName");
6739 query.execute(self.graphql_client.clone()).await
6740 }
6741 pub async fn return_error(&self, error: impl IntoID<ErrorId>) -> Result<Void, DaggerError> {
6747 let mut query = self.selection.select("returnError");
6748 query = query.arg_lazy(
6749 "error",
6750 Box::new(move || {
6751 let error = error.clone();
6752 Box::pin(async move { error.into_id().await.unwrap().quote() })
6753 }),
6754 );
6755 query.execute(self.graphql_client.clone()).await
6756 }
6757 pub async fn return_value(&self, value: Json) -> Result<Void, DaggerError> {
6763 let mut query = self.selection.select("returnValue");
6764 query = query.arg("value", value);
6765 query.execute(self.graphql_client.clone()).await
6766 }
6767}
6768#[derive(Clone)]
6769pub struct FunctionCallArgValue {
6770 pub proc: Option<Arc<DaggerSessionProc>>,
6771 pub selection: Selection,
6772 pub graphql_client: DynGraphQLClient,
6773}
6774impl FunctionCallArgValue {
6775 pub async fn id(&self) -> Result<FunctionCallArgValueId, DaggerError> {
6777 let query = self.selection.select("id");
6778 query.execute(self.graphql_client.clone()).await
6779 }
6780 pub async fn name(&self) -> Result<String, DaggerError> {
6782 let query = self.selection.select("name");
6783 query.execute(self.graphql_client.clone()).await
6784 }
6785 pub async fn value(&self) -> Result<Json, DaggerError> {
6787 let query = self.selection.select("value");
6788 query.execute(self.graphql_client.clone()).await
6789 }
6790}
6791#[derive(Clone)]
6792pub struct GeneratedCode {
6793 pub proc: Option<Arc<DaggerSessionProc>>,
6794 pub selection: Selection,
6795 pub graphql_client: DynGraphQLClient,
6796}
6797impl GeneratedCode {
6798 pub fn code(&self) -> Directory {
6800 let query = self.selection.select("code");
6801 Directory {
6802 proc: self.proc.clone(),
6803 selection: query,
6804 graphql_client: self.graphql_client.clone(),
6805 }
6806 }
6807 pub async fn id(&self) -> Result<GeneratedCodeId, DaggerError> {
6809 let query = self.selection.select("id");
6810 query.execute(self.graphql_client.clone()).await
6811 }
6812 pub async fn vcs_generated_paths(&self) -> Result<Vec<String>, DaggerError> {
6814 let query = self.selection.select("vcsGeneratedPaths");
6815 query.execute(self.graphql_client.clone()).await
6816 }
6817 pub async fn vcs_ignored_paths(&self) -> Result<Vec<String>, DaggerError> {
6819 let query = self.selection.select("vcsIgnoredPaths");
6820 query.execute(self.graphql_client.clone()).await
6821 }
6822 pub fn with_vcs_generated_paths(&self, paths: Vec<impl Into<String>>) -> GeneratedCode {
6824 let mut query = self.selection.select("withVCSGeneratedPaths");
6825 query = query.arg(
6826 "paths",
6827 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
6828 );
6829 GeneratedCode {
6830 proc: self.proc.clone(),
6831 selection: query,
6832 graphql_client: self.graphql_client.clone(),
6833 }
6834 }
6835 pub fn with_vcs_ignored_paths(&self, paths: Vec<impl Into<String>>) -> GeneratedCode {
6837 let mut query = self.selection.select("withVCSIgnoredPaths");
6838 query = query.arg(
6839 "paths",
6840 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
6841 );
6842 GeneratedCode {
6843 proc: self.proc.clone(),
6844 selection: query,
6845 graphql_client: self.graphql_client.clone(),
6846 }
6847 }
6848}
6849#[derive(Clone)]
6850pub struct GitRef {
6851 pub proc: Option<Arc<DaggerSessionProc>>,
6852 pub selection: Selection,
6853 pub graphql_client: DynGraphQLClient,
6854}
6855#[derive(Builder, Debug, PartialEq)]
6856pub struct GitRefTreeOpts {
6857 #[builder(setter(into, strip_option), default)]
6859 pub depth: Option<isize>,
6860 #[builder(setter(into, strip_option), default)]
6862 pub discard_git_dir: Option<bool>,
6863}
6864impl GitRef {
6865 pub async fn commit(&self) -> Result<String, DaggerError> {
6867 let query = self.selection.select("commit");
6868 query.execute(self.graphql_client.clone()).await
6869 }
6870 pub async fn id(&self) -> Result<GitRefId, DaggerError> {
6872 let query = self.selection.select("id");
6873 query.execute(self.graphql_client.clone()).await
6874 }
6875 pub async fn r#ref(&self) -> Result<String, DaggerError> {
6877 let query = self.selection.select("ref");
6878 query.execute(self.graphql_client.clone()).await
6879 }
6880 pub fn tree(&self) -> Directory {
6886 let query = self.selection.select("tree");
6887 Directory {
6888 proc: self.proc.clone(),
6889 selection: query,
6890 graphql_client: self.graphql_client.clone(),
6891 }
6892 }
6893 pub fn tree_opts(&self, opts: GitRefTreeOpts) -> Directory {
6899 let mut query = self.selection.select("tree");
6900 if let Some(discard_git_dir) = opts.discard_git_dir {
6901 query = query.arg("discardGitDir", discard_git_dir);
6902 }
6903 if let Some(depth) = opts.depth {
6904 query = query.arg("depth", depth);
6905 }
6906 Directory {
6907 proc: self.proc.clone(),
6908 selection: query,
6909 graphql_client: self.graphql_client.clone(),
6910 }
6911 }
6912}
6913#[derive(Clone)]
6914pub struct GitRepository {
6915 pub proc: Option<Arc<DaggerSessionProc>>,
6916 pub selection: Selection,
6917 pub graphql_client: DynGraphQLClient,
6918}
6919#[derive(Builder, Debug, PartialEq)]
6920pub struct GitRepositoryBranchesOpts<'a> {
6921 #[builder(setter(into, strip_option), default)]
6923 pub patterns: Option<Vec<&'a str>>,
6924}
6925#[derive(Builder, Debug, PartialEq)]
6926pub struct GitRepositoryTagsOpts<'a> {
6927 #[builder(setter(into, strip_option), default)]
6929 pub patterns: Option<Vec<&'a str>>,
6930}
6931impl GitRepository {
6932 pub fn branch(&self, name: impl Into<String>) -> GitRef {
6938 let mut query = self.selection.select("branch");
6939 query = query.arg("name", name.into());
6940 GitRef {
6941 proc: self.proc.clone(),
6942 selection: query,
6943 graphql_client: self.graphql_client.clone(),
6944 }
6945 }
6946 pub async fn branches(&self) -> Result<Vec<String>, DaggerError> {
6952 let query = self.selection.select("branches");
6953 query.execute(self.graphql_client.clone()).await
6954 }
6955 pub async fn branches_opts<'a>(
6961 &self,
6962 opts: GitRepositoryBranchesOpts<'a>,
6963 ) -> Result<Vec<String>, DaggerError> {
6964 let mut query = self.selection.select("branches");
6965 if let Some(patterns) = opts.patterns {
6966 query = query.arg("patterns", patterns);
6967 }
6968 query.execute(self.graphql_client.clone()).await
6969 }
6970 pub fn commit(&self, id: impl Into<String>) -> GitRef {
6976 let mut query = self.selection.select("commit");
6977 query = query.arg("id", id.into());
6978 GitRef {
6979 proc: self.proc.clone(),
6980 selection: query,
6981 graphql_client: self.graphql_client.clone(),
6982 }
6983 }
6984 pub fn head(&self) -> GitRef {
6986 let query = self.selection.select("head");
6987 GitRef {
6988 proc: self.proc.clone(),
6989 selection: query,
6990 graphql_client: self.graphql_client.clone(),
6991 }
6992 }
6993 pub async fn id(&self) -> Result<GitRepositoryId, DaggerError> {
6995 let query = self.selection.select("id");
6996 query.execute(self.graphql_client.clone()).await
6997 }
6998 pub fn r#ref(&self, name: impl Into<String>) -> GitRef {
7004 let mut query = self.selection.select("ref");
7005 query = query.arg("name", name.into());
7006 GitRef {
7007 proc: self.proc.clone(),
7008 selection: query,
7009 graphql_client: self.graphql_client.clone(),
7010 }
7011 }
7012 pub fn tag(&self, name: impl Into<String>) -> GitRef {
7018 let mut query = self.selection.select("tag");
7019 query = query.arg("name", name.into());
7020 GitRef {
7021 proc: self.proc.clone(),
7022 selection: query,
7023 graphql_client: self.graphql_client.clone(),
7024 }
7025 }
7026 pub async fn tags(&self) -> Result<Vec<String>, DaggerError> {
7032 let query = self.selection.select("tags");
7033 query.execute(self.graphql_client.clone()).await
7034 }
7035 pub async fn tags_opts<'a>(
7041 &self,
7042 opts: GitRepositoryTagsOpts<'a>,
7043 ) -> Result<Vec<String>, DaggerError> {
7044 let mut query = self.selection.select("tags");
7045 if let Some(patterns) = opts.patterns {
7046 query = query.arg("patterns", patterns);
7047 }
7048 query.execute(self.graphql_client.clone()).await
7049 }
7050 pub fn with_auth_header(&self, header: impl IntoID<SecretId>) -> GitRepository {
7056 let mut query = self.selection.select("withAuthHeader");
7057 query = query.arg_lazy(
7058 "header",
7059 Box::new(move || {
7060 let header = header.clone();
7061 Box::pin(async move { header.into_id().await.unwrap().quote() })
7062 }),
7063 );
7064 GitRepository {
7065 proc: self.proc.clone(),
7066 selection: query,
7067 graphql_client: self.graphql_client.clone(),
7068 }
7069 }
7070 pub fn with_auth_token(&self, token: impl IntoID<SecretId>) -> GitRepository {
7076 let mut query = self.selection.select("withAuthToken");
7077 query = query.arg_lazy(
7078 "token",
7079 Box::new(move || {
7080 let token = token.clone();
7081 Box::pin(async move { token.into_id().await.unwrap().quote() })
7082 }),
7083 );
7084 GitRepository {
7085 proc: self.proc.clone(),
7086 selection: query,
7087 graphql_client: self.graphql_client.clone(),
7088 }
7089 }
7090}
7091#[derive(Clone)]
7092pub struct Host {
7093 pub proc: Option<Arc<DaggerSessionProc>>,
7094 pub selection: Selection,
7095 pub graphql_client: DynGraphQLClient,
7096}
7097#[derive(Builder, Debug, PartialEq)]
7098pub struct HostDirectoryOpts<'a> {
7099 #[builder(setter(into, strip_option), default)]
7101 pub exclude: Option<Vec<&'a str>>,
7102 #[builder(setter(into, strip_option), default)]
7104 pub include: Option<Vec<&'a str>>,
7105 #[builder(setter(into, strip_option), default)]
7107 pub no_cache: Option<bool>,
7108}
7109#[derive(Builder, Debug, PartialEq)]
7110pub struct HostFileOpts {
7111 #[builder(setter(into, strip_option), default)]
7113 pub no_cache: Option<bool>,
7114}
7115#[derive(Builder, Debug, PartialEq)]
7116pub struct HostServiceOpts<'a> {
7117 #[builder(setter(into, strip_option), default)]
7119 pub host: Option<&'a str>,
7120}
7121#[derive(Builder, Debug, PartialEq)]
7122pub struct HostTunnelOpts {
7123 #[builder(setter(into, strip_option), default)]
7126 pub native: Option<bool>,
7127 #[builder(setter(into, strip_option), default)]
7132 pub ports: Option<Vec<PortForward>>,
7133}
7134impl Host {
7135 pub fn directory(&self, path: impl Into<String>) -> Directory {
7142 let mut query = self.selection.select("directory");
7143 query = query.arg("path", path.into());
7144 Directory {
7145 proc: self.proc.clone(),
7146 selection: query,
7147 graphql_client: self.graphql_client.clone(),
7148 }
7149 }
7150 pub fn directory_opts<'a>(
7157 &self,
7158 path: impl Into<String>,
7159 opts: HostDirectoryOpts<'a>,
7160 ) -> Directory {
7161 let mut query = self.selection.select("directory");
7162 query = query.arg("path", path.into());
7163 if let Some(exclude) = opts.exclude {
7164 query = query.arg("exclude", exclude);
7165 }
7166 if let Some(include) = opts.include {
7167 query = query.arg("include", include);
7168 }
7169 if let Some(no_cache) = opts.no_cache {
7170 query = query.arg("noCache", no_cache);
7171 }
7172 Directory {
7173 proc: self.proc.clone(),
7174 selection: query,
7175 graphql_client: self.graphql_client.clone(),
7176 }
7177 }
7178 pub fn file(&self, path: impl Into<String>) -> File {
7185 let mut query = self.selection.select("file");
7186 query = query.arg("path", path.into());
7187 File {
7188 proc: self.proc.clone(),
7189 selection: query,
7190 graphql_client: self.graphql_client.clone(),
7191 }
7192 }
7193 pub fn file_opts(&self, path: impl Into<String>, opts: HostFileOpts) -> File {
7200 let mut query = self.selection.select("file");
7201 query = query.arg("path", path.into());
7202 if let Some(no_cache) = opts.no_cache {
7203 query = query.arg("noCache", no_cache);
7204 }
7205 File {
7206 proc: self.proc.clone(),
7207 selection: query,
7208 graphql_client: self.graphql_client.clone(),
7209 }
7210 }
7211 pub async fn id(&self) -> Result<HostId, DaggerError> {
7213 let query = self.selection.select("id");
7214 query.execute(self.graphql_client.clone()).await
7215 }
7216 pub fn service(&self, ports: Vec<PortForward>) -> Service {
7227 let mut query = self.selection.select("service");
7228 query = query.arg("ports", ports);
7229 Service {
7230 proc: self.proc.clone(),
7231 selection: query,
7232 graphql_client: self.graphql_client.clone(),
7233 }
7234 }
7235 pub fn service_opts<'a>(&self, ports: Vec<PortForward>, opts: HostServiceOpts<'a>) -> Service {
7246 let mut query = self.selection.select("service");
7247 query = query.arg("ports", ports);
7248 if let Some(host) = opts.host {
7249 query = query.arg("host", host);
7250 }
7251 Service {
7252 proc: self.proc.clone(),
7253 selection: query,
7254 graphql_client: self.graphql_client.clone(),
7255 }
7256 }
7257 pub fn set_secret_file(&self, name: impl Into<String>, path: impl Into<String>) -> Secret {
7265 let mut query = self.selection.select("setSecretFile");
7266 query = query.arg("name", name.into());
7267 query = query.arg("path", path.into());
7268 Secret {
7269 proc: self.proc.clone(),
7270 selection: query,
7271 graphql_client: self.graphql_client.clone(),
7272 }
7273 }
7274 pub fn tunnel(&self, service: impl IntoID<ServiceId>) -> Service {
7281 let mut query = self.selection.select("tunnel");
7282 query = query.arg_lazy(
7283 "service",
7284 Box::new(move || {
7285 let service = service.clone();
7286 Box::pin(async move { service.into_id().await.unwrap().quote() })
7287 }),
7288 );
7289 Service {
7290 proc: self.proc.clone(),
7291 selection: query,
7292 graphql_client: self.graphql_client.clone(),
7293 }
7294 }
7295 pub fn tunnel_opts(&self, service: impl IntoID<ServiceId>, opts: HostTunnelOpts) -> Service {
7302 let mut query = self.selection.select("tunnel");
7303 query = query.arg_lazy(
7304 "service",
7305 Box::new(move || {
7306 let service = service.clone();
7307 Box::pin(async move { service.into_id().await.unwrap().quote() })
7308 }),
7309 );
7310 if let Some(native) = opts.native {
7311 query = query.arg("native", native);
7312 }
7313 if let Some(ports) = opts.ports {
7314 query = query.arg("ports", ports);
7315 }
7316 Service {
7317 proc: self.proc.clone(),
7318 selection: query,
7319 graphql_client: self.graphql_client.clone(),
7320 }
7321 }
7322 pub fn unix_socket(&self, path: impl Into<String>) -> Socket {
7328 let mut query = self.selection.select("unixSocket");
7329 query = query.arg("path", path.into());
7330 Socket {
7331 proc: self.proc.clone(),
7332 selection: query,
7333 graphql_client: self.graphql_client.clone(),
7334 }
7335 }
7336}
7337#[derive(Clone)]
7338pub struct InputTypeDef {
7339 pub proc: Option<Arc<DaggerSessionProc>>,
7340 pub selection: Selection,
7341 pub graphql_client: DynGraphQLClient,
7342}
7343impl InputTypeDef {
7344 pub fn fields(&self) -> Vec<FieldTypeDef> {
7346 let query = self.selection.select("fields");
7347 vec![FieldTypeDef {
7348 proc: self.proc.clone(),
7349 selection: query,
7350 graphql_client: self.graphql_client.clone(),
7351 }]
7352 }
7353 pub async fn id(&self) -> Result<InputTypeDefId, DaggerError> {
7355 let query = self.selection.select("id");
7356 query.execute(self.graphql_client.clone()).await
7357 }
7358 pub async fn name(&self) -> Result<String, DaggerError> {
7360 let query = self.selection.select("name");
7361 query.execute(self.graphql_client.clone()).await
7362 }
7363}
7364#[derive(Clone)]
7365pub struct InterfaceTypeDef {
7366 pub proc: Option<Arc<DaggerSessionProc>>,
7367 pub selection: Selection,
7368 pub graphql_client: DynGraphQLClient,
7369}
7370impl InterfaceTypeDef {
7371 pub async fn description(&self) -> Result<String, DaggerError> {
7373 let query = self.selection.select("description");
7374 query.execute(self.graphql_client.clone()).await
7375 }
7376 pub fn functions(&self) -> Vec<Function> {
7378 let query = self.selection.select("functions");
7379 vec![Function {
7380 proc: self.proc.clone(),
7381 selection: query,
7382 graphql_client: self.graphql_client.clone(),
7383 }]
7384 }
7385 pub async fn id(&self) -> Result<InterfaceTypeDefId, DaggerError> {
7387 let query = self.selection.select("id");
7388 query.execute(self.graphql_client.clone()).await
7389 }
7390 pub async fn name(&self) -> Result<String, DaggerError> {
7392 let query = self.selection.select("name");
7393 query.execute(self.graphql_client.clone()).await
7394 }
7395 pub fn source_map(&self) -> SourceMap {
7397 let query = self.selection.select("sourceMap");
7398 SourceMap {
7399 proc: self.proc.clone(),
7400 selection: query,
7401 graphql_client: self.graphql_client.clone(),
7402 }
7403 }
7404 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
7406 let query = self.selection.select("sourceModuleName");
7407 query.execute(self.graphql_client.clone()).await
7408 }
7409}
7410#[derive(Clone)]
7411pub struct Llm {
7412 pub proc: Option<Arc<DaggerSessionProc>>,
7413 pub selection: Selection,
7414 pub graphql_client: DynGraphQLClient,
7415}
7416impl Llm {
7417 pub fn attempt(&self, number: isize) -> Llm {
7419 let mut query = self.selection.select("attempt");
7420 query = query.arg("number", number);
7421 Llm {
7422 proc: self.proc.clone(),
7423 selection: query,
7424 graphql_client: self.graphql_client.clone(),
7425 }
7426 }
7427 pub fn bind_result(&self, name: impl Into<String>) -> Binding {
7429 let mut query = self.selection.select("bindResult");
7430 query = query.arg("name", name.into());
7431 Binding {
7432 proc: self.proc.clone(),
7433 selection: query,
7434 graphql_client: self.graphql_client.clone(),
7435 }
7436 }
7437 pub fn env(&self) -> Env {
7439 let query = self.selection.select("env");
7440 Env {
7441 proc: self.proc.clone(),
7442 selection: query,
7443 graphql_client: self.graphql_client.clone(),
7444 }
7445 }
7446 pub async fn history(&self) -> Result<Vec<String>, DaggerError> {
7448 let query = self.selection.select("history");
7449 query.execute(self.graphql_client.clone()).await
7450 }
7451 pub async fn history_json(&self) -> Result<Json, DaggerError> {
7453 let query = self.selection.select("historyJSON");
7454 query.execute(self.graphql_client.clone()).await
7455 }
7456 pub async fn id(&self) -> Result<Llmid, DaggerError> {
7458 let query = self.selection.select("id");
7459 query.execute(self.graphql_client.clone()).await
7460 }
7461 pub async fn last_reply(&self) -> Result<String, DaggerError> {
7463 let query = self.selection.select("lastReply");
7464 query.execute(self.graphql_client.clone()).await
7465 }
7466 pub fn r#loop(&self) -> Llm {
7468 let query = self.selection.select("loop");
7469 Llm {
7470 proc: self.proc.clone(),
7471 selection: query,
7472 graphql_client: self.graphql_client.clone(),
7473 }
7474 }
7475 pub async fn model(&self) -> Result<String, DaggerError> {
7477 let query = self.selection.select("model");
7478 query.execute(self.graphql_client.clone()).await
7479 }
7480 pub async fn provider(&self) -> Result<String, DaggerError> {
7482 let query = self.selection.select("provider");
7483 query.execute(self.graphql_client.clone()).await
7484 }
7485 pub async fn sync(&self) -> Result<Llmid, DaggerError> {
7487 let query = self.selection.select("sync");
7488 query.execute(self.graphql_client.clone()).await
7489 }
7490 pub fn token_usage(&self) -> LlmTokenUsage {
7492 let query = self.selection.select("tokenUsage");
7493 LlmTokenUsage {
7494 proc: self.proc.clone(),
7495 selection: query,
7496 graphql_client: self.graphql_client.clone(),
7497 }
7498 }
7499 pub async fn tools(&self) -> Result<String, DaggerError> {
7501 let query = self.selection.select("tools");
7502 query.execute(self.graphql_client.clone()).await
7503 }
7504 pub fn with_env(&self, env: impl IntoID<EnvId>) -> Llm {
7506 let mut query = self.selection.select("withEnv");
7507 query = query.arg_lazy(
7508 "env",
7509 Box::new(move || {
7510 let env = env.clone();
7511 Box::pin(async move { env.into_id().await.unwrap().quote() })
7512 }),
7513 );
7514 Llm {
7515 proc: self.proc.clone(),
7516 selection: query,
7517 graphql_client: self.graphql_client.clone(),
7518 }
7519 }
7520 pub fn with_model(&self, model: impl Into<String>) -> Llm {
7526 let mut query = self.selection.select("withModel");
7527 query = query.arg("model", model.into());
7528 Llm {
7529 proc: self.proc.clone(),
7530 selection: query,
7531 graphql_client: self.graphql_client.clone(),
7532 }
7533 }
7534 pub fn with_prompt(&self, prompt: impl Into<String>) -> Llm {
7540 let mut query = self.selection.select("withPrompt");
7541 query = query.arg("prompt", prompt.into());
7542 Llm {
7543 proc: self.proc.clone(),
7544 selection: query,
7545 graphql_client: self.graphql_client.clone(),
7546 }
7547 }
7548 pub fn with_prompt_file(&self, file: impl IntoID<FileId>) -> Llm {
7554 let mut query = self.selection.select("withPromptFile");
7555 query = query.arg_lazy(
7556 "file",
7557 Box::new(move || {
7558 let file = file.clone();
7559 Box::pin(async move { file.into_id().await.unwrap().quote() })
7560 }),
7561 );
7562 Llm {
7563 proc: self.proc.clone(),
7564 selection: query,
7565 graphql_client: self.graphql_client.clone(),
7566 }
7567 }
7568 pub fn with_system_prompt(&self, prompt: impl Into<String>) -> Llm {
7574 let mut query = self.selection.select("withSystemPrompt");
7575 query = query.arg("prompt", prompt.into());
7576 Llm {
7577 proc: self.proc.clone(),
7578 selection: query,
7579 graphql_client: self.graphql_client.clone(),
7580 }
7581 }
7582 pub fn without_default_system_prompt(&self) -> Llm {
7584 let query = self.selection.select("withoutDefaultSystemPrompt");
7585 Llm {
7586 proc: self.proc.clone(),
7587 selection: query,
7588 graphql_client: self.graphql_client.clone(),
7589 }
7590 }
7591}
7592#[derive(Clone)]
7593pub struct LlmTokenUsage {
7594 pub proc: Option<Arc<DaggerSessionProc>>,
7595 pub selection: Selection,
7596 pub graphql_client: DynGraphQLClient,
7597}
7598impl LlmTokenUsage {
7599 pub async fn cached_token_reads(&self) -> Result<isize, DaggerError> {
7600 let query = self.selection.select("cachedTokenReads");
7601 query.execute(self.graphql_client.clone()).await
7602 }
7603 pub async fn cached_token_writes(&self) -> Result<isize, DaggerError> {
7604 let query = self.selection.select("cachedTokenWrites");
7605 query.execute(self.graphql_client.clone()).await
7606 }
7607 pub async fn id(&self) -> Result<LlmTokenUsageId, DaggerError> {
7609 let query = self.selection.select("id");
7610 query.execute(self.graphql_client.clone()).await
7611 }
7612 pub async fn input_tokens(&self) -> Result<isize, DaggerError> {
7613 let query = self.selection.select("inputTokens");
7614 query.execute(self.graphql_client.clone()).await
7615 }
7616 pub async fn output_tokens(&self) -> Result<isize, DaggerError> {
7617 let query = self.selection.select("outputTokens");
7618 query.execute(self.graphql_client.clone()).await
7619 }
7620 pub async fn total_tokens(&self) -> Result<isize, DaggerError> {
7621 let query = self.selection.select("totalTokens");
7622 query.execute(self.graphql_client.clone()).await
7623 }
7624}
7625#[derive(Clone)]
7626pub struct Label {
7627 pub proc: Option<Arc<DaggerSessionProc>>,
7628 pub selection: Selection,
7629 pub graphql_client: DynGraphQLClient,
7630}
7631impl Label {
7632 pub async fn id(&self) -> Result<LabelId, DaggerError> {
7634 let query = self.selection.select("id");
7635 query.execute(self.graphql_client.clone()).await
7636 }
7637 pub async fn name(&self) -> Result<String, DaggerError> {
7639 let query = self.selection.select("name");
7640 query.execute(self.graphql_client.clone()).await
7641 }
7642 pub async fn value(&self) -> Result<String, DaggerError> {
7644 let query = self.selection.select("value");
7645 query.execute(self.graphql_client.clone()).await
7646 }
7647}
7648#[derive(Clone)]
7649pub struct ListTypeDef {
7650 pub proc: Option<Arc<DaggerSessionProc>>,
7651 pub selection: Selection,
7652 pub graphql_client: DynGraphQLClient,
7653}
7654impl ListTypeDef {
7655 pub fn element_type_def(&self) -> TypeDef {
7657 let query = self.selection.select("elementTypeDef");
7658 TypeDef {
7659 proc: self.proc.clone(),
7660 selection: query,
7661 graphql_client: self.graphql_client.clone(),
7662 }
7663 }
7664 pub async fn id(&self) -> Result<ListTypeDefId, DaggerError> {
7666 let query = self.selection.select("id");
7667 query.execute(self.graphql_client.clone()).await
7668 }
7669}
7670#[derive(Clone)]
7671pub struct Module {
7672 pub proc: Option<Arc<DaggerSessionProc>>,
7673 pub selection: Selection,
7674 pub graphql_client: DynGraphQLClient,
7675}
7676#[derive(Builder, Debug, PartialEq)]
7677pub struct ModuleServeOpts {
7678 #[builder(setter(into, strip_option), default)]
7680 pub include_dependencies: Option<bool>,
7681}
7682impl Module {
7683 pub fn dependencies(&self) -> Vec<Module> {
7685 let query = self.selection.select("dependencies");
7686 vec![Module {
7687 proc: self.proc.clone(),
7688 selection: query,
7689 graphql_client: self.graphql_client.clone(),
7690 }]
7691 }
7692 pub async fn description(&self) -> Result<String, DaggerError> {
7694 let query = self.selection.select("description");
7695 query.execute(self.graphql_client.clone()).await
7696 }
7697 pub fn enums(&self) -> Vec<TypeDef> {
7699 let query = self.selection.select("enums");
7700 vec![TypeDef {
7701 proc: self.proc.clone(),
7702 selection: query,
7703 graphql_client: self.graphql_client.clone(),
7704 }]
7705 }
7706 pub fn generated_context_directory(&self) -> Directory {
7708 let query = self.selection.select("generatedContextDirectory");
7709 Directory {
7710 proc: self.proc.clone(),
7711 selection: query,
7712 graphql_client: self.graphql_client.clone(),
7713 }
7714 }
7715 pub async fn id(&self) -> Result<ModuleId, DaggerError> {
7717 let query = self.selection.select("id");
7718 query.execute(self.graphql_client.clone()).await
7719 }
7720 pub fn interfaces(&self) -> Vec<TypeDef> {
7722 let query = self.selection.select("interfaces");
7723 vec![TypeDef {
7724 proc: self.proc.clone(),
7725 selection: query,
7726 graphql_client: self.graphql_client.clone(),
7727 }]
7728 }
7729 pub async fn name(&self) -> Result<String, DaggerError> {
7731 let query = self.selection.select("name");
7732 query.execute(self.graphql_client.clone()).await
7733 }
7734 pub fn objects(&self) -> Vec<TypeDef> {
7736 let query = self.selection.select("objects");
7737 vec![TypeDef {
7738 proc: self.proc.clone(),
7739 selection: query,
7740 graphql_client: self.graphql_client.clone(),
7741 }]
7742 }
7743 pub fn runtime(&self) -> Container {
7745 let query = self.selection.select("runtime");
7746 Container {
7747 proc: self.proc.clone(),
7748 selection: query,
7749 graphql_client: self.graphql_client.clone(),
7750 }
7751 }
7752 pub fn sdk(&self) -> SdkConfig {
7754 let query = self.selection.select("sdk");
7755 SdkConfig {
7756 proc: self.proc.clone(),
7757 selection: query,
7758 graphql_client: self.graphql_client.clone(),
7759 }
7760 }
7761 pub async fn serve(&self) -> Result<Void, DaggerError> {
7768 let query = self.selection.select("serve");
7769 query.execute(self.graphql_client.clone()).await
7770 }
7771 pub async fn serve_opts(&self, opts: ModuleServeOpts) -> Result<Void, DaggerError> {
7778 let mut query = self.selection.select("serve");
7779 if let Some(include_dependencies) = opts.include_dependencies {
7780 query = query.arg("includeDependencies", include_dependencies);
7781 }
7782 query.execute(self.graphql_client.clone()).await
7783 }
7784 pub fn source(&self) -> ModuleSource {
7786 let query = self.selection.select("source");
7787 ModuleSource {
7788 proc: self.proc.clone(),
7789 selection: query,
7790 graphql_client: self.graphql_client.clone(),
7791 }
7792 }
7793 pub async fn sync(&self) -> Result<ModuleId, DaggerError> {
7795 let query = self.selection.select("sync");
7796 query.execute(self.graphql_client.clone()).await
7797 }
7798 pub fn with_description(&self, description: impl Into<String>) -> Module {
7804 let mut query = self.selection.select("withDescription");
7805 query = query.arg("description", description.into());
7806 Module {
7807 proc: self.proc.clone(),
7808 selection: query,
7809 graphql_client: self.graphql_client.clone(),
7810 }
7811 }
7812 pub fn with_enum(&self, r#enum: impl IntoID<TypeDefId>) -> Module {
7814 let mut query = self.selection.select("withEnum");
7815 query = query.arg_lazy(
7816 "enum",
7817 Box::new(move || {
7818 let r#enum = r#enum.clone();
7819 Box::pin(async move { r#enum.into_id().await.unwrap().quote() })
7820 }),
7821 );
7822 Module {
7823 proc: self.proc.clone(),
7824 selection: query,
7825 graphql_client: self.graphql_client.clone(),
7826 }
7827 }
7828 pub fn with_interface(&self, iface: impl IntoID<TypeDefId>) -> Module {
7830 let mut query = self.selection.select("withInterface");
7831 query = query.arg_lazy(
7832 "iface",
7833 Box::new(move || {
7834 let iface = iface.clone();
7835 Box::pin(async move { iface.into_id().await.unwrap().quote() })
7836 }),
7837 );
7838 Module {
7839 proc: self.proc.clone(),
7840 selection: query,
7841 graphql_client: self.graphql_client.clone(),
7842 }
7843 }
7844 pub fn with_object(&self, object: impl IntoID<TypeDefId>) -> Module {
7846 let mut query = self.selection.select("withObject");
7847 query = query.arg_lazy(
7848 "object",
7849 Box::new(move || {
7850 let object = object.clone();
7851 Box::pin(async move { object.into_id().await.unwrap().quote() })
7852 }),
7853 );
7854 Module {
7855 proc: self.proc.clone(),
7856 selection: query,
7857 graphql_client: self.graphql_client.clone(),
7858 }
7859 }
7860}
7861#[derive(Clone)]
7862pub struct ModuleConfigClient {
7863 pub proc: Option<Arc<DaggerSessionProc>>,
7864 pub selection: Selection,
7865 pub graphql_client: DynGraphQLClient,
7866}
7867impl ModuleConfigClient {
7868 pub async fn directory(&self) -> Result<String, DaggerError> {
7870 let query = self.selection.select("directory");
7871 query.execute(self.graphql_client.clone()).await
7872 }
7873 pub async fn generator(&self) -> Result<String, DaggerError> {
7875 let query = self.selection.select("generator");
7876 query.execute(self.graphql_client.clone()).await
7877 }
7878 pub async fn id(&self) -> Result<ModuleConfigClientId, DaggerError> {
7880 let query = self.selection.select("id");
7881 query.execute(self.graphql_client.clone()).await
7882 }
7883}
7884#[derive(Clone)]
7885pub struct ModuleSource {
7886 pub proc: Option<Arc<DaggerSessionProc>>,
7887 pub selection: Selection,
7888 pub graphql_client: DynGraphQLClient,
7889}
7890impl ModuleSource {
7891 pub fn as_module(&self) -> Module {
7893 let query = self.selection.select("asModule");
7894 Module {
7895 proc: self.proc.clone(),
7896 selection: query,
7897 graphql_client: self.graphql_client.clone(),
7898 }
7899 }
7900 pub async fn as_string(&self) -> Result<String, DaggerError> {
7902 let query = self.selection.select("asString");
7903 query.execute(self.graphql_client.clone()).await
7904 }
7905 pub async fn clone_ref(&self) -> Result<String, DaggerError> {
7907 let query = self.selection.select("cloneRef");
7908 query.execute(self.graphql_client.clone()).await
7909 }
7910 pub async fn commit(&self) -> Result<String, DaggerError> {
7912 let query = self.selection.select("commit");
7913 query.execute(self.graphql_client.clone()).await
7914 }
7915 pub fn config_clients(&self) -> Vec<ModuleConfigClient> {
7917 let query = self.selection.select("configClients");
7918 vec![ModuleConfigClient {
7919 proc: self.proc.clone(),
7920 selection: query,
7921 graphql_client: self.graphql_client.clone(),
7922 }]
7923 }
7924 pub async fn config_exists(&self) -> Result<bool, DaggerError> {
7926 let query = self.selection.select("configExists");
7927 query.execute(self.graphql_client.clone()).await
7928 }
7929 pub fn context_directory(&self) -> Directory {
7931 let query = self.selection.select("contextDirectory");
7932 Directory {
7933 proc: self.proc.clone(),
7934 selection: query,
7935 graphql_client: self.graphql_client.clone(),
7936 }
7937 }
7938 pub fn dependencies(&self) -> Vec<ModuleSource> {
7940 let query = self.selection.select("dependencies");
7941 vec![ModuleSource {
7942 proc: self.proc.clone(),
7943 selection: query,
7944 graphql_client: self.graphql_client.clone(),
7945 }]
7946 }
7947 pub async fn digest(&self) -> Result<String, DaggerError> {
7949 let query = self.selection.select("digest");
7950 query.execute(self.graphql_client.clone()).await
7951 }
7952 pub fn directory(&self, path: impl Into<String>) -> Directory {
7958 let mut query = self.selection.select("directory");
7959 query = query.arg("path", path.into());
7960 Directory {
7961 proc: self.proc.clone(),
7962 selection: query,
7963 graphql_client: self.graphql_client.clone(),
7964 }
7965 }
7966 pub async fn engine_version(&self) -> Result<String, DaggerError> {
7968 let query = self.selection.select("engineVersion");
7969 query.execute(self.graphql_client.clone()).await
7970 }
7971 pub fn generated_context_directory(&self) -> Directory {
7973 let query = self.selection.select("generatedContextDirectory");
7974 Directory {
7975 proc: self.proc.clone(),
7976 selection: query,
7977 graphql_client: self.graphql_client.clone(),
7978 }
7979 }
7980 pub async fn html_repo_url(&self) -> Result<String, DaggerError> {
7982 let query = self.selection.select("htmlRepoURL");
7983 query.execute(self.graphql_client.clone()).await
7984 }
7985 pub async fn html_url(&self) -> Result<String, DaggerError> {
7987 let query = self.selection.select("htmlURL");
7988 query.execute(self.graphql_client.clone()).await
7989 }
7990 pub async fn id(&self) -> Result<ModuleSourceId, DaggerError> {
7992 let query = self.selection.select("id");
7993 query.execute(self.graphql_client.clone()).await
7994 }
7995 pub async fn kind(&self) -> Result<ModuleSourceKind, DaggerError> {
7997 let query = self.selection.select("kind");
7998 query.execute(self.graphql_client.clone()).await
7999 }
8000 pub async fn local_context_directory_path(&self) -> Result<String, DaggerError> {
8002 let query = self.selection.select("localContextDirectoryPath");
8003 query.execute(self.graphql_client.clone()).await
8004 }
8005 pub async fn module_name(&self) -> Result<String, DaggerError> {
8007 let query = self.selection.select("moduleName");
8008 query.execute(self.graphql_client.clone()).await
8009 }
8010 pub async fn module_original_name(&self) -> Result<String, DaggerError> {
8012 let query = self.selection.select("moduleOriginalName");
8013 query.execute(self.graphql_client.clone()).await
8014 }
8015 pub async fn original_subpath(&self) -> Result<String, DaggerError> {
8017 let query = self.selection.select("originalSubpath");
8018 query.execute(self.graphql_client.clone()).await
8019 }
8020 pub async fn pin(&self) -> Result<String, DaggerError> {
8022 let query = self.selection.select("pin");
8023 query.execute(self.graphql_client.clone()).await
8024 }
8025 pub async fn repo_root_path(&self) -> Result<String, DaggerError> {
8027 let query = self.selection.select("repoRootPath");
8028 query.execute(self.graphql_client.clone()).await
8029 }
8030 pub fn sdk(&self) -> SdkConfig {
8032 let query = self.selection.select("sdk");
8033 SdkConfig {
8034 proc: self.proc.clone(),
8035 selection: query,
8036 graphql_client: self.graphql_client.clone(),
8037 }
8038 }
8039 pub async fn source_root_subpath(&self) -> Result<String, DaggerError> {
8041 let query = self.selection.select("sourceRootSubpath");
8042 query.execute(self.graphql_client.clone()).await
8043 }
8044 pub async fn source_subpath(&self) -> Result<String, DaggerError> {
8046 let query = self.selection.select("sourceSubpath");
8047 query.execute(self.graphql_client.clone()).await
8048 }
8049 pub async fn sync(&self) -> Result<ModuleSourceId, DaggerError> {
8051 let query = self.selection.select("sync");
8052 query.execute(self.graphql_client.clone()).await
8053 }
8054 pub async fn version(&self) -> Result<String, DaggerError> {
8056 let query = self.selection.select("version");
8057 query.execute(self.graphql_client.clone()).await
8058 }
8059 pub fn with_client(
8066 &self,
8067 generator: impl Into<String>,
8068 output_dir: impl Into<String>,
8069 ) -> ModuleSource {
8070 let mut query = self.selection.select("withClient");
8071 query = query.arg("generator", generator.into());
8072 query = query.arg("outputDir", output_dir.into());
8073 ModuleSource {
8074 proc: self.proc.clone(),
8075 selection: query,
8076 graphql_client: self.graphql_client.clone(),
8077 }
8078 }
8079 pub fn with_dependencies(&self, dependencies: Vec<ModuleSourceId>) -> ModuleSource {
8085 let mut query = self.selection.select("withDependencies");
8086 query = query.arg("dependencies", dependencies);
8087 ModuleSource {
8088 proc: self.proc.clone(),
8089 selection: query,
8090 graphql_client: self.graphql_client.clone(),
8091 }
8092 }
8093 pub fn with_engine_version(&self, version: impl Into<String>) -> ModuleSource {
8099 let mut query = self.selection.select("withEngineVersion");
8100 query = query.arg("version", version.into());
8101 ModuleSource {
8102 proc: self.proc.clone(),
8103 selection: query,
8104 graphql_client: self.graphql_client.clone(),
8105 }
8106 }
8107 pub fn with_includes(&self, patterns: Vec<impl Into<String>>) -> ModuleSource {
8113 let mut query = self.selection.select("withIncludes");
8114 query = query.arg(
8115 "patterns",
8116 patterns
8117 .into_iter()
8118 .map(|i| i.into())
8119 .collect::<Vec<String>>(),
8120 );
8121 ModuleSource {
8122 proc: self.proc.clone(),
8123 selection: query,
8124 graphql_client: self.graphql_client.clone(),
8125 }
8126 }
8127 pub fn with_name(&self, name: impl Into<String>) -> ModuleSource {
8133 let mut query = self.selection.select("withName");
8134 query = query.arg("name", name.into());
8135 ModuleSource {
8136 proc: self.proc.clone(),
8137 selection: query,
8138 graphql_client: self.graphql_client.clone(),
8139 }
8140 }
8141 pub fn with_sdk(&self, source: impl Into<String>) -> ModuleSource {
8147 let mut query = self.selection.select("withSDK");
8148 query = query.arg("source", source.into());
8149 ModuleSource {
8150 proc: self.proc.clone(),
8151 selection: query,
8152 graphql_client: self.graphql_client.clone(),
8153 }
8154 }
8155 pub fn with_source_subpath(&self, path: impl Into<String>) -> ModuleSource {
8161 let mut query = self.selection.select("withSourceSubpath");
8162 query = query.arg("path", path.into());
8163 ModuleSource {
8164 proc: self.proc.clone(),
8165 selection: query,
8166 graphql_client: self.graphql_client.clone(),
8167 }
8168 }
8169 pub fn with_update_dependencies(&self, dependencies: Vec<impl Into<String>>) -> ModuleSource {
8175 let mut query = self.selection.select("withUpdateDependencies");
8176 query = query.arg(
8177 "dependencies",
8178 dependencies
8179 .into_iter()
8180 .map(|i| i.into())
8181 .collect::<Vec<String>>(),
8182 );
8183 ModuleSource {
8184 proc: self.proc.clone(),
8185 selection: query,
8186 graphql_client: self.graphql_client.clone(),
8187 }
8188 }
8189 pub fn without_client(&self, path: impl Into<String>) -> ModuleSource {
8195 let mut query = self.selection.select("withoutClient");
8196 query = query.arg("path", path.into());
8197 ModuleSource {
8198 proc: self.proc.clone(),
8199 selection: query,
8200 graphql_client: self.graphql_client.clone(),
8201 }
8202 }
8203 pub fn without_dependencies(&self, dependencies: Vec<impl Into<String>>) -> ModuleSource {
8209 let mut query = self.selection.select("withoutDependencies");
8210 query = query.arg(
8211 "dependencies",
8212 dependencies
8213 .into_iter()
8214 .map(|i| i.into())
8215 .collect::<Vec<String>>(),
8216 );
8217 ModuleSource {
8218 proc: self.proc.clone(),
8219 selection: query,
8220 graphql_client: self.graphql_client.clone(),
8221 }
8222 }
8223}
8224#[derive(Clone)]
8225pub struct ObjectTypeDef {
8226 pub proc: Option<Arc<DaggerSessionProc>>,
8227 pub selection: Selection,
8228 pub graphql_client: DynGraphQLClient,
8229}
8230impl ObjectTypeDef {
8231 pub fn constructor(&self) -> Function {
8233 let query = self.selection.select("constructor");
8234 Function {
8235 proc: self.proc.clone(),
8236 selection: query,
8237 graphql_client: self.graphql_client.clone(),
8238 }
8239 }
8240 pub async fn description(&self) -> Result<String, DaggerError> {
8242 let query = self.selection.select("description");
8243 query.execute(self.graphql_client.clone()).await
8244 }
8245 pub fn fields(&self) -> Vec<FieldTypeDef> {
8247 let query = self.selection.select("fields");
8248 vec![FieldTypeDef {
8249 proc: self.proc.clone(),
8250 selection: query,
8251 graphql_client: self.graphql_client.clone(),
8252 }]
8253 }
8254 pub fn functions(&self) -> Vec<Function> {
8256 let query = self.selection.select("functions");
8257 vec![Function {
8258 proc: self.proc.clone(),
8259 selection: query,
8260 graphql_client: self.graphql_client.clone(),
8261 }]
8262 }
8263 pub async fn id(&self) -> Result<ObjectTypeDefId, DaggerError> {
8265 let query = self.selection.select("id");
8266 query.execute(self.graphql_client.clone()).await
8267 }
8268 pub async fn name(&self) -> Result<String, DaggerError> {
8270 let query = self.selection.select("name");
8271 query.execute(self.graphql_client.clone()).await
8272 }
8273 pub fn source_map(&self) -> SourceMap {
8275 let query = self.selection.select("sourceMap");
8276 SourceMap {
8277 proc: self.proc.clone(),
8278 selection: query,
8279 graphql_client: self.graphql_client.clone(),
8280 }
8281 }
8282 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
8284 let query = self.selection.select("sourceModuleName");
8285 query.execute(self.graphql_client.clone()).await
8286 }
8287}
8288#[derive(Clone)]
8289pub struct Port {
8290 pub proc: Option<Arc<DaggerSessionProc>>,
8291 pub selection: Selection,
8292 pub graphql_client: DynGraphQLClient,
8293}
8294impl Port {
8295 pub async fn description(&self) -> Result<String, DaggerError> {
8297 let query = self.selection.select("description");
8298 query.execute(self.graphql_client.clone()).await
8299 }
8300 pub async fn experimental_skip_healthcheck(&self) -> Result<bool, DaggerError> {
8302 let query = self.selection.select("experimentalSkipHealthcheck");
8303 query.execute(self.graphql_client.clone()).await
8304 }
8305 pub async fn id(&self) -> Result<PortId, DaggerError> {
8307 let query = self.selection.select("id");
8308 query.execute(self.graphql_client.clone()).await
8309 }
8310 pub async fn port(&self) -> Result<isize, DaggerError> {
8312 let query = self.selection.select("port");
8313 query.execute(self.graphql_client.clone()).await
8314 }
8315 pub async fn protocol(&self) -> Result<NetworkProtocol, DaggerError> {
8317 let query = self.selection.select("protocol");
8318 query.execute(self.graphql_client.clone()).await
8319 }
8320}
8321#[derive(Clone)]
8322pub struct Query {
8323 pub proc: Option<Arc<DaggerSessionProc>>,
8324 pub selection: Selection,
8325 pub graphql_client: DynGraphQLClient,
8326}
8327#[derive(Builder, Debug, PartialEq)]
8328pub struct QueryContainerOpts {
8329 #[builder(setter(into, strip_option), default)]
8331 pub platform: Option<Platform>,
8332}
8333#[derive(Builder, Debug, PartialEq)]
8334pub struct QueryEnvOpts {
8335 #[builder(setter(into, strip_option), default)]
8337 pub privileged: Option<bool>,
8338 #[builder(setter(into, strip_option), default)]
8340 pub writable: Option<bool>,
8341}
8342#[derive(Builder, Debug, PartialEq)]
8343pub struct QueryFileOpts {
8344 #[builder(setter(into, strip_option), default)]
8346 pub permissions: Option<isize>,
8347}
8348#[derive(Builder, Debug, PartialEq)]
8349pub struct QueryGitOpts<'a> {
8350 #[builder(setter(into, strip_option), default)]
8352 pub experimental_service_host: Option<ServiceId>,
8353 #[builder(setter(into, strip_option), default)]
8355 pub http_auth_header: Option<SecretId>,
8356 #[builder(setter(into, strip_option), default)]
8358 pub http_auth_token: Option<SecretId>,
8359 #[builder(setter(into, strip_option), default)]
8361 pub http_auth_username: Option<&'a str>,
8362 #[builder(setter(into, strip_option), default)]
8364 pub keep_git_dir: Option<bool>,
8365 #[builder(setter(into, strip_option), default)]
8367 pub ssh_auth_socket: Option<SocketId>,
8368 #[builder(setter(into, strip_option), default)]
8370 pub ssh_known_hosts: Option<&'a str>,
8371}
8372#[derive(Builder, Debug, PartialEq)]
8373pub struct QueryHttpOpts<'a> {
8374 #[builder(setter(into, strip_option), default)]
8376 pub auth_header: Option<SecretId>,
8377 #[builder(setter(into, strip_option), default)]
8379 pub experimental_service_host: Option<ServiceId>,
8380 #[builder(setter(into, strip_option), default)]
8382 pub name: Option<&'a str>,
8383 #[builder(setter(into, strip_option), default)]
8385 pub permissions: Option<isize>,
8386}
8387#[derive(Builder, Debug, PartialEq)]
8388pub struct QueryLlmOpts<'a> {
8389 #[builder(setter(into, strip_option), default)]
8391 pub max_api_calls: Option<isize>,
8392 #[builder(setter(into, strip_option), default)]
8394 pub model: Option<&'a str>,
8395}
8396#[derive(Builder, Debug, PartialEq)]
8397pub struct QueryModuleSourceOpts<'a> {
8398 #[builder(setter(into, strip_option), default)]
8400 pub allow_not_exists: Option<bool>,
8401 #[builder(setter(into, strip_option), default)]
8403 pub disable_find_up: Option<bool>,
8404 #[builder(setter(into, strip_option), default)]
8406 pub ref_pin: Option<&'a str>,
8407 #[builder(setter(into, strip_option), default)]
8409 pub require_kind: Option<ModuleSourceKind>,
8410}
8411#[derive(Builder, Debug, PartialEq)]
8412pub struct QuerySecretOpts<'a> {
8413 #[builder(setter(into, strip_option), default)]
8417 pub cache_key: Option<&'a str>,
8418}
8419impl Query {
8420 pub fn cache_volume(&self, key: impl Into<String>) -> CacheVolume {
8426 let mut query = self.selection.select("cacheVolume");
8427 query = query.arg("key", key.into());
8428 CacheVolume {
8429 proc: self.proc.clone(),
8430 selection: query,
8431 graphql_client: self.graphql_client.clone(),
8432 }
8433 }
8434 pub fn cloud(&self) -> Cloud {
8436 let query = self.selection.select("cloud");
8437 Cloud {
8438 proc: self.proc.clone(),
8439 selection: query,
8440 graphql_client: self.graphql_client.clone(),
8441 }
8442 }
8443 pub fn container(&self) -> Container {
8450 let query = self.selection.select("container");
8451 Container {
8452 proc: self.proc.clone(),
8453 selection: query,
8454 graphql_client: self.graphql_client.clone(),
8455 }
8456 }
8457 pub fn container_opts(&self, opts: QueryContainerOpts) -> Container {
8464 let mut query = self.selection.select("container");
8465 if let Some(platform) = opts.platform {
8466 query = query.arg("platform", platform);
8467 }
8468 Container {
8469 proc: self.proc.clone(),
8470 selection: query,
8471 graphql_client: self.graphql_client.clone(),
8472 }
8473 }
8474 pub fn current_function_call(&self) -> FunctionCall {
8477 let query = self.selection.select("currentFunctionCall");
8478 FunctionCall {
8479 proc: self.proc.clone(),
8480 selection: query,
8481 graphql_client: self.graphql_client.clone(),
8482 }
8483 }
8484 pub fn current_module(&self) -> CurrentModule {
8486 let query = self.selection.select("currentModule");
8487 CurrentModule {
8488 proc: self.proc.clone(),
8489 selection: query,
8490 graphql_client: self.graphql_client.clone(),
8491 }
8492 }
8493 pub fn current_type_defs(&self) -> Vec<TypeDef> {
8495 let query = self.selection.select("currentTypeDefs");
8496 vec![TypeDef {
8497 proc: self.proc.clone(),
8498 selection: query,
8499 graphql_client: self.graphql_client.clone(),
8500 }]
8501 }
8502 pub async fn default_platform(&self) -> Result<Platform, DaggerError> {
8504 let query = self.selection.select("defaultPlatform");
8505 query.execute(self.graphql_client.clone()).await
8506 }
8507 pub fn directory(&self) -> Directory {
8509 let query = self.selection.select("directory");
8510 Directory {
8511 proc: self.proc.clone(),
8512 selection: query,
8513 graphql_client: self.graphql_client.clone(),
8514 }
8515 }
8516 pub fn engine(&self) -> Engine {
8518 let query = self.selection.select("engine");
8519 Engine {
8520 proc: self.proc.clone(),
8521 selection: query,
8522 graphql_client: self.graphql_client.clone(),
8523 }
8524 }
8525 pub fn env(&self) -> Env {
8531 let query = self.selection.select("env");
8532 Env {
8533 proc: self.proc.clone(),
8534 selection: query,
8535 graphql_client: self.graphql_client.clone(),
8536 }
8537 }
8538 pub fn env_opts(&self, opts: QueryEnvOpts) -> Env {
8544 let mut query = self.selection.select("env");
8545 if let Some(privileged) = opts.privileged {
8546 query = query.arg("privileged", privileged);
8547 }
8548 if let Some(writable) = opts.writable {
8549 query = query.arg("writable", writable);
8550 }
8551 Env {
8552 proc: self.proc.clone(),
8553 selection: query,
8554 graphql_client: self.graphql_client.clone(),
8555 }
8556 }
8557 pub fn error(&self, message: impl Into<String>) -> Error {
8563 let mut query = self.selection.select("error");
8564 query = query.arg("message", message.into());
8565 Error {
8566 proc: self.proc.clone(),
8567 selection: query,
8568 graphql_client: self.graphql_client.clone(),
8569 }
8570 }
8571 pub fn file(&self, name: impl Into<String>, contents: impl Into<String>) -> File {
8579 let mut query = self.selection.select("file");
8580 query = query.arg("name", name.into());
8581 query = query.arg("contents", contents.into());
8582 File {
8583 proc: self.proc.clone(),
8584 selection: query,
8585 graphql_client: self.graphql_client.clone(),
8586 }
8587 }
8588 pub fn file_opts(
8596 &self,
8597 name: impl Into<String>,
8598 contents: impl Into<String>,
8599 opts: QueryFileOpts,
8600 ) -> File {
8601 let mut query = self.selection.select("file");
8602 query = query.arg("name", name.into());
8603 query = query.arg("contents", contents.into());
8604 if let Some(permissions) = opts.permissions {
8605 query = query.arg("permissions", permissions);
8606 }
8607 File {
8608 proc: self.proc.clone(),
8609 selection: query,
8610 graphql_client: self.graphql_client.clone(),
8611 }
8612 }
8613 pub fn function(
8620 &self,
8621 name: impl Into<String>,
8622 return_type: impl IntoID<TypeDefId>,
8623 ) -> Function {
8624 let mut query = self.selection.select("function");
8625 query = query.arg("name", name.into());
8626 query = query.arg_lazy(
8627 "returnType",
8628 Box::new(move || {
8629 let return_type = return_type.clone();
8630 Box::pin(async move { return_type.into_id().await.unwrap().quote() })
8631 }),
8632 );
8633 Function {
8634 proc: self.proc.clone(),
8635 selection: query,
8636 graphql_client: self.graphql_client.clone(),
8637 }
8638 }
8639 pub fn generated_code(&self, code: impl IntoID<DirectoryId>) -> GeneratedCode {
8641 let mut query = self.selection.select("generatedCode");
8642 query = query.arg_lazy(
8643 "code",
8644 Box::new(move || {
8645 let code = code.clone();
8646 Box::pin(async move { code.into_id().await.unwrap().quote() })
8647 }),
8648 );
8649 GeneratedCode {
8650 proc: self.proc.clone(),
8651 selection: query,
8652 graphql_client: self.graphql_client.clone(),
8653 }
8654 }
8655 pub fn git(&self, url: impl Into<String>) -> GitRepository {
8666 let mut query = self.selection.select("git");
8667 query = query.arg("url", url.into());
8668 GitRepository {
8669 proc: self.proc.clone(),
8670 selection: query,
8671 graphql_client: self.graphql_client.clone(),
8672 }
8673 }
8674 pub fn git_opts<'a>(&self, url: impl Into<String>, opts: QueryGitOpts<'a>) -> GitRepository {
8685 let mut query = self.selection.select("git");
8686 query = query.arg("url", url.into());
8687 if let Some(keep_git_dir) = opts.keep_git_dir {
8688 query = query.arg("keepGitDir", keep_git_dir);
8689 }
8690 if let Some(ssh_known_hosts) = opts.ssh_known_hosts {
8691 query = query.arg("sshKnownHosts", ssh_known_hosts);
8692 }
8693 if let Some(ssh_auth_socket) = opts.ssh_auth_socket {
8694 query = query.arg("sshAuthSocket", ssh_auth_socket);
8695 }
8696 if let Some(http_auth_username) = opts.http_auth_username {
8697 query = query.arg("httpAuthUsername", http_auth_username);
8698 }
8699 if let Some(http_auth_token) = opts.http_auth_token {
8700 query = query.arg("httpAuthToken", http_auth_token);
8701 }
8702 if let Some(http_auth_header) = opts.http_auth_header {
8703 query = query.arg("httpAuthHeader", http_auth_header);
8704 }
8705 if let Some(experimental_service_host) = opts.experimental_service_host {
8706 query = query.arg("experimentalServiceHost", experimental_service_host);
8707 }
8708 GitRepository {
8709 proc: self.proc.clone(),
8710 selection: query,
8711 graphql_client: self.graphql_client.clone(),
8712 }
8713 }
8714 pub fn host(&self) -> Host {
8716 let query = self.selection.select("host");
8717 Host {
8718 proc: self.proc.clone(),
8719 selection: query,
8720 graphql_client: self.graphql_client.clone(),
8721 }
8722 }
8723 pub fn http(&self, url: impl Into<String>) -> File {
8730 let mut query = self.selection.select("http");
8731 query = query.arg("url", url.into());
8732 File {
8733 proc: self.proc.clone(),
8734 selection: query,
8735 graphql_client: self.graphql_client.clone(),
8736 }
8737 }
8738 pub fn http_opts<'a>(&self, url: impl Into<String>, opts: QueryHttpOpts<'a>) -> File {
8745 let mut query = self.selection.select("http");
8746 query = query.arg("url", url.into());
8747 if let Some(name) = opts.name {
8748 query = query.arg("name", name);
8749 }
8750 if let Some(permissions) = opts.permissions {
8751 query = query.arg("permissions", permissions);
8752 }
8753 if let Some(auth_header) = opts.auth_header {
8754 query = query.arg("authHeader", auth_header);
8755 }
8756 if let Some(experimental_service_host) = opts.experimental_service_host {
8757 query = query.arg("experimentalServiceHost", experimental_service_host);
8758 }
8759 File {
8760 proc: self.proc.clone(),
8761 selection: query,
8762 graphql_client: self.graphql_client.clone(),
8763 }
8764 }
8765 pub fn llm(&self) -> Llm {
8771 let query = self.selection.select("llm");
8772 Llm {
8773 proc: self.proc.clone(),
8774 selection: query,
8775 graphql_client: self.graphql_client.clone(),
8776 }
8777 }
8778 pub fn llm_opts<'a>(&self, opts: QueryLlmOpts<'a>) -> Llm {
8784 let mut query = self.selection.select("llm");
8785 if let Some(model) = opts.model {
8786 query = query.arg("model", model);
8787 }
8788 if let Some(max_api_calls) = opts.max_api_calls {
8789 query = query.arg("maxAPICalls", max_api_calls);
8790 }
8791 Llm {
8792 proc: self.proc.clone(),
8793 selection: query,
8794 graphql_client: self.graphql_client.clone(),
8795 }
8796 }
8797 pub fn load_binding_from_id(&self, id: impl IntoID<BindingId>) -> Binding {
8799 let mut query = self.selection.select("loadBindingFromID");
8800 query = query.arg_lazy(
8801 "id",
8802 Box::new(move || {
8803 let id = id.clone();
8804 Box::pin(async move { id.into_id().await.unwrap().quote() })
8805 }),
8806 );
8807 Binding {
8808 proc: self.proc.clone(),
8809 selection: query,
8810 graphql_client: self.graphql_client.clone(),
8811 }
8812 }
8813 pub fn load_cache_volume_from_id(&self, id: impl IntoID<CacheVolumeId>) -> CacheVolume {
8815 let mut query = self.selection.select("loadCacheVolumeFromID");
8816 query = query.arg_lazy(
8817 "id",
8818 Box::new(move || {
8819 let id = id.clone();
8820 Box::pin(async move { id.into_id().await.unwrap().quote() })
8821 }),
8822 );
8823 CacheVolume {
8824 proc: self.proc.clone(),
8825 selection: query,
8826 graphql_client: self.graphql_client.clone(),
8827 }
8828 }
8829 pub fn load_cloud_from_id(&self, id: impl IntoID<CloudId>) -> Cloud {
8831 let mut query = self.selection.select("loadCloudFromID");
8832 query = query.arg_lazy(
8833 "id",
8834 Box::new(move || {
8835 let id = id.clone();
8836 Box::pin(async move { id.into_id().await.unwrap().quote() })
8837 }),
8838 );
8839 Cloud {
8840 proc: self.proc.clone(),
8841 selection: query,
8842 graphql_client: self.graphql_client.clone(),
8843 }
8844 }
8845 pub fn load_container_from_id(&self, id: impl IntoID<ContainerId>) -> Container {
8847 let mut query = self.selection.select("loadContainerFromID");
8848 query = query.arg_lazy(
8849 "id",
8850 Box::new(move || {
8851 let id = id.clone();
8852 Box::pin(async move { id.into_id().await.unwrap().quote() })
8853 }),
8854 );
8855 Container {
8856 proc: self.proc.clone(),
8857 selection: query,
8858 graphql_client: self.graphql_client.clone(),
8859 }
8860 }
8861 pub fn load_current_module_from_id(&self, id: impl IntoID<CurrentModuleId>) -> CurrentModule {
8863 let mut query = self.selection.select("loadCurrentModuleFromID");
8864 query = query.arg_lazy(
8865 "id",
8866 Box::new(move || {
8867 let id = id.clone();
8868 Box::pin(async move { id.into_id().await.unwrap().quote() })
8869 }),
8870 );
8871 CurrentModule {
8872 proc: self.proc.clone(),
8873 selection: query,
8874 graphql_client: self.graphql_client.clone(),
8875 }
8876 }
8877 pub fn load_directory_from_id(&self, id: impl IntoID<DirectoryId>) -> Directory {
8879 let mut query = self.selection.select("loadDirectoryFromID");
8880 query = query.arg_lazy(
8881 "id",
8882 Box::new(move || {
8883 let id = id.clone();
8884 Box::pin(async move { id.into_id().await.unwrap().quote() })
8885 }),
8886 );
8887 Directory {
8888 proc: self.proc.clone(),
8889 selection: query,
8890 graphql_client: self.graphql_client.clone(),
8891 }
8892 }
8893 pub fn load_engine_cache_entry_from_id(
8895 &self,
8896 id: impl IntoID<EngineCacheEntryId>,
8897 ) -> EngineCacheEntry {
8898 let mut query = self.selection.select("loadEngineCacheEntryFromID");
8899 query = query.arg_lazy(
8900 "id",
8901 Box::new(move || {
8902 let id = id.clone();
8903 Box::pin(async move { id.into_id().await.unwrap().quote() })
8904 }),
8905 );
8906 EngineCacheEntry {
8907 proc: self.proc.clone(),
8908 selection: query,
8909 graphql_client: self.graphql_client.clone(),
8910 }
8911 }
8912 pub fn load_engine_cache_entry_set_from_id(
8914 &self,
8915 id: impl IntoID<EngineCacheEntrySetId>,
8916 ) -> EngineCacheEntrySet {
8917 let mut query = self.selection.select("loadEngineCacheEntrySetFromID");
8918 query = query.arg_lazy(
8919 "id",
8920 Box::new(move || {
8921 let id = id.clone();
8922 Box::pin(async move { id.into_id().await.unwrap().quote() })
8923 }),
8924 );
8925 EngineCacheEntrySet {
8926 proc: self.proc.clone(),
8927 selection: query,
8928 graphql_client: self.graphql_client.clone(),
8929 }
8930 }
8931 pub fn load_engine_cache_from_id(&self, id: impl IntoID<EngineCacheId>) -> EngineCache {
8933 let mut query = self.selection.select("loadEngineCacheFromID");
8934 query = query.arg_lazy(
8935 "id",
8936 Box::new(move || {
8937 let id = id.clone();
8938 Box::pin(async move { id.into_id().await.unwrap().quote() })
8939 }),
8940 );
8941 EngineCache {
8942 proc: self.proc.clone(),
8943 selection: query,
8944 graphql_client: self.graphql_client.clone(),
8945 }
8946 }
8947 pub fn load_engine_from_id(&self, id: impl IntoID<EngineId>) -> Engine {
8949 let mut query = self.selection.select("loadEngineFromID");
8950 query = query.arg_lazy(
8951 "id",
8952 Box::new(move || {
8953 let id = id.clone();
8954 Box::pin(async move { id.into_id().await.unwrap().quote() })
8955 }),
8956 );
8957 Engine {
8958 proc: self.proc.clone(),
8959 selection: query,
8960 graphql_client: self.graphql_client.clone(),
8961 }
8962 }
8963 pub fn load_enum_type_def_from_id(&self, id: impl IntoID<EnumTypeDefId>) -> EnumTypeDef {
8965 let mut query = self.selection.select("loadEnumTypeDefFromID");
8966 query = query.arg_lazy(
8967 "id",
8968 Box::new(move || {
8969 let id = id.clone();
8970 Box::pin(async move { id.into_id().await.unwrap().quote() })
8971 }),
8972 );
8973 EnumTypeDef {
8974 proc: self.proc.clone(),
8975 selection: query,
8976 graphql_client: self.graphql_client.clone(),
8977 }
8978 }
8979 pub fn load_enum_value_type_def_from_id(
8981 &self,
8982 id: impl IntoID<EnumValueTypeDefId>,
8983 ) -> EnumValueTypeDef {
8984 let mut query = self.selection.select("loadEnumValueTypeDefFromID");
8985 query = query.arg_lazy(
8986 "id",
8987 Box::new(move || {
8988 let id = id.clone();
8989 Box::pin(async move { id.into_id().await.unwrap().quote() })
8990 }),
8991 );
8992 EnumValueTypeDef {
8993 proc: self.proc.clone(),
8994 selection: query,
8995 graphql_client: self.graphql_client.clone(),
8996 }
8997 }
8998 pub fn load_env_from_id(&self, id: impl IntoID<EnvId>) -> Env {
9000 let mut query = self.selection.select("loadEnvFromID");
9001 query = query.arg_lazy(
9002 "id",
9003 Box::new(move || {
9004 let id = id.clone();
9005 Box::pin(async move { id.into_id().await.unwrap().quote() })
9006 }),
9007 );
9008 Env {
9009 proc: self.proc.clone(),
9010 selection: query,
9011 graphql_client: self.graphql_client.clone(),
9012 }
9013 }
9014 pub fn load_env_variable_from_id(&self, id: impl IntoID<EnvVariableId>) -> EnvVariable {
9016 let mut query = self.selection.select("loadEnvVariableFromID");
9017 query = query.arg_lazy(
9018 "id",
9019 Box::new(move || {
9020 let id = id.clone();
9021 Box::pin(async move { id.into_id().await.unwrap().quote() })
9022 }),
9023 );
9024 EnvVariable {
9025 proc: self.proc.clone(),
9026 selection: query,
9027 graphql_client: self.graphql_client.clone(),
9028 }
9029 }
9030 pub fn load_error_from_id(&self, id: impl IntoID<ErrorId>) -> Error {
9032 let mut query = self.selection.select("loadErrorFromID");
9033 query = query.arg_lazy(
9034 "id",
9035 Box::new(move || {
9036 let id = id.clone();
9037 Box::pin(async move { id.into_id().await.unwrap().quote() })
9038 }),
9039 );
9040 Error {
9041 proc: self.proc.clone(),
9042 selection: query,
9043 graphql_client: self.graphql_client.clone(),
9044 }
9045 }
9046 pub fn load_error_value_from_id(&self, id: impl IntoID<ErrorValueId>) -> ErrorValue {
9048 let mut query = self.selection.select("loadErrorValueFromID");
9049 query = query.arg_lazy(
9050 "id",
9051 Box::new(move || {
9052 let id = id.clone();
9053 Box::pin(async move { id.into_id().await.unwrap().quote() })
9054 }),
9055 );
9056 ErrorValue {
9057 proc: self.proc.clone(),
9058 selection: query,
9059 graphql_client: self.graphql_client.clone(),
9060 }
9061 }
9062 pub fn load_field_type_def_from_id(&self, id: impl IntoID<FieldTypeDefId>) -> FieldTypeDef {
9064 let mut query = self.selection.select("loadFieldTypeDefFromID");
9065 query = query.arg_lazy(
9066 "id",
9067 Box::new(move || {
9068 let id = id.clone();
9069 Box::pin(async move { id.into_id().await.unwrap().quote() })
9070 }),
9071 );
9072 FieldTypeDef {
9073 proc: self.proc.clone(),
9074 selection: query,
9075 graphql_client: self.graphql_client.clone(),
9076 }
9077 }
9078 pub fn load_file_from_id(&self, id: impl IntoID<FileId>) -> File {
9080 let mut query = self.selection.select("loadFileFromID");
9081 query = query.arg_lazy(
9082 "id",
9083 Box::new(move || {
9084 let id = id.clone();
9085 Box::pin(async move { id.into_id().await.unwrap().quote() })
9086 }),
9087 );
9088 File {
9089 proc: self.proc.clone(),
9090 selection: query,
9091 graphql_client: self.graphql_client.clone(),
9092 }
9093 }
9094 pub fn load_function_arg_from_id(&self, id: impl IntoID<FunctionArgId>) -> FunctionArg {
9096 let mut query = self.selection.select("loadFunctionArgFromID");
9097 query = query.arg_lazy(
9098 "id",
9099 Box::new(move || {
9100 let id = id.clone();
9101 Box::pin(async move { id.into_id().await.unwrap().quote() })
9102 }),
9103 );
9104 FunctionArg {
9105 proc: self.proc.clone(),
9106 selection: query,
9107 graphql_client: self.graphql_client.clone(),
9108 }
9109 }
9110 pub fn load_function_call_arg_value_from_id(
9112 &self,
9113 id: impl IntoID<FunctionCallArgValueId>,
9114 ) -> FunctionCallArgValue {
9115 let mut query = self.selection.select("loadFunctionCallArgValueFromID");
9116 query = query.arg_lazy(
9117 "id",
9118 Box::new(move || {
9119 let id = id.clone();
9120 Box::pin(async move { id.into_id().await.unwrap().quote() })
9121 }),
9122 );
9123 FunctionCallArgValue {
9124 proc: self.proc.clone(),
9125 selection: query,
9126 graphql_client: self.graphql_client.clone(),
9127 }
9128 }
9129 pub fn load_function_call_from_id(&self, id: impl IntoID<FunctionCallId>) -> FunctionCall {
9131 let mut query = self.selection.select("loadFunctionCallFromID");
9132 query = query.arg_lazy(
9133 "id",
9134 Box::new(move || {
9135 let id = id.clone();
9136 Box::pin(async move { id.into_id().await.unwrap().quote() })
9137 }),
9138 );
9139 FunctionCall {
9140 proc: self.proc.clone(),
9141 selection: query,
9142 graphql_client: self.graphql_client.clone(),
9143 }
9144 }
9145 pub fn load_function_from_id(&self, id: impl IntoID<FunctionId>) -> Function {
9147 let mut query = self.selection.select("loadFunctionFromID");
9148 query = query.arg_lazy(
9149 "id",
9150 Box::new(move || {
9151 let id = id.clone();
9152 Box::pin(async move { id.into_id().await.unwrap().quote() })
9153 }),
9154 );
9155 Function {
9156 proc: self.proc.clone(),
9157 selection: query,
9158 graphql_client: self.graphql_client.clone(),
9159 }
9160 }
9161 pub fn load_generated_code_from_id(&self, id: impl IntoID<GeneratedCodeId>) -> GeneratedCode {
9163 let mut query = self.selection.select("loadGeneratedCodeFromID");
9164 query = query.arg_lazy(
9165 "id",
9166 Box::new(move || {
9167 let id = id.clone();
9168 Box::pin(async move { id.into_id().await.unwrap().quote() })
9169 }),
9170 );
9171 GeneratedCode {
9172 proc: self.proc.clone(),
9173 selection: query,
9174 graphql_client: self.graphql_client.clone(),
9175 }
9176 }
9177 pub fn load_git_ref_from_id(&self, id: impl IntoID<GitRefId>) -> GitRef {
9179 let mut query = self.selection.select("loadGitRefFromID");
9180 query = query.arg_lazy(
9181 "id",
9182 Box::new(move || {
9183 let id = id.clone();
9184 Box::pin(async move { id.into_id().await.unwrap().quote() })
9185 }),
9186 );
9187 GitRef {
9188 proc: self.proc.clone(),
9189 selection: query,
9190 graphql_client: self.graphql_client.clone(),
9191 }
9192 }
9193 pub fn load_git_repository_from_id(&self, id: impl IntoID<GitRepositoryId>) -> GitRepository {
9195 let mut query = self.selection.select("loadGitRepositoryFromID");
9196 query = query.arg_lazy(
9197 "id",
9198 Box::new(move || {
9199 let id = id.clone();
9200 Box::pin(async move { id.into_id().await.unwrap().quote() })
9201 }),
9202 );
9203 GitRepository {
9204 proc: self.proc.clone(),
9205 selection: query,
9206 graphql_client: self.graphql_client.clone(),
9207 }
9208 }
9209 pub fn load_host_from_id(&self, id: impl IntoID<HostId>) -> Host {
9211 let mut query = self.selection.select("loadHostFromID");
9212 query = query.arg_lazy(
9213 "id",
9214 Box::new(move || {
9215 let id = id.clone();
9216 Box::pin(async move { id.into_id().await.unwrap().quote() })
9217 }),
9218 );
9219 Host {
9220 proc: self.proc.clone(),
9221 selection: query,
9222 graphql_client: self.graphql_client.clone(),
9223 }
9224 }
9225 pub fn load_input_type_def_from_id(&self, id: impl IntoID<InputTypeDefId>) -> InputTypeDef {
9227 let mut query = self.selection.select("loadInputTypeDefFromID");
9228 query = query.arg_lazy(
9229 "id",
9230 Box::new(move || {
9231 let id = id.clone();
9232 Box::pin(async move { id.into_id().await.unwrap().quote() })
9233 }),
9234 );
9235 InputTypeDef {
9236 proc: self.proc.clone(),
9237 selection: query,
9238 graphql_client: self.graphql_client.clone(),
9239 }
9240 }
9241 pub fn load_interface_type_def_from_id(
9243 &self,
9244 id: impl IntoID<InterfaceTypeDefId>,
9245 ) -> InterfaceTypeDef {
9246 let mut query = self.selection.select("loadInterfaceTypeDefFromID");
9247 query = query.arg_lazy(
9248 "id",
9249 Box::new(move || {
9250 let id = id.clone();
9251 Box::pin(async move { id.into_id().await.unwrap().quote() })
9252 }),
9253 );
9254 InterfaceTypeDef {
9255 proc: self.proc.clone(),
9256 selection: query,
9257 graphql_client: self.graphql_client.clone(),
9258 }
9259 }
9260 pub fn load_llm_from_id(&self, id: impl IntoID<Llmid>) -> Llm {
9262 let mut query = self.selection.select("loadLLMFromID");
9263 query = query.arg_lazy(
9264 "id",
9265 Box::new(move || {
9266 let id = id.clone();
9267 Box::pin(async move { id.into_id().await.unwrap().quote() })
9268 }),
9269 );
9270 Llm {
9271 proc: self.proc.clone(),
9272 selection: query,
9273 graphql_client: self.graphql_client.clone(),
9274 }
9275 }
9276 pub fn load_llm_token_usage_from_id(&self, id: impl IntoID<LlmTokenUsageId>) -> LlmTokenUsage {
9278 let mut query = self.selection.select("loadLLMTokenUsageFromID");
9279 query = query.arg_lazy(
9280 "id",
9281 Box::new(move || {
9282 let id = id.clone();
9283 Box::pin(async move { id.into_id().await.unwrap().quote() })
9284 }),
9285 );
9286 LlmTokenUsage {
9287 proc: self.proc.clone(),
9288 selection: query,
9289 graphql_client: self.graphql_client.clone(),
9290 }
9291 }
9292 pub fn load_label_from_id(&self, id: impl IntoID<LabelId>) -> Label {
9294 let mut query = self.selection.select("loadLabelFromID");
9295 query = query.arg_lazy(
9296 "id",
9297 Box::new(move || {
9298 let id = id.clone();
9299 Box::pin(async move { id.into_id().await.unwrap().quote() })
9300 }),
9301 );
9302 Label {
9303 proc: self.proc.clone(),
9304 selection: query,
9305 graphql_client: self.graphql_client.clone(),
9306 }
9307 }
9308 pub fn load_list_type_def_from_id(&self, id: impl IntoID<ListTypeDefId>) -> ListTypeDef {
9310 let mut query = self.selection.select("loadListTypeDefFromID");
9311 query = query.arg_lazy(
9312 "id",
9313 Box::new(move || {
9314 let id = id.clone();
9315 Box::pin(async move { id.into_id().await.unwrap().quote() })
9316 }),
9317 );
9318 ListTypeDef {
9319 proc: self.proc.clone(),
9320 selection: query,
9321 graphql_client: self.graphql_client.clone(),
9322 }
9323 }
9324 pub fn load_module_config_client_from_id(
9326 &self,
9327 id: impl IntoID<ModuleConfigClientId>,
9328 ) -> ModuleConfigClient {
9329 let mut query = self.selection.select("loadModuleConfigClientFromID");
9330 query = query.arg_lazy(
9331 "id",
9332 Box::new(move || {
9333 let id = id.clone();
9334 Box::pin(async move { id.into_id().await.unwrap().quote() })
9335 }),
9336 );
9337 ModuleConfigClient {
9338 proc: self.proc.clone(),
9339 selection: query,
9340 graphql_client: self.graphql_client.clone(),
9341 }
9342 }
9343 pub fn load_module_from_id(&self, id: impl IntoID<ModuleId>) -> Module {
9345 let mut query = self.selection.select("loadModuleFromID");
9346 query = query.arg_lazy(
9347 "id",
9348 Box::new(move || {
9349 let id = id.clone();
9350 Box::pin(async move { id.into_id().await.unwrap().quote() })
9351 }),
9352 );
9353 Module {
9354 proc: self.proc.clone(),
9355 selection: query,
9356 graphql_client: self.graphql_client.clone(),
9357 }
9358 }
9359 pub fn load_module_source_from_id(&self, id: impl IntoID<ModuleSourceId>) -> ModuleSource {
9361 let mut query = self.selection.select("loadModuleSourceFromID");
9362 query = query.arg_lazy(
9363 "id",
9364 Box::new(move || {
9365 let id = id.clone();
9366 Box::pin(async move { id.into_id().await.unwrap().quote() })
9367 }),
9368 );
9369 ModuleSource {
9370 proc: self.proc.clone(),
9371 selection: query,
9372 graphql_client: self.graphql_client.clone(),
9373 }
9374 }
9375 pub fn load_object_type_def_from_id(&self, id: impl IntoID<ObjectTypeDefId>) -> ObjectTypeDef {
9377 let mut query = self.selection.select("loadObjectTypeDefFromID");
9378 query = query.arg_lazy(
9379 "id",
9380 Box::new(move || {
9381 let id = id.clone();
9382 Box::pin(async move { id.into_id().await.unwrap().quote() })
9383 }),
9384 );
9385 ObjectTypeDef {
9386 proc: self.proc.clone(),
9387 selection: query,
9388 graphql_client: self.graphql_client.clone(),
9389 }
9390 }
9391 pub fn load_port_from_id(&self, id: impl IntoID<PortId>) -> Port {
9393 let mut query = self.selection.select("loadPortFromID");
9394 query = query.arg_lazy(
9395 "id",
9396 Box::new(move || {
9397 let id = id.clone();
9398 Box::pin(async move { id.into_id().await.unwrap().quote() })
9399 }),
9400 );
9401 Port {
9402 proc: self.proc.clone(),
9403 selection: query,
9404 graphql_client: self.graphql_client.clone(),
9405 }
9406 }
9407 pub fn load_sdk_config_from_id(&self, id: impl IntoID<SdkConfigId>) -> SdkConfig {
9409 let mut query = self.selection.select("loadSDKConfigFromID");
9410 query = query.arg_lazy(
9411 "id",
9412 Box::new(move || {
9413 let id = id.clone();
9414 Box::pin(async move { id.into_id().await.unwrap().quote() })
9415 }),
9416 );
9417 SdkConfig {
9418 proc: self.proc.clone(),
9419 selection: query,
9420 graphql_client: self.graphql_client.clone(),
9421 }
9422 }
9423 pub fn load_scalar_type_def_from_id(&self, id: impl IntoID<ScalarTypeDefId>) -> ScalarTypeDef {
9425 let mut query = self.selection.select("loadScalarTypeDefFromID");
9426 query = query.arg_lazy(
9427 "id",
9428 Box::new(move || {
9429 let id = id.clone();
9430 Box::pin(async move { id.into_id().await.unwrap().quote() })
9431 }),
9432 );
9433 ScalarTypeDef {
9434 proc: self.proc.clone(),
9435 selection: query,
9436 graphql_client: self.graphql_client.clone(),
9437 }
9438 }
9439 pub fn load_secret_from_id(&self, id: impl IntoID<SecretId>) -> Secret {
9441 let mut query = self.selection.select("loadSecretFromID");
9442 query = query.arg_lazy(
9443 "id",
9444 Box::new(move || {
9445 let id = id.clone();
9446 Box::pin(async move { id.into_id().await.unwrap().quote() })
9447 }),
9448 );
9449 Secret {
9450 proc: self.proc.clone(),
9451 selection: query,
9452 graphql_client: self.graphql_client.clone(),
9453 }
9454 }
9455 pub fn load_service_from_id(&self, id: impl IntoID<ServiceId>) -> Service {
9457 let mut query = self.selection.select("loadServiceFromID");
9458 query = query.arg_lazy(
9459 "id",
9460 Box::new(move || {
9461 let id = id.clone();
9462 Box::pin(async move { id.into_id().await.unwrap().quote() })
9463 }),
9464 );
9465 Service {
9466 proc: self.proc.clone(),
9467 selection: query,
9468 graphql_client: self.graphql_client.clone(),
9469 }
9470 }
9471 pub fn load_socket_from_id(&self, id: impl IntoID<SocketId>) -> Socket {
9473 let mut query = self.selection.select("loadSocketFromID");
9474 query = query.arg_lazy(
9475 "id",
9476 Box::new(move || {
9477 let id = id.clone();
9478 Box::pin(async move { id.into_id().await.unwrap().quote() })
9479 }),
9480 );
9481 Socket {
9482 proc: self.proc.clone(),
9483 selection: query,
9484 graphql_client: self.graphql_client.clone(),
9485 }
9486 }
9487 pub fn load_source_map_from_id(&self, id: impl IntoID<SourceMapId>) -> SourceMap {
9489 let mut query = self.selection.select("loadSourceMapFromID");
9490 query = query.arg_lazy(
9491 "id",
9492 Box::new(move || {
9493 let id = id.clone();
9494 Box::pin(async move { id.into_id().await.unwrap().quote() })
9495 }),
9496 );
9497 SourceMap {
9498 proc: self.proc.clone(),
9499 selection: query,
9500 graphql_client: self.graphql_client.clone(),
9501 }
9502 }
9503 pub fn load_terminal_from_id(&self, id: impl IntoID<TerminalId>) -> Terminal {
9505 let mut query = self.selection.select("loadTerminalFromID");
9506 query = query.arg_lazy(
9507 "id",
9508 Box::new(move || {
9509 let id = id.clone();
9510 Box::pin(async move { id.into_id().await.unwrap().quote() })
9511 }),
9512 );
9513 Terminal {
9514 proc: self.proc.clone(),
9515 selection: query,
9516 graphql_client: self.graphql_client.clone(),
9517 }
9518 }
9519 pub fn load_type_def_from_id(&self, id: impl IntoID<TypeDefId>) -> TypeDef {
9521 let mut query = self.selection.select("loadTypeDefFromID");
9522 query = query.arg_lazy(
9523 "id",
9524 Box::new(move || {
9525 let id = id.clone();
9526 Box::pin(async move { id.into_id().await.unwrap().quote() })
9527 }),
9528 );
9529 TypeDef {
9530 proc: self.proc.clone(),
9531 selection: query,
9532 graphql_client: self.graphql_client.clone(),
9533 }
9534 }
9535 pub fn module(&self) -> Module {
9537 let query = self.selection.select("module");
9538 Module {
9539 proc: self.proc.clone(),
9540 selection: query,
9541 graphql_client: self.graphql_client.clone(),
9542 }
9543 }
9544 pub fn module_source(&self, ref_string: impl Into<String>) -> ModuleSource {
9551 let mut query = self.selection.select("moduleSource");
9552 query = query.arg("refString", ref_string.into());
9553 ModuleSource {
9554 proc: self.proc.clone(),
9555 selection: query,
9556 graphql_client: self.graphql_client.clone(),
9557 }
9558 }
9559 pub fn module_source_opts<'a>(
9566 &self,
9567 ref_string: impl Into<String>,
9568 opts: QueryModuleSourceOpts<'a>,
9569 ) -> ModuleSource {
9570 let mut query = self.selection.select("moduleSource");
9571 query = query.arg("refString", ref_string.into());
9572 if let Some(ref_pin) = opts.ref_pin {
9573 query = query.arg("refPin", ref_pin);
9574 }
9575 if let Some(disable_find_up) = opts.disable_find_up {
9576 query = query.arg("disableFindUp", disable_find_up);
9577 }
9578 if let Some(allow_not_exists) = opts.allow_not_exists {
9579 query = query.arg("allowNotExists", allow_not_exists);
9580 }
9581 if let Some(require_kind) = opts.require_kind {
9582 query = query.arg("requireKind", require_kind);
9583 }
9584 ModuleSource {
9585 proc: self.proc.clone(),
9586 selection: query,
9587 graphql_client: self.graphql_client.clone(),
9588 }
9589 }
9590 pub fn secret(&self, uri: impl Into<String>) -> Secret {
9597 let mut query = self.selection.select("secret");
9598 query = query.arg("uri", uri.into());
9599 Secret {
9600 proc: self.proc.clone(),
9601 selection: query,
9602 graphql_client: self.graphql_client.clone(),
9603 }
9604 }
9605 pub fn secret_opts<'a>(&self, uri: impl Into<String>, opts: QuerySecretOpts<'a>) -> Secret {
9612 let mut query = self.selection.select("secret");
9613 query = query.arg("uri", uri.into());
9614 if let Some(cache_key) = opts.cache_key {
9615 query = query.arg("cacheKey", cache_key);
9616 }
9617 Secret {
9618 proc: self.proc.clone(),
9619 selection: query,
9620 graphql_client: self.graphql_client.clone(),
9621 }
9622 }
9623 pub fn set_secret(&self, name: impl Into<String>, plaintext: impl Into<String>) -> Secret {
9631 let mut query = self.selection.select("setSecret");
9632 query = query.arg("name", name.into());
9633 query = query.arg("plaintext", plaintext.into());
9634 Secret {
9635 proc: self.proc.clone(),
9636 selection: query,
9637 graphql_client: self.graphql_client.clone(),
9638 }
9639 }
9640 pub fn source_map(&self, filename: impl Into<String>, line: isize, column: isize) -> SourceMap {
9648 let mut query = self.selection.select("sourceMap");
9649 query = query.arg("filename", filename.into());
9650 query = query.arg("line", line);
9651 query = query.arg("column", column);
9652 SourceMap {
9653 proc: self.proc.clone(),
9654 selection: query,
9655 graphql_client: self.graphql_client.clone(),
9656 }
9657 }
9658 pub fn type_def(&self) -> TypeDef {
9660 let query = self.selection.select("typeDef");
9661 TypeDef {
9662 proc: self.proc.clone(),
9663 selection: query,
9664 graphql_client: self.graphql_client.clone(),
9665 }
9666 }
9667 pub async fn version(&self) -> Result<String, DaggerError> {
9669 let query = self.selection.select("version");
9670 query.execute(self.graphql_client.clone()).await
9671 }
9672}
9673#[derive(Clone)]
9674pub struct SdkConfig {
9675 pub proc: Option<Arc<DaggerSessionProc>>,
9676 pub selection: Selection,
9677 pub graphql_client: DynGraphQLClient,
9678}
9679impl SdkConfig {
9680 pub async fn id(&self) -> Result<SdkConfigId, DaggerError> {
9682 let query = self.selection.select("id");
9683 query.execute(self.graphql_client.clone()).await
9684 }
9685 pub async fn source(&self) -> Result<String, DaggerError> {
9687 let query = self.selection.select("source");
9688 query.execute(self.graphql_client.clone()).await
9689 }
9690}
9691#[derive(Clone)]
9692pub struct ScalarTypeDef {
9693 pub proc: Option<Arc<DaggerSessionProc>>,
9694 pub selection: Selection,
9695 pub graphql_client: DynGraphQLClient,
9696}
9697impl ScalarTypeDef {
9698 pub async fn description(&self) -> Result<String, DaggerError> {
9700 let query = self.selection.select("description");
9701 query.execute(self.graphql_client.clone()).await
9702 }
9703 pub async fn id(&self) -> Result<ScalarTypeDefId, DaggerError> {
9705 let query = self.selection.select("id");
9706 query.execute(self.graphql_client.clone()).await
9707 }
9708 pub async fn name(&self) -> Result<String, DaggerError> {
9710 let query = self.selection.select("name");
9711 query.execute(self.graphql_client.clone()).await
9712 }
9713 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
9715 let query = self.selection.select("sourceModuleName");
9716 query.execute(self.graphql_client.clone()).await
9717 }
9718}
9719#[derive(Clone)]
9720pub struct Secret {
9721 pub proc: Option<Arc<DaggerSessionProc>>,
9722 pub selection: Selection,
9723 pub graphql_client: DynGraphQLClient,
9724}
9725impl Secret {
9726 pub async fn id(&self) -> Result<SecretId, DaggerError> {
9728 let query = self.selection.select("id");
9729 query.execute(self.graphql_client.clone()).await
9730 }
9731 pub async fn name(&self) -> Result<String, DaggerError> {
9733 let query = self.selection.select("name");
9734 query.execute(self.graphql_client.clone()).await
9735 }
9736 pub async fn plaintext(&self) -> Result<String, DaggerError> {
9738 let query = self.selection.select("plaintext");
9739 query.execute(self.graphql_client.clone()).await
9740 }
9741 pub async fn uri(&self) -> Result<String, DaggerError> {
9743 let query = self.selection.select("uri");
9744 query.execute(self.graphql_client.clone()).await
9745 }
9746}
9747#[derive(Clone)]
9748pub struct Service {
9749 pub proc: Option<Arc<DaggerSessionProc>>,
9750 pub selection: Selection,
9751 pub graphql_client: DynGraphQLClient,
9752}
9753#[derive(Builder, Debug, PartialEq)]
9754pub struct ServiceEndpointOpts<'a> {
9755 #[builder(setter(into, strip_option), default)]
9757 pub port: Option<isize>,
9758 #[builder(setter(into, strip_option), default)]
9760 pub scheme: Option<&'a str>,
9761}
9762#[derive(Builder, Debug, PartialEq)]
9763pub struct ServiceStopOpts {
9764 #[builder(setter(into, strip_option), default)]
9766 pub kill: Option<bool>,
9767}
9768#[derive(Builder, Debug, PartialEq)]
9769pub struct ServiceUpOpts {
9770 #[builder(setter(into, strip_option), default)]
9773 pub ports: Option<Vec<PortForward>>,
9774 #[builder(setter(into, strip_option), default)]
9776 pub random: Option<bool>,
9777}
9778impl Service {
9779 pub async fn endpoint(&self) -> Result<String, DaggerError> {
9787 let query = self.selection.select("endpoint");
9788 query.execute(self.graphql_client.clone()).await
9789 }
9790 pub async fn endpoint_opts<'a>(
9798 &self,
9799 opts: ServiceEndpointOpts<'a>,
9800 ) -> Result<String, DaggerError> {
9801 let mut query = self.selection.select("endpoint");
9802 if let Some(port) = opts.port {
9803 query = query.arg("port", port);
9804 }
9805 if let Some(scheme) = opts.scheme {
9806 query = query.arg("scheme", scheme);
9807 }
9808 query.execute(self.graphql_client.clone()).await
9809 }
9810 pub async fn hostname(&self) -> Result<String, DaggerError> {
9812 let query = self.selection.select("hostname");
9813 query.execute(self.graphql_client.clone()).await
9814 }
9815 pub async fn id(&self) -> Result<ServiceId, DaggerError> {
9817 let query = self.selection.select("id");
9818 query.execute(self.graphql_client.clone()).await
9819 }
9820 pub fn ports(&self) -> Vec<Port> {
9822 let query = self.selection.select("ports");
9823 vec![Port {
9824 proc: self.proc.clone(),
9825 selection: query,
9826 graphql_client: self.graphql_client.clone(),
9827 }]
9828 }
9829 pub async fn start(&self) -> Result<ServiceId, DaggerError> {
9832 let query = self.selection.select("start");
9833 query.execute(self.graphql_client.clone()).await
9834 }
9835 pub async fn stop(&self) -> Result<ServiceId, DaggerError> {
9841 let query = self.selection.select("stop");
9842 query.execute(self.graphql_client.clone()).await
9843 }
9844 pub async fn stop_opts(&self, opts: ServiceStopOpts) -> Result<ServiceId, DaggerError> {
9850 let mut query = self.selection.select("stop");
9851 if let Some(kill) = opts.kill {
9852 query = query.arg("kill", kill);
9853 }
9854 query.execute(self.graphql_client.clone()).await
9855 }
9856 pub async fn up(&self) -> Result<Void, DaggerError> {
9862 let query = self.selection.select("up");
9863 query.execute(self.graphql_client.clone()).await
9864 }
9865 pub async fn up_opts(&self, opts: ServiceUpOpts) -> Result<Void, DaggerError> {
9871 let mut query = self.selection.select("up");
9872 if let Some(ports) = opts.ports {
9873 query = query.arg("ports", ports);
9874 }
9875 if let Some(random) = opts.random {
9876 query = query.arg("random", random);
9877 }
9878 query.execute(self.graphql_client.clone()).await
9879 }
9880 pub fn with_hostname(&self, hostname: impl Into<String>) -> Service {
9886 let mut query = self.selection.select("withHostname");
9887 query = query.arg("hostname", hostname.into());
9888 Service {
9889 proc: self.proc.clone(),
9890 selection: query,
9891 graphql_client: self.graphql_client.clone(),
9892 }
9893 }
9894}
9895#[derive(Clone)]
9896pub struct Socket {
9897 pub proc: Option<Arc<DaggerSessionProc>>,
9898 pub selection: Selection,
9899 pub graphql_client: DynGraphQLClient,
9900}
9901impl Socket {
9902 pub async fn id(&self) -> Result<SocketId, DaggerError> {
9904 let query = self.selection.select("id");
9905 query.execute(self.graphql_client.clone()).await
9906 }
9907}
9908#[derive(Clone)]
9909pub struct SourceMap {
9910 pub proc: Option<Arc<DaggerSessionProc>>,
9911 pub selection: Selection,
9912 pub graphql_client: DynGraphQLClient,
9913}
9914impl SourceMap {
9915 pub async fn column(&self) -> Result<isize, DaggerError> {
9917 let query = self.selection.select("column");
9918 query.execute(self.graphql_client.clone()).await
9919 }
9920 pub async fn filename(&self) -> Result<String, DaggerError> {
9922 let query = self.selection.select("filename");
9923 query.execute(self.graphql_client.clone()).await
9924 }
9925 pub async fn id(&self) -> Result<SourceMapId, DaggerError> {
9927 let query = self.selection.select("id");
9928 query.execute(self.graphql_client.clone()).await
9929 }
9930 pub async fn line(&self) -> Result<isize, DaggerError> {
9932 let query = self.selection.select("line");
9933 query.execute(self.graphql_client.clone()).await
9934 }
9935 pub async fn module(&self) -> Result<String, DaggerError> {
9937 let query = self.selection.select("module");
9938 query.execute(self.graphql_client.clone()).await
9939 }
9940}
9941#[derive(Clone)]
9942pub struct Terminal {
9943 pub proc: Option<Arc<DaggerSessionProc>>,
9944 pub selection: Selection,
9945 pub graphql_client: DynGraphQLClient,
9946}
9947impl Terminal {
9948 pub async fn id(&self) -> Result<TerminalId, DaggerError> {
9950 let query = self.selection.select("id");
9951 query.execute(self.graphql_client.clone()).await
9952 }
9953 pub async fn sync(&self) -> Result<TerminalId, DaggerError> {
9956 let query = self.selection.select("sync");
9957 query.execute(self.graphql_client.clone()).await
9958 }
9959}
9960#[derive(Clone)]
9961pub struct TypeDef {
9962 pub proc: Option<Arc<DaggerSessionProc>>,
9963 pub selection: Selection,
9964 pub graphql_client: DynGraphQLClient,
9965}
9966#[derive(Builder, Debug, PartialEq)]
9967pub struct TypeDefWithEnumOpts<'a> {
9968 #[builder(setter(into, strip_option), default)]
9970 pub description: Option<&'a str>,
9971 #[builder(setter(into, strip_option), default)]
9973 pub source_map: Option<SourceMapId>,
9974}
9975#[derive(Builder, Debug, PartialEq)]
9976pub struct TypeDefWithEnumMemberOpts<'a> {
9977 #[builder(setter(into, strip_option), default)]
9979 pub description: Option<&'a str>,
9980 #[builder(setter(into, strip_option), default)]
9982 pub source_map: Option<SourceMapId>,
9983 #[builder(setter(into, strip_option), default)]
9985 pub value: Option<&'a str>,
9986}
9987#[derive(Builder, Debug, PartialEq)]
9988pub struct TypeDefWithEnumValueOpts<'a> {
9989 #[builder(setter(into, strip_option), default)]
9991 pub description: Option<&'a str>,
9992 #[builder(setter(into, strip_option), default)]
9994 pub source_map: Option<SourceMapId>,
9995}
9996#[derive(Builder, Debug, PartialEq)]
9997pub struct TypeDefWithFieldOpts<'a> {
9998 #[builder(setter(into, strip_option), default)]
10000 pub description: Option<&'a str>,
10001 #[builder(setter(into, strip_option), default)]
10003 pub source_map: Option<SourceMapId>,
10004}
10005#[derive(Builder, Debug, PartialEq)]
10006pub struct TypeDefWithInterfaceOpts<'a> {
10007 #[builder(setter(into, strip_option), default)]
10008 pub description: Option<&'a str>,
10009 #[builder(setter(into, strip_option), default)]
10010 pub source_map: Option<SourceMapId>,
10011}
10012#[derive(Builder, Debug, PartialEq)]
10013pub struct TypeDefWithObjectOpts<'a> {
10014 #[builder(setter(into, strip_option), default)]
10015 pub description: Option<&'a str>,
10016 #[builder(setter(into, strip_option), default)]
10017 pub source_map: Option<SourceMapId>,
10018}
10019#[derive(Builder, Debug, PartialEq)]
10020pub struct TypeDefWithScalarOpts<'a> {
10021 #[builder(setter(into, strip_option), default)]
10022 pub description: Option<&'a str>,
10023}
10024impl TypeDef {
10025 pub fn as_enum(&self) -> EnumTypeDef {
10027 let query = self.selection.select("asEnum");
10028 EnumTypeDef {
10029 proc: self.proc.clone(),
10030 selection: query,
10031 graphql_client: self.graphql_client.clone(),
10032 }
10033 }
10034 pub fn as_input(&self) -> InputTypeDef {
10036 let query = self.selection.select("asInput");
10037 InputTypeDef {
10038 proc: self.proc.clone(),
10039 selection: query,
10040 graphql_client: self.graphql_client.clone(),
10041 }
10042 }
10043 pub fn as_interface(&self) -> InterfaceTypeDef {
10045 let query = self.selection.select("asInterface");
10046 InterfaceTypeDef {
10047 proc: self.proc.clone(),
10048 selection: query,
10049 graphql_client: self.graphql_client.clone(),
10050 }
10051 }
10052 pub fn as_list(&self) -> ListTypeDef {
10054 let query = self.selection.select("asList");
10055 ListTypeDef {
10056 proc: self.proc.clone(),
10057 selection: query,
10058 graphql_client: self.graphql_client.clone(),
10059 }
10060 }
10061 pub fn as_object(&self) -> ObjectTypeDef {
10063 let query = self.selection.select("asObject");
10064 ObjectTypeDef {
10065 proc: self.proc.clone(),
10066 selection: query,
10067 graphql_client: self.graphql_client.clone(),
10068 }
10069 }
10070 pub fn as_scalar(&self) -> ScalarTypeDef {
10072 let query = self.selection.select("asScalar");
10073 ScalarTypeDef {
10074 proc: self.proc.clone(),
10075 selection: query,
10076 graphql_client: self.graphql_client.clone(),
10077 }
10078 }
10079 pub async fn id(&self) -> Result<TypeDefId, DaggerError> {
10081 let query = self.selection.select("id");
10082 query.execute(self.graphql_client.clone()).await
10083 }
10084 pub async fn kind(&self) -> Result<TypeDefKind, DaggerError> {
10086 let query = self.selection.select("kind");
10087 query.execute(self.graphql_client.clone()).await
10088 }
10089 pub async fn optional(&self) -> Result<bool, DaggerError> {
10091 let query = self.selection.select("optional");
10092 query.execute(self.graphql_client.clone()).await
10093 }
10094 pub fn with_constructor(&self, function: impl IntoID<FunctionId>) -> TypeDef {
10096 let mut query = self.selection.select("withConstructor");
10097 query = query.arg_lazy(
10098 "function",
10099 Box::new(move || {
10100 let function = function.clone();
10101 Box::pin(async move { function.into_id().await.unwrap().quote() })
10102 }),
10103 );
10104 TypeDef {
10105 proc: self.proc.clone(),
10106 selection: query,
10107 graphql_client: self.graphql_client.clone(),
10108 }
10109 }
10110 pub fn with_enum(&self, name: impl Into<String>) -> TypeDef {
10118 let mut query = self.selection.select("withEnum");
10119 query = query.arg("name", name.into());
10120 TypeDef {
10121 proc: self.proc.clone(),
10122 selection: query,
10123 graphql_client: self.graphql_client.clone(),
10124 }
10125 }
10126 pub fn with_enum_opts<'a>(
10134 &self,
10135 name: impl Into<String>,
10136 opts: TypeDefWithEnumOpts<'a>,
10137 ) -> TypeDef {
10138 let mut query = self.selection.select("withEnum");
10139 query = query.arg("name", name.into());
10140 if let Some(description) = opts.description {
10141 query = query.arg("description", description);
10142 }
10143 if let Some(source_map) = opts.source_map {
10144 query = query.arg("sourceMap", source_map);
10145 }
10146 TypeDef {
10147 proc: self.proc.clone(),
10148 selection: query,
10149 graphql_client: self.graphql_client.clone(),
10150 }
10151 }
10152 pub fn with_enum_member(&self, name: impl Into<String>) -> TypeDef {
10159 let mut query = self.selection.select("withEnumMember");
10160 query = query.arg("name", name.into());
10161 TypeDef {
10162 proc: self.proc.clone(),
10163 selection: query,
10164 graphql_client: self.graphql_client.clone(),
10165 }
10166 }
10167 pub fn with_enum_member_opts<'a>(
10174 &self,
10175 name: impl Into<String>,
10176 opts: TypeDefWithEnumMemberOpts<'a>,
10177 ) -> TypeDef {
10178 let mut query = self.selection.select("withEnumMember");
10179 query = query.arg("name", name.into());
10180 if let Some(value) = opts.value {
10181 query = query.arg("value", value);
10182 }
10183 if let Some(description) = opts.description {
10184 query = query.arg("description", description);
10185 }
10186 if let Some(source_map) = opts.source_map {
10187 query = query.arg("sourceMap", source_map);
10188 }
10189 TypeDef {
10190 proc: self.proc.clone(),
10191 selection: query,
10192 graphql_client: self.graphql_client.clone(),
10193 }
10194 }
10195 pub fn with_enum_value(&self, value: impl Into<String>) -> TypeDef {
10202 let mut query = self.selection.select("withEnumValue");
10203 query = query.arg("value", value.into());
10204 TypeDef {
10205 proc: self.proc.clone(),
10206 selection: query,
10207 graphql_client: self.graphql_client.clone(),
10208 }
10209 }
10210 pub fn with_enum_value_opts<'a>(
10217 &self,
10218 value: impl Into<String>,
10219 opts: TypeDefWithEnumValueOpts<'a>,
10220 ) -> TypeDef {
10221 let mut query = self.selection.select("withEnumValue");
10222 query = query.arg("value", value.into());
10223 if let Some(description) = opts.description {
10224 query = query.arg("description", description);
10225 }
10226 if let Some(source_map) = opts.source_map {
10227 query = query.arg("sourceMap", source_map);
10228 }
10229 TypeDef {
10230 proc: self.proc.clone(),
10231 selection: query,
10232 graphql_client: self.graphql_client.clone(),
10233 }
10234 }
10235 pub fn with_field(&self, name: impl Into<String>, type_def: impl IntoID<TypeDefId>) -> TypeDef {
10243 let mut query = self.selection.select("withField");
10244 query = query.arg("name", name.into());
10245 query = query.arg_lazy(
10246 "typeDef",
10247 Box::new(move || {
10248 let type_def = type_def.clone();
10249 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
10250 }),
10251 );
10252 TypeDef {
10253 proc: self.proc.clone(),
10254 selection: query,
10255 graphql_client: self.graphql_client.clone(),
10256 }
10257 }
10258 pub fn with_field_opts<'a>(
10266 &self,
10267 name: impl Into<String>,
10268 type_def: impl IntoID<TypeDefId>,
10269 opts: TypeDefWithFieldOpts<'a>,
10270 ) -> TypeDef {
10271 let mut query = self.selection.select("withField");
10272 query = query.arg("name", name.into());
10273 query = query.arg_lazy(
10274 "typeDef",
10275 Box::new(move || {
10276 let type_def = type_def.clone();
10277 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
10278 }),
10279 );
10280 if let Some(description) = opts.description {
10281 query = query.arg("description", description);
10282 }
10283 if let Some(source_map) = opts.source_map {
10284 query = query.arg("sourceMap", source_map);
10285 }
10286 TypeDef {
10287 proc: self.proc.clone(),
10288 selection: query,
10289 graphql_client: self.graphql_client.clone(),
10290 }
10291 }
10292 pub fn with_function(&self, function: impl IntoID<FunctionId>) -> TypeDef {
10294 let mut query = self.selection.select("withFunction");
10295 query = query.arg_lazy(
10296 "function",
10297 Box::new(move || {
10298 let function = function.clone();
10299 Box::pin(async move { function.into_id().await.unwrap().quote() })
10300 }),
10301 );
10302 TypeDef {
10303 proc: self.proc.clone(),
10304 selection: query,
10305 graphql_client: self.graphql_client.clone(),
10306 }
10307 }
10308 pub fn with_interface(&self, name: impl Into<String>) -> TypeDef {
10314 let mut query = self.selection.select("withInterface");
10315 query = query.arg("name", name.into());
10316 TypeDef {
10317 proc: self.proc.clone(),
10318 selection: query,
10319 graphql_client: self.graphql_client.clone(),
10320 }
10321 }
10322 pub fn with_interface_opts<'a>(
10328 &self,
10329 name: impl Into<String>,
10330 opts: TypeDefWithInterfaceOpts<'a>,
10331 ) -> TypeDef {
10332 let mut query = self.selection.select("withInterface");
10333 query = query.arg("name", name.into());
10334 if let Some(description) = opts.description {
10335 query = query.arg("description", description);
10336 }
10337 if let Some(source_map) = opts.source_map {
10338 query = query.arg("sourceMap", source_map);
10339 }
10340 TypeDef {
10341 proc: self.proc.clone(),
10342 selection: query,
10343 graphql_client: self.graphql_client.clone(),
10344 }
10345 }
10346 pub fn with_kind(&self, kind: TypeDefKind) -> TypeDef {
10348 let mut query = self.selection.select("withKind");
10349 query = query.arg("kind", kind);
10350 TypeDef {
10351 proc: self.proc.clone(),
10352 selection: query,
10353 graphql_client: self.graphql_client.clone(),
10354 }
10355 }
10356 pub fn with_list_of(&self, element_type: impl IntoID<TypeDefId>) -> TypeDef {
10358 let mut query = self.selection.select("withListOf");
10359 query = query.arg_lazy(
10360 "elementType",
10361 Box::new(move || {
10362 let element_type = element_type.clone();
10363 Box::pin(async move { element_type.into_id().await.unwrap().quote() })
10364 }),
10365 );
10366 TypeDef {
10367 proc: self.proc.clone(),
10368 selection: query,
10369 graphql_client: self.graphql_client.clone(),
10370 }
10371 }
10372 pub fn with_object(&self, name: impl Into<String>) -> TypeDef {
10379 let mut query = self.selection.select("withObject");
10380 query = query.arg("name", name.into());
10381 TypeDef {
10382 proc: self.proc.clone(),
10383 selection: query,
10384 graphql_client: self.graphql_client.clone(),
10385 }
10386 }
10387 pub fn with_object_opts<'a>(
10394 &self,
10395 name: impl Into<String>,
10396 opts: TypeDefWithObjectOpts<'a>,
10397 ) -> TypeDef {
10398 let mut query = self.selection.select("withObject");
10399 query = query.arg("name", name.into());
10400 if let Some(description) = opts.description {
10401 query = query.arg("description", description);
10402 }
10403 if let Some(source_map) = opts.source_map {
10404 query = query.arg("sourceMap", source_map);
10405 }
10406 TypeDef {
10407 proc: self.proc.clone(),
10408 selection: query,
10409 graphql_client: self.graphql_client.clone(),
10410 }
10411 }
10412 pub fn with_optional(&self, optional: bool) -> TypeDef {
10414 let mut query = self.selection.select("withOptional");
10415 query = query.arg("optional", optional);
10416 TypeDef {
10417 proc: self.proc.clone(),
10418 selection: query,
10419 graphql_client: self.graphql_client.clone(),
10420 }
10421 }
10422 pub fn with_scalar(&self, name: impl Into<String>) -> TypeDef {
10428 let mut query = self.selection.select("withScalar");
10429 query = query.arg("name", name.into());
10430 TypeDef {
10431 proc: self.proc.clone(),
10432 selection: query,
10433 graphql_client: self.graphql_client.clone(),
10434 }
10435 }
10436 pub fn with_scalar_opts<'a>(
10442 &self,
10443 name: impl Into<String>,
10444 opts: TypeDefWithScalarOpts<'a>,
10445 ) -> TypeDef {
10446 let mut query = self.selection.select("withScalar");
10447 query = query.arg("name", name.into());
10448 if let Some(description) = opts.description {
10449 query = query.arg("description", description);
10450 }
10451 TypeDef {
10452 proc: self.proc.clone(),
10453 selection: query,
10454 graphql_client: self.graphql_client.clone(),
10455 }
10456 }
10457}
10458#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10459pub enum CacheSharingMode {
10460 #[serde(rename = "LOCKED")]
10461 Locked,
10462 #[serde(rename = "PRIVATE")]
10463 Private,
10464 #[serde(rename = "SHARED")]
10465 Shared,
10466}
10467#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10468pub enum ImageLayerCompression {
10469 #[serde(rename = "EStarGZ")]
10470 EStarGz,
10471 #[serde(rename = "ESTARGZ")]
10472 Estargz,
10473 #[serde(rename = "Gzip")]
10474 Gzip,
10475 #[serde(rename = "Uncompressed")]
10476 Uncompressed,
10477 #[serde(rename = "Zstd")]
10478 Zstd,
10479}
10480#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10481pub enum ImageMediaTypes {
10482 #[serde(rename = "DOCKER")]
10483 Docker,
10484 #[serde(rename = "DockerMediaTypes")]
10485 DockerMediaTypes,
10486 #[serde(rename = "OCI")]
10487 Oci,
10488 #[serde(rename = "OCIMediaTypes")]
10489 OciMediaTypes,
10490}
10491#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10492pub enum ModuleSourceKind {
10493 #[serde(rename = "DIR")]
10494 Dir,
10495 #[serde(rename = "DIR_SOURCE")]
10496 DirSource,
10497 #[serde(rename = "GIT")]
10498 Git,
10499 #[serde(rename = "GIT_SOURCE")]
10500 GitSource,
10501 #[serde(rename = "LOCAL")]
10502 Local,
10503 #[serde(rename = "LOCAL_SOURCE")]
10504 LocalSource,
10505}
10506#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10507pub enum NetworkProtocol {
10508 #[serde(rename = "TCP")]
10509 Tcp,
10510 #[serde(rename = "UDP")]
10511 Udp,
10512}
10513#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10514pub enum ReturnType {
10515 #[serde(rename = "ANY")]
10516 Any,
10517 #[serde(rename = "FAILURE")]
10518 Failure,
10519 #[serde(rename = "SUCCESS")]
10520 Success,
10521}
10522#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
10523pub enum TypeDefKind {
10524 #[serde(rename = "BOOLEAN")]
10525 Boolean,
10526 #[serde(rename = "BOOLEAN_KIND")]
10527 BooleanKind,
10528 #[serde(rename = "ENUM")]
10529 Enum,
10530 #[serde(rename = "ENUM_KIND")]
10531 EnumKind,
10532 #[serde(rename = "FLOAT")]
10533 Float,
10534 #[serde(rename = "FLOAT_KIND")]
10535 FloatKind,
10536 #[serde(rename = "INPUT")]
10537 Input,
10538 #[serde(rename = "INPUT_KIND")]
10539 InputKind,
10540 #[serde(rename = "INTEGER")]
10541 Integer,
10542 #[serde(rename = "INTEGER_KIND")]
10543 IntegerKind,
10544 #[serde(rename = "INTERFACE")]
10545 Interface,
10546 #[serde(rename = "INTERFACE_KIND")]
10547 InterfaceKind,
10548 #[serde(rename = "LIST")]
10549 List,
10550 #[serde(rename = "LIST_KIND")]
10551 ListKind,
10552 #[serde(rename = "OBJECT")]
10553 Object,
10554 #[serde(rename = "OBJECT_KIND")]
10555 ObjectKind,
10556 #[serde(rename = "SCALAR")]
10557 Scalar,
10558 #[serde(rename = "SCALAR_KIND")]
10559 ScalarKind,
10560 #[serde(rename = "STRING")]
10561 String,
10562 #[serde(rename = "STRING_KIND")]
10563 StringKind,
10564 #[serde(rename = "VOID")]
10565 Void,
10566 #[serde(rename = "VOID_KIND")]
10567 VoidKind,
10568}