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 AddressId(pub String);
14impl From<&str> for AddressId {
15 fn from(value: &str) -> Self {
16 Self(value.to_string())
17 }
18}
19impl From<String> for AddressId {
20 fn from(value: String) -> Self {
21 Self(value)
22 }
23}
24impl IntoID<AddressId> for Address {
25 fn into_id(
26 self,
27 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<AddressId, DaggerError>> + Send>>
28 {
29 Box::pin(async move { self.id().await })
30 }
31}
32impl IntoID<AddressId> for AddressId {
33 fn into_id(
34 self,
35 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<AddressId, DaggerError>> + Send>>
36 {
37 Box::pin(async move { Ok::<AddressId, DaggerError>(self) })
38 }
39}
40impl AddressId {
41 fn quote(&self) -> String {
42 format!("\"{}\"", self.0.clone())
43 }
44}
45#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
46pub struct BindingId(pub String);
47impl From<&str> for BindingId {
48 fn from(value: &str) -> Self {
49 Self(value.to_string())
50 }
51}
52impl From<String> for BindingId {
53 fn from(value: String) -> Self {
54 Self(value)
55 }
56}
57impl IntoID<BindingId> for Binding {
58 fn into_id(
59 self,
60 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<BindingId, DaggerError>> + Send>>
61 {
62 Box::pin(async move { self.id().await })
63 }
64}
65impl IntoID<BindingId> for BindingId {
66 fn into_id(
67 self,
68 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<BindingId, DaggerError>> + Send>>
69 {
70 Box::pin(async move { Ok::<BindingId, DaggerError>(self) })
71 }
72}
73impl BindingId {
74 fn quote(&self) -> String {
75 format!("\"{}\"", self.0.clone())
76 }
77}
78#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
79pub struct CacheVolumeId(pub String);
80impl From<&str> for CacheVolumeId {
81 fn from(value: &str) -> Self {
82 Self(value.to_string())
83 }
84}
85impl From<String> for CacheVolumeId {
86 fn from(value: String) -> Self {
87 Self(value)
88 }
89}
90impl IntoID<CacheVolumeId> for CacheVolume {
91 fn into_id(
92 self,
93 ) -> std::pin::Pin<
94 Box<dyn core::future::Future<Output = Result<CacheVolumeId, DaggerError>> + Send>,
95 > {
96 Box::pin(async move { self.id().await })
97 }
98}
99impl IntoID<CacheVolumeId> for CacheVolumeId {
100 fn into_id(
101 self,
102 ) -> std::pin::Pin<
103 Box<dyn core::future::Future<Output = Result<CacheVolumeId, DaggerError>> + Send>,
104 > {
105 Box::pin(async move { Ok::<CacheVolumeId, DaggerError>(self) })
106 }
107}
108impl CacheVolumeId {
109 fn quote(&self) -> String {
110 format!("\"{}\"", self.0.clone())
111 }
112}
113#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
114pub struct ChangesetId(pub String);
115impl From<&str> for ChangesetId {
116 fn from(value: &str) -> Self {
117 Self(value.to_string())
118 }
119}
120impl From<String> for ChangesetId {
121 fn from(value: String) -> Self {
122 Self(value)
123 }
124}
125impl IntoID<ChangesetId> for Changeset {
126 fn into_id(
127 self,
128 ) -> std::pin::Pin<
129 Box<dyn core::future::Future<Output = Result<ChangesetId, DaggerError>> + Send>,
130 > {
131 Box::pin(async move { self.id().await })
132 }
133}
134impl IntoID<ChangesetId> for ChangesetId {
135 fn into_id(
136 self,
137 ) -> std::pin::Pin<
138 Box<dyn core::future::Future<Output = Result<ChangesetId, DaggerError>> + Send>,
139 > {
140 Box::pin(async move { Ok::<ChangesetId, DaggerError>(self) })
141 }
142}
143impl ChangesetId {
144 fn quote(&self) -> String {
145 format!("\"{}\"", self.0.clone())
146 }
147}
148#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
149pub struct CheckGroupId(pub String);
150impl From<&str> for CheckGroupId {
151 fn from(value: &str) -> Self {
152 Self(value.to_string())
153 }
154}
155impl From<String> for CheckGroupId {
156 fn from(value: String) -> Self {
157 Self(value)
158 }
159}
160impl IntoID<CheckGroupId> for CheckGroup {
161 fn into_id(
162 self,
163 ) -> std::pin::Pin<
164 Box<dyn core::future::Future<Output = Result<CheckGroupId, DaggerError>> + Send>,
165 > {
166 Box::pin(async move { self.id().await })
167 }
168}
169impl IntoID<CheckGroupId> for CheckGroupId {
170 fn into_id(
171 self,
172 ) -> std::pin::Pin<
173 Box<dyn core::future::Future<Output = Result<CheckGroupId, DaggerError>> + Send>,
174 > {
175 Box::pin(async move { Ok::<CheckGroupId, DaggerError>(self) })
176 }
177}
178impl CheckGroupId {
179 fn quote(&self) -> String {
180 format!("\"{}\"", self.0.clone())
181 }
182}
183#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
184pub struct CheckId(pub String);
185impl From<&str> for CheckId {
186 fn from(value: &str) -> Self {
187 Self(value.to_string())
188 }
189}
190impl From<String> for CheckId {
191 fn from(value: String) -> Self {
192 Self(value)
193 }
194}
195impl IntoID<CheckId> for Check {
196 fn into_id(
197 self,
198 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<CheckId, DaggerError>> + Send>>
199 {
200 Box::pin(async move { self.id().await })
201 }
202}
203impl IntoID<CheckId> for CheckId {
204 fn into_id(
205 self,
206 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<CheckId, DaggerError>> + Send>>
207 {
208 Box::pin(async move { Ok::<CheckId, DaggerError>(self) })
209 }
210}
211impl CheckId {
212 fn quote(&self) -> String {
213 format!("\"{}\"", self.0.clone())
214 }
215}
216#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
217pub struct CloudId(pub String);
218impl From<&str> for CloudId {
219 fn from(value: &str) -> Self {
220 Self(value.to_string())
221 }
222}
223impl From<String> for CloudId {
224 fn from(value: String) -> Self {
225 Self(value)
226 }
227}
228impl IntoID<CloudId> for Cloud {
229 fn into_id(
230 self,
231 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<CloudId, DaggerError>> + Send>>
232 {
233 Box::pin(async move { self.id().await })
234 }
235}
236impl IntoID<CloudId> for CloudId {
237 fn into_id(
238 self,
239 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<CloudId, DaggerError>> + Send>>
240 {
241 Box::pin(async move { Ok::<CloudId, DaggerError>(self) })
242 }
243}
244impl CloudId {
245 fn quote(&self) -> String {
246 format!("\"{}\"", self.0.clone())
247 }
248}
249#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
250pub struct ContainerId(pub String);
251impl From<&str> for ContainerId {
252 fn from(value: &str) -> Self {
253 Self(value.to_string())
254 }
255}
256impl From<String> for ContainerId {
257 fn from(value: String) -> Self {
258 Self(value)
259 }
260}
261impl IntoID<ContainerId> for Container {
262 fn into_id(
263 self,
264 ) -> std::pin::Pin<
265 Box<dyn core::future::Future<Output = Result<ContainerId, DaggerError>> + Send>,
266 > {
267 Box::pin(async move { self.id().await })
268 }
269}
270impl IntoID<ContainerId> for ContainerId {
271 fn into_id(
272 self,
273 ) -> std::pin::Pin<
274 Box<dyn core::future::Future<Output = Result<ContainerId, DaggerError>> + Send>,
275 > {
276 Box::pin(async move { Ok::<ContainerId, DaggerError>(self) })
277 }
278}
279impl ContainerId {
280 fn quote(&self) -> String {
281 format!("\"{}\"", self.0.clone())
282 }
283}
284#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
285pub struct CurrentModuleId(pub String);
286impl From<&str> for CurrentModuleId {
287 fn from(value: &str) -> Self {
288 Self(value.to_string())
289 }
290}
291impl From<String> for CurrentModuleId {
292 fn from(value: String) -> Self {
293 Self(value)
294 }
295}
296impl IntoID<CurrentModuleId> for CurrentModule {
297 fn into_id(
298 self,
299 ) -> std::pin::Pin<
300 Box<dyn core::future::Future<Output = Result<CurrentModuleId, DaggerError>> + Send>,
301 > {
302 Box::pin(async move { self.id().await })
303 }
304}
305impl IntoID<CurrentModuleId> for CurrentModuleId {
306 fn into_id(
307 self,
308 ) -> std::pin::Pin<
309 Box<dyn core::future::Future<Output = Result<CurrentModuleId, DaggerError>> + Send>,
310 > {
311 Box::pin(async move { Ok::<CurrentModuleId, DaggerError>(self) })
312 }
313}
314impl CurrentModuleId {
315 fn quote(&self) -> String {
316 format!("\"{}\"", self.0.clone())
317 }
318}
319#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
320pub struct DirectoryId(pub String);
321impl From<&str> for DirectoryId {
322 fn from(value: &str) -> Self {
323 Self(value.to_string())
324 }
325}
326impl From<String> for DirectoryId {
327 fn from(value: String) -> Self {
328 Self(value)
329 }
330}
331impl IntoID<DirectoryId> for Directory {
332 fn into_id(
333 self,
334 ) -> std::pin::Pin<
335 Box<dyn core::future::Future<Output = Result<DirectoryId, DaggerError>> + Send>,
336 > {
337 Box::pin(async move { self.id().await })
338 }
339}
340impl IntoID<DirectoryId> for DirectoryId {
341 fn into_id(
342 self,
343 ) -> std::pin::Pin<
344 Box<dyn core::future::Future<Output = Result<DirectoryId, DaggerError>> + Send>,
345 > {
346 Box::pin(async move { Ok::<DirectoryId, DaggerError>(self) })
347 }
348}
349impl DirectoryId {
350 fn quote(&self) -> String {
351 format!("\"{}\"", self.0.clone())
352 }
353}
354#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
355pub struct EngineCacheEntryId(pub String);
356impl From<&str> for EngineCacheEntryId {
357 fn from(value: &str) -> Self {
358 Self(value.to_string())
359 }
360}
361impl From<String> for EngineCacheEntryId {
362 fn from(value: String) -> Self {
363 Self(value)
364 }
365}
366impl IntoID<EngineCacheEntryId> for EngineCacheEntry {
367 fn into_id(
368 self,
369 ) -> std::pin::Pin<
370 Box<dyn core::future::Future<Output = Result<EngineCacheEntryId, DaggerError>> + Send>,
371 > {
372 Box::pin(async move { self.id().await })
373 }
374}
375impl IntoID<EngineCacheEntryId> for EngineCacheEntryId {
376 fn into_id(
377 self,
378 ) -> std::pin::Pin<
379 Box<dyn core::future::Future<Output = Result<EngineCacheEntryId, DaggerError>> + Send>,
380 > {
381 Box::pin(async move { Ok::<EngineCacheEntryId, DaggerError>(self) })
382 }
383}
384impl EngineCacheEntryId {
385 fn quote(&self) -> String {
386 format!("\"{}\"", self.0.clone())
387 }
388}
389#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
390pub struct EngineCacheEntrySetId(pub String);
391impl From<&str> for EngineCacheEntrySetId {
392 fn from(value: &str) -> Self {
393 Self(value.to_string())
394 }
395}
396impl From<String> for EngineCacheEntrySetId {
397 fn from(value: String) -> Self {
398 Self(value)
399 }
400}
401impl IntoID<EngineCacheEntrySetId> for EngineCacheEntrySet {
402 fn into_id(
403 self,
404 ) -> std::pin::Pin<
405 Box<dyn core::future::Future<Output = Result<EngineCacheEntrySetId, DaggerError>> + Send>,
406 > {
407 Box::pin(async move { self.id().await })
408 }
409}
410impl IntoID<EngineCacheEntrySetId> for EngineCacheEntrySetId {
411 fn into_id(
412 self,
413 ) -> std::pin::Pin<
414 Box<dyn core::future::Future<Output = Result<EngineCacheEntrySetId, DaggerError>> + Send>,
415 > {
416 Box::pin(async move { Ok::<EngineCacheEntrySetId, DaggerError>(self) })
417 }
418}
419impl EngineCacheEntrySetId {
420 fn quote(&self) -> String {
421 format!("\"{}\"", self.0.clone())
422 }
423}
424#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
425pub struct EngineCacheId(pub String);
426impl From<&str> for EngineCacheId {
427 fn from(value: &str) -> Self {
428 Self(value.to_string())
429 }
430}
431impl From<String> for EngineCacheId {
432 fn from(value: String) -> Self {
433 Self(value)
434 }
435}
436impl IntoID<EngineCacheId> for EngineCache {
437 fn into_id(
438 self,
439 ) -> std::pin::Pin<
440 Box<dyn core::future::Future<Output = Result<EngineCacheId, DaggerError>> + Send>,
441 > {
442 Box::pin(async move { self.id().await })
443 }
444}
445impl IntoID<EngineCacheId> for EngineCacheId {
446 fn into_id(
447 self,
448 ) -> std::pin::Pin<
449 Box<dyn core::future::Future<Output = Result<EngineCacheId, DaggerError>> + Send>,
450 > {
451 Box::pin(async move { Ok::<EngineCacheId, DaggerError>(self) })
452 }
453}
454impl EngineCacheId {
455 fn quote(&self) -> String {
456 format!("\"{}\"", self.0.clone())
457 }
458}
459#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
460pub struct EngineId(pub String);
461impl From<&str> for EngineId {
462 fn from(value: &str) -> Self {
463 Self(value.to_string())
464 }
465}
466impl From<String> for EngineId {
467 fn from(value: String) -> Self {
468 Self(value)
469 }
470}
471impl IntoID<EngineId> for Engine {
472 fn into_id(
473 self,
474 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EngineId, DaggerError>> + Send>>
475 {
476 Box::pin(async move { self.id().await })
477 }
478}
479impl IntoID<EngineId> for EngineId {
480 fn into_id(
481 self,
482 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EngineId, DaggerError>> + Send>>
483 {
484 Box::pin(async move { Ok::<EngineId, DaggerError>(self) })
485 }
486}
487impl EngineId {
488 fn quote(&self) -> String {
489 format!("\"{}\"", self.0.clone())
490 }
491}
492#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
493pub struct EnumTypeDefId(pub String);
494impl From<&str> for EnumTypeDefId {
495 fn from(value: &str) -> Self {
496 Self(value.to_string())
497 }
498}
499impl From<String> for EnumTypeDefId {
500 fn from(value: String) -> Self {
501 Self(value)
502 }
503}
504impl IntoID<EnumTypeDefId> for EnumTypeDef {
505 fn into_id(
506 self,
507 ) -> std::pin::Pin<
508 Box<dyn core::future::Future<Output = Result<EnumTypeDefId, DaggerError>> + Send>,
509 > {
510 Box::pin(async move { self.id().await })
511 }
512}
513impl IntoID<EnumTypeDefId> for EnumTypeDefId {
514 fn into_id(
515 self,
516 ) -> std::pin::Pin<
517 Box<dyn core::future::Future<Output = Result<EnumTypeDefId, DaggerError>> + Send>,
518 > {
519 Box::pin(async move { Ok::<EnumTypeDefId, DaggerError>(self) })
520 }
521}
522impl EnumTypeDefId {
523 fn quote(&self) -> String {
524 format!("\"{}\"", self.0.clone())
525 }
526}
527#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
528pub struct EnumValueTypeDefId(pub String);
529impl From<&str> for EnumValueTypeDefId {
530 fn from(value: &str) -> Self {
531 Self(value.to_string())
532 }
533}
534impl From<String> for EnumValueTypeDefId {
535 fn from(value: String) -> Self {
536 Self(value)
537 }
538}
539impl IntoID<EnumValueTypeDefId> for EnumValueTypeDef {
540 fn into_id(
541 self,
542 ) -> std::pin::Pin<
543 Box<dyn core::future::Future<Output = Result<EnumValueTypeDefId, DaggerError>> + Send>,
544 > {
545 Box::pin(async move { self.id().await })
546 }
547}
548impl IntoID<EnumValueTypeDefId> for EnumValueTypeDefId {
549 fn into_id(
550 self,
551 ) -> std::pin::Pin<
552 Box<dyn core::future::Future<Output = Result<EnumValueTypeDefId, DaggerError>> + Send>,
553 > {
554 Box::pin(async move { Ok::<EnumValueTypeDefId, DaggerError>(self) })
555 }
556}
557impl EnumValueTypeDefId {
558 fn quote(&self) -> String {
559 format!("\"{}\"", self.0.clone())
560 }
561}
562#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
563pub struct EnvFileId(pub String);
564impl From<&str> for EnvFileId {
565 fn from(value: &str) -> Self {
566 Self(value.to_string())
567 }
568}
569impl From<String> for EnvFileId {
570 fn from(value: String) -> Self {
571 Self(value)
572 }
573}
574impl IntoID<EnvFileId> for EnvFile {
575 fn into_id(
576 self,
577 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EnvFileId, DaggerError>> + Send>>
578 {
579 Box::pin(async move { self.id().await })
580 }
581}
582impl IntoID<EnvFileId> for EnvFileId {
583 fn into_id(
584 self,
585 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EnvFileId, DaggerError>> + Send>>
586 {
587 Box::pin(async move { Ok::<EnvFileId, DaggerError>(self) })
588 }
589}
590impl EnvFileId {
591 fn quote(&self) -> String {
592 format!("\"{}\"", self.0.clone())
593 }
594}
595#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
596pub struct EnvId(pub String);
597impl From<&str> for EnvId {
598 fn from(value: &str) -> Self {
599 Self(value.to_string())
600 }
601}
602impl From<String> for EnvId {
603 fn from(value: String) -> Self {
604 Self(value)
605 }
606}
607impl IntoID<EnvId> for Env {
608 fn into_id(
609 self,
610 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EnvId, DaggerError>> + Send>>
611 {
612 Box::pin(async move { self.id().await })
613 }
614}
615impl IntoID<EnvId> for EnvId {
616 fn into_id(
617 self,
618 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<EnvId, DaggerError>> + Send>>
619 {
620 Box::pin(async move { Ok::<EnvId, DaggerError>(self) })
621 }
622}
623impl EnvId {
624 fn quote(&self) -> String {
625 format!("\"{}\"", self.0.clone())
626 }
627}
628#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
629pub struct EnvVariableId(pub String);
630impl From<&str> for EnvVariableId {
631 fn from(value: &str) -> Self {
632 Self(value.to_string())
633 }
634}
635impl From<String> for EnvVariableId {
636 fn from(value: String) -> Self {
637 Self(value)
638 }
639}
640impl IntoID<EnvVariableId> for EnvVariable {
641 fn into_id(
642 self,
643 ) -> std::pin::Pin<
644 Box<dyn core::future::Future<Output = Result<EnvVariableId, DaggerError>> + Send>,
645 > {
646 Box::pin(async move { self.id().await })
647 }
648}
649impl IntoID<EnvVariableId> for EnvVariableId {
650 fn into_id(
651 self,
652 ) -> std::pin::Pin<
653 Box<dyn core::future::Future<Output = Result<EnvVariableId, DaggerError>> + Send>,
654 > {
655 Box::pin(async move { Ok::<EnvVariableId, DaggerError>(self) })
656 }
657}
658impl EnvVariableId {
659 fn quote(&self) -> String {
660 format!("\"{}\"", self.0.clone())
661 }
662}
663#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
664pub struct ErrorId(pub String);
665impl From<&str> for ErrorId {
666 fn from(value: &str) -> Self {
667 Self(value.to_string())
668 }
669}
670impl From<String> for ErrorId {
671 fn from(value: String) -> Self {
672 Self(value)
673 }
674}
675impl IntoID<ErrorId> for Error {
676 fn into_id(
677 self,
678 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ErrorId, DaggerError>> + Send>>
679 {
680 Box::pin(async move { self.id().await })
681 }
682}
683impl IntoID<ErrorId> for ErrorId {
684 fn into_id(
685 self,
686 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ErrorId, DaggerError>> + Send>>
687 {
688 Box::pin(async move { Ok::<ErrorId, DaggerError>(self) })
689 }
690}
691impl ErrorId {
692 fn quote(&self) -> String {
693 format!("\"{}\"", self.0.clone())
694 }
695}
696#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
697pub struct ErrorValueId(pub String);
698impl From<&str> for ErrorValueId {
699 fn from(value: &str) -> Self {
700 Self(value.to_string())
701 }
702}
703impl From<String> for ErrorValueId {
704 fn from(value: String) -> Self {
705 Self(value)
706 }
707}
708impl IntoID<ErrorValueId> for ErrorValue {
709 fn into_id(
710 self,
711 ) -> std::pin::Pin<
712 Box<dyn core::future::Future<Output = Result<ErrorValueId, DaggerError>> + Send>,
713 > {
714 Box::pin(async move { self.id().await })
715 }
716}
717impl IntoID<ErrorValueId> for ErrorValueId {
718 fn into_id(
719 self,
720 ) -> std::pin::Pin<
721 Box<dyn core::future::Future<Output = Result<ErrorValueId, DaggerError>> + Send>,
722 > {
723 Box::pin(async move { Ok::<ErrorValueId, DaggerError>(self) })
724 }
725}
726impl ErrorValueId {
727 fn quote(&self) -> String {
728 format!("\"{}\"", self.0.clone())
729 }
730}
731#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
732pub struct FieldTypeDefId(pub String);
733impl From<&str> for FieldTypeDefId {
734 fn from(value: &str) -> Self {
735 Self(value.to_string())
736 }
737}
738impl From<String> for FieldTypeDefId {
739 fn from(value: String) -> Self {
740 Self(value)
741 }
742}
743impl IntoID<FieldTypeDefId> for FieldTypeDef {
744 fn into_id(
745 self,
746 ) -> std::pin::Pin<
747 Box<dyn core::future::Future<Output = Result<FieldTypeDefId, DaggerError>> + Send>,
748 > {
749 Box::pin(async move { self.id().await })
750 }
751}
752impl IntoID<FieldTypeDefId> for FieldTypeDefId {
753 fn into_id(
754 self,
755 ) -> std::pin::Pin<
756 Box<dyn core::future::Future<Output = Result<FieldTypeDefId, DaggerError>> + Send>,
757 > {
758 Box::pin(async move { Ok::<FieldTypeDefId, DaggerError>(self) })
759 }
760}
761impl FieldTypeDefId {
762 fn quote(&self) -> String {
763 format!("\"{}\"", self.0.clone())
764 }
765}
766#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
767pub struct FileId(pub String);
768impl From<&str> for FileId {
769 fn from(value: &str) -> Self {
770 Self(value.to_string())
771 }
772}
773impl From<String> for FileId {
774 fn from(value: String) -> Self {
775 Self(value)
776 }
777}
778impl IntoID<FileId> for File {
779 fn into_id(
780 self,
781 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FileId, DaggerError>> + Send>>
782 {
783 Box::pin(async move { self.id().await })
784 }
785}
786impl IntoID<FileId> for FileId {
787 fn into_id(
788 self,
789 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FileId, DaggerError>> + Send>>
790 {
791 Box::pin(async move { Ok::<FileId, DaggerError>(self) })
792 }
793}
794impl FileId {
795 fn quote(&self) -> String {
796 format!("\"{}\"", self.0.clone())
797 }
798}
799#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
800pub struct FunctionArgId(pub String);
801impl From<&str> for FunctionArgId {
802 fn from(value: &str) -> Self {
803 Self(value.to_string())
804 }
805}
806impl From<String> for FunctionArgId {
807 fn from(value: String) -> Self {
808 Self(value)
809 }
810}
811impl IntoID<FunctionArgId> for FunctionArg {
812 fn into_id(
813 self,
814 ) -> std::pin::Pin<
815 Box<dyn core::future::Future<Output = Result<FunctionArgId, DaggerError>> + Send>,
816 > {
817 Box::pin(async move { self.id().await })
818 }
819}
820impl IntoID<FunctionArgId> for FunctionArgId {
821 fn into_id(
822 self,
823 ) -> std::pin::Pin<
824 Box<dyn core::future::Future<Output = Result<FunctionArgId, DaggerError>> + Send>,
825 > {
826 Box::pin(async move { Ok::<FunctionArgId, DaggerError>(self) })
827 }
828}
829impl FunctionArgId {
830 fn quote(&self) -> String {
831 format!("\"{}\"", self.0.clone())
832 }
833}
834#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
835pub struct FunctionCallArgValueId(pub String);
836impl From<&str> for FunctionCallArgValueId {
837 fn from(value: &str) -> Self {
838 Self(value.to_string())
839 }
840}
841impl From<String> for FunctionCallArgValueId {
842 fn from(value: String) -> Self {
843 Self(value)
844 }
845}
846impl IntoID<FunctionCallArgValueId> for FunctionCallArgValue {
847 fn into_id(
848 self,
849 ) -> std::pin::Pin<
850 Box<dyn core::future::Future<Output = Result<FunctionCallArgValueId, DaggerError>> + Send>,
851 > {
852 Box::pin(async move { self.id().await })
853 }
854}
855impl IntoID<FunctionCallArgValueId> for FunctionCallArgValueId {
856 fn into_id(
857 self,
858 ) -> std::pin::Pin<
859 Box<dyn core::future::Future<Output = Result<FunctionCallArgValueId, DaggerError>> + Send>,
860 > {
861 Box::pin(async move { Ok::<FunctionCallArgValueId, DaggerError>(self) })
862 }
863}
864impl FunctionCallArgValueId {
865 fn quote(&self) -> String {
866 format!("\"{}\"", self.0.clone())
867 }
868}
869#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
870pub struct FunctionCallId(pub String);
871impl From<&str> for FunctionCallId {
872 fn from(value: &str) -> Self {
873 Self(value.to_string())
874 }
875}
876impl From<String> for FunctionCallId {
877 fn from(value: String) -> Self {
878 Self(value)
879 }
880}
881impl IntoID<FunctionCallId> for FunctionCall {
882 fn into_id(
883 self,
884 ) -> std::pin::Pin<
885 Box<dyn core::future::Future<Output = Result<FunctionCallId, DaggerError>> + Send>,
886 > {
887 Box::pin(async move { self.id().await })
888 }
889}
890impl IntoID<FunctionCallId> for FunctionCallId {
891 fn into_id(
892 self,
893 ) -> std::pin::Pin<
894 Box<dyn core::future::Future<Output = Result<FunctionCallId, DaggerError>> + Send>,
895 > {
896 Box::pin(async move { Ok::<FunctionCallId, DaggerError>(self) })
897 }
898}
899impl FunctionCallId {
900 fn quote(&self) -> String {
901 format!("\"{}\"", self.0.clone())
902 }
903}
904#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
905pub struct FunctionId(pub String);
906impl From<&str> for FunctionId {
907 fn from(value: &str) -> Self {
908 Self(value.to_string())
909 }
910}
911impl From<String> for FunctionId {
912 fn from(value: String) -> Self {
913 Self(value)
914 }
915}
916impl IntoID<FunctionId> for Function {
917 fn into_id(
918 self,
919 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FunctionId, DaggerError>> + Send>>
920 {
921 Box::pin(async move { self.id().await })
922 }
923}
924impl IntoID<FunctionId> for FunctionId {
925 fn into_id(
926 self,
927 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<FunctionId, DaggerError>> + Send>>
928 {
929 Box::pin(async move { Ok::<FunctionId, DaggerError>(self) })
930 }
931}
932impl FunctionId {
933 fn quote(&self) -> String {
934 format!("\"{}\"", self.0.clone())
935 }
936}
937#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
938pub struct GeneratedCodeId(pub String);
939impl From<&str> for GeneratedCodeId {
940 fn from(value: &str) -> Self {
941 Self(value.to_string())
942 }
943}
944impl From<String> for GeneratedCodeId {
945 fn from(value: String) -> Self {
946 Self(value)
947 }
948}
949impl IntoID<GeneratedCodeId> for GeneratedCode {
950 fn into_id(
951 self,
952 ) -> std::pin::Pin<
953 Box<dyn core::future::Future<Output = Result<GeneratedCodeId, DaggerError>> + Send>,
954 > {
955 Box::pin(async move { self.id().await })
956 }
957}
958impl IntoID<GeneratedCodeId> for GeneratedCodeId {
959 fn into_id(
960 self,
961 ) -> std::pin::Pin<
962 Box<dyn core::future::Future<Output = Result<GeneratedCodeId, DaggerError>> + Send>,
963 > {
964 Box::pin(async move { Ok::<GeneratedCodeId, DaggerError>(self) })
965 }
966}
967impl GeneratedCodeId {
968 fn quote(&self) -> String {
969 format!("\"{}\"", self.0.clone())
970 }
971}
972#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
973pub struct GeneratorGroupId(pub String);
974impl From<&str> for GeneratorGroupId {
975 fn from(value: &str) -> Self {
976 Self(value.to_string())
977 }
978}
979impl From<String> for GeneratorGroupId {
980 fn from(value: String) -> Self {
981 Self(value)
982 }
983}
984impl IntoID<GeneratorGroupId> for GeneratorGroup {
985 fn into_id(
986 self,
987 ) -> std::pin::Pin<
988 Box<dyn core::future::Future<Output = Result<GeneratorGroupId, DaggerError>> + Send>,
989 > {
990 Box::pin(async move { self.id().await })
991 }
992}
993impl IntoID<GeneratorGroupId> for GeneratorGroupId {
994 fn into_id(
995 self,
996 ) -> std::pin::Pin<
997 Box<dyn core::future::Future<Output = Result<GeneratorGroupId, DaggerError>> + Send>,
998 > {
999 Box::pin(async move { Ok::<GeneratorGroupId, DaggerError>(self) })
1000 }
1001}
1002impl GeneratorGroupId {
1003 fn quote(&self) -> String {
1004 format!("\"{}\"", self.0.clone())
1005 }
1006}
1007#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1008pub struct GeneratorId(pub String);
1009impl From<&str> for GeneratorId {
1010 fn from(value: &str) -> Self {
1011 Self(value.to_string())
1012 }
1013}
1014impl From<String> for GeneratorId {
1015 fn from(value: String) -> Self {
1016 Self(value)
1017 }
1018}
1019impl IntoID<GeneratorId> for Generator {
1020 fn into_id(
1021 self,
1022 ) -> std::pin::Pin<
1023 Box<dyn core::future::Future<Output = Result<GeneratorId, DaggerError>> + Send>,
1024 > {
1025 Box::pin(async move { self.id().await })
1026 }
1027}
1028impl IntoID<GeneratorId> for GeneratorId {
1029 fn into_id(
1030 self,
1031 ) -> std::pin::Pin<
1032 Box<dyn core::future::Future<Output = Result<GeneratorId, DaggerError>> + Send>,
1033 > {
1034 Box::pin(async move { Ok::<GeneratorId, DaggerError>(self) })
1035 }
1036}
1037impl GeneratorId {
1038 fn quote(&self) -> String {
1039 format!("\"{}\"", self.0.clone())
1040 }
1041}
1042#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1043pub struct GitRefId(pub String);
1044impl From<&str> for GitRefId {
1045 fn from(value: &str) -> Self {
1046 Self(value.to_string())
1047 }
1048}
1049impl From<String> for GitRefId {
1050 fn from(value: String) -> Self {
1051 Self(value)
1052 }
1053}
1054impl IntoID<GitRefId> for GitRef {
1055 fn into_id(
1056 self,
1057 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<GitRefId, DaggerError>> + Send>>
1058 {
1059 Box::pin(async move { self.id().await })
1060 }
1061}
1062impl IntoID<GitRefId> for GitRefId {
1063 fn into_id(
1064 self,
1065 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<GitRefId, DaggerError>> + Send>>
1066 {
1067 Box::pin(async move { Ok::<GitRefId, DaggerError>(self) })
1068 }
1069}
1070impl GitRefId {
1071 fn quote(&self) -> String {
1072 format!("\"{}\"", self.0.clone())
1073 }
1074}
1075#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1076pub struct GitRepositoryId(pub String);
1077impl From<&str> for GitRepositoryId {
1078 fn from(value: &str) -> Self {
1079 Self(value.to_string())
1080 }
1081}
1082impl From<String> for GitRepositoryId {
1083 fn from(value: String) -> Self {
1084 Self(value)
1085 }
1086}
1087impl IntoID<GitRepositoryId> for GitRepository {
1088 fn into_id(
1089 self,
1090 ) -> std::pin::Pin<
1091 Box<dyn core::future::Future<Output = Result<GitRepositoryId, DaggerError>> + Send>,
1092 > {
1093 Box::pin(async move { self.id().await })
1094 }
1095}
1096impl IntoID<GitRepositoryId> for GitRepositoryId {
1097 fn into_id(
1098 self,
1099 ) -> std::pin::Pin<
1100 Box<dyn core::future::Future<Output = Result<GitRepositoryId, DaggerError>> + Send>,
1101 > {
1102 Box::pin(async move { Ok::<GitRepositoryId, DaggerError>(self) })
1103 }
1104}
1105impl GitRepositoryId {
1106 fn quote(&self) -> String {
1107 format!("\"{}\"", self.0.clone())
1108 }
1109}
1110#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1111pub struct HostId(pub String);
1112impl From<&str> for HostId {
1113 fn from(value: &str) -> Self {
1114 Self(value.to_string())
1115 }
1116}
1117impl From<String> for HostId {
1118 fn from(value: String) -> Self {
1119 Self(value)
1120 }
1121}
1122impl IntoID<HostId> for Host {
1123 fn into_id(
1124 self,
1125 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<HostId, DaggerError>> + Send>>
1126 {
1127 Box::pin(async move { self.id().await })
1128 }
1129}
1130impl IntoID<HostId> for HostId {
1131 fn into_id(
1132 self,
1133 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<HostId, DaggerError>> + Send>>
1134 {
1135 Box::pin(async move { Ok::<HostId, DaggerError>(self) })
1136 }
1137}
1138impl HostId {
1139 fn quote(&self) -> String {
1140 format!("\"{}\"", self.0.clone())
1141 }
1142}
1143#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1144pub struct InputTypeDefId(pub String);
1145impl From<&str> for InputTypeDefId {
1146 fn from(value: &str) -> Self {
1147 Self(value.to_string())
1148 }
1149}
1150impl From<String> for InputTypeDefId {
1151 fn from(value: String) -> Self {
1152 Self(value)
1153 }
1154}
1155impl IntoID<InputTypeDefId> for InputTypeDef {
1156 fn into_id(
1157 self,
1158 ) -> std::pin::Pin<
1159 Box<dyn core::future::Future<Output = Result<InputTypeDefId, DaggerError>> + Send>,
1160 > {
1161 Box::pin(async move { self.id().await })
1162 }
1163}
1164impl IntoID<InputTypeDefId> for InputTypeDefId {
1165 fn into_id(
1166 self,
1167 ) -> std::pin::Pin<
1168 Box<dyn core::future::Future<Output = Result<InputTypeDefId, DaggerError>> + Send>,
1169 > {
1170 Box::pin(async move { Ok::<InputTypeDefId, DaggerError>(self) })
1171 }
1172}
1173impl InputTypeDefId {
1174 fn quote(&self) -> String {
1175 format!("\"{}\"", self.0.clone())
1176 }
1177}
1178#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1179pub struct InterfaceTypeDefId(pub String);
1180impl From<&str> for InterfaceTypeDefId {
1181 fn from(value: &str) -> Self {
1182 Self(value.to_string())
1183 }
1184}
1185impl From<String> for InterfaceTypeDefId {
1186 fn from(value: String) -> Self {
1187 Self(value)
1188 }
1189}
1190impl IntoID<InterfaceTypeDefId> for InterfaceTypeDef {
1191 fn into_id(
1192 self,
1193 ) -> std::pin::Pin<
1194 Box<dyn core::future::Future<Output = Result<InterfaceTypeDefId, DaggerError>> + Send>,
1195 > {
1196 Box::pin(async move { self.id().await })
1197 }
1198}
1199impl IntoID<InterfaceTypeDefId> for InterfaceTypeDefId {
1200 fn into_id(
1201 self,
1202 ) -> std::pin::Pin<
1203 Box<dyn core::future::Future<Output = Result<InterfaceTypeDefId, DaggerError>> + Send>,
1204 > {
1205 Box::pin(async move { Ok::<InterfaceTypeDefId, DaggerError>(self) })
1206 }
1207}
1208impl InterfaceTypeDefId {
1209 fn quote(&self) -> String {
1210 format!("\"{}\"", self.0.clone())
1211 }
1212}
1213#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1214pub struct Json(pub String);
1215impl From<&str> for Json {
1216 fn from(value: &str) -> Self {
1217 Self(value.to_string())
1218 }
1219}
1220impl From<String> for Json {
1221 fn from(value: String) -> Self {
1222 Self(value)
1223 }
1224}
1225impl Json {
1226 fn quote(&self) -> String {
1227 format!("\"{}\"", self.0.clone())
1228 }
1229}
1230#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1231pub struct JsonValueId(pub String);
1232impl From<&str> for JsonValueId {
1233 fn from(value: &str) -> Self {
1234 Self(value.to_string())
1235 }
1236}
1237impl From<String> for JsonValueId {
1238 fn from(value: String) -> Self {
1239 Self(value)
1240 }
1241}
1242impl IntoID<JsonValueId> for JsonValue {
1243 fn into_id(
1244 self,
1245 ) -> std::pin::Pin<
1246 Box<dyn core::future::Future<Output = Result<JsonValueId, DaggerError>> + Send>,
1247 > {
1248 Box::pin(async move { self.id().await })
1249 }
1250}
1251impl IntoID<JsonValueId> for JsonValueId {
1252 fn into_id(
1253 self,
1254 ) -> std::pin::Pin<
1255 Box<dyn core::future::Future<Output = Result<JsonValueId, DaggerError>> + Send>,
1256 > {
1257 Box::pin(async move { Ok::<JsonValueId, DaggerError>(self) })
1258 }
1259}
1260impl JsonValueId {
1261 fn quote(&self) -> String {
1262 format!("\"{}\"", self.0.clone())
1263 }
1264}
1265#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1266pub struct Llmid(pub String);
1267impl From<&str> for Llmid {
1268 fn from(value: &str) -> Self {
1269 Self(value.to_string())
1270 }
1271}
1272impl From<String> for Llmid {
1273 fn from(value: String) -> Self {
1274 Self(value)
1275 }
1276}
1277impl IntoID<Llmid> for Llm {
1278 fn into_id(
1279 self,
1280 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<Llmid, DaggerError>> + Send>>
1281 {
1282 Box::pin(async move { self.id().await })
1283 }
1284}
1285impl IntoID<Llmid> for Llmid {
1286 fn into_id(
1287 self,
1288 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<Llmid, DaggerError>> + Send>>
1289 {
1290 Box::pin(async move { Ok::<Llmid, DaggerError>(self) })
1291 }
1292}
1293impl Llmid {
1294 fn quote(&self) -> String {
1295 format!("\"{}\"", self.0.clone())
1296 }
1297}
1298#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1299pub struct LlmTokenUsageId(pub String);
1300impl From<&str> for LlmTokenUsageId {
1301 fn from(value: &str) -> Self {
1302 Self(value.to_string())
1303 }
1304}
1305impl From<String> for LlmTokenUsageId {
1306 fn from(value: String) -> Self {
1307 Self(value)
1308 }
1309}
1310impl IntoID<LlmTokenUsageId> for LlmTokenUsage {
1311 fn into_id(
1312 self,
1313 ) -> std::pin::Pin<
1314 Box<dyn core::future::Future<Output = Result<LlmTokenUsageId, DaggerError>> + Send>,
1315 > {
1316 Box::pin(async move { self.id().await })
1317 }
1318}
1319impl IntoID<LlmTokenUsageId> for LlmTokenUsageId {
1320 fn into_id(
1321 self,
1322 ) -> std::pin::Pin<
1323 Box<dyn core::future::Future<Output = Result<LlmTokenUsageId, DaggerError>> + Send>,
1324 > {
1325 Box::pin(async move { Ok::<LlmTokenUsageId, DaggerError>(self) })
1326 }
1327}
1328impl LlmTokenUsageId {
1329 fn quote(&self) -> String {
1330 format!("\"{}\"", self.0.clone())
1331 }
1332}
1333#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1334pub struct LabelId(pub String);
1335impl From<&str> for LabelId {
1336 fn from(value: &str) -> Self {
1337 Self(value.to_string())
1338 }
1339}
1340impl From<String> for LabelId {
1341 fn from(value: String) -> Self {
1342 Self(value)
1343 }
1344}
1345impl IntoID<LabelId> for Label {
1346 fn into_id(
1347 self,
1348 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<LabelId, DaggerError>> + Send>>
1349 {
1350 Box::pin(async move { self.id().await })
1351 }
1352}
1353impl IntoID<LabelId> for LabelId {
1354 fn into_id(
1355 self,
1356 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<LabelId, DaggerError>> + Send>>
1357 {
1358 Box::pin(async move { Ok::<LabelId, DaggerError>(self) })
1359 }
1360}
1361impl LabelId {
1362 fn quote(&self) -> String {
1363 format!("\"{}\"", self.0.clone())
1364 }
1365}
1366#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1367pub struct ListTypeDefId(pub String);
1368impl From<&str> for ListTypeDefId {
1369 fn from(value: &str) -> Self {
1370 Self(value.to_string())
1371 }
1372}
1373impl From<String> for ListTypeDefId {
1374 fn from(value: String) -> Self {
1375 Self(value)
1376 }
1377}
1378impl IntoID<ListTypeDefId> for ListTypeDef {
1379 fn into_id(
1380 self,
1381 ) -> std::pin::Pin<
1382 Box<dyn core::future::Future<Output = Result<ListTypeDefId, DaggerError>> + Send>,
1383 > {
1384 Box::pin(async move { self.id().await })
1385 }
1386}
1387impl IntoID<ListTypeDefId> for ListTypeDefId {
1388 fn into_id(
1389 self,
1390 ) -> std::pin::Pin<
1391 Box<dyn core::future::Future<Output = Result<ListTypeDefId, DaggerError>> + Send>,
1392 > {
1393 Box::pin(async move { Ok::<ListTypeDefId, DaggerError>(self) })
1394 }
1395}
1396impl ListTypeDefId {
1397 fn quote(&self) -> String {
1398 format!("\"{}\"", self.0.clone())
1399 }
1400}
1401#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1402pub struct ModuleConfigClientId(pub String);
1403impl From<&str> for ModuleConfigClientId {
1404 fn from(value: &str) -> Self {
1405 Self(value.to_string())
1406 }
1407}
1408impl From<String> for ModuleConfigClientId {
1409 fn from(value: String) -> Self {
1410 Self(value)
1411 }
1412}
1413impl IntoID<ModuleConfigClientId> for ModuleConfigClient {
1414 fn into_id(
1415 self,
1416 ) -> std::pin::Pin<
1417 Box<dyn core::future::Future<Output = Result<ModuleConfigClientId, DaggerError>> + Send>,
1418 > {
1419 Box::pin(async move { self.id().await })
1420 }
1421}
1422impl IntoID<ModuleConfigClientId> for ModuleConfigClientId {
1423 fn into_id(
1424 self,
1425 ) -> std::pin::Pin<
1426 Box<dyn core::future::Future<Output = Result<ModuleConfigClientId, DaggerError>> + Send>,
1427 > {
1428 Box::pin(async move { Ok::<ModuleConfigClientId, DaggerError>(self) })
1429 }
1430}
1431impl ModuleConfigClientId {
1432 fn quote(&self) -> String {
1433 format!("\"{}\"", self.0.clone())
1434 }
1435}
1436#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1437pub struct ModuleId(pub String);
1438impl From<&str> for ModuleId {
1439 fn from(value: &str) -> Self {
1440 Self(value.to_string())
1441 }
1442}
1443impl From<String> for ModuleId {
1444 fn from(value: String) -> Self {
1445 Self(value)
1446 }
1447}
1448impl IntoID<ModuleId> for Module {
1449 fn into_id(
1450 self,
1451 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ModuleId, DaggerError>> + Send>>
1452 {
1453 Box::pin(async move { self.id().await })
1454 }
1455}
1456impl IntoID<ModuleId> for ModuleId {
1457 fn into_id(
1458 self,
1459 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ModuleId, DaggerError>> + Send>>
1460 {
1461 Box::pin(async move { Ok::<ModuleId, DaggerError>(self) })
1462 }
1463}
1464impl ModuleId {
1465 fn quote(&self) -> String {
1466 format!("\"{}\"", self.0.clone())
1467 }
1468}
1469#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1470pub struct ModuleSourceId(pub String);
1471impl From<&str> for ModuleSourceId {
1472 fn from(value: &str) -> Self {
1473 Self(value.to_string())
1474 }
1475}
1476impl From<String> for ModuleSourceId {
1477 fn from(value: String) -> Self {
1478 Self(value)
1479 }
1480}
1481impl IntoID<ModuleSourceId> for ModuleSource {
1482 fn into_id(
1483 self,
1484 ) -> std::pin::Pin<
1485 Box<dyn core::future::Future<Output = Result<ModuleSourceId, DaggerError>> + Send>,
1486 > {
1487 Box::pin(async move { self.id().await })
1488 }
1489}
1490impl IntoID<ModuleSourceId> for ModuleSourceId {
1491 fn into_id(
1492 self,
1493 ) -> std::pin::Pin<
1494 Box<dyn core::future::Future<Output = Result<ModuleSourceId, DaggerError>> + Send>,
1495 > {
1496 Box::pin(async move { Ok::<ModuleSourceId, DaggerError>(self) })
1497 }
1498}
1499impl ModuleSourceId {
1500 fn quote(&self) -> String {
1501 format!("\"{}\"", self.0.clone())
1502 }
1503}
1504#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1505pub struct ObjectTypeDefId(pub String);
1506impl From<&str> for ObjectTypeDefId {
1507 fn from(value: &str) -> Self {
1508 Self(value.to_string())
1509 }
1510}
1511impl From<String> for ObjectTypeDefId {
1512 fn from(value: String) -> Self {
1513 Self(value)
1514 }
1515}
1516impl IntoID<ObjectTypeDefId> for ObjectTypeDef {
1517 fn into_id(
1518 self,
1519 ) -> std::pin::Pin<
1520 Box<dyn core::future::Future<Output = Result<ObjectTypeDefId, DaggerError>> + Send>,
1521 > {
1522 Box::pin(async move { self.id().await })
1523 }
1524}
1525impl IntoID<ObjectTypeDefId> for ObjectTypeDefId {
1526 fn into_id(
1527 self,
1528 ) -> std::pin::Pin<
1529 Box<dyn core::future::Future<Output = Result<ObjectTypeDefId, DaggerError>> + Send>,
1530 > {
1531 Box::pin(async move { Ok::<ObjectTypeDefId, DaggerError>(self) })
1532 }
1533}
1534impl ObjectTypeDefId {
1535 fn quote(&self) -> String {
1536 format!("\"{}\"", self.0.clone())
1537 }
1538}
1539#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1540pub struct Platform(pub String);
1541impl From<&str> for Platform {
1542 fn from(value: &str) -> Self {
1543 Self(value.to_string())
1544 }
1545}
1546impl From<String> for Platform {
1547 fn from(value: String) -> Self {
1548 Self(value)
1549 }
1550}
1551impl Platform {
1552 fn quote(&self) -> String {
1553 format!("\"{}\"", self.0.clone())
1554 }
1555}
1556#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1557pub struct PortId(pub String);
1558impl From<&str> for PortId {
1559 fn from(value: &str) -> Self {
1560 Self(value.to_string())
1561 }
1562}
1563impl From<String> for PortId {
1564 fn from(value: String) -> Self {
1565 Self(value)
1566 }
1567}
1568impl IntoID<PortId> for Port {
1569 fn into_id(
1570 self,
1571 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<PortId, DaggerError>> + Send>>
1572 {
1573 Box::pin(async move { self.id().await })
1574 }
1575}
1576impl IntoID<PortId> for PortId {
1577 fn into_id(
1578 self,
1579 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<PortId, DaggerError>> + Send>>
1580 {
1581 Box::pin(async move { Ok::<PortId, DaggerError>(self) })
1582 }
1583}
1584impl PortId {
1585 fn quote(&self) -> String {
1586 format!("\"{}\"", self.0.clone())
1587 }
1588}
1589#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1590pub struct SdkConfigId(pub String);
1591impl From<&str> for SdkConfigId {
1592 fn from(value: &str) -> Self {
1593 Self(value.to_string())
1594 }
1595}
1596impl From<String> for SdkConfigId {
1597 fn from(value: String) -> Self {
1598 Self(value)
1599 }
1600}
1601impl IntoID<SdkConfigId> for SdkConfig {
1602 fn into_id(
1603 self,
1604 ) -> std::pin::Pin<
1605 Box<dyn core::future::Future<Output = Result<SdkConfigId, DaggerError>> + Send>,
1606 > {
1607 Box::pin(async move { self.id().await })
1608 }
1609}
1610impl IntoID<SdkConfigId> for SdkConfigId {
1611 fn into_id(
1612 self,
1613 ) -> std::pin::Pin<
1614 Box<dyn core::future::Future<Output = Result<SdkConfigId, DaggerError>> + Send>,
1615 > {
1616 Box::pin(async move { Ok::<SdkConfigId, DaggerError>(self) })
1617 }
1618}
1619impl SdkConfigId {
1620 fn quote(&self) -> String {
1621 format!("\"{}\"", self.0.clone())
1622 }
1623}
1624#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1625pub struct ScalarTypeDefId(pub String);
1626impl From<&str> for ScalarTypeDefId {
1627 fn from(value: &str) -> Self {
1628 Self(value.to_string())
1629 }
1630}
1631impl From<String> for ScalarTypeDefId {
1632 fn from(value: String) -> Self {
1633 Self(value)
1634 }
1635}
1636impl IntoID<ScalarTypeDefId> for ScalarTypeDef {
1637 fn into_id(
1638 self,
1639 ) -> std::pin::Pin<
1640 Box<dyn core::future::Future<Output = Result<ScalarTypeDefId, DaggerError>> + Send>,
1641 > {
1642 Box::pin(async move { self.id().await })
1643 }
1644}
1645impl IntoID<ScalarTypeDefId> for ScalarTypeDefId {
1646 fn into_id(
1647 self,
1648 ) -> std::pin::Pin<
1649 Box<dyn core::future::Future<Output = Result<ScalarTypeDefId, DaggerError>> + Send>,
1650 > {
1651 Box::pin(async move { Ok::<ScalarTypeDefId, DaggerError>(self) })
1652 }
1653}
1654impl ScalarTypeDefId {
1655 fn quote(&self) -> String {
1656 format!("\"{}\"", self.0.clone())
1657 }
1658}
1659#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1660pub struct SearchResultId(pub String);
1661impl From<&str> for SearchResultId {
1662 fn from(value: &str) -> Self {
1663 Self(value.to_string())
1664 }
1665}
1666impl From<String> for SearchResultId {
1667 fn from(value: String) -> Self {
1668 Self(value)
1669 }
1670}
1671impl IntoID<SearchResultId> for SearchResult {
1672 fn into_id(
1673 self,
1674 ) -> std::pin::Pin<
1675 Box<dyn core::future::Future<Output = Result<SearchResultId, DaggerError>> + Send>,
1676 > {
1677 Box::pin(async move { self.id().await })
1678 }
1679}
1680impl IntoID<SearchResultId> for SearchResultId {
1681 fn into_id(
1682 self,
1683 ) -> std::pin::Pin<
1684 Box<dyn core::future::Future<Output = Result<SearchResultId, DaggerError>> + Send>,
1685 > {
1686 Box::pin(async move { Ok::<SearchResultId, DaggerError>(self) })
1687 }
1688}
1689impl SearchResultId {
1690 fn quote(&self) -> String {
1691 format!("\"{}\"", self.0.clone())
1692 }
1693}
1694#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1695pub struct SearchSubmatchId(pub String);
1696impl From<&str> for SearchSubmatchId {
1697 fn from(value: &str) -> Self {
1698 Self(value.to_string())
1699 }
1700}
1701impl From<String> for SearchSubmatchId {
1702 fn from(value: String) -> Self {
1703 Self(value)
1704 }
1705}
1706impl IntoID<SearchSubmatchId> for SearchSubmatch {
1707 fn into_id(
1708 self,
1709 ) -> std::pin::Pin<
1710 Box<dyn core::future::Future<Output = Result<SearchSubmatchId, DaggerError>> + Send>,
1711 > {
1712 Box::pin(async move { self.id().await })
1713 }
1714}
1715impl IntoID<SearchSubmatchId> for SearchSubmatchId {
1716 fn into_id(
1717 self,
1718 ) -> std::pin::Pin<
1719 Box<dyn core::future::Future<Output = Result<SearchSubmatchId, DaggerError>> + Send>,
1720 > {
1721 Box::pin(async move { Ok::<SearchSubmatchId, DaggerError>(self) })
1722 }
1723}
1724impl SearchSubmatchId {
1725 fn quote(&self) -> String {
1726 format!("\"{}\"", self.0.clone())
1727 }
1728}
1729#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1730pub struct SecretId(pub String);
1731impl From<&str> for SecretId {
1732 fn from(value: &str) -> Self {
1733 Self(value.to_string())
1734 }
1735}
1736impl From<String> for SecretId {
1737 fn from(value: String) -> Self {
1738 Self(value)
1739 }
1740}
1741impl IntoID<SecretId> for Secret {
1742 fn into_id(
1743 self,
1744 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SecretId, DaggerError>> + Send>>
1745 {
1746 Box::pin(async move { self.id().await })
1747 }
1748}
1749impl IntoID<SecretId> for SecretId {
1750 fn into_id(
1751 self,
1752 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SecretId, DaggerError>> + Send>>
1753 {
1754 Box::pin(async move { Ok::<SecretId, DaggerError>(self) })
1755 }
1756}
1757impl SecretId {
1758 fn quote(&self) -> String {
1759 format!("\"{}\"", self.0.clone())
1760 }
1761}
1762#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1763pub struct ServiceId(pub String);
1764impl From<&str> for ServiceId {
1765 fn from(value: &str) -> Self {
1766 Self(value.to_string())
1767 }
1768}
1769impl From<String> for ServiceId {
1770 fn from(value: String) -> Self {
1771 Self(value)
1772 }
1773}
1774impl IntoID<ServiceId> for Service {
1775 fn into_id(
1776 self,
1777 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ServiceId, DaggerError>> + Send>>
1778 {
1779 Box::pin(async move { self.id().await })
1780 }
1781}
1782impl IntoID<ServiceId> for ServiceId {
1783 fn into_id(
1784 self,
1785 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<ServiceId, DaggerError>> + Send>>
1786 {
1787 Box::pin(async move { Ok::<ServiceId, DaggerError>(self) })
1788 }
1789}
1790impl ServiceId {
1791 fn quote(&self) -> String {
1792 format!("\"{}\"", self.0.clone())
1793 }
1794}
1795#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1796pub struct SocketId(pub String);
1797impl From<&str> for SocketId {
1798 fn from(value: &str) -> Self {
1799 Self(value.to_string())
1800 }
1801}
1802impl From<String> for SocketId {
1803 fn from(value: String) -> Self {
1804 Self(value)
1805 }
1806}
1807impl IntoID<SocketId> for Socket {
1808 fn into_id(
1809 self,
1810 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SocketId, DaggerError>> + Send>>
1811 {
1812 Box::pin(async move { self.id().await })
1813 }
1814}
1815impl IntoID<SocketId> for SocketId {
1816 fn into_id(
1817 self,
1818 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<SocketId, DaggerError>> + Send>>
1819 {
1820 Box::pin(async move { Ok::<SocketId, DaggerError>(self) })
1821 }
1822}
1823impl SocketId {
1824 fn quote(&self) -> String {
1825 format!("\"{}\"", self.0.clone())
1826 }
1827}
1828#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1829pub struct SourceMapId(pub String);
1830impl From<&str> for SourceMapId {
1831 fn from(value: &str) -> Self {
1832 Self(value.to_string())
1833 }
1834}
1835impl From<String> for SourceMapId {
1836 fn from(value: String) -> Self {
1837 Self(value)
1838 }
1839}
1840impl IntoID<SourceMapId> for SourceMap {
1841 fn into_id(
1842 self,
1843 ) -> std::pin::Pin<
1844 Box<dyn core::future::Future<Output = Result<SourceMapId, DaggerError>> + Send>,
1845 > {
1846 Box::pin(async move { self.id().await })
1847 }
1848}
1849impl IntoID<SourceMapId> for SourceMapId {
1850 fn into_id(
1851 self,
1852 ) -> std::pin::Pin<
1853 Box<dyn core::future::Future<Output = Result<SourceMapId, DaggerError>> + Send>,
1854 > {
1855 Box::pin(async move { Ok::<SourceMapId, DaggerError>(self) })
1856 }
1857}
1858impl SourceMapId {
1859 fn quote(&self) -> String {
1860 format!("\"{}\"", self.0.clone())
1861 }
1862}
1863#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1864pub struct StatId(pub String);
1865impl From<&str> for StatId {
1866 fn from(value: &str) -> Self {
1867 Self(value.to_string())
1868 }
1869}
1870impl From<String> for StatId {
1871 fn from(value: String) -> Self {
1872 Self(value)
1873 }
1874}
1875impl IntoID<StatId> for Stat {
1876 fn into_id(
1877 self,
1878 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<StatId, DaggerError>> + Send>>
1879 {
1880 Box::pin(async move { self.id().await })
1881 }
1882}
1883impl IntoID<StatId> for StatId {
1884 fn into_id(
1885 self,
1886 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<StatId, DaggerError>> + Send>>
1887 {
1888 Box::pin(async move { Ok::<StatId, DaggerError>(self) })
1889 }
1890}
1891impl StatId {
1892 fn quote(&self) -> String {
1893 format!("\"{}\"", self.0.clone())
1894 }
1895}
1896#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1897pub struct TerminalId(pub String);
1898impl From<&str> for TerminalId {
1899 fn from(value: &str) -> Self {
1900 Self(value.to_string())
1901 }
1902}
1903impl From<String> for TerminalId {
1904 fn from(value: String) -> Self {
1905 Self(value)
1906 }
1907}
1908impl IntoID<TerminalId> for Terminal {
1909 fn into_id(
1910 self,
1911 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TerminalId, DaggerError>> + Send>>
1912 {
1913 Box::pin(async move { self.id().await })
1914 }
1915}
1916impl IntoID<TerminalId> for TerminalId {
1917 fn into_id(
1918 self,
1919 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TerminalId, DaggerError>> + Send>>
1920 {
1921 Box::pin(async move { Ok::<TerminalId, DaggerError>(self) })
1922 }
1923}
1924impl TerminalId {
1925 fn quote(&self) -> String {
1926 format!("\"{}\"", self.0.clone())
1927 }
1928}
1929#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1930pub struct TypeDefId(pub String);
1931impl From<&str> for TypeDefId {
1932 fn from(value: &str) -> Self {
1933 Self(value.to_string())
1934 }
1935}
1936impl From<String> for TypeDefId {
1937 fn from(value: String) -> Self {
1938 Self(value)
1939 }
1940}
1941impl IntoID<TypeDefId> for TypeDef {
1942 fn into_id(
1943 self,
1944 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TypeDefId, DaggerError>> + Send>>
1945 {
1946 Box::pin(async move { self.id().await })
1947 }
1948}
1949impl IntoID<TypeDefId> for TypeDefId {
1950 fn into_id(
1951 self,
1952 ) -> std::pin::Pin<Box<dyn core::future::Future<Output = Result<TypeDefId, DaggerError>> + Send>>
1953 {
1954 Box::pin(async move { Ok::<TypeDefId, DaggerError>(self) })
1955 }
1956}
1957impl TypeDefId {
1958 fn quote(&self) -> String {
1959 format!("\"{}\"", self.0.clone())
1960 }
1961}
1962#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1963pub struct Void(pub String);
1964impl From<&str> for Void {
1965 fn from(value: &str) -> Self {
1966 Self(value.to_string())
1967 }
1968}
1969impl From<String> for Void {
1970 fn from(value: String) -> Self {
1971 Self(value)
1972 }
1973}
1974impl Void {
1975 fn quote(&self) -> String {
1976 format!("\"{}\"", self.0.clone())
1977 }
1978}
1979#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
1980pub struct WorkspaceId(pub String);
1981impl From<&str> for WorkspaceId {
1982 fn from(value: &str) -> Self {
1983 Self(value.to_string())
1984 }
1985}
1986impl From<String> for WorkspaceId {
1987 fn from(value: String) -> Self {
1988 Self(value)
1989 }
1990}
1991impl IntoID<WorkspaceId> for Workspace {
1992 fn into_id(
1993 self,
1994 ) -> std::pin::Pin<
1995 Box<dyn core::future::Future<Output = Result<WorkspaceId, DaggerError>> + Send>,
1996 > {
1997 Box::pin(async move { self.id().await })
1998 }
1999}
2000impl IntoID<WorkspaceId> for WorkspaceId {
2001 fn into_id(
2002 self,
2003 ) -> std::pin::Pin<
2004 Box<dyn core::future::Future<Output = Result<WorkspaceId, DaggerError>> + Send>,
2005 > {
2006 Box::pin(async move { Ok::<WorkspaceId, DaggerError>(self) })
2007 }
2008}
2009impl WorkspaceId {
2010 fn quote(&self) -> String {
2011 format!("\"{}\"", self.0.clone())
2012 }
2013}
2014#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
2015pub struct BuildArg {
2016 pub name: String,
2017 pub value: String,
2018}
2019#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
2020pub struct PipelineLabel {
2021 pub name: String,
2022 pub value: String,
2023}
2024#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
2025pub struct PortForward {
2026 pub backend: isize,
2027 pub frontend: isize,
2028 pub protocol: NetworkProtocol,
2029}
2030#[derive(Clone)]
2031pub struct Address {
2032 pub proc: Option<Arc<DaggerSessionProc>>,
2033 pub selection: Selection,
2034 pub graphql_client: DynGraphQLClient,
2035}
2036#[derive(Builder, Debug, PartialEq)]
2037pub struct AddressDirectoryOpts<'a> {
2038 #[builder(setter(into, strip_option), default)]
2039 pub exclude: Option<Vec<&'a str>>,
2040 #[builder(setter(into, strip_option), default)]
2041 pub gitignore: Option<bool>,
2042 #[builder(setter(into, strip_option), default)]
2043 pub include: Option<Vec<&'a str>>,
2044 #[builder(setter(into, strip_option), default)]
2045 pub no_cache: Option<bool>,
2046}
2047#[derive(Builder, Debug, PartialEq)]
2048pub struct AddressFileOpts<'a> {
2049 #[builder(setter(into, strip_option), default)]
2050 pub exclude: Option<Vec<&'a str>>,
2051 #[builder(setter(into, strip_option), default)]
2052 pub gitignore: Option<bool>,
2053 #[builder(setter(into, strip_option), default)]
2054 pub include: Option<Vec<&'a str>>,
2055 #[builder(setter(into, strip_option), default)]
2056 pub no_cache: Option<bool>,
2057}
2058impl Address {
2059 pub fn container(&self) -> Container {
2061 let query = self.selection.select("container");
2062 Container {
2063 proc: self.proc.clone(),
2064 selection: query,
2065 graphql_client: self.graphql_client.clone(),
2066 }
2067 }
2068 pub fn directory(&self) -> Directory {
2074 let query = self.selection.select("directory");
2075 Directory {
2076 proc: self.proc.clone(),
2077 selection: query,
2078 graphql_client: self.graphql_client.clone(),
2079 }
2080 }
2081 pub fn directory_opts<'a>(&self, opts: AddressDirectoryOpts<'a>) -> Directory {
2087 let mut query = self.selection.select("directory");
2088 if let Some(exclude) = opts.exclude {
2089 query = query.arg("exclude", exclude);
2090 }
2091 if let Some(include) = opts.include {
2092 query = query.arg("include", include);
2093 }
2094 if let Some(gitignore) = opts.gitignore {
2095 query = query.arg("gitignore", gitignore);
2096 }
2097 if let Some(no_cache) = opts.no_cache {
2098 query = query.arg("noCache", no_cache);
2099 }
2100 Directory {
2101 proc: self.proc.clone(),
2102 selection: query,
2103 graphql_client: self.graphql_client.clone(),
2104 }
2105 }
2106 pub fn file(&self) -> File {
2112 let query = self.selection.select("file");
2113 File {
2114 proc: self.proc.clone(),
2115 selection: query,
2116 graphql_client: self.graphql_client.clone(),
2117 }
2118 }
2119 pub fn file_opts<'a>(&self, opts: AddressFileOpts<'a>) -> File {
2125 let mut query = self.selection.select("file");
2126 if let Some(exclude) = opts.exclude {
2127 query = query.arg("exclude", exclude);
2128 }
2129 if let Some(include) = opts.include {
2130 query = query.arg("include", include);
2131 }
2132 if let Some(gitignore) = opts.gitignore {
2133 query = query.arg("gitignore", gitignore);
2134 }
2135 if let Some(no_cache) = opts.no_cache {
2136 query = query.arg("noCache", no_cache);
2137 }
2138 File {
2139 proc: self.proc.clone(),
2140 selection: query,
2141 graphql_client: self.graphql_client.clone(),
2142 }
2143 }
2144 pub fn git_ref(&self) -> GitRef {
2146 let query = self.selection.select("gitRef");
2147 GitRef {
2148 proc: self.proc.clone(),
2149 selection: query,
2150 graphql_client: self.graphql_client.clone(),
2151 }
2152 }
2153 pub fn git_repository(&self) -> GitRepository {
2155 let query = self.selection.select("gitRepository");
2156 GitRepository {
2157 proc: self.proc.clone(),
2158 selection: query,
2159 graphql_client: self.graphql_client.clone(),
2160 }
2161 }
2162 pub async fn id(&self) -> Result<AddressId, DaggerError> {
2164 let query = self.selection.select("id");
2165 query.execute(self.graphql_client.clone()).await
2166 }
2167 pub fn secret(&self) -> Secret {
2169 let query = self.selection.select("secret");
2170 Secret {
2171 proc: self.proc.clone(),
2172 selection: query,
2173 graphql_client: self.graphql_client.clone(),
2174 }
2175 }
2176 pub fn service(&self) -> Service {
2178 let query = self.selection.select("service");
2179 Service {
2180 proc: self.proc.clone(),
2181 selection: query,
2182 graphql_client: self.graphql_client.clone(),
2183 }
2184 }
2185 pub fn socket(&self) -> Socket {
2187 let query = self.selection.select("socket");
2188 Socket {
2189 proc: self.proc.clone(),
2190 selection: query,
2191 graphql_client: self.graphql_client.clone(),
2192 }
2193 }
2194 pub async fn value(&self) -> Result<String, DaggerError> {
2196 let query = self.selection.select("value");
2197 query.execute(self.graphql_client.clone()).await
2198 }
2199}
2200#[derive(Clone)]
2201pub struct Binding {
2202 pub proc: Option<Arc<DaggerSessionProc>>,
2203 pub selection: Selection,
2204 pub graphql_client: DynGraphQLClient,
2205}
2206impl Binding {
2207 pub fn as_address(&self) -> Address {
2209 let query = self.selection.select("asAddress");
2210 Address {
2211 proc: self.proc.clone(),
2212 selection: query,
2213 graphql_client: self.graphql_client.clone(),
2214 }
2215 }
2216 pub fn as_cache_volume(&self) -> CacheVolume {
2218 let query = self.selection.select("asCacheVolume");
2219 CacheVolume {
2220 proc: self.proc.clone(),
2221 selection: query,
2222 graphql_client: self.graphql_client.clone(),
2223 }
2224 }
2225 pub fn as_changeset(&self) -> Changeset {
2227 let query = self.selection.select("asChangeset");
2228 Changeset {
2229 proc: self.proc.clone(),
2230 selection: query,
2231 graphql_client: self.graphql_client.clone(),
2232 }
2233 }
2234 pub fn as_check(&self) -> Check {
2236 let query = self.selection.select("asCheck");
2237 Check {
2238 proc: self.proc.clone(),
2239 selection: query,
2240 graphql_client: self.graphql_client.clone(),
2241 }
2242 }
2243 pub fn as_check_group(&self) -> CheckGroup {
2245 let query = self.selection.select("asCheckGroup");
2246 CheckGroup {
2247 proc: self.proc.clone(),
2248 selection: query,
2249 graphql_client: self.graphql_client.clone(),
2250 }
2251 }
2252 pub fn as_cloud(&self) -> Cloud {
2254 let query = self.selection.select("asCloud");
2255 Cloud {
2256 proc: self.proc.clone(),
2257 selection: query,
2258 graphql_client: self.graphql_client.clone(),
2259 }
2260 }
2261 pub fn as_container(&self) -> Container {
2263 let query = self.selection.select("asContainer");
2264 Container {
2265 proc: self.proc.clone(),
2266 selection: query,
2267 graphql_client: self.graphql_client.clone(),
2268 }
2269 }
2270 pub fn as_directory(&self) -> Directory {
2272 let query = self.selection.select("asDirectory");
2273 Directory {
2274 proc: self.proc.clone(),
2275 selection: query,
2276 graphql_client: self.graphql_client.clone(),
2277 }
2278 }
2279 pub fn as_env(&self) -> Env {
2281 let query = self.selection.select("asEnv");
2282 Env {
2283 proc: self.proc.clone(),
2284 selection: query,
2285 graphql_client: self.graphql_client.clone(),
2286 }
2287 }
2288 pub fn as_env_file(&self) -> EnvFile {
2290 let query = self.selection.select("asEnvFile");
2291 EnvFile {
2292 proc: self.proc.clone(),
2293 selection: query,
2294 graphql_client: self.graphql_client.clone(),
2295 }
2296 }
2297 pub fn as_file(&self) -> File {
2299 let query = self.selection.select("asFile");
2300 File {
2301 proc: self.proc.clone(),
2302 selection: query,
2303 graphql_client: self.graphql_client.clone(),
2304 }
2305 }
2306 pub fn as_generator(&self) -> Generator {
2308 let query = self.selection.select("asGenerator");
2309 Generator {
2310 proc: self.proc.clone(),
2311 selection: query,
2312 graphql_client: self.graphql_client.clone(),
2313 }
2314 }
2315 pub fn as_generator_group(&self) -> GeneratorGroup {
2317 let query = self.selection.select("asGeneratorGroup");
2318 GeneratorGroup {
2319 proc: self.proc.clone(),
2320 selection: query,
2321 graphql_client: self.graphql_client.clone(),
2322 }
2323 }
2324 pub fn as_git_ref(&self) -> GitRef {
2326 let query = self.selection.select("asGitRef");
2327 GitRef {
2328 proc: self.proc.clone(),
2329 selection: query,
2330 graphql_client: self.graphql_client.clone(),
2331 }
2332 }
2333 pub fn as_git_repository(&self) -> GitRepository {
2335 let query = self.selection.select("asGitRepository");
2336 GitRepository {
2337 proc: self.proc.clone(),
2338 selection: query,
2339 graphql_client: self.graphql_client.clone(),
2340 }
2341 }
2342 pub fn as_json_value(&self) -> JsonValue {
2344 let query = self.selection.select("asJSONValue");
2345 JsonValue {
2346 proc: self.proc.clone(),
2347 selection: query,
2348 graphql_client: self.graphql_client.clone(),
2349 }
2350 }
2351 pub fn as_module(&self) -> Module {
2353 let query = self.selection.select("asModule");
2354 Module {
2355 proc: self.proc.clone(),
2356 selection: query,
2357 graphql_client: self.graphql_client.clone(),
2358 }
2359 }
2360 pub fn as_module_config_client(&self) -> ModuleConfigClient {
2362 let query = self.selection.select("asModuleConfigClient");
2363 ModuleConfigClient {
2364 proc: self.proc.clone(),
2365 selection: query,
2366 graphql_client: self.graphql_client.clone(),
2367 }
2368 }
2369 pub fn as_module_source(&self) -> ModuleSource {
2371 let query = self.selection.select("asModuleSource");
2372 ModuleSource {
2373 proc: self.proc.clone(),
2374 selection: query,
2375 graphql_client: self.graphql_client.clone(),
2376 }
2377 }
2378 pub fn as_search_result(&self) -> SearchResult {
2380 let query = self.selection.select("asSearchResult");
2381 SearchResult {
2382 proc: self.proc.clone(),
2383 selection: query,
2384 graphql_client: self.graphql_client.clone(),
2385 }
2386 }
2387 pub fn as_search_submatch(&self) -> SearchSubmatch {
2389 let query = self.selection.select("asSearchSubmatch");
2390 SearchSubmatch {
2391 proc: self.proc.clone(),
2392 selection: query,
2393 graphql_client: self.graphql_client.clone(),
2394 }
2395 }
2396 pub fn as_secret(&self) -> Secret {
2398 let query = self.selection.select("asSecret");
2399 Secret {
2400 proc: self.proc.clone(),
2401 selection: query,
2402 graphql_client: self.graphql_client.clone(),
2403 }
2404 }
2405 pub fn as_service(&self) -> Service {
2407 let query = self.selection.select("asService");
2408 Service {
2409 proc: self.proc.clone(),
2410 selection: query,
2411 graphql_client: self.graphql_client.clone(),
2412 }
2413 }
2414 pub fn as_socket(&self) -> Socket {
2416 let query = self.selection.select("asSocket");
2417 Socket {
2418 proc: self.proc.clone(),
2419 selection: query,
2420 graphql_client: self.graphql_client.clone(),
2421 }
2422 }
2423 pub fn as_stat(&self) -> Stat {
2425 let query = self.selection.select("asStat");
2426 Stat {
2427 proc: self.proc.clone(),
2428 selection: query,
2429 graphql_client: self.graphql_client.clone(),
2430 }
2431 }
2432 pub async fn as_string(&self) -> Result<String, DaggerError> {
2434 let query = self.selection.select("asString");
2435 query.execute(self.graphql_client.clone()).await
2436 }
2437 pub fn as_workspace(&self) -> Workspace {
2439 let query = self.selection.select("asWorkspace");
2440 Workspace {
2441 proc: self.proc.clone(),
2442 selection: query,
2443 graphql_client: self.graphql_client.clone(),
2444 }
2445 }
2446 pub async fn digest(&self) -> Result<String, DaggerError> {
2448 let query = self.selection.select("digest");
2449 query.execute(self.graphql_client.clone()).await
2450 }
2451 pub async fn id(&self) -> Result<BindingId, DaggerError> {
2453 let query = self.selection.select("id");
2454 query.execute(self.graphql_client.clone()).await
2455 }
2456 pub async fn is_null(&self) -> Result<bool, DaggerError> {
2458 let query = self.selection.select("isNull");
2459 query.execute(self.graphql_client.clone()).await
2460 }
2461 pub async fn name(&self) -> Result<String, DaggerError> {
2463 let query = self.selection.select("name");
2464 query.execute(self.graphql_client.clone()).await
2465 }
2466 pub async fn type_name(&self) -> Result<String, DaggerError> {
2468 let query = self.selection.select("typeName");
2469 query.execute(self.graphql_client.clone()).await
2470 }
2471}
2472#[derive(Clone)]
2473pub struct CacheVolume {
2474 pub proc: Option<Arc<DaggerSessionProc>>,
2475 pub selection: Selection,
2476 pub graphql_client: DynGraphQLClient,
2477}
2478impl CacheVolume {
2479 pub async fn id(&self) -> Result<CacheVolumeId, DaggerError> {
2481 let query = self.selection.select("id");
2482 query.execute(self.graphql_client.clone()).await
2483 }
2484}
2485#[derive(Clone)]
2486pub struct Changeset {
2487 pub proc: Option<Arc<DaggerSessionProc>>,
2488 pub selection: Selection,
2489 pub graphql_client: DynGraphQLClient,
2490}
2491#[derive(Builder, Debug, PartialEq)]
2492pub struct ChangesetWithChangesetOpts {
2493 #[builder(setter(into, strip_option), default)]
2495 pub on_conflict: Option<ChangesetMergeConflict>,
2496}
2497#[derive(Builder, Debug, PartialEq)]
2498pub struct ChangesetWithChangesetsOpts {
2499 #[builder(setter(into, strip_option), default)]
2501 pub on_conflict: Option<ChangesetsMergeConflict>,
2502}
2503impl Changeset {
2504 pub async fn added_paths(&self) -> Result<Vec<String>, DaggerError> {
2506 let query = self.selection.select("addedPaths");
2507 query.execute(self.graphql_client.clone()).await
2508 }
2509 pub fn after(&self) -> Directory {
2511 let query = self.selection.select("after");
2512 Directory {
2513 proc: self.proc.clone(),
2514 selection: query,
2515 graphql_client: self.graphql_client.clone(),
2516 }
2517 }
2518 pub fn as_patch(&self) -> File {
2520 let query = self.selection.select("asPatch");
2521 File {
2522 proc: self.proc.clone(),
2523 selection: query,
2524 graphql_client: self.graphql_client.clone(),
2525 }
2526 }
2527 pub fn before(&self) -> Directory {
2529 let query = self.selection.select("before");
2530 Directory {
2531 proc: self.proc.clone(),
2532 selection: query,
2533 graphql_client: self.graphql_client.clone(),
2534 }
2535 }
2536 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
2542 let mut query = self.selection.select("export");
2543 query = query.arg("path", path.into());
2544 query.execute(self.graphql_client.clone()).await
2545 }
2546 pub async fn id(&self) -> Result<ChangesetId, DaggerError> {
2548 let query = self.selection.select("id");
2549 query.execute(self.graphql_client.clone()).await
2550 }
2551 pub async fn is_empty(&self) -> Result<bool, DaggerError> {
2553 let query = self.selection.select("isEmpty");
2554 query.execute(self.graphql_client.clone()).await
2555 }
2556 pub fn layer(&self) -> Directory {
2558 let query = self.selection.select("layer");
2559 Directory {
2560 proc: self.proc.clone(),
2561 selection: query,
2562 graphql_client: self.graphql_client.clone(),
2563 }
2564 }
2565 pub async fn modified_paths(&self) -> Result<Vec<String>, DaggerError> {
2567 let query = self.selection.select("modifiedPaths");
2568 query.execute(self.graphql_client.clone()).await
2569 }
2570 pub async fn removed_paths(&self) -> Result<Vec<String>, DaggerError> {
2572 let query = self.selection.select("removedPaths");
2573 query.execute(self.graphql_client.clone()).await
2574 }
2575 pub async fn sync(&self) -> Result<ChangesetId, DaggerError> {
2577 let query = self.selection.select("sync");
2578 query.execute(self.graphql_client.clone()).await
2579 }
2580 pub fn with_changeset(&self, changes: impl IntoID<ChangesetId>) -> Changeset {
2588 let mut query = self.selection.select("withChangeset");
2589 query = query.arg_lazy(
2590 "changes",
2591 Box::new(move || {
2592 let changes = changes.clone();
2593 Box::pin(async move { changes.into_id().await.unwrap().quote() })
2594 }),
2595 );
2596 Changeset {
2597 proc: self.proc.clone(),
2598 selection: query,
2599 graphql_client: self.graphql_client.clone(),
2600 }
2601 }
2602 pub fn with_changeset_opts(
2610 &self,
2611 changes: impl IntoID<ChangesetId>,
2612 opts: ChangesetWithChangesetOpts,
2613 ) -> Changeset {
2614 let mut query = self.selection.select("withChangeset");
2615 query = query.arg_lazy(
2616 "changes",
2617 Box::new(move || {
2618 let changes = changes.clone();
2619 Box::pin(async move { changes.into_id().await.unwrap().quote() })
2620 }),
2621 );
2622 if let Some(on_conflict) = opts.on_conflict {
2623 query = query.arg("onConflict", on_conflict);
2624 }
2625 Changeset {
2626 proc: self.proc.clone(),
2627 selection: query,
2628 graphql_client: self.graphql_client.clone(),
2629 }
2630 }
2631 pub fn with_changesets(&self, changes: Vec<ChangesetId>) -> Changeset {
2640 let mut query = self.selection.select("withChangesets");
2641 query = query.arg("changes", changes);
2642 Changeset {
2643 proc: self.proc.clone(),
2644 selection: query,
2645 graphql_client: self.graphql_client.clone(),
2646 }
2647 }
2648 pub fn with_changesets_opts(
2657 &self,
2658 changes: Vec<ChangesetId>,
2659 opts: ChangesetWithChangesetsOpts,
2660 ) -> Changeset {
2661 let mut query = self.selection.select("withChangesets");
2662 query = query.arg("changes", changes);
2663 if let Some(on_conflict) = opts.on_conflict {
2664 query = query.arg("onConflict", on_conflict);
2665 }
2666 Changeset {
2667 proc: self.proc.clone(),
2668 selection: query,
2669 graphql_client: self.graphql_client.clone(),
2670 }
2671 }
2672}
2673#[derive(Clone)]
2674pub struct Check {
2675 pub proc: Option<Arc<DaggerSessionProc>>,
2676 pub selection: Selection,
2677 pub graphql_client: DynGraphQLClient,
2678}
2679impl Check {
2680 pub async fn completed(&self) -> Result<bool, DaggerError> {
2682 let query = self.selection.select("completed");
2683 query.execute(self.graphql_client.clone()).await
2684 }
2685 pub async fn description(&self) -> Result<String, DaggerError> {
2687 let query = self.selection.select("description");
2688 query.execute(self.graphql_client.clone()).await
2689 }
2690 pub fn error(&self) -> Error {
2692 let query = self.selection.select("error");
2693 Error {
2694 proc: self.proc.clone(),
2695 selection: query,
2696 graphql_client: self.graphql_client.clone(),
2697 }
2698 }
2699 pub async fn id(&self) -> Result<CheckId, DaggerError> {
2701 let query = self.selection.select("id");
2702 query.execute(self.graphql_client.clone()).await
2703 }
2704 pub async fn name(&self) -> Result<String, DaggerError> {
2706 let query = self.selection.select("name");
2707 query.execute(self.graphql_client.clone()).await
2708 }
2709 pub fn original_module(&self) -> Module {
2711 let query = self.selection.select("originalModule");
2712 Module {
2713 proc: self.proc.clone(),
2714 selection: query,
2715 graphql_client: self.graphql_client.clone(),
2716 }
2717 }
2718 pub async fn passed(&self) -> Result<bool, DaggerError> {
2720 let query = self.selection.select("passed");
2721 query.execute(self.graphql_client.clone()).await
2722 }
2723 pub async fn path(&self) -> Result<Vec<String>, DaggerError> {
2725 let query = self.selection.select("path");
2726 query.execute(self.graphql_client.clone()).await
2727 }
2728 pub async fn result_emoji(&self) -> Result<String, DaggerError> {
2730 let query = self.selection.select("resultEmoji");
2731 query.execute(self.graphql_client.clone()).await
2732 }
2733 pub fn run(&self) -> Check {
2735 let query = self.selection.select("run");
2736 Check {
2737 proc: self.proc.clone(),
2738 selection: query,
2739 graphql_client: self.graphql_client.clone(),
2740 }
2741 }
2742}
2743#[derive(Clone)]
2744pub struct CheckGroup {
2745 pub proc: Option<Arc<DaggerSessionProc>>,
2746 pub selection: Selection,
2747 pub graphql_client: DynGraphQLClient,
2748}
2749impl CheckGroup {
2750 pub async fn id(&self) -> Result<CheckGroupId, DaggerError> {
2752 let query = self.selection.select("id");
2753 query.execute(self.graphql_client.clone()).await
2754 }
2755 pub fn list(&self) -> Vec<Check> {
2757 let query = self.selection.select("list");
2758 vec![Check {
2759 proc: self.proc.clone(),
2760 selection: query,
2761 graphql_client: self.graphql_client.clone(),
2762 }]
2763 }
2764 pub fn report(&self) -> File {
2766 let query = self.selection.select("report");
2767 File {
2768 proc: self.proc.clone(),
2769 selection: query,
2770 graphql_client: self.graphql_client.clone(),
2771 }
2772 }
2773 pub fn run(&self) -> CheckGroup {
2775 let query = self.selection.select("run");
2776 CheckGroup {
2777 proc: self.proc.clone(),
2778 selection: query,
2779 graphql_client: self.graphql_client.clone(),
2780 }
2781 }
2782}
2783#[derive(Clone)]
2784pub struct Cloud {
2785 pub proc: Option<Arc<DaggerSessionProc>>,
2786 pub selection: Selection,
2787 pub graphql_client: DynGraphQLClient,
2788}
2789impl Cloud {
2790 pub async fn id(&self) -> Result<CloudId, DaggerError> {
2792 let query = self.selection.select("id");
2793 query.execute(self.graphql_client.clone()).await
2794 }
2795 pub async fn trace_url(&self) -> Result<String, DaggerError> {
2797 let query = self.selection.select("traceURL");
2798 query.execute(self.graphql_client.clone()).await
2799 }
2800}
2801#[derive(Clone)]
2802pub struct Container {
2803 pub proc: Option<Arc<DaggerSessionProc>>,
2804 pub selection: Selection,
2805 pub graphql_client: DynGraphQLClient,
2806}
2807#[derive(Builder, Debug, PartialEq)]
2808pub struct ContainerAsServiceOpts<'a> {
2809 #[builder(setter(into, strip_option), default)]
2812 pub args: Option<Vec<&'a str>>,
2813 #[builder(setter(into, strip_option), default)]
2815 pub expand: Option<bool>,
2816 #[builder(setter(into, strip_option), default)]
2818 pub experimental_privileged_nesting: Option<bool>,
2819 #[builder(setter(into, strip_option), default)]
2821 pub insecure_root_capabilities: Option<bool>,
2822 #[builder(setter(into, strip_option), default)]
2825 pub no_init: Option<bool>,
2826 #[builder(setter(into, strip_option), default)]
2828 pub use_entrypoint: Option<bool>,
2829}
2830#[derive(Builder, Debug, PartialEq)]
2831pub struct ContainerAsTarballOpts {
2832 #[builder(setter(into, strip_option), default)]
2835 pub forced_compression: Option<ImageLayerCompression>,
2836 #[builder(setter(into, strip_option), default)]
2839 pub media_types: Option<ImageMediaTypes>,
2840 #[builder(setter(into, strip_option), default)]
2843 pub platform_variants: Option<Vec<ContainerId>>,
2844}
2845#[derive(Builder, Debug, PartialEq)]
2846pub struct ContainerDirectoryOpts {
2847 #[builder(setter(into, strip_option), default)]
2849 pub expand: Option<bool>,
2850}
2851#[derive(Builder, Debug, PartialEq)]
2852pub struct ContainerExistsOpts {
2853 #[builder(setter(into, strip_option), default)]
2855 pub do_not_follow_symlinks: Option<bool>,
2856 #[builder(setter(into, strip_option), default)]
2858 pub expected_type: Option<ExistsType>,
2859}
2860#[derive(Builder, Debug, PartialEq)]
2861pub struct ContainerExportOpts {
2862 #[builder(setter(into, strip_option), default)]
2864 pub expand: Option<bool>,
2865 #[builder(setter(into, strip_option), default)]
2868 pub forced_compression: Option<ImageLayerCompression>,
2869 #[builder(setter(into, strip_option), default)]
2872 pub media_types: Option<ImageMediaTypes>,
2873 #[builder(setter(into, strip_option), default)]
2876 pub platform_variants: Option<Vec<ContainerId>>,
2877}
2878#[derive(Builder, Debug, PartialEq)]
2879pub struct ContainerExportImageOpts {
2880 #[builder(setter(into, strip_option), default)]
2883 pub forced_compression: Option<ImageLayerCompression>,
2884 #[builder(setter(into, strip_option), default)]
2887 pub media_types: Option<ImageMediaTypes>,
2888 #[builder(setter(into, strip_option), default)]
2891 pub platform_variants: Option<Vec<ContainerId>>,
2892}
2893#[derive(Builder, Debug, PartialEq)]
2894pub struct ContainerFileOpts {
2895 #[builder(setter(into, strip_option), default)]
2897 pub expand: Option<bool>,
2898}
2899#[derive(Builder, Debug, PartialEq)]
2900pub struct ContainerImportOpts<'a> {
2901 #[builder(setter(into, strip_option), default)]
2903 pub tag: Option<&'a str>,
2904}
2905#[derive(Builder, Debug, PartialEq)]
2906pub struct ContainerPublishOpts {
2907 #[builder(setter(into, strip_option), default)]
2910 pub forced_compression: Option<ImageLayerCompression>,
2911 #[builder(setter(into, strip_option), default)]
2914 pub media_types: Option<ImageMediaTypes>,
2915 #[builder(setter(into, strip_option), default)]
2918 pub platform_variants: Option<Vec<ContainerId>>,
2919}
2920#[derive(Builder, Debug, PartialEq)]
2921pub struct ContainerStatOpts {
2922 #[builder(setter(into, strip_option), default)]
2924 pub do_not_follow_symlinks: Option<bool>,
2925}
2926#[derive(Builder, Debug, PartialEq)]
2927pub struct ContainerTerminalOpts<'a> {
2928 #[builder(setter(into, strip_option), default)]
2930 pub cmd: Option<Vec<&'a str>>,
2931 #[builder(setter(into, strip_option), default)]
2933 pub experimental_privileged_nesting: Option<bool>,
2934 #[builder(setter(into, strip_option), default)]
2936 pub insecure_root_capabilities: Option<bool>,
2937}
2938#[derive(Builder, Debug, PartialEq)]
2939pub struct ContainerUpOpts<'a> {
2940 #[builder(setter(into, strip_option), default)]
2943 pub args: Option<Vec<&'a str>>,
2944 #[builder(setter(into, strip_option), default)]
2946 pub expand: Option<bool>,
2947 #[builder(setter(into, strip_option), default)]
2949 pub experimental_privileged_nesting: Option<bool>,
2950 #[builder(setter(into, strip_option), default)]
2952 pub insecure_root_capabilities: Option<bool>,
2953 #[builder(setter(into, strip_option), default)]
2956 pub no_init: Option<bool>,
2957 #[builder(setter(into, strip_option), default)]
2960 pub ports: Option<Vec<PortForward>>,
2961 #[builder(setter(into, strip_option), default)]
2963 pub random: Option<bool>,
2964 #[builder(setter(into, strip_option), default)]
2966 pub use_entrypoint: Option<bool>,
2967}
2968#[derive(Builder, Debug, PartialEq)]
2969pub struct ContainerWithDefaultTerminalCmdOpts {
2970 #[builder(setter(into, strip_option), default)]
2972 pub experimental_privileged_nesting: Option<bool>,
2973 #[builder(setter(into, strip_option), default)]
2975 pub insecure_root_capabilities: Option<bool>,
2976}
2977#[derive(Builder, Debug, PartialEq)]
2978pub struct ContainerWithDirectoryOpts<'a> {
2979 #[builder(setter(into, strip_option), default)]
2981 pub exclude: Option<Vec<&'a str>>,
2982 #[builder(setter(into, strip_option), default)]
2984 pub expand: Option<bool>,
2985 #[builder(setter(into, strip_option), default)]
2987 pub gitignore: Option<bool>,
2988 #[builder(setter(into, strip_option), default)]
2990 pub include: Option<Vec<&'a str>>,
2991 #[builder(setter(into, strip_option), default)]
2995 pub owner: Option<&'a str>,
2996}
2997#[derive(Builder, Debug, PartialEq)]
2998pub struct ContainerWithEntrypointOpts {
2999 #[builder(setter(into, strip_option), default)]
3001 pub keep_default_args: Option<bool>,
3002}
3003#[derive(Builder, Debug, PartialEq)]
3004pub struct ContainerWithEnvVariableOpts {
3005 #[builder(setter(into, strip_option), default)]
3007 pub expand: Option<bool>,
3008}
3009#[derive(Builder, Debug, PartialEq)]
3010pub struct ContainerWithExecOpts<'a> {
3011 #[builder(setter(into, strip_option), default)]
3013 pub expand: Option<bool>,
3014 #[builder(setter(into, strip_option), default)]
3016 pub expect: Option<ReturnType>,
3017 #[builder(setter(into, strip_option), default)]
3019 pub experimental_privileged_nesting: Option<bool>,
3020 #[builder(setter(into, strip_option), default)]
3023 pub insecure_root_capabilities: Option<bool>,
3024 #[builder(setter(into, strip_option), default)]
3027 pub no_init: Option<bool>,
3028 #[builder(setter(into, strip_option), default)]
3030 pub redirect_stderr: Option<&'a str>,
3031 #[builder(setter(into, strip_option), default)]
3033 pub redirect_stdin: Option<&'a str>,
3034 #[builder(setter(into, strip_option), default)]
3036 pub redirect_stdout: Option<&'a str>,
3037 #[builder(setter(into, strip_option), default)]
3039 pub stdin: Option<&'a str>,
3040 #[builder(setter(into, strip_option), default)]
3042 pub use_entrypoint: Option<bool>,
3043}
3044#[derive(Builder, Debug, PartialEq)]
3045pub struct ContainerWithExposedPortOpts<'a> {
3046 #[builder(setter(into, strip_option), default)]
3048 pub description: Option<&'a str>,
3049 #[builder(setter(into, strip_option), default)]
3051 pub experimental_skip_healthcheck: Option<bool>,
3052 #[builder(setter(into, strip_option), default)]
3054 pub protocol: Option<NetworkProtocol>,
3055}
3056#[derive(Builder, Debug, PartialEq)]
3057pub struct ContainerWithFileOpts<'a> {
3058 #[builder(setter(into, strip_option), default)]
3060 pub expand: Option<bool>,
3061 #[builder(setter(into, strip_option), default)]
3065 pub owner: Option<&'a str>,
3066 #[builder(setter(into, strip_option), default)]
3068 pub permissions: Option<isize>,
3069}
3070#[derive(Builder, Debug, PartialEq)]
3071pub struct ContainerWithFilesOpts<'a> {
3072 #[builder(setter(into, strip_option), default)]
3074 pub expand: Option<bool>,
3075 #[builder(setter(into, strip_option), default)]
3079 pub owner: Option<&'a str>,
3080 #[builder(setter(into, strip_option), default)]
3082 pub permissions: Option<isize>,
3083}
3084#[derive(Builder, Debug, PartialEq)]
3085pub struct ContainerWithMountedCacheOpts<'a> {
3086 #[builder(setter(into, strip_option), default)]
3088 pub expand: Option<bool>,
3089 #[builder(setter(into, strip_option), default)]
3094 pub owner: Option<&'a str>,
3095 #[builder(setter(into, strip_option), default)]
3097 pub sharing: Option<CacheSharingMode>,
3098 #[builder(setter(into, strip_option), default)]
3100 pub source: Option<DirectoryId>,
3101}
3102#[derive(Builder, Debug, PartialEq)]
3103pub struct ContainerWithMountedDirectoryOpts<'a> {
3104 #[builder(setter(into, strip_option), default)]
3106 pub expand: Option<bool>,
3107 #[builder(setter(into, strip_option), default)]
3111 pub owner: Option<&'a str>,
3112}
3113#[derive(Builder, Debug, PartialEq)]
3114pub struct ContainerWithMountedFileOpts<'a> {
3115 #[builder(setter(into, strip_option), default)]
3117 pub expand: Option<bool>,
3118 #[builder(setter(into, strip_option), default)]
3122 pub owner: Option<&'a str>,
3123}
3124#[derive(Builder, Debug, PartialEq)]
3125pub struct ContainerWithMountedSecretOpts<'a> {
3126 #[builder(setter(into, strip_option), default)]
3128 pub expand: Option<bool>,
3129 #[builder(setter(into, strip_option), default)]
3132 pub mode: Option<isize>,
3133 #[builder(setter(into, strip_option), default)]
3137 pub owner: Option<&'a str>,
3138}
3139#[derive(Builder, Debug, PartialEq)]
3140pub struct ContainerWithMountedTempOpts {
3141 #[builder(setter(into, strip_option), default)]
3143 pub expand: Option<bool>,
3144 #[builder(setter(into, strip_option), default)]
3146 pub size: Option<isize>,
3147}
3148#[derive(Builder, Debug, PartialEq)]
3149pub struct ContainerWithNewFileOpts<'a> {
3150 #[builder(setter(into, strip_option), default)]
3152 pub expand: Option<bool>,
3153 #[builder(setter(into, strip_option), default)]
3157 pub owner: Option<&'a str>,
3158 #[builder(setter(into, strip_option), default)]
3160 pub permissions: Option<isize>,
3161}
3162#[derive(Builder, Debug, PartialEq)]
3163pub struct ContainerWithSymlinkOpts {
3164 #[builder(setter(into, strip_option), default)]
3166 pub expand: Option<bool>,
3167}
3168#[derive(Builder, Debug, PartialEq)]
3169pub struct ContainerWithUnixSocketOpts<'a> {
3170 #[builder(setter(into, strip_option), default)]
3172 pub expand: Option<bool>,
3173 #[builder(setter(into, strip_option), default)]
3177 pub owner: Option<&'a str>,
3178}
3179#[derive(Builder, Debug, PartialEq)]
3180pub struct ContainerWithWorkdirOpts {
3181 #[builder(setter(into, strip_option), default)]
3183 pub expand: Option<bool>,
3184}
3185#[derive(Builder, Debug, PartialEq)]
3186pub struct ContainerWithoutDirectoryOpts {
3187 #[builder(setter(into, strip_option), default)]
3189 pub expand: Option<bool>,
3190}
3191#[derive(Builder, Debug, PartialEq)]
3192pub struct ContainerWithoutEntrypointOpts {
3193 #[builder(setter(into, strip_option), default)]
3195 pub keep_default_args: Option<bool>,
3196}
3197#[derive(Builder, Debug, PartialEq)]
3198pub struct ContainerWithoutExposedPortOpts {
3199 #[builder(setter(into, strip_option), default)]
3201 pub protocol: Option<NetworkProtocol>,
3202}
3203#[derive(Builder, Debug, PartialEq)]
3204pub struct ContainerWithoutFileOpts {
3205 #[builder(setter(into, strip_option), default)]
3207 pub expand: Option<bool>,
3208}
3209#[derive(Builder, Debug, PartialEq)]
3210pub struct ContainerWithoutFilesOpts {
3211 #[builder(setter(into, strip_option), default)]
3213 pub expand: Option<bool>,
3214}
3215#[derive(Builder, Debug, PartialEq)]
3216pub struct ContainerWithoutMountOpts {
3217 #[builder(setter(into, strip_option), default)]
3219 pub expand: Option<bool>,
3220}
3221#[derive(Builder, Debug, PartialEq)]
3222pub struct ContainerWithoutUnixSocketOpts {
3223 #[builder(setter(into, strip_option), default)]
3225 pub expand: Option<bool>,
3226}
3227impl Container {
3228 pub fn as_service(&self) -> Service {
3235 let query = self.selection.select("asService");
3236 Service {
3237 proc: self.proc.clone(),
3238 selection: query,
3239 graphql_client: self.graphql_client.clone(),
3240 }
3241 }
3242 pub fn as_service_opts<'a>(&self, opts: ContainerAsServiceOpts<'a>) -> Service {
3249 let mut query = self.selection.select("asService");
3250 if let Some(args) = opts.args {
3251 query = query.arg("args", args);
3252 }
3253 if let Some(use_entrypoint) = opts.use_entrypoint {
3254 query = query.arg("useEntrypoint", use_entrypoint);
3255 }
3256 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
3257 query = query.arg(
3258 "experimentalPrivilegedNesting",
3259 experimental_privileged_nesting,
3260 );
3261 }
3262 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
3263 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
3264 }
3265 if let Some(expand) = opts.expand {
3266 query = query.arg("expand", expand);
3267 }
3268 if let Some(no_init) = opts.no_init {
3269 query = query.arg("noInit", no_init);
3270 }
3271 Service {
3272 proc: self.proc.clone(),
3273 selection: query,
3274 graphql_client: self.graphql_client.clone(),
3275 }
3276 }
3277 pub fn as_tarball(&self) -> File {
3283 let query = self.selection.select("asTarball");
3284 File {
3285 proc: self.proc.clone(),
3286 selection: query,
3287 graphql_client: self.graphql_client.clone(),
3288 }
3289 }
3290 pub fn as_tarball_opts(&self, opts: ContainerAsTarballOpts) -> File {
3296 let mut query = self.selection.select("asTarball");
3297 if let Some(platform_variants) = opts.platform_variants {
3298 query = query.arg("platformVariants", platform_variants);
3299 }
3300 if let Some(forced_compression) = opts.forced_compression {
3301 query = query.arg("forcedCompression", forced_compression);
3302 }
3303 if let Some(media_types) = opts.media_types {
3304 query = query.arg("mediaTypes", media_types);
3305 }
3306 File {
3307 proc: self.proc.clone(),
3308 selection: query,
3309 graphql_client: self.graphql_client.clone(),
3310 }
3311 }
3312 pub async fn combined_output(&self) -> Result<String, DaggerError> {
3315 let query = self.selection.select("combinedOutput");
3316 query.execute(self.graphql_client.clone()).await
3317 }
3318 pub async fn default_args(&self) -> Result<Vec<String>, DaggerError> {
3320 let query = self.selection.select("defaultArgs");
3321 query.execute(self.graphql_client.clone()).await
3322 }
3323 pub fn directory(&self, path: impl Into<String>) -> Directory {
3331 let mut query = self.selection.select("directory");
3332 query = query.arg("path", path.into());
3333 Directory {
3334 proc: self.proc.clone(),
3335 selection: query,
3336 graphql_client: self.graphql_client.clone(),
3337 }
3338 }
3339 pub fn directory_opts(
3347 &self,
3348 path: impl Into<String>,
3349 opts: ContainerDirectoryOpts,
3350 ) -> Directory {
3351 let mut query = self.selection.select("directory");
3352 query = query.arg("path", path.into());
3353 if let Some(expand) = opts.expand {
3354 query = query.arg("expand", expand);
3355 }
3356 Directory {
3357 proc: self.proc.clone(),
3358 selection: query,
3359 graphql_client: self.graphql_client.clone(),
3360 }
3361 }
3362 pub async fn entrypoint(&self) -> Result<Vec<String>, DaggerError> {
3364 let query = self.selection.select("entrypoint");
3365 query.execute(self.graphql_client.clone()).await
3366 }
3367 pub async fn env_variable(&self, name: impl Into<String>) -> Result<String, DaggerError> {
3373 let mut query = self.selection.select("envVariable");
3374 query = query.arg("name", name.into());
3375 query.execute(self.graphql_client.clone()).await
3376 }
3377 pub fn env_variables(&self) -> Vec<EnvVariable> {
3379 let query = self.selection.select("envVariables");
3380 vec![EnvVariable {
3381 proc: self.proc.clone(),
3382 selection: query,
3383 graphql_client: self.graphql_client.clone(),
3384 }]
3385 }
3386 pub async fn exists(&self, path: impl Into<String>) -> Result<bool, DaggerError> {
3393 let mut query = self.selection.select("exists");
3394 query = query.arg("path", path.into());
3395 query.execute(self.graphql_client.clone()).await
3396 }
3397 pub async fn exists_opts(
3404 &self,
3405 path: impl Into<String>,
3406 opts: ContainerExistsOpts,
3407 ) -> Result<bool, DaggerError> {
3408 let mut query = self.selection.select("exists");
3409 query = query.arg("path", path.into());
3410 if let Some(expected_type) = opts.expected_type {
3411 query = query.arg("expectedType", expected_type);
3412 }
3413 if let Some(do_not_follow_symlinks) = opts.do_not_follow_symlinks {
3414 query = query.arg("doNotFollowSymlinks", do_not_follow_symlinks);
3415 }
3416 query.execute(self.graphql_client.clone()).await
3417 }
3418 pub async fn exit_code(&self) -> Result<isize, DaggerError> {
3421 let query = self.selection.select("exitCode");
3422 query.execute(self.graphql_client.clone()).await
3423 }
3424 pub fn experimental_with_all_gp_us(&self) -> Container {
3428 let query = self.selection.select("experimentalWithAllGPUs");
3429 Container {
3430 proc: self.proc.clone(),
3431 selection: query,
3432 graphql_client: self.graphql_client.clone(),
3433 }
3434 }
3435 pub fn experimental_with_gpu(&self, devices: Vec<impl Into<String>>) -> Container {
3443 let mut query = self.selection.select("experimentalWithGPU");
3444 query = query.arg(
3445 "devices",
3446 devices
3447 .into_iter()
3448 .map(|i| i.into())
3449 .collect::<Vec<String>>(),
3450 );
3451 Container {
3452 proc: self.proc.clone(),
3453 selection: query,
3454 graphql_client: self.graphql_client.clone(),
3455 }
3456 }
3457 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
3467 let mut query = self.selection.select("export");
3468 query = query.arg("path", path.into());
3469 query.execute(self.graphql_client.clone()).await
3470 }
3471 pub async fn export_opts(
3481 &self,
3482 path: impl Into<String>,
3483 opts: ContainerExportOpts,
3484 ) -> Result<String, DaggerError> {
3485 let mut query = self.selection.select("export");
3486 query = query.arg("path", path.into());
3487 if let Some(platform_variants) = opts.platform_variants {
3488 query = query.arg("platformVariants", platform_variants);
3489 }
3490 if let Some(forced_compression) = opts.forced_compression {
3491 query = query.arg("forcedCompression", forced_compression);
3492 }
3493 if let Some(media_types) = opts.media_types {
3494 query = query.arg("mediaTypes", media_types);
3495 }
3496 if let Some(expand) = opts.expand {
3497 query = query.arg("expand", expand);
3498 }
3499 query.execute(self.graphql_client.clone()).await
3500 }
3501 pub async fn export_image(&self, name: impl Into<String>) -> Result<Void, DaggerError> {
3508 let mut query = self.selection.select("exportImage");
3509 query = query.arg("name", name.into());
3510 query.execute(self.graphql_client.clone()).await
3511 }
3512 pub async fn export_image_opts(
3519 &self,
3520 name: impl Into<String>,
3521 opts: ContainerExportImageOpts,
3522 ) -> Result<Void, DaggerError> {
3523 let mut query = self.selection.select("exportImage");
3524 query = query.arg("name", name.into());
3525 if let Some(platform_variants) = opts.platform_variants {
3526 query = query.arg("platformVariants", platform_variants);
3527 }
3528 if let Some(forced_compression) = opts.forced_compression {
3529 query = query.arg("forcedCompression", forced_compression);
3530 }
3531 if let Some(media_types) = opts.media_types {
3532 query = query.arg("mediaTypes", media_types);
3533 }
3534 query.execute(self.graphql_client.clone()).await
3535 }
3536 pub fn exposed_ports(&self) -> Vec<Port> {
3539 let query = self.selection.select("exposedPorts");
3540 vec![Port {
3541 proc: self.proc.clone(),
3542 selection: query,
3543 graphql_client: self.graphql_client.clone(),
3544 }]
3545 }
3546 pub fn file(&self, path: impl Into<String>) -> File {
3554 let mut query = self.selection.select("file");
3555 query = query.arg("path", path.into());
3556 File {
3557 proc: self.proc.clone(),
3558 selection: query,
3559 graphql_client: self.graphql_client.clone(),
3560 }
3561 }
3562 pub fn file_opts(&self, path: impl Into<String>, opts: ContainerFileOpts) -> File {
3570 let mut query = self.selection.select("file");
3571 query = query.arg("path", path.into());
3572 if let Some(expand) = opts.expand {
3573 query = query.arg("expand", expand);
3574 }
3575 File {
3576 proc: self.proc.clone(),
3577 selection: query,
3578 graphql_client: self.graphql_client.clone(),
3579 }
3580 }
3581 pub fn from(&self, address: impl Into<String>) -> Container {
3587 let mut query = self.selection.select("from");
3588 query = query.arg("address", address.into());
3589 Container {
3590 proc: self.proc.clone(),
3591 selection: query,
3592 graphql_client: self.graphql_client.clone(),
3593 }
3594 }
3595 pub async fn id(&self) -> Result<ContainerId, DaggerError> {
3597 let query = self.selection.select("id");
3598 query.execute(self.graphql_client.clone()).await
3599 }
3600 pub async fn image_ref(&self) -> Result<String, DaggerError> {
3602 let query = self.selection.select("imageRef");
3603 query.execute(self.graphql_client.clone()).await
3604 }
3605 pub fn import(&self, source: impl IntoID<FileId>) -> Container {
3612 let mut query = self.selection.select("import");
3613 query = query.arg_lazy(
3614 "source",
3615 Box::new(move || {
3616 let source = source.clone();
3617 Box::pin(async move { source.into_id().await.unwrap().quote() })
3618 }),
3619 );
3620 Container {
3621 proc: self.proc.clone(),
3622 selection: query,
3623 graphql_client: self.graphql_client.clone(),
3624 }
3625 }
3626 pub fn import_opts<'a>(
3633 &self,
3634 source: impl IntoID<FileId>,
3635 opts: ContainerImportOpts<'a>,
3636 ) -> Container {
3637 let mut query = self.selection.select("import");
3638 query = query.arg_lazy(
3639 "source",
3640 Box::new(move || {
3641 let source = source.clone();
3642 Box::pin(async move { source.into_id().await.unwrap().quote() })
3643 }),
3644 );
3645 if let Some(tag) = opts.tag {
3646 query = query.arg("tag", tag);
3647 }
3648 Container {
3649 proc: self.proc.clone(),
3650 selection: query,
3651 graphql_client: self.graphql_client.clone(),
3652 }
3653 }
3654 pub async fn label(&self, name: impl Into<String>) -> Result<String, DaggerError> {
3660 let mut query = self.selection.select("label");
3661 query = query.arg("name", name.into());
3662 query.execute(self.graphql_client.clone()).await
3663 }
3664 pub fn labels(&self) -> Vec<Label> {
3666 let query = self.selection.select("labels");
3667 vec![Label {
3668 proc: self.proc.clone(),
3669 selection: query,
3670 graphql_client: self.graphql_client.clone(),
3671 }]
3672 }
3673 pub async fn mounts(&self) -> Result<Vec<String>, DaggerError> {
3675 let query = self.selection.select("mounts");
3676 query.execute(self.graphql_client.clone()).await
3677 }
3678 pub async fn platform(&self) -> Result<Platform, DaggerError> {
3680 let query = self.selection.select("platform");
3681 query.execute(self.graphql_client.clone()).await
3682 }
3683 pub async fn publish(&self, address: impl Into<String>) -> Result<String, DaggerError> {
3693 let mut query = self.selection.select("publish");
3694 query = query.arg("address", address.into());
3695 query.execute(self.graphql_client.clone()).await
3696 }
3697 pub async fn publish_opts(
3707 &self,
3708 address: impl Into<String>,
3709 opts: ContainerPublishOpts,
3710 ) -> Result<String, DaggerError> {
3711 let mut query = self.selection.select("publish");
3712 query = query.arg("address", address.into());
3713 if let Some(platform_variants) = opts.platform_variants {
3714 query = query.arg("platformVariants", platform_variants);
3715 }
3716 if let Some(forced_compression) = opts.forced_compression {
3717 query = query.arg("forcedCompression", forced_compression);
3718 }
3719 if let Some(media_types) = opts.media_types {
3720 query = query.arg("mediaTypes", media_types);
3721 }
3722 query.execute(self.graphql_client.clone()).await
3723 }
3724 pub fn rootfs(&self) -> Directory {
3726 let query = self.selection.select("rootfs");
3727 Directory {
3728 proc: self.proc.clone(),
3729 selection: query,
3730 graphql_client: self.graphql_client.clone(),
3731 }
3732 }
3733 pub fn stat(&self, path: impl Into<String>) -> Stat {
3740 let mut query = self.selection.select("stat");
3741 query = query.arg("path", path.into());
3742 Stat {
3743 proc: self.proc.clone(),
3744 selection: query,
3745 graphql_client: self.graphql_client.clone(),
3746 }
3747 }
3748 pub fn stat_opts(&self, path: impl Into<String>, opts: ContainerStatOpts) -> Stat {
3755 let mut query = self.selection.select("stat");
3756 query = query.arg("path", path.into());
3757 if let Some(do_not_follow_symlinks) = opts.do_not_follow_symlinks {
3758 query = query.arg("doNotFollowSymlinks", do_not_follow_symlinks);
3759 }
3760 Stat {
3761 proc: self.proc.clone(),
3762 selection: query,
3763 graphql_client: self.graphql_client.clone(),
3764 }
3765 }
3766 pub async fn stderr(&self) -> Result<String, DaggerError> {
3769 let query = self.selection.select("stderr");
3770 query.execute(self.graphql_client.clone()).await
3771 }
3772 pub async fn stdout(&self) -> Result<String, DaggerError> {
3775 let query = self.selection.select("stdout");
3776 query.execute(self.graphql_client.clone()).await
3777 }
3778 pub async fn sync(&self) -> Result<ContainerId, DaggerError> {
3781 let query = self.selection.select("sync");
3782 query.execute(self.graphql_client.clone()).await
3783 }
3784 pub fn terminal(&self) -> Container {
3790 let query = self.selection.select("terminal");
3791 Container {
3792 proc: self.proc.clone(),
3793 selection: query,
3794 graphql_client: self.graphql_client.clone(),
3795 }
3796 }
3797 pub fn terminal_opts<'a>(&self, opts: ContainerTerminalOpts<'a>) -> Container {
3803 let mut query = self.selection.select("terminal");
3804 if let Some(cmd) = opts.cmd {
3805 query = query.arg("cmd", cmd);
3806 }
3807 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
3808 query = query.arg(
3809 "experimentalPrivilegedNesting",
3810 experimental_privileged_nesting,
3811 );
3812 }
3813 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
3814 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
3815 }
3816 Container {
3817 proc: self.proc.clone(),
3818 selection: query,
3819 graphql_client: self.graphql_client.clone(),
3820 }
3821 }
3822 pub async fn up(&self) -> Result<Void, DaggerError> {
3829 let query = self.selection.select("up");
3830 query.execute(self.graphql_client.clone()).await
3831 }
3832 pub async fn up_opts<'a>(&self, opts: ContainerUpOpts<'a>) -> Result<Void, DaggerError> {
3839 let mut query = self.selection.select("up");
3840 if let Some(random) = opts.random {
3841 query = query.arg("random", random);
3842 }
3843 if let Some(ports) = opts.ports {
3844 query = query.arg("ports", ports);
3845 }
3846 if let Some(args) = opts.args {
3847 query = query.arg("args", args);
3848 }
3849 if let Some(use_entrypoint) = opts.use_entrypoint {
3850 query = query.arg("useEntrypoint", use_entrypoint);
3851 }
3852 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
3853 query = query.arg(
3854 "experimentalPrivilegedNesting",
3855 experimental_privileged_nesting,
3856 );
3857 }
3858 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
3859 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
3860 }
3861 if let Some(expand) = opts.expand {
3862 query = query.arg("expand", expand);
3863 }
3864 if let Some(no_init) = opts.no_init {
3865 query = query.arg("noInit", no_init);
3866 }
3867 query.execute(self.graphql_client.clone()).await
3868 }
3869 pub async fn user(&self) -> Result<String, DaggerError> {
3871 let query = self.selection.select("user");
3872 query.execute(self.graphql_client.clone()).await
3873 }
3874 pub fn with_annotation(&self, name: impl Into<String>, value: impl Into<String>) -> Container {
3881 let mut query = self.selection.select("withAnnotation");
3882 query = query.arg("name", name.into());
3883 query = query.arg("value", value.into());
3884 Container {
3885 proc: self.proc.clone(),
3886 selection: query,
3887 graphql_client: self.graphql_client.clone(),
3888 }
3889 }
3890 pub fn with_default_args(&self, args: Vec<impl Into<String>>) -> Container {
3896 let mut query = self.selection.select("withDefaultArgs");
3897 query = query.arg(
3898 "args",
3899 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
3900 );
3901 Container {
3902 proc: self.proc.clone(),
3903 selection: query,
3904 graphql_client: self.graphql_client.clone(),
3905 }
3906 }
3907 pub fn with_default_terminal_cmd(&self, args: Vec<impl Into<String>>) -> Container {
3914 let mut query = self.selection.select("withDefaultTerminalCmd");
3915 query = query.arg(
3916 "args",
3917 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
3918 );
3919 Container {
3920 proc: self.proc.clone(),
3921 selection: query,
3922 graphql_client: self.graphql_client.clone(),
3923 }
3924 }
3925 pub fn with_default_terminal_cmd_opts(
3932 &self,
3933 args: Vec<impl Into<String>>,
3934 opts: ContainerWithDefaultTerminalCmdOpts,
3935 ) -> Container {
3936 let mut query = self.selection.select("withDefaultTerminalCmd");
3937 query = query.arg(
3938 "args",
3939 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
3940 );
3941 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
3942 query = query.arg(
3943 "experimentalPrivilegedNesting",
3944 experimental_privileged_nesting,
3945 );
3946 }
3947 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
3948 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
3949 }
3950 Container {
3951 proc: self.proc.clone(),
3952 selection: query,
3953 graphql_client: self.graphql_client.clone(),
3954 }
3955 }
3956 pub fn with_directory(
3964 &self,
3965 path: impl Into<String>,
3966 source: impl IntoID<DirectoryId>,
3967 ) -> Container {
3968 let mut query = self.selection.select("withDirectory");
3969 query = query.arg("path", path.into());
3970 query = query.arg_lazy(
3971 "source",
3972 Box::new(move || {
3973 let source = source.clone();
3974 Box::pin(async move { source.into_id().await.unwrap().quote() })
3975 }),
3976 );
3977 Container {
3978 proc: self.proc.clone(),
3979 selection: query,
3980 graphql_client: self.graphql_client.clone(),
3981 }
3982 }
3983 pub fn with_directory_opts<'a>(
3991 &self,
3992 path: impl Into<String>,
3993 source: impl IntoID<DirectoryId>,
3994 opts: ContainerWithDirectoryOpts<'a>,
3995 ) -> Container {
3996 let mut query = self.selection.select("withDirectory");
3997 query = query.arg("path", path.into());
3998 query = query.arg_lazy(
3999 "source",
4000 Box::new(move || {
4001 let source = source.clone();
4002 Box::pin(async move { source.into_id().await.unwrap().quote() })
4003 }),
4004 );
4005 if let Some(exclude) = opts.exclude {
4006 query = query.arg("exclude", exclude);
4007 }
4008 if let Some(include) = opts.include {
4009 query = query.arg("include", include);
4010 }
4011 if let Some(gitignore) = opts.gitignore {
4012 query = query.arg("gitignore", gitignore);
4013 }
4014 if let Some(owner) = opts.owner {
4015 query = query.arg("owner", owner);
4016 }
4017 if let Some(expand) = opts.expand {
4018 query = query.arg("expand", expand);
4019 }
4020 Container {
4021 proc: self.proc.clone(),
4022 selection: query,
4023 graphql_client: self.graphql_client.clone(),
4024 }
4025 }
4026 pub fn with_entrypoint(&self, args: Vec<impl Into<String>>) -> Container {
4033 let mut query = self.selection.select("withEntrypoint");
4034 query = query.arg(
4035 "args",
4036 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
4037 );
4038 Container {
4039 proc: self.proc.clone(),
4040 selection: query,
4041 graphql_client: self.graphql_client.clone(),
4042 }
4043 }
4044 pub fn with_entrypoint_opts(
4051 &self,
4052 args: Vec<impl Into<String>>,
4053 opts: ContainerWithEntrypointOpts,
4054 ) -> Container {
4055 let mut query = self.selection.select("withEntrypoint");
4056 query = query.arg(
4057 "args",
4058 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
4059 );
4060 if let Some(keep_default_args) = opts.keep_default_args {
4061 query = query.arg("keepDefaultArgs", keep_default_args);
4062 }
4063 Container {
4064 proc: self.proc.clone(),
4065 selection: query,
4066 graphql_client: self.graphql_client.clone(),
4067 }
4068 }
4069 pub fn with_env_file_variables(&self, source: impl IntoID<EnvFileId>) -> Container {
4075 let mut query = self.selection.select("withEnvFileVariables");
4076 query = query.arg_lazy(
4077 "source",
4078 Box::new(move || {
4079 let source = source.clone();
4080 Box::pin(async move { source.into_id().await.unwrap().quote() })
4081 }),
4082 );
4083 Container {
4084 proc: self.proc.clone(),
4085 selection: query,
4086 graphql_client: self.graphql_client.clone(),
4087 }
4088 }
4089 pub fn with_env_variable(
4097 &self,
4098 name: impl Into<String>,
4099 value: impl Into<String>,
4100 ) -> Container {
4101 let mut query = self.selection.select("withEnvVariable");
4102 query = query.arg("name", name.into());
4103 query = query.arg("value", value.into());
4104 Container {
4105 proc: self.proc.clone(),
4106 selection: query,
4107 graphql_client: self.graphql_client.clone(),
4108 }
4109 }
4110 pub fn with_env_variable_opts(
4118 &self,
4119 name: impl Into<String>,
4120 value: impl Into<String>,
4121 opts: ContainerWithEnvVariableOpts,
4122 ) -> Container {
4123 let mut query = self.selection.select("withEnvVariable");
4124 query = query.arg("name", name.into());
4125 query = query.arg("value", value.into());
4126 if let Some(expand) = opts.expand {
4127 query = query.arg("expand", expand);
4128 }
4129 Container {
4130 proc: self.proc.clone(),
4131 selection: query,
4132 graphql_client: self.graphql_client.clone(),
4133 }
4134 }
4135 pub fn with_error(&self, err: impl Into<String>) -> Container {
4141 let mut query = self.selection.select("withError");
4142 query = query.arg("err", err.into());
4143 Container {
4144 proc: self.proc.clone(),
4145 selection: query,
4146 graphql_client: self.graphql_client.clone(),
4147 }
4148 }
4149 pub fn with_exec(&self, args: Vec<impl Into<String>>) -> Container {
4160 let mut query = self.selection.select("withExec");
4161 query = query.arg(
4162 "args",
4163 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
4164 );
4165 Container {
4166 proc: self.proc.clone(),
4167 selection: query,
4168 graphql_client: self.graphql_client.clone(),
4169 }
4170 }
4171 pub fn with_exec_opts<'a>(
4182 &self,
4183 args: Vec<impl Into<String>>,
4184 opts: ContainerWithExecOpts<'a>,
4185 ) -> Container {
4186 let mut query = self.selection.select("withExec");
4187 query = query.arg(
4188 "args",
4189 args.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
4190 );
4191 if let Some(use_entrypoint) = opts.use_entrypoint {
4192 query = query.arg("useEntrypoint", use_entrypoint);
4193 }
4194 if let Some(stdin) = opts.stdin {
4195 query = query.arg("stdin", stdin);
4196 }
4197 if let Some(redirect_stdin) = opts.redirect_stdin {
4198 query = query.arg("redirectStdin", redirect_stdin);
4199 }
4200 if let Some(redirect_stdout) = opts.redirect_stdout {
4201 query = query.arg("redirectStdout", redirect_stdout);
4202 }
4203 if let Some(redirect_stderr) = opts.redirect_stderr {
4204 query = query.arg("redirectStderr", redirect_stderr);
4205 }
4206 if let Some(expect) = opts.expect {
4207 query = query.arg("expect", expect);
4208 }
4209 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
4210 query = query.arg(
4211 "experimentalPrivilegedNesting",
4212 experimental_privileged_nesting,
4213 );
4214 }
4215 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
4216 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
4217 }
4218 if let Some(expand) = opts.expand {
4219 query = query.arg("expand", expand);
4220 }
4221 if let Some(no_init) = opts.no_init {
4222 query = query.arg("noInit", no_init);
4223 }
4224 Container {
4225 proc: self.proc.clone(),
4226 selection: query,
4227 graphql_client: self.graphql_client.clone(),
4228 }
4229 }
4230 pub fn with_exposed_port(&self, port: isize) -> Container {
4240 let mut query = self.selection.select("withExposedPort");
4241 query = query.arg("port", port);
4242 Container {
4243 proc: self.proc.clone(),
4244 selection: query,
4245 graphql_client: self.graphql_client.clone(),
4246 }
4247 }
4248 pub fn with_exposed_port_opts<'a>(
4258 &self,
4259 port: isize,
4260 opts: ContainerWithExposedPortOpts<'a>,
4261 ) -> Container {
4262 let mut query = self.selection.select("withExposedPort");
4263 query = query.arg("port", port);
4264 if let Some(protocol) = opts.protocol {
4265 query = query.arg("protocol", protocol);
4266 }
4267 if let Some(description) = opts.description {
4268 query = query.arg("description", description);
4269 }
4270 if let Some(experimental_skip_healthcheck) = opts.experimental_skip_healthcheck {
4271 query = query.arg("experimentalSkipHealthcheck", experimental_skip_healthcheck);
4272 }
4273 Container {
4274 proc: self.proc.clone(),
4275 selection: query,
4276 graphql_client: self.graphql_client.clone(),
4277 }
4278 }
4279 pub fn with_file(&self, path: impl Into<String>, source: impl IntoID<FileId>) -> Container {
4287 let mut query = self.selection.select("withFile");
4288 query = query.arg("path", path.into());
4289 query = query.arg_lazy(
4290 "source",
4291 Box::new(move || {
4292 let source = source.clone();
4293 Box::pin(async move { source.into_id().await.unwrap().quote() })
4294 }),
4295 );
4296 Container {
4297 proc: self.proc.clone(),
4298 selection: query,
4299 graphql_client: self.graphql_client.clone(),
4300 }
4301 }
4302 pub fn with_file_opts<'a>(
4310 &self,
4311 path: impl Into<String>,
4312 source: impl IntoID<FileId>,
4313 opts: ContainerWithFileOpts<'a>,
4314 ) -> Container {
4315 let mut query = self.selection.select("withFile");
4316 query = query.arg("path", path.into());
4317 query = query.arg_lazy(
4318 "source",
4319 Box::new(move || {
4320 let source = source.clone();
4321 Box::pin(async move { source.into_id().await.unwrap().quote() })
4322 }),
4323 );
4324 if let Some(permissions) = opts.permissions {
4325 query = query.arg("permissions", permissions);
4326 }
4327 if let Some(owner) = opts.owner {
4328 query = query.arg("owner", owner);
4329 }
4330 if let Some(expand) = opts.expand {
4331 query = query.arg("expand", expand);
4332 }
4333 Container {
4334 proc: self.proc.clone(),
4335 selection: query,
4336 graphql_client: self.graphql_client.clone(),
4337 }
4338 }
4339 pub fn with_files(&self, path: impl Into<String>, sources: Vec<FileId>) -> Container {
4347 let mut query = self.selection.select("withFiles");
4348 query = query.arg("path", path.into());
4349 query = query.arg("sources", sources);
4350 Container {
4351 proc: self.proc.clone(),
4352 selection: query,
4353 graphql_client: self.graphql_client.clone(),
4354 }
4355 }
4356 pub fn with_files_opts<'a>(
4364 &self,
4365 path: impl Into<String>,
4366 sources: Vec<FileId>,
4367 opts: ContainerWithFilesOpts<'a>,
4368 ) -> Container {
4369 let mut query = self.selection.select("withFiles");
4370 query = query.arg("path", path.into());
4371 query = query.arg("sources", sources);
4372 if let Some(permissions) = opts.permissions {
4373 query = query.arg("permissions", permissions);
4374 }
4375 if let Some(owner) = opts.owner {
4376 query = query.arg("owner", owner);
4377 }
4378 if let Some(expand) = opts.expand {
4379 query = query.arg("expand", expand);
4380 }
4381 Container {
4382 proc: self.proc.clone(),
4383 selection: query,
4384 graphql_client: self.graphql_client.clone(),
4385 }
4386 }
4387 pub fn with_label(&self, name: impl Into<String>, value: impl Into<String>) -> Container {
4394 let mut query = self.selection.select("withLabel");
4395 query = query.arg("name", name.into());
4396 query = query.arg("value", value.into());
4397 Container {
4398 proc: self.proc.clone(),
4399 selection: query,
4400 graphql_client: self.graphql_client.clone(),
4401 }
4402 }
4403 pub fn with_mounted_cache(
4411 &self,
4412 path: impl Into<String>,
4413 cache: impl IntoID<CacheVolumeId>,
4414 ) -> Container {
4415 let mut query = self.selection.select("withMountedCache");
4416 query = query.arg("path", path.into());
4417 query = query.arg_lazy(
4418 "cache",
4419 Box::new(move || {
4420 let cache = cache.clone();
4421 Box::pin(async move { cache.into_id().await.unwrap().quote() })
4422 }),
4423 );
4424 Container {
4425 proc: self.proc.clone(),
4426 selection: query,
4427 graphql_client: self.graphql_client.clone(),
4428 }
4429 }
4430 pub fn with_mounted_cache_opts<'a>(
4438 &self,
4439 path: impl Into<String>,
4440 cache: impl IntoID<CacheVolumeId>,
4441 opts: ContainerWithMountedCacheOpts<'a>,
4442 ) -> Container {
4443 let mut query = self.selection.select("withMountedCache");
4444 query = query.arg("path", path.into());
4445 query = query.arg_lazy(
4446 "cache",
4447 Box::new(move || {
4448 let cache = cache.clone();
4449 Box::pin(async move { cache.into_id().await.unwrap().quote() })
4450 }),
4451 );
4452 if let Some(source) = opts.source {
4453 query = query.arg("source", source);
4454 }
4455 if let Some(sharing) = opts.sharing {
4456 query = query.arg("sharing", sharing);
4457 }
4458 if let Some(owner) = opts.owner {
4459 query = query.arg("owner", owner);
4460 }
4461 if let Some(expand) = opts.expand {
4462 query = query.arg("expand", expand);
4463 }
4464 Container {
4465 proc: self.proc.clone(),
4466 selection: query,
4467 graphql_client: self.graphql_client.clone(),
4468 }
4469 }
4470 pub fn with_mounted_directory(
4478 &self,
4479 path: impl Into<String>,
4480 source: impl IntoID<DirectoryId>,
4481 ) -> Container {
4482 let mut query = self.selection.select("withMountedDirectory");
4483 query = query.arg("path", path.into());
4484 query = query.arg_lazy(
4485 "source",
4486 Box::new(move || {
4487 let source = source.clone();
4488 Box::pin(async move { source.into_id().await.unwrap().quote() })
4489 }),
4490 );
4491 Container {
4492 proc: self.proc.clone(),
4493 selection: query,
4494 graphql_client: self.graphql_client.clone(),
4495 }
4496 }
4497 pub fn with_mounted_directory_opts<'a>(
4505 &self,
4506 path: impl Into<String>,
4507 source: impl IntoID<DirectoryId>,
4508 opts: ContainerWithMountedDirectoryOpts<'a>,
4509 ) -> Container {
4510 let mut query = self.selection.select("withMountedDirectory");
4511 query = query.arg("path", path.into());
4512 query = query.arg_lazy(
4513 "source",
4514 Box::new(move || {
4515 let source = source.clone();
4516 Box::pin(async move { source.into_id().await.unwrap().quote() })
4517 }),
4518 );
4519 if let Some(owner) = opts.owner {
4520 query = query.arg("owner", owner);
4521 }
4522 if let Some(expand) = opts.expand {
4523 query = query.arg("expand", expand);
4524 }
4525 Container {
4526 proc: self.proc.clone(),
4527 selection: query,
4528 graphql_client: self.graphql_client.clone(),
4529 }
4530 }
4531 pub fn with_mounted_file(
4539 &self,
4540 path: impl Into<String>,
4541 source: impl IntoID<FileId>,
4542 ) -> Container {
4543 let mut query = self.selection.select("withMountedFile");
4544 query = query.arg("path", path.into());
4545 query = query.arg_lazy(
4546 "source",
4547 Box::new(move || {
4548 let source = source.clone();
4549 Box::pin(async move { source.into_id().await.unwrap().quote() })
4550 }),
4551 );
4552 Container {
4553 proc: self.proc.clone(),
4554 selection: query,
4555 graphql_client: self.graphql_client.clone(),
4556 }
4557 }
4558 pub fn with_mounted_file_opts<'a>(
4566 &self,
4567 path: impl Into<String>,
4568 source: impl IntoID<FileId>,
4569 opts: ContainerWithMountedFileOpts<'a>,
4570 ) -> Container {
4571 let mut query = self.selection.select("withMountedFile");
4572 query = query.arg("path", path.into());
4573 query = query.arg_lazy(
4574 "source",
4575 Box::new(move || {
4576 let source = source.clone();
4577 Box::pin(async move { source.into_id().await.unwrap().quote() })
4578 }),
4579 );
4580 if let Some(owner) = opts.owner {
4581 query = query.arg("owner", owner);
4582 }
4583 if let Some(expand) = opts.expand {
4584 query = query.arg("expand", expand);
4585 }
4586 Container {
4587 proc: self.proc.clone(),
4588 selection: query,
4589 graphql_client: self.graphql_client.clone(),
4590 }
4591 }
4592 pub fn with_mounted_secret(
4600 &self,
4601 path: impl Into<String>,
4602 source: impl IntoID<SecretId>,
4603 ) -> Container {
4604 let mut query = self.selection.select("withMountedSecret");
4605 query = query.arg("path", path.into());
4606 query = query.arg_lazy(
4607 "source",
4608 Box::new(move || {
4609 let source = source.clone();
4610 Box::pin(async move { source.into_id().await.unwrap().quote() })
4611 }),
4612 );
4613 Container {
4614 proc: self.proc.clone(),
4615 selection: query,
4616 graphql_client: self.graphql_client.clone(),
4617 }
4618 }
4619 pub fn with_mounted_secret_opts<'a>(
4627 &self,
4628 path: impl Into<String>,
4629 source: impl IntoID<SecretId>,
4630 opts: ContainerWithMountedSecretOpts<'a>,
4631 ) -> Container {
4632 let mut query = self.selection.select("withMountedSecret");
4633 query = query.arg("path", path.into());
4634 query = query.arg_lazy(
4635 "source",
4636 Box::new(move || {
4637 let source = source.clone();
4638 Box::pin(async move { source.into_id().await.unwrap().quote() })
4639 }),
4640 );
4641 if let Some(owner) = opts.owner {
4642 query = query.arg("owner", owner);
4643 }
4644 if let Some(mode) = opts.mode {
4645 query = query.arg("mode", mode);
4646 }
4647 if let Some(expand) = opts.expand {
4648 query = query.arg("expand", expand);
4649 }
4650 Container {
4651 proc: self.proc.clone(),
4652 selection: query,
4653 graphql_client: self.graphql_client.clone(),
4654 }
4655 }
4656 pub fn with_mounted_temp(&self, path: impl Into<String>) -> Container {
4663 let mut query = self.selection.select("withMountedTemp");
4664 query = query.arg("path", path.into());
4665 Container {
4666 proc: self.proc.clone(),
4667 selection: query,
4668 graphql_client: self.graphql_client.clone(),
4669 }
4670 }
4671 pub fn with_mounted_temp_opts(
4678 &self,
4679 path: impl Into<String>,
4680 opts: ContainerWithMountedTempOpts,
4681 ) -> Container {
4682 let mut query = self.selection.select("withMountedTemp");
4683 query = query.arg("path", path.into());
4684 if let Some(size) = opts.size {
4685 query = query.arg("size", size);
4686 }
4687 if let Some(expand) = opts.expand {
4688 query = query.arg("expand", expand);
4689 }
4690 Container {
4691 proc: self.proc.clone(),
4692 selection: query,
4693 graphql_client: self.graphql_client.clone(),
4694 }
4695 }
4696 pub fn with_new_file(&self, path: impl Into<String>, contents: impl Into<String>) -> Container {
4704 let mut query = self.selection.select("withNewFile");
4705 query = query.arg("path", path.into());
4706 query = query.arg("contents", contents.into());
4707 Container {
4708 proc: self.proc.clone(),
4709 selection: query,
4710 graphql_client: self.graphql_client.clone(),
4711 }
4712 }
4713 pub fn with_new_file_opts<'a>(
4721 &self,
4722 path: impl Into<String>,
4723 contents: impl Into<String>,
4724 opts: ContainerWithNewFileOpts<'a>,
4725 ) -> Container {
4726 let mut query = self.selection.select("withNewFile");
4727 query = query.arg("path", path.into());
4728 query = query.arg("contents", contents.into());
4729 if let Some(permissions) = opts.permissions {
4730 query = query.arg("permissions", permissions);
4731 }
4732 if let Some(owner) = opts.owner {
4733 query = query.arg("owner", owner);
4734 }
4735 if let Some(expand) = opts.expand {
4736 query = query.arg("expand", expand);
4737 }
4738 Container {
4739 proc: self.proc.clone(),
4740 selection: query,
4741 graphql_client: self.graphql_client.clone(),
4742 }
4743 }
4744 pub fn with_registry_auth(
4752 &self,
4753 address: impl Into<String>,
4754 username: impl Into<String>,
4755 secret: impl IntoID<SecretId>,
4756 ) -> Container {
4757 let mut query = self.selection.select("withRegistryAuth");
4758 query = query.arg("address", address.into());
4759 query = query.arg("username", username.into());
4760 query = query.arg_lazy(
4761 "secret",
4762 Box::new(move || {
4763 let secret = secret.clone();
4764 Box::pin(async move { secret.into_id().await.unwrap().quote() })
4765 }),
4766 );
4767 Container {
4768 proc: self.proc.clone(),
4769 selection: query,
4770 graphql_client: self.graphql_client.clone(),
4771 }
4772 }
4773 pub fn with_rootfs(&self, directory: impl IntoID<DirectoryId>) -> Container {
4779 let mut query = self.selection.select("withRootfs");
4780 query = query.arg_lazy(
4781 "directory",
4782 Box::new(move || {
4783 let directory = directory.clone();
4784 Box::pin(async move { directory.into_id().await.unwrap().quote() })
4785 }),
4786 );
4787 Container {
4788 proc: self.proc.clone(),
4789 selection: query,
4790 graphql_client: self.graphql_client.clone(),
4791 }
4792 }
4793 pub fn with_secret_variable(
4800 &self,
4801 name: impl Into<String>,
4802 secret: impl IntoID<SecretId>,
4803 ) -> Container {
4804 let mut query = self.selection.select("withSecretVariable");
4805 query = query.arg("name", name.into());
4806 query = query.arg_lazy(
4807 "secret",
4808 Box::new(move || {
4809 let secret = secret.clone();
4810 Box::pin(async move { secret.into_id().await.unwrap().quote() })
4811 }),
4812 );
4813 Container {
4814 proc: self.proc.clone(),
4815 selection: query,
4816 graphql_client: self.graphql_client.clone(),
4817 }
4818 }
4819 pub fn with_service_binding(
4829 &self,
4830 alias: impl Into<String>,
4831 service: impl IntoID<ServiceId>,
4832 ) -> Container {
4833 let mut query = self.selection.select("withServiceBinding");
4834 query = query.arg("alias", alias.into());
4835 query = query.arg_lazy(
4836 "service",
4837 Box::new(move || {
4838 let service = service.clone();
4839 Box::pin(async move { service.into_id().await.unwrap().quote() })
4840 }),
4841 );
4842 Container {
4843 proc: self.proc.clone(),
4844 selection: query,
4845 graphql_client: self.graphql_client.clone(),
4846 }
4847 }
4848 pub fn with_symlink(
4856 &self,
4857 target: impl Into<String>,
4858 link_name: impl Into<String>,
4859 ) -> Container {
4860 let mut query = self.selection.select("withSymlink");
4861 query = query.arg("target", target.into());
4862 query = query.arg("linkName", link_name.into());
4863 Container {
4864 proc: self.proc.clone(),
4865 selection: query,
4866 graphql_client: self.graphql_client.clone(),
4867 }
4868 }
4869 pub fn with_symlink_opts(
4877 &self,
4878 target: impl Into<String>,
4879 link_name: impl Into<String>,
4880 opts: ContainerWithSymlinkOpts,
4881 ) -> Container {
4882 let mut query = self.selection.select("withSymlink");
4883 query = query.arg("target", target.into());
4884 query = query.arg("linkName", link_name.into());
4885 if let Some(expand) = opts.expand {
4886 query = query.arg("expand", expand);
4887 }
4888 Container {
4889 proc: self.proc.clone(),
4890 selection: query,
4891 graphql_client: self.graphql_client.clone(),
4892 }
4893 }
4894 pub fn with_unix_socket(
4902 &self,
4903 path: impl Into<String>,
4904 source: impl IntoID<SocketId>,
4905 ) -> Container {
4906 let mut query = self.selection.select("withUnixSocket");
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 Container {
4916 proc: self.proc.clone(),
4917 selection: query,
4918 graphql_client: self.graphql_client.clone(),
4919 }
4920 }
4921 pub fn with_unix_socket_opts<'a>(
4929 &self,
4930 path: impl Into<String>,
4931 source: impl IntoID<SocketId>,
4932 opts: ContainerWithUnixSocketOpts<'a>,
4933 ) -> Container {
4934 let mut query = self.selection.select("withUnixSocket");
4935 query = query.arg("path", path.into());
4936 query = query.arg_lazy(
4937 "source",
4938 Box::new(move || {
4939 let source = source.clone();
4940 Box::pin(async move { source.into_id().await.unwrap().quote() })
4941 }),
4942 );
4943 if let Some(owner) = opts.owner {
4944 query = query.arg("owner", owner);
4945 }
4946 if let Some(expand) = opts.expand {
4947 query = query.arg("expand", expand);
4948 }
4949 Container {
4950 proc: self.proc.clone(),
4951 selection: query,
4952 graphql_client: self.graphql_client.clone(),
4953 }
4954 }
4955 pub fn with_user(&self, name: impl Into<String>) -> Container {
4961 let mut query = self.selection.select("withUser");
4962 query = query.arg("name", name.into());
4963 Container {
4964 proc: self.proc.clone(),
4965 selection: query,
4966 graphql_client: self.graphql_client.clone(),
4967 }
4968 }
4969 pub fn with_workdir(&self, path: impl Into<String>) -> Container {
4976 let mut query = self.selection.select("withWorkdir");
4977 query = query.arg("path", path.into());
4978 Container {
4979 proc: self.proc.clone(),
4980 selection: query,
4981 graphql_client: self.graphql_client.clone(),
4982 }
4983 }
4984 pub fn with_workdir_opts(
4991 &self,
4992 path: impl Into<String>,
4993 opts: ContainerWithWorkdirOpts,
4994 ) -> Container {
4995 let mut query = self.selection.select("withWorkdir");
4996 query = query.arg("path", path.into());
4997 if let Some(expand) = opts.expand {
4998 query = query.arg("expand", expand);
4999 }
5000 Container {
5001 proc: self.proc.clone(),
5002 selection: query,
5003 graphql_client: self.graphql_client.clone(),
5004 }
5005 }
5006 pub fn without_annotation(&self, name: impl Into<String>) -> Container {
5012 let mut query = self.selection.select("withoutAnnotation");
5013 query = query.arg("name", name.into());
5014 Container {
5015 proc: self.proc.clone(),
5016 selection: query,
5017 graphql_client: self.graphql_client.clone(),
5018 }
5019 }
5020 pub fn without_default_args(&self) -> Container {
5022 let query = self.selection.select("withoutDefaultArgs");
5023 Container {
5024 proc: self.proc.clone(),
5025 selection: query,
5026 graphql_client: self.graphql_client.clone(),
5027 }
5028 }
5029 pub fn without_directory(&self, path: impl Into<String>) -> Container {
5036 let mut query = self.selection.select("withoutDirectory");
5037 query = query.arg("path", path.into());
5038 Container {
5039 proc: self.proc.clone(),
5040 selection: query,
5041 graphql_client: self.graphql_client.clone(),
5042 }
5043 }
5044 pub fn without_directory_opts(
5051 &self,
5052 path: impl Into<String>,
5053 opts: ContainerWithoutDirectoryOpts,
5054 ) -> Container {
5055 let mut query = self.selection.select("withoutDirectory");
5056 query = query.arg("path", path.into());
5057 if let Some(expand) = opts.expand {
5058 query = query.arg("expand", expand);
5059 }
5060 Container {
5061 proc: self.proc.clone(),
5062 selection: query,
5063 graphql_client: self.graphql_client.clone(),
5064 }
5065 }
5066 pub fn without_entrypoint(&self) -> Container {
5072 let query = self.selection.select("withoutEntrypoint");
5073 Container {
5074 proc: self.proc.clone(),
5075 selection: query,
5076 graphql_client: self.graphql_client.clone(),
5077 }
5078 }
5079 pub fn without_entrypoint_opts(&self, opts: ContainerWithoutEntrypointOpts) -> Container {
5085 let mut query = self.selection.select("withoutEntrypoint");
5086 if let Some(keep_default_args) = opts.keep_default_args {
5087 query = query.arg("keepDefaultArgs", keep_default_args);
5088 }
5089 Container {
5090 proc: self.proc.clone(),
5091 selection: query,
5092 graphql_client: self.graphql_client.clone(),
5093 }
5094 }
5095 pub fn without_env_variable(&self, name: impl Into<String>) -> Container {
5101 let mut query = self.selection.select("withoutEnvVariable");
5102 query = query.arg("name", name.into());
5103 Container {
5104 proc: self.proc.clone(),
5105 selection: query,
5106 graphql_client: self.graphql_client.clone(),
5107 }
5108 }
5109 pub fn without_exposed_port(&self, port: isize) -> Container {
5116 let mut query = self.selection.select("withoutExposedPort");
5117 query = query.arg("port", port);
5118 Container {
5119 proc: self.proc.clone(),
5120 selection: query,
5121 graphql_client: self.graphql_client.clone(),
5122 }
5123 }
5124 pub fn without_exposed_port_opts(
5131 &self,
5132 port: isize,
5133 opts: ContainerWithoutExposedPortOpts,
5134 ) -> Container {
5135 let mut query = self.selection.select("withoutExposedPort");
5136 query = query.arg("port", port);
5137 if let Some(protocol) = opts.protocol {
5138 query = query.arg("protocol", protocol);
5139 }
5140 Container {
5141 proc: self.proc.clone(),
5142 selection: query,
5143 graphql_client: self.graphql_client.clone(),
5144 }
5145 }
5146 pub fn without_file(&self, path: impl Into<String>) -> Container {
5153 let mut query = self.selection.select("withoutFile");
5154 query = query.arg("path", path.into());
5155 Container {
5156 proc: self.proc.clone(),
5157 selection: query,
5158 graphql_client: self.graphql_client.clone(),
5159 }
5160 }
5161 pub fn without_file_opts(
5168 &self,
5169 path: impl Into<String>,
5170 opts: ContainerWithoutFileOpts,
5171 ) -> Container {
5172 let mut query = self.selection.select("withoutFile");
5173 query = query.arg("path", path.into());
5174 if let Some(expand) = opts.expand {
5175 query = query.arg("expand", expand);
5176 }
5177 Container {
5178 proc: self.proc.clone(),
5179 selection: query,
5180 graphql_client: self.graphql_client.clone(),
5181 }
5182 }
5183 pub fn without_files(&self, paths: Vec<impl Into<String>>) -> Container {
5190 let mut query = self.selection.select("withoutFiles");
5191 query = query.arg(
5192 "paths",
5193 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
5194 );
5195 Container {
5196 proc: self.proc.clone(),
5197 selection: query,
5198 graphql_client: self.graphql_client.clone(),
5199 }
5200 }
5201 pub fn without_files_opts(
5208 &self,
5209 paths: Vec<impl Into<String>>,
5210 opts: ContainerWithoutFilesOpts,
5211 ) -> Container {
5212 let mut query = self.selection.select("withoutFiles");
5213 query = query.arg(
5214 "paths",
5215 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
5216 );
5217 if let Some(expand) = opts.expand {
5218 query = query.arg("expand", expand);
5219 }
5220 Container {
5221 proc: self.proc.clone(),
5222 selection: query,
5223 graphql_client: self.graphql_client.clone(),
5224 }
5225 }
5226 pub fn without_label(&self, name: impl Into<String>) -> Container {
5232 let mut query = self.selection.select("withoutLabel");
5233 query = query.arg("name", name.into());
5234 Container {
5235 proc: self.proc.clone(),
5236 selection: query,
5237 graphql_client: self.graphql_client.clone(),
5238 }
5239 }
5240 pub fn without_mount(&self, path: impl Into<String>) -> Container {
5247 let mut query = self.selection.select("withoutMount");
5248 query = query.arg("path", path.into());
5249 Container {
5250 proc: self.proc.clone(),
5251 selection: query,
5252 graphql_client: self.graphql_client.clone(),
5253 }
5254 }
5255 pub fn without_mount_opts(
5262 &self,
5263 path: impl Into<String>,
5264 opts: ContainerWithoutMountOpts,
5265 ) -> Container {
5266 let mut query = self.selection.select("withoutMount");
5267 query = query.arg("path", path.into());
5268 if let Some(expand) = opts.expand {
5269 query = query.arg("expand", expand);
5270 }
5271 Container {
5272 proc: self.proc.clone(),
5273 selection: query,
5274 graphql_client: self.graphql_client.clone(),
5275 }
5276 }
5277 pub fn without_registry_auth(&self, address: impl Into<String>) -> Container {
5285 let mut query = self.selection.select("withoutRegistryAuth");
5286 query = query.arg("address", address.into());
5287 Container {
5288 proc: self.proc.clone(),
5289 selection: query,
5290 graphql_client: self.graphql_client.clone(),
5291 }
5292 }
5293 pub fn without_secret_variable(&self, name: impl Into<String>) -> Container {
5299 let mut query = self.selection.select("withoutSecretVariable");
5300 query = query.arg("name", name.into());
5301 Container {
5302 proc: self.proc.clone(),
5303 selection: query,
5304 graphql_client: self.graphql_client.clone(),
5305 }
5306 }
5307 pub fn without_unix_socket(&self, path: impl Into<String>) -> Container {
5314 let mut query = self.selection.select("withoutUnixSocket");
5315 query = query.arg("path", path.into());
5316 Container {
5317 proc: self.proc.clone(),
5318 selection: query,
5319 graphql_client: self.graphql_client.clone(),
5320 }
5321 }
5322 pub fn without_unix_socket_opts(
5329 &self,
5330 path: impl Into<String>,
5331 opts: ContainerWithoutUnixSocketOpts,
5332 ) -> Container {
5333 let mut query = self.selection.select("withoutUnixSocket");
5334 query = query.arg("path", path.into());
5335 if let Some(expand) = opts.expand {
5336 query = query.arg("expand", expand);
5337 }
5338 Container {
5339 proc: self.proc.clone(),
5340 selection: query,
5341 graphql_client: self.graphql_client.clone(),
5342 }
5343 }
5344 pub fn without_user(&self) -> Container {
5347 let query = self.selection.select("withoutUser");
5348 Container {
5349 proc: self.proc.clone(),
5350 selection: query,
5351 graphql_client: self.graphql_client.clone(),
5352 }
5353 }
5354 pub fn without_workdir(&self) -> Container {
5357 let query = self.selection.select("withoutWorkdir");
5358 Container {
5359 proc: self.proc.clone(),
5360 selection: query,
5361 graphql_client: self.graphql_client.clone(),
5362 }
5363 }
5364 pub async fn workdir(&self) -> Result<String, DaggerError> {
5366 let query = self.selection.select("workdir");
5367 query.execute(self.graphql_client.clone()).await
5368 }
5369}
5370#[derive(Clone)]
5371pub struct CurrentModule {
5372 pub proc: Option<Arc<DaggerSessionProc>>,
5373 pub selection: Selection,
5374 pub graphql_client: DynGraphQLClient,
5375}
5376#[derive(Builder, Debug, PartialEq)]
5377pub struct CurrentModuleGeneratorsOpts<'a> {
5378 #[builder(setter(into, strip_option), default)]
5380 pub include: Option<Vec<&'a str>>,
5381}
5382#[derive(Builder, Debug, PartialEq)]
5383pub struct CurrentModuleWorkdirOpts<'a> {
5384 #[builder(setter(into, strip_option), default)]
5386 pub exclude: Option<Vec<&'a str>>,
5387 #[builder(setter(into, strip_option), default)]
5389 pub gitignore: Option<bool>,
5390 #[builder(setter(into, strip_option), default)]
5392 pub include: Option<Vec<&'a str>>,
5393}
5394impl CurrentModule {
5395 pub fn dependencies(&self) -> Vec<Module> {
5397 let query = self.selection.select("dependencies");
5398 vec![Module {
5399 proc: self.proc.clone(),
5400 selection: query,
5401 graphql_client: self.graphql_client.clone(),
5402 }]
5403 }
5404 pub fn generated_context_directory(&self) -> Directory {
5406 let query = self.selection.select("generatedContextDirectory");
5407 Directory {
5408 proc: self.proc.clone(),
5409 selection: query,
5410 graphql_client: self.graphql_client.clone(),
5411 }
5412 }
5413 pub fn generators(&self) -> GeneratorGroup {
5419 let query = self.selection.select("generators");
5420 GeneratorGroup {
5421 proc: self.proc.clone(),
5422 selection: query,
5423 graphql_client: self.graphql_client.clone(),
5424 }
5425 }
5426 pub fn generators_opts<'a>(&self, opts: CurrentModuleGeneratorsOpts<'a>) -> GeneratorGroup {
5432 let mut query = self.selection.select("generators");
5433 if let Some(include) = opts.include {
5434 query = query.arg("include", include);
5435 }
5436 GeneratorGroup {
5437 proc: self.proc.clone(),
5438 selection: query,
5439 graphql_client: self.graphql_client.clone(),
5440 }
5441 }
5442 pub async fn id(&self) -> Result<CurrentModuleId, DaggerError> {
5444 let query = self.selection.select("id");
5445 query.execute(self.graphql_client.clone()).await
5446 }
5447 pub async fn name(&self) -> Result<String, DaggerError> {
5449 let query = self.selection.select("name");
5450 query.execute(self.graphql_client.clone()).await
5451 }
5452 pub fn source(&self) -> Directory {
5454 let query = self.selection.select("source");
5455 Directory {
5456 proc: self.proc.clone(),
5457 selection: query,
5458 graphql_client: self.graphql_client.clone(),
5459 }
5460 }
5461 pub fn workdir(&self, path: impl Into<String>) -> Directory {
5468 let mut query = self.selection.select("workdir");
5469 query = query.arg("path", path.into());
5470 Directory {
5471 proc: self.proc.clone(),
5472 selection: query,
5473 graphql_client: self.graphql_client.clone(),
5474 }
5475 }
5476 pub fn workdir_opts<'a>(
5483 &self,
5484 path: impl Into<String>,
5485 opts: CurrentModuleWorkdirOpts<'a>,
5486 ) -> Directory {
5487 let mut query = self.selection.select("workdir");
5488 query = query.arg("path", path.into());
5489 if let Some(exclude) = opts.exclude {
5490 query = query.arg("exclude", exclude);
5491 }
5492 if let Some(include) = opts.include {
5493 query = query.arg("include", include);
5494 }
5495 if let Some(gitignore) = opts.gitignore {
5496 query = query.arg("gitignore", gitignore);
5497 }
5498 Directory {
5499 proc: self.proc.clone(),
5500 selection: query,
5501 graphql_client: self.graphql_client.clone(),
5502 }
5503 }
5504 pub fn workdir_file(&self, path: impl Into<String>) -> File {
5510 let mut query = self.selection.select("workdirFile");
5511 query = query.arg("path", path.into());
5512 File {
5513 proc: self.proc.clone(),
5514 selection: query,
5515 graphql_client: self.graphql_client.clone(),
5516 }
5517 }
5518}
5519#[derive(Clone)]
5520pub struct Directory {
5521 pub proc: Option<Arc<DaggerSessionProc>>,
5522 pub selection: Selection,
5523 pub graphql_client: DynGraphQLClient,
5524}
5525#[derive(Builder, Debug, PartialEq)]
5526pub struct DirectoryAsModuleOpts<'a> {
5527 #[builder(setter(into, strip_option), default)]
5530 pub source_root_path: Option<&'a str>,
5531}
5532#[derive(Builder, Debug, PartialEq)]
5533pub struct DirectoryAsModuleSourceOpts<'a> {
5534 #[builder(setter(into, strip_option), default)]
5537 pub source_root_path: Option<&'a str>,
5538}
5539#[derive(Builder, Debug, PartialEq)]
5540pub struct DirectoryDockerBuildOpts<'a> {
5541 #[builder(setter(into, strip_option), default)]
5543 pub build_args: Option<Vec<BuildArg>>,
5544 #[builder(setter(into, strip_option), default)]
5546 pub dockerfile: Option<&'a str>,
5547 #[builder(setter(into, strip_option), default)]
5550 pub no_init: Option<bool>,
5551 #[builder(setter(into, strip_option), default)]
5553 pub platform: Option<Platform>,
5554 #[builder(setter(into, strip_option), default)]
5557 pub secrets: Option<Vec<SecretId>>,
5558 #[builder(setter(into, strip_option), default)]
5562 pub ssh: Option<SocketId>,
5563 #[builder(setter(into, strip_option), default)]
5565 pub target: Option<&'a str>,
5566}
5567#[derive(Builder, Debug, PartialEq)]
5568pub struct DirectoryEntriesOpts<'a> {
5569 #[builder(setter(into, strip_option), default)]
5571 pub path: Option<&'a str>,
5572}
5573#[derive(Builder, Debug, PartialEq)]
5574pub struct DirectoryExistsOpts {
5575 #[builder(setter(into, strip_option), default)]
5577 pub do_not_follow_symlinks: Option<bool>,
5578 #[builder(setter(into, strip_option), default)]
5580 pub expected_type: Option<ExistsType>,
5581}
5582#[derive(Builder, Debug, PartialEq)]
5583pub struct DirectoryExportOpts {
5584 #[builder(setter(into, strip_option), default)]
5586 pub wipe: Option<bool>,
5587}
5588#[derive(Builder, Debug, PartialEq)]
5589pub struct DirectoryFilterOpts<'a> {
5590 #[builder(setter(into, strip_option), default)]
5592 pub exclude: Option<Vec<&'a str>>,
5593 #[builder(setter(into, strip_option), default)]
5595 pub gitignore: Option<bool>,
5596 #[builder(setter(into, strip_option), default)]
5598 pub include: Option<Vec<&'a str>>,
5599}
5600#[derive(Builder, Debug, PartialEq)]
5601pub struct DirectorySearchOpts<'a> {
5602 #[builder(setter(into, strip_option), default)]
5604 pub dotall: Option<bool>,
5605 #[builder(setter(into, strip_option), default)]
5607 pub files_only: Option<bool>,
5608 #[builder(setter(into, strip_option), default)]
5610 pub globs: Option<Vec<&'a str>>,
5611 #[builder(setter(into, strip_option), default)]
5613 pub insensitive: Option<bool>,
5614 #[builder(setter(into, strip_option), default)]
5616 pub limit: Option<isize>,
5617 #[builder(setter(into, strip_option), default)]
5619 pub literal: Option<bool>,
5620 #[builder(setter(into, strip_option), default)]
5622 pub multiline: Option<bool>,
5623 #[builder(setter(into, strip_option), default)]
5625 pub paths: Option<Vec<&'a str>>,
5626 #[builder(setter(into, strip_option), default)]
5628 pub skip_hidden: Option<bool>,
5629 #[builder(setter(into, strip_option), default)]
5631 pub skip_ignored: Option<bool>,
5632}
5633#[derive(Builder, Debug, PartialEq)]
5634pub struct DirectoryStatOpts {
5635 #[builder(setter(into, strip_option), default)]
5637 pub do_not_follow_symlinks: Option<bool>,
5638}
5639#[derive(Builder, Debug, PartialEq)]
5640pub struct DirectoryTerminalOpts<'a> {
5641 #[builder(setter(into, strip_option), default)]
5643 pub cmd: Option<Vec<&'a str>>,
5644 #[builder(setter(into, strip_option), default)]
5646 pub container: Option<ContainerId>,
5647 #[builder(setter(into, strip_option), default)]
5649 pub experimental_privileged_nesting: Option<bool>,
5650 #[builder(setter(into, strip_option), default)]
5652 pub insecure_root_capabilities: Option<bool>,
5653}
5654#[derive(Builder, Debug, PartialEq)]
5655pub struct DirectoryWithDirectoryOpts<'a> {
5656 #[builder(setter(into, strip_option), default)]
5658 pub exclude: Option<Vec<&'a str>>,
5659 #[builder(setter(into, strip_option), default)]
5661 pub gitignore: Option<bool>,
5662 #[builder(setter(into, strip_option), default)]
5664 pub include: Option<Vec<&'a str>>,
5665 #[builder(setter(into, strip_option), default)]
5669 pub owner: Option<&'a str>,
5670}
5671#[derive(Builder, Debug, PartialEq)]
5672pub struct DirectoryWithFileOpts<'a> {
5673 #[builder(setter(into, strip_option), default)]
5677 pub owner: Option<&'a str>,
5678 #[builder(setter(into, strip_option), default)]
5680 pub permissions: Option<isize>,
5681}
5682#[derive(Builder, Debug, PartialEq)]
5683pub struct DirectoryWithFilesOpts {
5684 #[builder(setter(into, strip_option), default)]
5686 pub permissions: Option<isize>,
5687}
5688#[derive(Builder, Debug, PartialEq)]
5689pub struct DirectoryWithNewDirectoryOpts {
5690 #[builder(setter(into, strip_option), default)]
5692 pub permissions: Option<isize>,
5693}
5694#[derive(Builder, Debug, PartialEq)]
5695pub struct DirectoryWithNewFileOpts {
5696 #[builder(setter(into, strip_option), default)]
5698 pub permissions: Option<isize>,
5699}
5700impl Directory {
5701 pub fn as_git(&self) -> GitRepository {
5703 let query = self.selection.select("asGit");
5704 GitRepository {
5705 proc: self.proc.clone(),
5706 selection: query,
5707 graphql_client: self.graphql_client.clone(),
5708 }
5709 }
5710 pub fn as_module(&self) -> Module {
5716 let query = self.selection.select("asModule");
5717 Module {
5718 proc: self.proc.clone(),
5719 selection: query,
5720 graphql_client: self.graphql_client.clone(),
5721 }
5722 }
5723 pub fn as_module_opts<'a>(&self, opts: DirectoryAsModuleOpts<'a>) -> Module {
5729 let mut query = self.selection.select("asModule");
5730 if let Some(source_root_path) = opts.source_root_path {
5731 query = query.arg("sourceRootPath", source_root_path);
5732 }
5733 Module {
5734 proc: self.proc.clone(),
5735 selection: query,
5736 graphql_client: self.graphql_client.clone(),
5737 }
5738 }
5739 pub fn as_module_source(&self) -> ModuleSource {
5745 let query = self.selection.select("asModuleSource");
5746 ModuleSource {
5747 proc: self.proc.clone(),
5748 selection: query,
5749 graphql_client: self.graphql_client.clone(),
5750 }
5751 }
5752 pub fn as_module_source_opts<'a>(&self, opts: DirectoryAsModuleSourceOpts<'a>) -> ModuleSource {
5758 let mut query = self.selection.select("asModuleSource");
5759 if let Some(source_root_path) = opts.source_root_path {
5760 query = query.arg("sourceRootPath", source_root_path);
5761 }
5762 ModuleSource {
5763 proc: self.proc.clone(),
5764 selection: query,
5765 graphql_client: self.graphql_client.clone(),
5766 }
5767 }
5768 pub fn changes(&self, from: impl IntoID<DirectoryId>) -> Changeset {
5775 let mut query = self.selection.select("changes");
5776 query = query.arg_lazy(
5777 "from",
5778 Box::new(move || {
5779 let from = from.clone();
5780 Box::pin(async move { from.into_id().await.unwrap().quote() })
5781 }),
5782 );
5783 Changeset {
5784 proc: self.proc.clone(),
5785 selection: query,
5786 graphql_client: self.graphql_client.clone(),
5787 }
5788 }
5789 pub fn chown(&self, path: impl Into<String>, owner: impl Into<String>) -> Directory {
5800 let mut query = self.selection.select("chown");
5801 query = query.arg("path", path.into());
5802 query = query.arg("owner", owner.into());
5803 Directory {
5804 proc: self.proc.clone(),
5805 selection: query,
5806 graphql_client: self.graphql_client.clone(),
5807 }
5808 }
5809 pub fn diff(&self, other: impl IntoID<DirectoryId>) -> Directory {
5815 let mut query = self.selection.select("diff");
5816 query = query.arg_lazy(
5817 "other",
5818 Box::new(move || {
5819 let other = other.clone();
5820 Box::pin(async move { other.into_id().await.unwrap().quote() })
5821 }),
5822 );
5823 Directory {
5824 proc: self.proc.clone(),
5825 selection: query,
5826 graphql_client: self.graphql_client.clone(),
5827 }
5828 }
5829 pub async fn digest(&self) -> Result<String, DaggerError> {
5831 let query = self.selection.select("digest");
5832 query.execute(self.graphql_client.clone()).await
5833 }
5834 pub fn directory(&self, path: impl Into<String>) -> Directory {
5840 let mut query = self.selection.select("directory");
5841 query = query.arg("path", path.into());
5842 Directory {
5843 proc: self.proc.clone(),
5844 selection: query,
5845 graphql_client: self.graphql_client.clone(),
5846 }
5847 }
5848 pub fn docker_build(&self) -> Container {
5854 let query = self.selection.select("dockerBuild");
5855 Container {
5856 proc: self.proc.clone(),
5857 selection: query,
5858 graphql_client: self.graphql_client.clone(),
5859 }
5860 }
5861 pub fn docker_build_opts<'a>(&self, opts: DirectoryDockerBuildOpts<'a>) -> Container {
5867 let mut query = self.selection.select("dockerBuild");
5868 if let Some(dockerfile) = opts.dockerfile {
5869 query = query.arg("dockerfile", dockerfile);
5870 }
5871 if let Some(platform) = opts.platform {
5872 query = query.arg("platform", platform);
5873 }
5874 if let Some(build_args) = opts.build_args {
5875 query = query.arg("buildArgs", build_args);
5876 }
5877 if let Some(target) = opts.target {
5878 query = query.arg("target", target);
5879 }
5880 if let Some(secrets) = opts.secrets {
5881 query = query.arg("secrets", secrets);
5882 }
5883 if let Some(no_init) = opts.no_init {
5884 query = query.arg("noInit", no_init);
5885 }
5886 if let Some(ssh) = opts.ssh {
5887 query = query.arg("ssh", ssh);
5888 }
5889 Container {
5890 proc: self.proc.clone(),
5891 selection: query,
5892 graphql_client: self.graphql_client.clone(),
5893 }
5894 }
5895 pub async fn entries(&self) -> Result<Vec<String>, DaggerError> {
5901 let query = self.selection.select("entries");
5902 query.execute(self.graphql_client.clone()).await
5903 }
5904 pub async fn entries_opts<'a>(
5910 &self,
5911 opts: DirectoryEntriesOpts<'a>,
5912 ) -> Result<Vec<String>, DaggerError> {
5913 let mut query = self.selection.select("entries");
5914 if let Some(path) = opts.path {
5915 query = query.arg("path", path);
5916 }
5917 query.execute(self.graphql_client.clone()).await
5918 }
5919 pub async fn exists(&self, path: impl Into<String>) -> Result<bool, DaggerError> {
5926 let mut query = self.selection.select("exists");
5927 query = query.arg("path", path.into());
5928 query.execute(self.graphql_client.clone()).await
5929 }
5930 pub async fn exists_opts(
5937 &self,
5938 path: impl Into<String>,
5939 opts: DirectoryExistsOpts,
5940 ) -> Result<bool, DaggerError> {
5941 let mut query = self.selection.select("exists");
5942 query = query.arg("path", path.into());
5943 if let Some(expected_type) = opts.expected_type {
5944 query = query.arg("expectedType", expected_type);
5945 }
5946 if let Some(do_not_follow_symlinks) = opts.do_not_follow_symlinks {
5947 query = query.arg("doNotFollowSymlinks", do_not_follow_symlinks);
5948 }
5949 query.execute(self.graphql_client.clone()).await
5950 }
5951 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
5958 let mut query = self.selection.select("export");
5959 query = query.arg("path", path.into());
5960 query.execute(self.graphql_client.clone()).await
5961 }
5962 pub async fn export_opts(
5969 &self,
5970 path: impl Into<String>,
5971 opts: DirectoryExportOpts,
5972 ) -> Result<String, DaggerError> {
5973 let mut query = self.selection.select("export");
5974 query = query.arg("path", path.into());
5975 if let Some(wipe) = opts.wipe {
5976 query = query.arg("wipe", wipe);
5977 }
5978 query.execute(self.graphql_client.clone()).await
5979 }
5980 pub fn file(&self, path: impl Into<String>) -> File {
5986 let mut query = self.selection.select("file");
5987 query = query.arg("path", path.into());
5988 File {
5989 proc: self.proc.clone(),
5990 selection: query,
5991 graphql_client: self.graphql_client.clone(),
5992 }
5993 }
5994 pub fn filter(&self) -> Directory {
6000 let query = self.selection.select("filter");
6001 Directory {
6002 proc: self.proc.clone(),
6003 selection: query,
6004 graphql_client: self.graphql_client.clone(),
6005 }
6006 }
6007 pub fn filter_opts<'a>(&self, opts: DirectoryFilterOpts<'a>) -> Directory {
6013 let mut query = self.selection.select("filter");
6014 if let Some(exclude) = opts.exclude {
6015 query = query.arg("exclude", exclude);
6016 }
6017 if let Some(include) = opts.include {
6018 query = query.arg("include", include);
6019 }
6020 if let Some(gitignore) = opts.gitignore {
6021 query = query.arg("gitignore", gitignore);
6022 }
6023 Directory {
6024 proc: self.proc.clone(),
6025 selection: query,
6026 graphql_client: self.graphql_client.clone(),
6027 }
6028 }
6029 pub async fn find_up(
6036 &self,
6037 name: impl Into<String>,
6038 start: impl Into<String>,
6039 ) -> Result<String, DaggerError> {
6040 let mut query = self.selection.select("findUp");
6041 query = query.arg("name", name.into());
6042 query = query.arg("start", start.into());
6043 query.execute(self.graphql_client.clone()).await
6044 }
6045 pub async fn glob(&self, pattern: impl Into<String>) -> Result<Vec<String>, DaggerError> {
6051 let mut query = self.selection.select("glob");
6052 query = query.arg("pattern", pattern.into());
6053 query.execute(self.graphql_client.clone()).await
6054 }
6055 pub async fn id(&self) -> Result<DirectoryId, DaggerError> {
6057 let query = self.selection.select("id");
6058 query.execute(self.graphql_client.clone()).await
6059 }
6060 pub async fn name(&self) -> Result<String, DaggerError> {
6062 let query = self.selection.select("name");
6063 query.execute(self.graphql_client.clone()).await
6064 }
6065 pub fn search(&self, pattern: impl Into<String>) -> Vec<SearchResult> {
6073 let mut query = self.selection.select("search");
6074 query = query.arg("pattern", pattern.into());
6075 vec![SearchResult {
6076 proc: self.proc.clone(),
6077 selection: query,
6078 graphql_client: self.graphql_client.clone(),
6079 }]
6080 }
6081 pub fn search_opts<'a>(
6089 &self,
6090 pattern: impl Into<String>,
6091 opts: DirectorySearchOpts<'a>,
6092 ) -> Vec<SearchResult> {
6093 let mut query = self.selection.select("search");
6094 query = query.arg("pattern", pattern.into());
6095 if let Some(paths) = opts.paths {
6096 query = query.arg("paths", paths);
6097 }
6098 if let Some(globs) = opts.globs {
6099 query = query.arg("globs", globs);
6100 }
6101 if let Some(literal) = opts.literal {
6102 query = query.arg("literal", literal);
6103 }
6104 if let Some(multiline) = opts.multiline {
6105 query = query.arg("multiline", multiline);
6106 }
6107 if let Some(dotall) = opts.dotall {
6108 query = query.arg("dotall", dotall);
6109 }
6110 if let Some(insensitive) = opts.insensitive {
6111 query = query.arg("insensitive", insensitive);
6112 }
6113 if let Some(skip_ignored) = opts.skip_ignored {
6114 query = query.arg("skipIgnored", skip_ignored);
6115 }
6116 if let Some(skip_hidden) = opts.skip_hidden {
6117 query = query.arg("skipHidden", skip_hidden);
6118 }
6119 if let Some(files_only) = opts.files_only {
6120 query = query.arg("filesOnly", files_only);
6121 }
6122 if let Some(limit) = opts.limit {
6123 query = query.arg("limit", limit);
6124 }
6125 vec![SearchResult {
6126 proc: self.proc.clone(),
6127 selection: query,
6128 graphql_client: self.graphql_client.clone(),
6129 }]
6130 }
6131 pub fn stat(&self, path: impl Into<String>) -> Stat {
6138 let mut query = self.selection.select("stat");
6139 query = query.arg("path", path.into());
6140 Stat {
6141 proc: self.proc.clone(),
6142 selection: query,
6143 graphql_client: self.graphql_client.clone(),
6144 }
6145 }
6146 pub fn stat_opts(&self, path: impl Into<String>, opts: DirectoryStatOpts) -> Stat {
6153 let mut query = self.selection.select("stat");
6154 query = query.arg("path", path.into());
6155 if let Some(do_not_follow_symlinks) = opts.do_not_follow_symlinks {
6156 query = query.arg("doNotFollowSymlinks", do_not_follow_symlinks);
6157 }
6158 Stat {
6159 proc: self.proc.clone(),
6160 selection: query,
6161 graphql_client: self.graphql_client.clone(),
6162 }
6163 }
6164 pub async fn sync(&self) -> Result<DirectoryId, DaggerError> {
6166 let query = self.selection.select("sync");
6167 query.execute(self.graphql_client.clone()).await
6168 }
6169 pub fn terminal(&self) -> Directory {
6175 let query = self.selection.select("terminal");
6176 Directory {
6177 proc: self.proc.clone(),
6178 selection: query,
6179 graphql_client: self.graphql_client.clone(),
6180 }
6181 }
6182 pub fn terminal_opts<'a>(&self, opts: DirectoryTerminalOpts<'a>) -> Directory {
6188 let mut query = self.selection.select("terminal");
6189 if let Some(container) = opts.container {
6190 query = query.arg("container", container);
6191 }
6192 if let Some(cmd) = opts.cmd {
6193 query = query.arg("cmd", cmd);
6194 }
6195 if let Some(experimental_privileged_nesting) = opts.experimental_privileged_nesting {
6196 query = query.arg(
6197 "experimentalPrivilegedNesting",
6198 experimental_privileged_nesting,
6199 );
6200 }
6201 if let Some(insecure_root_capabilities) = opts.insecure_root_capabilities {
6202 query = query.arg("insecureRootCapabilities", insecure_root_capabilities);
6203 }
6204 Directory {
6205 proc: self.proc.clone(),
6206 selection: query,
6207 graphql_client: self.graphql_client.clone(),
6208 }
6209 }
6210 pub fn with_changes(&self, changes: impl IntoID<ChangesetId>) -> Directory {
6216 let mut query = self.selection.select("withChanges");
6217 query = query.arg_lazy(
6218 "changes",
6219 Box::new(move || {
6220 let changes = changes.clone();
6221 Box::pin(async move { changes.into_id().await.unwrap().quote() })
6222 }),
6223 );
6224 Directory {
6225 proc: self.proc.clone(),
6226 selection: query,
6227 graphql_client: self.graphql_client.clone(),
6228 }
6229 }
6230 pub fn with_directory(
6238 &self,
6239 path: impl Into<String>,
6240 source: impl IntoID<DirectoryId>,
6241 ) -> Directory {
6242 let mut query = self.selection.select("withDirectory");
6243 query = query.arg("path", path.into());
6244 query = query.arg_lazy(
6245 "source",
6246 Box::new(move || {
6247 let source = source.clone();
6248 Box::pin(async move { source.into_id().await.unwrap().quote() })
6249 }),
6250 );
6251 Directory {
6252 proc: self.proc.clone(),
6253 selection: query,
6254 graphql_client: self.graphql_client.clone(),
6255 }
6256 }
6257 pub fn with_directory_opts<'a>(
6265 &self,
6266 path: impl Into<String>,
6267 source: impl IntoID<DirectoryId>,
6268 opts: DirectoryWithDirectoryOpts<'a>,
6269 ) -> Directory {
6270 let mut query = self.selection.select("withDirectory");
6271 query = query.arg("path", path.into());
6272 query = query.arg_lazy(
6273 "source",
6274 Box::new(move || {
6275 let source = source.clone();
6276 Box::pin(async move { source.into_id().await.unwrap().quote() })
6277 }),
6278 );
6279 if let Some(exclude) = opts.exclude {
6280 query = query.arg("exclude", exclude);
6281 }
6282 if let Some(include) = opts.include {
6283 query = query.arg("include", include);
6284 }
6285 if let Some(gitignore) = opts.gitignore {
6286 query = query.arg("gitignore", gitignore);
6287 }
6288 if let Some(owner) = opts.owner {
6289 query = query.arg("owner", owner);
6290 }
6291 Directory {
6292 proc: self.proc.clone(),
6293 selection: query,
6294 graphql_client: self.graphql_client.clone(),
6295 }
6296 }
6297 pub fn with_error(&self, err: impl Into<String>) -> Directory {
6303 let mut query = self.selection.select("withError");
6304 query = query.arg("err", err.into());
6305 Directory {
6306 proc: self.proc.clone(),
6307 selection: query,
6308 graphql_client: self.graphql_client.clone(),
6309 }
6310 }
6311 pub fn with_file(&self, path: impl Into<String>, source: impl IntoID<FileId>) -> Directory {
6319 let mut query = self.selection.select("withFile");
6320 query = query.arg("path", path.into());
6321 query = query.arg_lazy(
6322 "source",
6323 Box::new(move || {
6324 let source = source.clone();
6325 Box::pin(async move { source.into_id().await.unwrap().quote() })
6326 }),
6327 );
6328 Directory {
6329 proc: self.proc.clone(),
6330 selection: query,
6331 graphql_client: self.graphql_client.clone(),
6332 }
6333 }
6334 pub fn with_file_opts<'a>(
6342 &self,
6343 path: impl Into<String>,
6344 source: impl IntoID<FileId>,
6345 opts: DirectoryWithFileOpts<'a>,
6346 ) -> Directory {
6347 let mut query = self.selection.select("withFile");
6348 query = query.arg("path", path.into());
6349 query = query.arg_lazy(
6350 "source",
6351 Box::new(move || {
6352 let source = source.clone();
6353 Box::pin(async move { source.into_id().await.unwrap().quote() })
6354 }),
6355 );
6356 if let Some(permissions) = opts.permissions {
6357 query = query.arg("permissions", permissions);
6358 }
6359 if let Some(owner) = opts.owner {
6360 query = query.arg("owner", owner);
6361 }
6362 Directory {
6363 proc: self.proc.clone(),
6364 selection: query,
6365 graphql_client: self.graphql_client.clone(),
6366 }
6367 }
6368 pub fn with_files(&self, path: impl Into<String>, sources: Vec<FileId>) -> Directory {
6376 let mut query = self.selection.select("withFiles");
6377 query = query.arg("path", path.into());
6378 query = query.arg("sources", sources);
6379 Directory {
6380 proc: self.proc.clone(),
6381 selection: query,
6382 graphql_client: self.graphql_client.clone(),
6383 }
6384 }
6385 pub fn with_files_opts(
6393 &self,
6394 path: impl Into<String>,
6395 sources: Vec<FileId>,
6396 opts: DirectoryWithFilesOpts,
6397 ) -> Directory {
6398 let mut query = self.selection.select("withFiles");
6399 query = query.arg("path", path.into());
6400 query = query.arg("sources", sources);
6401 if let Some(permissions) = opts.permissions {
6402 query = query.arg("permissions", permissions);
6403 }
6404 Directory {
6405 proc: self.proc.clone(),
6406 selection: query,
6407 graphql_client: self.graphql_client.clone(),
6408 }
6409 }
6410 pub fn with_new_directory(&self, path: impl Into<String>) -> Directory {
6417 let mut query = self.selection.select("withNewDirectory");
6418 query = query.arg("path", path.into());
6419 Directory {
6420 proc: self.proc.clone(),
6421 selection: query,
6422 graphql_client: self.graphql_client.clone(),
6423 }
6424 }
6425 pub fn with_new_directory_opts(
6432 &self,
6433 path: impl Into<String>,
6434 opts: DirectoryWithNewDirectoryOpts,
6435 ) -> Directory {
6436 let mut query = self.selection.select("withNewDirectory");
6437 query = query.arg("path", path.into());
6438 if let Some(permissions) = opts.permissions {
6439 query = query.arg("permissions", permissions);
6440 }
6441 Directory {
6442 proc: self.proc.clone(),
6443 selection: query,
6444 graphql_client: self.graphql_client.clone(),
6445 }
6446 }
6447 pub fn with_new_file(&self, path: impl Into<String>, contents: impl Into<String>) -> Directory {
6455 let mut query = self.selection.select("withNewFile");
6456 query = query.arg("path", path.into());
6457 query = query.arg("contents", contents.into());
6458 Directory {
6459 proc: self.proc.clone(),
6460 selection: query,
6461 graphql_client: self.graphql_client.clone(),
6462 }
6463 }
6464 pub fn with_new_file_opts(
6472 &self,
6473 path: impl Into<String>,
6474 contents: impl Into<String>,
6475 opts: DirectoryWithNewFileOpts,
6476 ) -> Directory {
6477 let mut query = self.selection.select("withNewFile");
6478 query = query.arg("path", path.into());
6479 query = query.arg("contents", contents.into());
6480 if let Some(permissions) = opts.permissions {
6481 query = query.arg("permissions", permissions);
6482 }
6483 Directory {
6484 proc: self.proc.clone(),
6485 selection: query,
6486 graphql_client: self.graphql_client.clone(),
6487 }
6488 }
6489 pub fn with_patch(&self, patch: impl Into<String>) -> Directory {
6495 let mut query = self.selection.select("withPatch");
6496 query = query.arg("patch", patch.into());
6497 Directory {
6498 proc: self.proc.clone(),
6499 selection: query,
6500 graphql_client: self.graphql_client.clone(),
6501 }
6502 }
6503 pub fn with_patch_file(&self, patch: impl IntoID<FileId>) -> Directory {
6509 let mut query = self.selection.select("withPatchFile");
6510 query = query.arg_lazy(
6511 "patch",
6512 Box::new(move || {
6513 let patch = patch.clone();
6514 Box::pin(async move { patch.into_id().await.unwrap().quote() })
6515 }),
6516 );
6517 Directory {
6518 proc: self.proc.clone(),
6519 selection: query,
6520 graphql_client: self.graphql_client.clone(),
6521 }
6522 }
6523 pub fn with_symlink(
6530 &self,
6531 target: impl Into<String>,
6532 link_name: impl Into<String>,
6533 ) -> Directory {
6534 let mut query = self.selection.select("withSymlink");
6535 query = query.arg("target", target.into());
6536 query = query.arg("linkName", link_name.into());
6537 Directory {
6538 proc: self.proc.clone(),
6539 selection: query,
6540 graphql_client: self.graphql_client.clone(),
6541 }
6542 }
6543 pub fn with_timestamps(&self, timestamp: isize) -> Directory {
6551 let mut query = self.selection.select("withTimestamps");
6552 query = query.arg("timestamp", timestamp);
6553 Directory {
6554 proc: self.proc.clone(),
6555 selection: query,
6556 graphql_client: self.graphql_client.clone(),
6557 }
6558 }
6559 pub fn without_directory(&self, path: impl Into<String>) -> Directory {
6565 let mut query = self.selection.select("withoutDirectory");
6566 query = query.arg("path", path.into());
6567 Directory {
6568 proc: self.proc.clone(),
6569 selection: query,
6570 graphql_client: self.graphql_client.clone(),
6571 }
6572 }
6573 pub fn without_file(&self, path: impl Into<String>) -> Directory {
6579 let mut query = self.selection.select("withoutFile");
6580 query = query.arg("path", path.into());
6581 Directory {
6582 proc: self.proc.clone(),
6583 selection: query,
6584 graphql_client: self.graphql_client.clone(),
6585 }
6586 }
6587 pub fn without_files(&self, paths: Vec<impl Into<String>>) -> Directory {
6593 let mut query = self.selection.select("withoutFiles");
6594 query = query.arg(
6595 "paths",
6596 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
6597 );
6598 Directory {
6599 proc: self.proc.clone(),
6600 selection: query,
6601 graphql_client: self.graphql_client.clone(),
6602 }
6603 }
6604}
6605#[derive(Clone)]
6606pub struct Engine {
6607 pub proc: Option<Arc<DaggerSessionProc>>,
6608 pub selection: Selection,
6609 pub graphql_client: DynGraphQLClient,
6610}
6611impl Engine {
6612 pub async fn clients(&self) -> Result<Vec<String>, DaggerError> {
6614 let query = self.selection.select("clients");
6615 query.execute(self.graphql_client.clone()).await
6616 }
6617 pub async fn id(&self) -> Result<EngineId, DaggerError> {
6619 let query = self.selection.select("id");
6620 query.execute(self.graphql_client.clone()).await
6621 }
6622 pub fn local_cache(&self) -> EngineCache {
6624 let query = self.selection.select("localCache");
6625 EngineCache {
6626 proc: self.proc.clone(),
6627 selection: query,
6628 graphql_client: self.graphql_client.clone(),
6629 }
6630 }
6631 pub async fn name(&self) -> Result<String, DaggerError> {
6633 let query = self.selection.select("name");
6634 query.execute(self.graphql_client.clone()).await
6635 }
6636}
6637#[derive(Clone)]
6638pub struct EngineCache {
6639 pub proc: Option<Arc<DaggerSessionProc>>,
6640 pub selection: Selection,
6641 pub graphql_client: DynGraphQLClient,
6642}
6643#[derive(Builder, Debug, PartialEq)]
6644pub struct EngineCacheEntrySetOpts<'a> {
6645 #[builder(setter(into, strip_option), default)]
6646 pub key: Option<&'a str>,
6647}
6648#[derive(Builder, Debug, PartialEq)]
6649pub struct EngineCachePruneOpts<'a> {
6650 #[builder(setter(into, strip_option), default)]
6652 pub max_used_space: Option<&'a str>,
6653 #[builder(setter(into, strip_option), default)]
6655 pub min_free_space: Option<&'a str>,
6656 #[builder(setter(into, strip_option), default)]
6658 pub reserved_space: Option<&'a str>,
6659 #[builder(setter(into, strip_option), default)]
6661 pub target_space: Option<&'a str>,
6662 #[builder(setter(into, strip_option), default)]
6664 pub use_default_policy: Option<bool>,
6665}
6666impl EngineCache {
6667 pub fn entry_set(&self) -> EngineCacheEntrySet {
6673 let query = self.selection.select("entrySet");
6674 EngineCacheEntrySet {
6675 proc: self.proc.clone(),
6676 selection: query,
6677 graphql_client: self.graphql_client.clone(),
6678 }
6679 }
6680 pub fn entry_set_opts<'a>(&self, opts: EngineCacheEntrySetOpts<'a>) -> EngineCacheEntrySet {
6686 let mut query = self.selection.select("entrySet");
6687 if let Some(key) = opts.key {
6688 query = query.arg("key", key);
6689 }
6690 EngineCacheEntrySet {
6691 proc: self.proc.clone(),
6692 selection: query,
6693 graphql_client: self.graphql_client.clone(),
6694 }
6695 }
6696 pub async fn id(&self) -> Result<EngineCacheId, DaggerError> {
6698 let query = self.selection.select("id");
6699 query.execute(self.graphql_client.clone()).await
6700 }
6701 pub async fn max_used_space(&self) -> Result<isize, DaggerError> {
6703 let query = self.selection.select("maxUsedSpace");
6704 query.execute(self.graphql_client.clone()).await
6705 }
6706 pub async fn min_free_space(&self) -> Result<isize, DaggerError> {
6708 let query = self.selection.select("minFreeSpace");
6709 query.execute(self.graphql_client.clone()).await
6710 }
6711 pub async fn prune(&self) -> Result<Void, DaggerError> {
6717 let query = self.selection.select("prune");
6718 query.execute(self.graphql_client.clone()).await
6719 }
6720 pub async fn prune_opts<'a>(
6726 &self,
6727 opts: EngineCachePruneOpts<'a>,
6728 ) -> Result<Void, DaggerError> {
6729 let mut query = self.selection.select("prune");
6730 if let Some(use_default_policy) = opts.use_default_policy {
6731 query = query.arg("useDefaultPolicy", use_default_policy);
6732 }
6733 if let Some(max_used_space) = opts.max_used_space {
6734 query = query.arg("maxUsedSpace", max_used_space);
6735 }
6736 if let Some(reserved_space) = opts.reserved_space {
6737 query = query.arg("reservedSpace", reserved_space);
6738 }
6739 if let Some(min_free_space) = opts.min_free_space {
6740 query = query.arg("minFreeSpace", min_free_space);
6741 }
6742 if let Some(target_space) = opts.target_space {
6743 query = query.arg("targetSpace", target_space);
6744 }
6745 query.execute(self.graphql_client.clone()).await
6746 }
6747 pub async fn reserved_space(&self) -> Result<isize, DaggerError> {
6749 let query = self.selection.select("reservedSpace");
6750 query.execute(self.graphql_client.clone()).await
6751 }
6752 pub async fn target_space(&self) -> Result<isize, DaggerError> {
6754 let query = self.selection.select("targetSpace");
6755 query.execute(self.graphql_client.clone()).await
6756 }
6757}
6758#[derive(Clone)]
6759pub struct EngineCacheEntry {
6760 pub proc: Option<Arc<DaggerSessionProc>>,
6761 pub selection: Selection,
6762 pub graphql_client: DynGraphQLClient,
6763}
6764impl EngineCacheEntry {
6765 pub async fn actively_used(&self) -> Result<bool, DaggerError> {
6767 let query = self.selection.select("activelyUsed");
6768 query.execute(self.graphql_client.clone()).await
6769 }
6770 pub async fn created_time_unix_nano(&self) -> Result<isize, DaggerError> {
6772 let query = self.selection.select("createdTimeUnixNano");
6773 query.execute(self.graphql_client.clone()).await
6774 }
6775 pub async fn description(&self) -> Result<String, DaggerError> {
6777 let query = self.selection.select("description");
6778 query.execute(self.graphql_client.clone()).await
6779 }
6780 pub async fn disk_space_bytes(&self) -> Result<isize, DaggerError> {
6782 let query = self.selection.select("diskSpaceBytes");
6783 query.execute(self.graphql_client.clone()).await
6784 }
6785 pub async fn id(&self) -> Result<EngineCacheEntryId, DaggerError> {
6787 let query = self.selection.select("id");
6788 query.execute(self.graphql_client.clone()).await
6789 }
6790 pub async fn most_recent_use_time_unix_nano(&self) -> Result<isize, DaggerError> {
6792 let query = self.selection.select("mostRecentUseTimeUnixNano");
6793 query.execute(self.graphql_client.clone()).await
6794 }
6795 pub async fn record_type(&self) -> Result<String, DaggerError> {
6797 let query = self.selection.select("recordType");
6798 query.execute(self.graphql_client.clone()).await
6799 }
6800}
6801#[derive(Clone)]
6802pub struct EngineCacheEntrySet {
6803 pub proc: Option<Arc<DaggerSessionProc>>,
6804 pub selection: Selection,
6805 pub graphql_client: DynGraphQLClient,
6806}
6807impl EngineCacheEntrySet {
6808 pub async fn disk_space_bytes(&self) -> Result<isize, DaggerError> {
6810 let query = self.selection.select("diskSpaceBytes");
6811 query.execute(self.graphql_client.clone()).await
6812 }
6813 pub fn entries(&self) -> Vec<EngineCacheEntry> {
6815 let query = self.selection.select("entries");
6816 vec![EngineCacheEntry {
6817 proc: self.proc.clone(),
6818 selection: query,
6819 graphql_client: self.graphql_client.clone(),
6820 }]
6821 }
6822 pub async fn entry_count(&self) -> Result<isize, DaggerError> {
6824 let query = self.selection.select("entryCount");
6825 query.execute(self.graphql_client.clone()).await
6826 }
6827 pub async fn id(&self) -> Result<EngineCacheEntrySetId, DaggerError> {
6829 let query = self.selection.select("id");
6830 query.execute(self.graphql_client.clone()).await
6831 }
6832}
6833#[derive(Clone)]
6834pub struct EnumTypeDef {
6835 pub proc: Option<Arc<DaggerSessionProc>>,
6836 pub selection: Selection,
6837 pub graphql_client: DynGraphQLClient,
6838}
6839impl EnumTypeDef {
6840 pub async fn description(&self) -> Result<String, DaggerError> {
6842 let query = self.selection.select("description");
6843 query.execute(self.graphql_client.clone()).await
6844 }
6845 pub async fn id(&self) -> Result<EnumTypeDefId, DaggerError> {
6847 let query = self.selection.select("id");
6848 query.execute(self.graphql_client.clone()).await
6849 }
6850 pub fn members(&self) -> Vec<EnumValueTypeDef> {
6852 let query = self.selection.select("members");
6853 vec![EnumValueTypeDef {
6854 proc: self.proc.clone(),
6855 selection: query,
6856 graphql_client: self.graphql_client.clone(),
6857 }]
6858 }
6859 pub async fn name(&self) -> Result<String, DaggerError> {
6861 let query = self.selection.select("name");
6862 query.execute(self.graphql_client.clone()).await
6863 }
6864 pub fn source_map(&self) -> SourceMap {
6866 let query = self.selection.select("sourceMap");
6867 SourceMap {
6868 proc: self.proc.clone(),
6869 selection: query,
6870 graphql_client: self.graphql_client.clone(),
6871 }
6872 }
6873 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
6875 let query = self.selection.select("sourceModuleName");
6876 query.execute(self.graphql_client.clone()).await
6877 }
6878 pub fn values(&self) -> Vec<EnumValueTypeDef> {
6879 let query = self.selection.select("values");
6880 vec![EnumValueTypeDef {
6881 proc: self.proc.clone(),
6882 selection: query,
6883 graphql_client: self.graphql_client.clone(),
6884 }]
6885 }
6886}
6887#[derive(Clone)]
6888pub struct EnumValueTypeDef {
6889 pub proc: Option<Arc<DaggerSessionProc>>,
6890 pub selection: Selection,
6891 pub graphql_client: DynGraphQLClient,
6892}
6893impl EnumValueTypeDef {
6894 pub async fn deprecated(&self) -> Result<String, DaggerError> {
6896 let query = self.selection.select("deprecated");
6897 query.execute(self.graphql_client.clone()).await
6898 }
6899 pub async fn description(&self) -> Result<String, DaggerError> {
6901 let query = self.selection.select("description");
6902 query.execute(self.graphql_client.clone()).await
6903 }
6904 pub async fn id(&self) -> Result<EnumValueTypeDefId, DaggerError> {
6906 let query = self.selection.select("id");
6907 query.execute(self.graphql_client.clone()).await
6908 }
6909 pub async fn name(&self) -> Result<String, DaggerError> {
6911 let query = self.selection.select("name");
6912 query.execute(self.graphql_client.clone()).await
6913 }
6914 pub fn source_map(&self) -> SourceMap {
6916 let query = self.selection.select("sourceMap");
6917 SourceMap {
6918 proc: self.proc.clone(),
6919 selection: query,
6920 graphql_client: self.graphql_client.clone(),
6921 }
6922 }
6923 pub async fn value(&self) -> Result<String, DaggerError> {
6925 let query = self.selection.select("value");
6926 query.execute(self.graphql_client.clone()).await
6927 }
6928}
6929#[derive(Clone)]
6930pub struct Env {
6931 pub proc: Option<Arc<DaggerSessionProc>>,
6932 pub selection: Selection,
6933 pub graphql_client: DynGraphQLClient,
6934}
6935#[derive(Builder, Debug, PartialEq)]
6936pub struct EnvChecksOpts<'a> {
6937 #[builder(setter(into, strip_option), default)]
6939 pub include: Option<Vec<&'a str>>,
6940}
6941impl Env {
6942 pub fn check(&self, name: impl Into<String>) -> Check {
6948 let mut query = self.selection.select("check");
6949 query = query.arg("name", name.into());
6950 Check {
6951 proc: self.proc.clone(),
6952 selection: query,
6953 graphql_client: self.graphql_client.clone(),
6954 }
6955 }
6956 pub fn checks(&self) -> CheckGroup {
6962 let query = self.selection.select("checks");
6963 CheckGroup {
6964 proc: self.proc.clone(),
6965 selection: query,
6966 graphql_client: self.graphql_client.clone(),
6967 }
6968 }
6969 pub fn checks_opts<'a>(&self, opts: EnvChecksOpts<'a>) -> CheckGroup {
6975 let mut query = self.selection.select("checks");
6976 if let Some(include) = opts.include {
6977 query = query.arg("include", include);
6978 }
6979 CheckGroup {
6980 proc: self.proc.clone(),
6981 selection: query,
6982 graphql_client: self.graphql_client.clone(),
6983 }
6984 }
6985 pub async fn id(&self) -> Result<EnvId, DaggerError> {
6987 let query = self.selection.select("id");
6988 query.execute(self.graphql_client.clone()).await
6989 }
6990 pub fn input(&self, name: impl Into<String>) -> Binding {
6992 let mut query = self.selection.select("input");
6993 query = query.arg("name", name.into());
6994 Binding {
6995 proc: self.proc.clone(),
6996 selection: query,
6997 graphql_client: self.graphql_client.clone(),
6998 }
6999 }
7000 pub fn inputs(&self) -> Vec<Binding> {
7002 let query = self.selection.select("inputs");
7003 vec![Binding {
7004 proc: self.proc.clone(),
7005 selection: query,
7006 graphql_client: self.graphql_client.clone(),
7007 }]
7008 }
7009 pub fn output(&self, name: impl Into<String>) -> Binding {
7011 let mut query = self.selection.select("output");
7012 query = query.arg("name", name.into());
7013 Binding {
7014 proc: self.proc.clone(),
7015 selection: query,
7016 graphql_client: self.graphql_client.clone(),
7017 }
7018 }
7019 pub fn outputs(&self) -> Vec<Binding> {
7021 let query = self.selection.select("outputs");
7022 vec![Binding {
7023 proc: self.proc.clone(),
7024 selection: query,
7025 graphql_client: self.graphql_client.clone(),
7026 }]
7027 }
7028 pub fn with_address_input(
7036 &self,
7037 name: impl Into<String>,
7038 value: impl IntoID<AddressId>,
7039 description: impl Into<String>,
7040 ) -> Env {
7041 let mut query = self.selection.select("withAddressInput");
7042 query = query.arg("name", name.into());
7043 query = query.arg_lazy(
7044 "value",
7045 Box::new(move || {
7046 let value = value.clone();
7047 Box::pin(async move { value.into_id().await.unwrap().quote() })
7048 }),
7049 );
7050 query = query.arg("description", description.into());
7051 Env {
7052 proc: self.proc.clone(),
7053 selection: query,
7054 graphql_client: self.graphql_client.clone(),
7055 }
7056 }
7057 pub fn with_address_output(
7064 &self,
7065 name: impl Into<String>,
7066 description: impl Into<String>,
7067 ) -> Env {
7068 let mut query = self.selection.select("withAddressOutput");
7069 query = query.arg("name", name.into());
7070 query = query.arg("description", description.into());
7071 Env {
7072 proc: self.proc.clone(),
7073 selection: query,
7074 graphql_client: self.graphql_client.clone(),
7075 }
7076 }
7077 pub fn with_cache_volume_input(
7085 &self,
7086 name: impl Into<String>,
7087 value: impl IntoID<CacheVolumeId>,
7088 description: impl Into<String>,
7089 ) -> Env {
7090 let mut query = self.selection.select("withCacheVolumeInput");
7091 query = query.arg("name", name.into());
7092 query = query.arg_lazy(
7093 "value",
7094 Box::new(move || {
7095 let value = value.clone();
7096 Box::pin(async move { value.into_id().await.unwrap().quote() })
7097 }),
7098 );
7099 query = query.arg("description", description.into());
7100 Env {
7101 proc: self.proc.clone(),
7102 selection: query,
7103 graphql_client: self.graphql_client.clone(),
7104 }
7105 }
7106 pub fn with_cache_volume_output(
7113 &self,
7114 name: impl Into<String>,
7115 description: impl Into<String>,
7116 ) -> Env {
7117 let mut query = self.selection.select("withCacheVolumeOutput");
7118 query = query.arg("name", name.into());
7119 query = query.arg("description", description.into());
7120 Env {
7121 proc: self.proc.clone(),
7122 selection: query,
7123 graphql_client: self.graphql_client.clone(),
7124 }
7125 }
7126 pub fn with_changeset_input(
7134 &self,
7135 name: impl Into<String>,
7136 value: impl IntoID<ChangesetId>,
7137 description: impl Into<String>,
7138 ) -> Env {
7139 let mut query = self.selection.select("withChangesetInput");
7140 query = query.arg("name", name.into());
7141 query = query.arg_lazy(
7142 "value",
7143 Box::new(move || {
7144 let value = value.clone();
7145 Box::pin(async move { value.into_id().await.unwrap().quote() })
7146 }),
7147 );
7148 query = query.arg("description", description.into());
7149 Env {
7150 proc: self.proc.clone(),
7151 selection: query,
7152 graphql_client: self.graphql_client.clone(),
7153 }
7154 }
7155 pub fn with_changeset_output(
7162 &self,
7163 name: impl Into<String>,
7164 description: impl Into<String>,
7165 ) -> Env {
7166 let mut query = self.selection.select("withChangesetOutput");
7167 query = query.arg("name", name.into());
7168 query = query.arg("description", description.into());
7169 Env {
7170 proc: self.proc.clone(),
7171 selection: query,
7172 graphql_client: self.graphql_client.clone(),
7173 }
7174 }
7175 pub fn with_check_group_input(
7183 &self,
7184 name: impl Into<String>,
7185 value: impl IntoID<CheckGroupId>,
7186 description: impl Into<String>,
7187 ) -> Env {
7188 let mut query = self.selection.select("withCheckGroupInput");
7189 query = query.arg("name", name.into());
7190 query = query.arg_lazy(
7191 "value",
7192 Box::new(move || {
7193 let value = value.clone();
7194 Box::pin(async move { value.into_id().await.unwrap().quote() })
7195 }),
7196 );
7197 query = query.arg("description", description.into());
7198 Env {
7199 proc: self.proc.clone(),
7200 selection: query,
7201 graphql_client: self.graphql_client.clone(),
7202 }
7203 }
7204 pub fn with_check_group_output(
7211 &self,
7212 name: impl Into<String>,
7213 description: impl Into<String>,
7214 ) -> Env {
7215 let mut query = self.selection.select("withCheckGroupOutput");
7216 query = query.arg("name", name.into());
7217 query = query.arg("description", description.into());
7218 Env {
7219 proc: self.proc.clone(),
7220 selection: query,
7221 graphql_client: self.graphql_client.clone(),
7222 }
7223 }
7224 pub fn with_check_input(
7232 &self,
7233 name: impl Into<String>,
7234 value: impl IntoID<CheckId>,
7235 description: impl Into<String>,
7236 ) -> Env {
7237 let mut query = self.selection.select("withCheckInput");
7238 query = query.arg("name", name.into());
7239 query = query.arg_lazy(
7240 "value",
7241 Box::new(move || {
7242 let value = value.clone();
7243 Box::pin(async move { value.into_id().await.unwrap().quote() })
7244 }),
7245 );
7246 query = query.arg("description", description.into());
7247 Env {
7248 proc: self.proc.clone(),
7249 selection: query,
7250 graphql_client: self.graphql_client.clone(),
7251 }
7252 }
7253 pub fn with_check_output(
7260 &self,
7261 name: impl Into<String>,
7262 description: impl Into<String>,
7263 ) -> Env {
7264 let mut query = self.selection.select("withCheckOutput");
7265 query = query.arg("name", name.into());
7266 query = query.arg("description", description.into());
7267 Env {
7268 proc: self.proc.clone(),
7269 selection: query,
7270 graphql_client: self.graphql_client.clone(),
7271 }
7272 }
7273 pub fn with_cloud_input(
7281 &self,
7282 name: impl Into<String>,
7283 value: impl IntoID<CloudId>,
7284 description: impl Into<String>,
7285 ) -> Env {
7286 let mut query = self.selection.select("withCloudInput");
7287 query = query.arg("name", name.into());
7288 query = query.arg_lazy(
7289 "value",
7290 Box::new(move || {
7291 let value = value.clone();
7292 Box::pin(async move { value.into_id().await.unwrap().quote() })
7293 }),
7294 );
7295 query = query.arg("description", description.into());
7296 Env {
7297 proc: self.proc.clone(),
7298 selection: query,
7299 graphql_client: self.graphql_client.clone(),
7300 }
7301 }
7302 pub fn with_cloud_output(
7309 &self,
7310 name: impl Into<String>,
7311 description: impl Into<String>,
7312 ) -> Env {
7313 let mut query = self.selection.select("withCloudOutput");
7314 query = query.arg("name", name.into());
7315 query = query.arg("description", description.into());
7316 Env {
7317 proc: self.proc.clone(),
7318 selection: query,
7319 graphql_client: self.graphql_client.clone(),
7320 }
7321 }
7322 pub fn with_container_input(
7330 &self,
7331 name: impl Into<String>,
7332 value: impl IntoID<ContainerId>,
7333 description: impl Into<String>,
7334 ) -> Env {
7335 let mut query = self.selection.select("withContainerInput");
7336 query = query.arg("name", name.into());
7337 query = query.arg_lazy(
7338 "value",
7339 Box::new(move || {
7340 let value = value.clone();
7341 Box::pin(async move { value.into_id().await.unwrap().quote() })
7342 }),
7343 );
7344 query = query.arg("description", description.into());
7345 Env {
7346 proc: self.proc.clone(),
7347 selection: query,
7348 graphql_client: self.graphql_client.clone(),
7349 }
7350 }
7351 pub fn with_container_output(
7358 &self,
7359 name: impl Into<String>,
7360 description: impl Into<String>,
7361 ) -> Env {
7362 let mut query = self.selection.select("withContainerOutput");
7363 query = query.arg("name", name.into());
7364 query = query.arg("description", description.into());
7365 Env {
7366 proc: self.proc.clone(),
7367 selection: query,
7368 graphql_client: self.graphql_client.clone(),
7369 }
7370 }
7371 pub fn with_current_module(&self) -> Env {
7374 let query = self.selection.select("withCurrentModule");
7375 Env {
7376 proc: self.proc.clone(),
7377 selection: query,
7378 graphql_client: self.graphql_client.clone(),
7379 }
7380 }
7381 pub fn with_directory_input(
7389 &self,
7390 name: impl Into<String>,
7391 value: impl IntoID<DirectoryId>,
7392 description: impl Into<String>,
7393 ) -> Env {
7394 let mut query = self.selection.select("withDirectoryInput");
7395 query = query.arg("name", name.into());
7396 query = query.arg_lazy(
7397 "value",
7398 Box::new(move || {
7399 let value = value.clone();
7400 Box::pin(async move { value.into_id().await.unwrap().quote() })
7401 }),
7402 );
7403 query = query.arg("description", description.into());
7404 Env {
7405 proc: self.proc.clone(),
7406 selection: query,
7407 graphql_client: self.graphql_client.clone(),
7408 }
7409 }
7410 pub fn with_directory_output(
7417 &self,
7418 name: impl Into<String>,
7419 description: impl Into<String>,
7420 ) -> Env {
7421 let mut query = self.selection.select("withDirectoryOutput");
7422 query = query.arg("name", name.into());
7423 query = query.arg("description", description.into());
7424 Env {
7425 proc: self.proc.clone(),
7426 selection: query,
7427 graphql_client: self.graphql_client.clone(),
7428 }
7429 }
7430 pub fn with_env_file_input(
7438 &self,
7439 name: impl Into<String>,
7440 value: impl IntoID<EnvFileId>,
7441 description: impl Into<String>,
7442 ) -> Env {
7443 let mut query = self.selection.select("withEnvFileInput");
7444 query = query.arg("name", name.into());
7445 query = query.arg_lazy(
7446 "value",
7447 Box::new(move || {
7448 let value = value.clone();
7449 Box::pin(async move { value.into_id().await.unwrap().quote() })
7450 }),
7451 );
7452 query = query.arg("description", description.into());
7453 Env {
7454 proc: self.proc.clone(),
7455 selection: query,
7456 graphql_client: self.graphql_client.clone(),
7457 }
7458 }
7459 pub fn with_env_file_output(
7466 &self,
7467 name: impl Into<String>,
7468 description: impl Into<String>,
7469 ) -> Env {
7470 let mut query = self.selection.select("withEnvFileOutput");
7471 query = query.arg("name", name.into());
7472 query = query.arg("description", description.into());
7473 Env {
7474 proc: self.proc.clone(),
7475 selection: query,
7476 graphql_client: self.graphql_client.clone(),
7477 }
7478 }
7479 pub fn with_env_input(
7487 &self,
7488 name: impl Into<String>,
7489 value: impl IntoID<EnvId>,
7490 description: impl Into<String>,
7491 ) -> Env {
7492 let mut query = self.selection.select("withEnvInput");
7493 query = query.arg("name", name.into());
7494 query = query.arg_lazy(
7495 "value",
7496 Box::new(move || {
7497 let value = value.clone();
7498 Box::pin(async move { value.into_id().await.unwrap().quote() })
7499 }),
7500 );
7501 query = query.arg("description", description.into());
7502 Env {
7503 proc: self.proc.clone(),
7504 selection: query,
7505 graphql_client: self.graphql_client.clone(),
7506 }
7507 }
7508 pub fn with_env_output(&self, name: impl Into<String>, description: impl Into<String>) -> Env {
7515 let mut query = self.selection.select("withEnvOutput");
7516 query = query.arg("name", name.into());
7517 query = query.arg("description", description.into());
7518 Env {
7519 proc: self.proc.clone(),
7520 selection: query,
7521 graphql_client: self.graphql_client.clone(),
7522 }
7523 }
7524 pub fn with_file_input(
7532 &self,
7533 name: impl Into<String>,
7534 value: impl IntoID<FileId>,
7535 description: impl Into<String>,
7536 ) -> Env {
7537 let mut query = self.selection.select("withFileInput");
7538 query = query.arg("name", name.into());
7539 query = query.arg_lazy(
7540 "value",
7541 Box::new(move || {
7542 let value = value.clone();
7543 Box::pin(async move { value.into_id().await.unwrap().quote() })
7544 }),
7545 );
7546 query = query.arg("description", description.into());
7547 Env {
7548 proc: self.proc.clone(),
7549 selection: query,
7550 graphql_client: self.graphql_client.clone(),
7551 }
7552 }
7553 pub fn with_file_output(&self, name: impl Into<String>, description: impl Into<String>) -> Env {
7560 let mut query = self.selection.select("withFileOutput");
7561 query = query.arg("name", name.into());
7562 query = query.arg("description", description.into());
7563 Env {
7564 proc: self.proc.clone(),
7565 selection: query,
7566 graphql_client: self.graphql_client.clone(),
7567 }
7568 }
7569 pub fn with_generator_group_input(
7577 &self,
7578 name: impl Into<String>,
7579 value: impl IntoID<GeneratorGroupId>,
7580 description: impl Into<String>,
7581 ) -> Env {
7582 let mut query = self.selection.select("withGeneratorGroupInput");
7583 query = query.arg("name", name.into());
7584 query = query.arg_lazy(
7585 "value",
7586 Box::new(move || {
7587 let value = value.clone();
7588 Box::pin(async move { value.into_id().await.unwrap().quote() })
7589 }),
7590 );
7591 query = query.arg("description", description.into());
7592 Env {
7593 proc: self.proc.clone(),
7594 selection: query,
7595 graphql_client: self.graphql_client.clone(),
7596 }
7597 }
7598 pub fn with_generator_group_output(
7605 &self,
7606 name: impl Into<String>,
7607 description: impl Into<String>,
7608 ) -> Env {
7609 let mut query = self.selection.select("withGeneratorGroupOutput");
7610 query = query.arg("name", name.into());
7611 query = query.arg("description", description.into());
7612 Env {
7613 proc: self.proc.clone(),
7614 selection: query,
7615 graphql_client: self.graphql_client.clone(),
7616 }
7617 }
7618 pub fn with_generator_input(
7626 &self,
7627 name: impl Into<String>,
7628 value: impl IntoID<GeneratorId>,
7629 description: impl Into<String>,
7630 ) -> Env {
7631 let mut query = self.selection.select("withGeneratorInput");
7632 query = query.arg("name", name.into());
7633 query = query.arg_lazy(
7634 "value",
7635 Box::new(move || {
7636 let value = value.clone();
7637 Box::pin(async move { value.into_id().await.unwrap().quote() })
7638 }),
7639 );
7640 query = query.arg("description", description.into());
7641 Env {
7642 proc: self.proc.clone(),
7643 selection: query,
7644 graphql_client: self.graphql_client.clone(),
7645 }
7646 }
7647 pub fn with_generator_output(
7654 &self,
7655 name: impl Into<String>,
7656 description: impl Into<String>,
7657 ) -> Env {
7658 let mut query = self.selection.select("withGeneratorOutput");
7659 query = query.arg("name", name.into());
7660 query = query.arg("description", description.into());
7661 Env {
7662 proc: self.proc.clone(),
7663 selection: query,
7664 graphql_client: self.graphql_client.clone(),
7665 }
7666 }
7667 pub fn with_git_ref_input(
7675 &self,
7676 name: impl Into<String>,
7677 value: impl IntoID<GitRefId>,
7678 description: impl Into<String>,
7679 ) -> Env {
7680 let mut query = self.selection.select("withGitRefInput");
7681 query = query.arg("name", name.into());
7682 query = query.arg_lazy(
7683 "value",
7684 Box::new(move || {
7685 let value = value.clone();
7686 Box::pin(async move { value.into_id().await.unwrap().quote() })
7687 }),
7688 );
7689 query = query.arg("description", description.into());
7690 Env {
7691 proc: self.proc.clone(),
7692 selection: query,
7693 graphql_client: self.graphql_client.clone(),
7694 }
7695 }
7696 pub fn with_git_ref_output(
7703 &self,
7704 name: impl Into<String>,
7705 description: impl Into<String>,
7706 ) -> Env {
7707 let mut query = self.selection.select("withGitRefOutput");
7708 query = query.arg("name", name.into());
7709 query = query.arg("description", description.into());
7710 Env {
7711 proc: self.proc.clone(),
7712 selection: query,
7713 graphql_client: self.graphql_client.clone(),
7714 }
7715 }
7716 pub fn with_git_repository_input(
7724 &self,
7725 name: impl Into<String>,
7726 value: impl IntoID<GitRepositoryId>,
7727 description: impl Into<String>,
7728 ) -> Env {
7729 let mut query = self.selection.select("withGitRepositoryInput");
7730 query = query.arg("name", name.into());
7731 query = query.arg_lazy(
7732 "value",
7733 Box::new(move || {
7734 let value = value.clone();
7735 Box::pin(async move { value.into_id().await.unwrap().quote() })
7736 }),
7737 );
7738 query = query.arg("description", description.into());
7739 Env {
7740 proc: self.proc.clone(),
7741 selection: query,
7742 graphql_client: self.graphql_client.clone(),
7743 }
7744 }
7745 pub fn with_git_repository_output(
7752 &self,
7753 name: impl Into<String>,
7754 description: impl Into<String>,
7755 ) -> Env {
7756 let mut query = self.selection.select("withGitRepositoryOutput");
7757 query = query.arg("name", name.into());
7758 query = query.arg("description", description.into());
7759 Env {
7760 proc: self.proc.clone(),
7761 selection: query,
7762 graphql_client: self.graphql_client.clone(),
7763 }
7764 }
7765 pub fn with_json_value_input(
7773 &self,
7774 name: impl Into<String>,
7775 value: impl IntoID<JsonValueId>,
7776 description: impl Into<String>,
7777 ) -> Env {
7778 let mut query = self.selection.select("withJSONValueInput");
7779 query = query.arg("name", name.into());
7780 query = query.arg_lazy(
7781 "value",
7782 Box::new(move || {
7783 let value = value.clone();
7784 Box::pin(async move { value.into_id().await.unwrap().quote() })
7785 }),
7786 );
7787 query = query.arg("description", description.into());
7788 Env {
7789 proc: self.proc.clone(),
7790 selection: query,
7791 graphql_client: self.graphql_client.clone(),
7792 }
7793 }
7794 pub fn with_json_value_output(
7801 &self,
7802 name: impl Into<String>,
7803 description: impl Into<String>,
7804 ) -> Env {
7805 let mut query = self.selection.select("withJSONValueOutput");
7806 query = query.arg("name", name.into());
7807 query = query.arg("description", description.into());
7808 Env {
7809 proc: self.proc.clone(),
7810 selection: query,
7811 graphql_client: self.graphql_client.clone(),
7812 }
7813 }
7814 pub fn with_main_module(&self, module: impl IntoID<ModuleId>) -> Env {
7817 let mut query = self.selection.select("withMainModule");
7818 query = query.arg_lazy(
7819 "module",
7820 Box::new(move || {
7821 let module = module.clone();
7822 Box::pin(async move { module.into_id().await.unwrap().quote() })
7823 }),
7824 );
7825 Env {
7826 proc: self.proc.clone(),
7827 selection: query,
7828 graphql_client: self.graphql_client.clone(),
7829 }
7830 }
7831 pub fn with_module(&self, module: impl IntoID<ModuleId>) -> Env {
7834 let mut query = self.selection.select("withModule");
7835 query = query.arg_lazy(
7836 "module",
7837 Box::new(move || {
7838 let module = module.clone();
7839 Box::pin(async move { module.into_id().await.unwrap().quote() })
7840 }),
7841 );
7842 Env {
7843 proc: self.proc.clone(),
7844 selection: query,
7845 graphql_client: self.graphql_client.clone(),
7846 }
7847 }
7848 pub fn with_module_config_client_input(
7856 &self,
7857 name: impl Into<String>,
7858 value: impl IntoID<ModuleConfigClientId>,
7859 description: impl Into<String>,
7860 ) -> Env {
7861 let mut query = self.selection.select("withModuleConfigClientInput");
7862 query = query.arg("name", name.into());
7863 query = query.arg_lazy(
7864 "value",
7865 Box::new(move || {
7866 let value = value.clone();
7867 Box::pin(async move { value.into_id().await.unwrap().quote() })
7868 }),
7869 );
7870 query = query.arg("description", description.into());
7871 Env {
7872 proc: self.proc.clone(),
7873 selection: query,
7874 graphql_client: self.graphql_client.clone(),
7875 }
7876 }
7877 pub fn with_module_config_client_output(
7884 &self,
7885 name: impl Into<String>,
7886 description: impl Into<String>,
7887 ) -> Env {
7888 let mut query = self.selection.select("withModuleConfigClientOutput");
7889 query = query.arg("name", name.into());
7890 query = query.arg("description", description.into());
7891 Env {
7892 proc: self.proc.clone(),
7893 selection: query,
7894 graphql_client: self.graphql_client.clone(),
7895 }
7896 }
7897 pub fn with_module_input(
7905 &self,
7906 name: impl Into<String>,
7907 value: impl IntoID<ModuleId>,
7908 description: impl Into<String>,
7909 ) -> Env {
7910 let mut query = self.selection.select("withModuleInput");
7911 query = query.arg("name", name.into());
7912 query = query.arg_lazy(
7913 "value",
7914 Box::new(move || {
7915 let value = value.clone();
7916 Box::pin(async move { value.into_id().await.unwrap().quote() })
7917 }),
7918 );
7919 query = query.arg("description", description.into());
7920 Env {
7921 proc: self.proc.clone(),
7922 selection: query,
7923 graphql_client: self.graphql_client.clone(),
7924 }
7925 }
7926 pub fn with_module_output(
7933 &self,
7934 name: impl Into<String>,
7935 description: impl Into<String>,
7936 ) -> Env {
7937 let mut query = self.selection.select("withModuleOutput");
7938 query = query.arg("name", name.into());
7939 query = query.arg("description", description.into());
7940 Env {
7941 proc: self.proc.clone(),
7942 selection: query,
7943 graphql_client: self.graphql_client.clone(),
7944 }
7945 }
7946 pub fn with_module_source_input(
7954 &self,
7955 name: impl Into<String>,
7956 value: impl IntoID<ModuleSourceId>,
7957 description: impl Into<String>,
7958 ) -> Env {
7959 let mut query = self.selection.select("withModuleSourceInput");
7960 query = query.arg("name", name.into());
7961 query = query.arg_lazy(
7962 "value",
7963 Box::new(move || {
7964 let value = value.clone();
7965 Box::pin(async move { value.into_id().await.unwrap().quote() })
7966 }),
7967 );
7968 query = query.arg("description", description.into());
7969 Env {
7970 proc: self.proc.clone(),
7971 selection: query,
7972 graphql_client: self.graphql_client.clone(),
7973 }
7974 }
7975 pub fn with_module_source_output(
7982 &self,
7983 name: impl Into<String>,
7984 description: impl Into<String>,
7985 ) -> Env {
7986 let mut query = self.selection.select("withModuleSourceOutput");
7987 query = query.arg("name", name.into());
7988 query = query.arg("description", description.into());
7989 Env {
7990 proc: self.proc.clone(),
7991 selection: query,
7992 graphql_client: self.graphql_client.clone(),
7993 }
7994 }
7995 pub fn with_search_result_input(
8003 &self,
8004 name: impl Into<String>,
8005 value: impl IntoID<SearchResultId>,
8006 description: impl Into<String>,
8007 ) -> Env {
8008 let mut query = self.selection.select("withSearchResultInput");
8009 query = query.arg("name", name.into());
8010 query = query.arg_lazy(
8011 "value",
8012 Box::new(move || {
8013 let value = value.clone();
8014 Box::pin(async move { value.into_id().await.unwrap().quote() })
8015 }),
8016 );
8017 query = query.arg("description", description.into());
8018 Env {
8019 proc: self.proc.clone(),
8020 selection: query,
8021 graphql_client: self.graphql_client.clone(),
8022 }
8023 }
8024 pub fn with_search_result_output(
8031 &self,
8032 name: impl Into<String>,
8033 description: impl Into<String>,
8034 ) -> Env {
8035 let mut query = self.selection.select("withSearchResultOutput");
8036 query = query.arg("name", name.into());
8037 query = query.arg("description", description.into());
8038 Env {
8039 proc: self.proc.clone(),
8040 selection: query,
8041 graphql_client: self.graphql_client.clone(),
8042 }
8043 }
8044 pub fn with_search_submatch_input(
8052 &self,
8053 name: impl Into<String>,
8054 value: impl IntoID<SearchSubmatchId>,
8055 description: impl Into<String>,
8056 ) -> Env {
8057 let mut query = self.selection.select("withSearchSubmatchInput");
8058 query = query.arg("name", name.into());
8059 query = query.arg_lazy(
8060 "value",
8061 Box::new(move || {
8062 let value = value.clone();
8063 Box::pin(async move { value.into_id().await.unwrap().quote() })
8064 }),
8065 );
8066 query = query.arg("description", description.into());
8067 Env {
8068 proc: self.proc.clone(),
8069 selection: query,
8070 graphql_client: self.graphql_client.clone(),
8071 }
8072 }
8073 pub fn with_search_submatch_output(
8080 &self,
8081 name: impl Into<String>,
8082 description: impl Into<String>,
8083 ) -> Env {
8084 let mut query = self.selection.select("withSearchSubmatchOutput");
8085 query = query.arg("name", name.into());
8086 query = query.arg("description", description.into());
8087 Env {
8088 proc: self.proc.clone(),
8089 selection: query,
8090 graphql_client: self.graphql_client.clone(),
8091 }
8092 }
8093 pub fn with_secret_input(
8101 &self,
8102 name: impl Into<String>,
8103 value: impl IntoID<SecretId>,
8104 description: impl Into<String>,
8105 ) -> Env {
8106 let mut query = self.selection.select("withSecretInput");
8107 query = query.arg("name", name.into());
8108 query = query.arg_lazy(
8109 "value",
8110 Box::new(move || {
8111 let value = value.clone();
8112 Box::pin(async move { value.into_id().await.unwrap().quote() })
8113 }),
8114 );
8115 query = query.arg("description", description.into());
8116 Env {
8117 proc: self.proc.clone(),
8118 selection: query,
8119 graphql_client: self.graphql_client.clone(),
8120 }
8121 }
8122 pub fn with_secret_output(
8129 &self,
8130 name: impl Into<String>,
8131 description: impl Into<String>,
8132 ) -> Env {
8133 let mut query = self.selection.select("withSecretOutput");
8134 query = query.arg("name", name.into());
8135 query = query.arg("description", description.into());
8136 Env {
8137 proc: self.proc.clone(),
8138 selection: query,
8139 graphql_client: self.graphql_client.clone(),
8140 }
8141 }
8142 pub fn with_service_input(
8150 &self,
8151 name: impl Into<String>,
8152 value: impl IntoID<ServiceId>,
8153 description: impl Into<String>,
8154 ) -> Env {
8155 let mut query = self.selection.select("withServiceInput");
8156 query = query.arg("name", name.into());
8157 query = query.arg_lazy(
8158 "value",
8159 Box::new(move || {
8160 let value = value.clone();
8161 Box::pin(async move { value.into_id().await.unwrap().quote() })
8162 }),
8163 );
8164 query = query.arg("description", description.into());
8165 Env {
8166 proc: self.proc.clone(),
8167 selection: query,
8168 graphql_client: self.graphql_client.clone(),
8169 }
8170 }
8171 pub fn with_service_output(
8178 &self,
8179 name: impl Into<String>,
8180 description: impl Into<String>,
8181 ) -> Env {
8182 let mut query = self.selection.select("withServiceOutput");
8183 query = query.arg("name", name.into());
8184 query = query.arg("description", description.into());
8185 Env {
8186 proc: self.proc.clone(),
8187 selection: query,
8188 graphql_client: self.graphql_client.clone(),
8189 }
8190 }
8191 pub fn with_socket_input(
8199 &self,
8200 name: impl Into<String>,
8201 value: impl IntoID<SocketId>,
8202 description: impl Into<String>,
8203 ) -> Env {
8204 let mut query = self.selection.select("withSocketInput");
8205 query = query.arg("name", name.into());
8206 query = query.arg_lazy(
8207 "value",
8208 Box::new(move || {
8209 let value = value.clone();
8210 Box::pin(async move { value.into_id().await.unwrap().quote() })
8211 }),
8212 );
8213 query = query.arg("description", description.into());
8214 Env {
8215 proc: self.proc.clone(),
8216 selection: query,
8217 graphql_client: self.graphql_client.clone(),
8218 }
8219 }
8220 pub fn with_socket_output(
8227 &self,
8228 name: impl Into<String>,
8229 description: impl Into<String>,
8230 ) -> Env {
8231 let mut query = self.selection.select("withSocketOutput");
8232 query = query.arg("name", name.into());
8233 query = query.arg("description", description.into());
8234 Env {
8235 proc: self.proc.clone(),
8236 selection: query,
8237 graphql_client: self.graphql_client.clone(),
8238 }
8239 }
8240 pub fn with_stat_input(
8248 &self,
8249 name: impl Into<String>,
8250 value: impl IntoID<StatId>,
8251 description: impl Into<String>,
8252 ) -> Env {
8253 let mut query = self.selection.select("withStatInput");
8254 query = query.arg("name", name.into());
8255 query = query.arg_lazy(
8256 "value",
8257 Box::new(move || {
8258 let value = value.clone();
8259 Box::pin(async move { value.into_id().await.unwrap().quote() })
8260 }),
8261 );
8262 query = query.arg("description", description.into());
8263 Env {
8264 proc: self.proc.clone(),
8265 selection: query,
8266 graphql_client: self.graphql_client.clone(),
8267 }
8268 }
8269 pub fn with_stat_output(&self, name: impl Into<String>, description: impl Into<String>) -> Env {
8276 let mut query = self.selection.select("withStatOutput");
8277 query = query.arg("name", name.into());
8278 query = query.arg("description", description.into());
8279 Env {
8280 proc: self.proc.clone(),
8281 selection: query,
8282 graphql_client: self.graphql_client.clone(),
8283 }
8284 }
8285 pub fn with_string_input(
8293 &self,
8294 name: impl Into<String>,
8295 value: impl Into<String>,
8296 description: impl Into<String>,
8297 ) -> Env {
8298 let mut query = self.selection.select("withStringInput");
8299 query = query.arg("name", name.into());
8300 query = query.arg("value", value.into());
8301 query = query.arg("description", description.into());
8302 Env {
8303 proc: self.proc.clone(),
8304 selection: query,
8305 graphql_client: self.graphql_client.clone(),
8306 }
8307 }
8308 pub fn with_string_output(
8315 &self,
8316 name: impl Into<String>,
8317 description: impl Into<String>,
8318 ) -> Env {
8319 let mut query = self.selection.select("withStringOutput");
8320 query = query.arg("name", name.into());
8321 query = query.arg("description", description.into());
8322 Env {
8323 proc: self.proc.clone(),
8324 selection: query,
8325 graphql_client: self.graphql_client.clone(),
8326 }
8327 }
8328 pub fn with_workspace(&self, workspace: impl IntoID<DirectoryId>) -> Env {
8334 let mut query = self.selection.select("withWorkspace");
8335 query = query.arg_lazy(
8336 "workspace",
8337 Box::new(move || {
8338 let workspace = workspace.clone();
8339 Box::pin(async move { workspace.into_id().await.unwrap().quote() })
8340 }),
8341 );
8342 Env {
8343 proc: self.proc.clone(),
8344 selection: query,
8345 graphql_client: self.graphql_client.clone(),
8346 }
8347 }
8348 pub fn with_workspace_input(
8356 &self,
8357 name: impl Into<String>,
8358 value: impl IntoID<WorkspaceId>,
8359 description: impl Into<String>,
8360 ) -> Env {
8361 let mut query = self.selection.select("withWorkspaceInput");
8362 query = query.arg("name", name.into());
8363 query = query.arg_lazy(
8364 "value",
8365 Box::new(move || {
8366 let value = value.clone();
8367 Box::pin(async move { value.into_id().await.unwrap().quote() })
8368 }),
8369 );
8370 query = query.arg("description", description.into());
8371 Env {
8372 proc: self.proc.clone(),
8373 selection: query,
8374 graphql_client: self.graphql_client.clone(),
8375 }
8376 }
8377 pub fn with_workspace_output(
8384 &self,
8385 name: impl Into<String>,
8386 description: impl Into<String>,
8387 ) -> Env {
8388 let mut query = self.selection.select("withWorkspaceOutput");
8389 query = query.arg("name", name.into());
8390 query = query.arg("description", description.into());
8391 Env {
8392 proc: self.proc.clone(),
8393 selection: query,
8394 graphql_client: self.graphql_client.clone(),
8395 }
8396 }
8397 pub fn without_outputs(&self) -> Env {
8399 let query = self.selection.select("withoutOutputs");
8400 Env {
8401 proc: self.proc.clone(),
8402 selection: query,
8403 graphql_client: self.graphql_client.clone(),
8404 }
8405 }
8406 pub fn workspace(&self) -> Directory {
8407 let query = self.selection.select("workspace");
8408 Directory {
8409 proc: self.proc.clone(),
8410 selection: query,
8411 graphql_client: self.graphql_client.clone(),
8412 }
8413 }
8414}
8415#[derive(Clone)]
8416pub struct EnvFile {
8417 pub proc: Option<Arc<DaggerSessionProc>>,
8418 pub selection: Selection,
8419 pub graphql_client: DynGraphQLClient,
8420}
8421#[derive(Builder, Debug, PartialEq)]
8422pub struct EnvFileGetOpts {
8423 #[builder(setter(into, strip_option), default)]
8425 pub raw: Option<bool>,
8426}
8427#[derive(Builder, Debug, PartialEq)]
8428pub struct EnvFileVariablesOpts {
8429 #[builder(setter(into, strip_option), default)]
8431 pub raw: Option<bool>,
8432}
8433impl EnvFile {
8434 pub fn as_file(&self) -> File {
8436 let query = self.selection.select("asFile");
8437 File {
8438 proc: self.proc.clone(),
8439 selection: query,
8440 graphql_client: self.graphql_client.clone(),
8441 }
8442 }
8443 pub async fn exists(&self, name: impl Into<String>) -> Result<bool, DaggerError> {
8449 let mut query = self.selection.select("exists");
8450 query = query.arg("name", name.into());
8451 query.execute(self.graphql_client.clone()).await
8452 }
8453 pub async fn get(&self, name: impl Into<String>) -> Result<String, DaggerError> {
8460 let mut query = self.selection.select("get");
8461 query = query.arg("name", name.into());
8462 query.execute(self.graphql_client.clone()).await
8463 }
8464 pub async fn get_opts(
8471 &self,
8472 name: impl Into<String>,
8473 opts: EnvFileGetOpts,
8474 ) -> Result<String, DaggerError> {
8475 let mut query = self.selection.select("get");
8476 query = query.arg("name", name.into());
8477 if let Some(raw) = opts.raw {
8478 query = query.arg("raw", raw);
8479 }
8480 query.execute(self.graphql_client.clone()).await
8481 }
8482 pub async fn id(&self) -> Result<EnvFileId, DaggerError> {
8484 let query = self.selection.select("id");
8485 query.execute(self.graphql_client.clone()).await
8486 }
8487 pub fn namespace(&self, prefix: impl Into<String>) -> EnvFile {
8493 let mut query = self.selection.select("namespace");
8494 query = query.arg("prefix", prefix.into());
8495 EnvFile {
8496 proc: self.proc.clone(),
8497 selection: query,
8498 graphql_client: self.graphql_client.clone(),
8499 }
8500 }
8501 pub fn variables(&self) -> Vec<EnvVariable> {
8507 let query = self.selection.select("variables");
8508 vec![EnvVariable {
8509 proc: self.proc.clone(),
8510 selection: query,
8511 graphql_client: self.graphql_client.clone(),
8512 }]
8513 }
8514 pub fn variables_opts(&self, opts: EnvFileVariablesOpts) -> Vec<EnvVariable> {
8520 let mut query = self.selection.select("variables");
8521 if let Some(raw) = opts.raw {
8522 query = query.arg("raw", raw);
8523 }
8524 vec![EnvVariable {
8525 proc: self.proc.clone(),
8526 selection: query,
8527 graphql_client: self.graphql_client.clone(),
8528 }]
8529 }
8530 pub fn with_variable(&self, name: impl Into<String>, value: impl Into<String>) -> EnvFile {
8537 let mut query = self.selection.select("withVariable");
8538 query = query.arg("name", name.into());
8539 query = query.arg("value", value.into());
8540 EnvFile {
8541 proc: self.proc.clone(),
8542 selection: query,
8543 graphql_client: self.graphql_client.clone(),
8544 }
8545 }
8546 pub fn without_variable(&self, name: impl Into<String>) -> EnvFile {
8552 let mut query = self.selection.select("withoutVariable");
8553 query = query.arg("name", name.into());
8554 EnvFile {
8555 proc: self.proc.clone(),
8556 selection: query,
8557 graphql_client: self.graphql_client.clone(),
8558 }
8559 }
8560}
8561#[derive(Clone)]
8562pub struct EnvVariable {
8563 pub proc: Option<Arc<DaggerSessionProc>>,
8564 pub selection: Selection,
8565 pub graphql_client: DynGraphQLClient,
8566}
8567impl EnvVariable {
8568 pub async fn id(&self) -> Result<EnvVariableId, DaggerError> {
8570 let query = self.selection.select("id");
8571 query.execute(self.graphql_client.clone()).await
8572 }
8573 pub async fn name(&self) -> Result<String, DaggerError> {
8575 let query = self.selection.select("name");
8576 query.execute(self.graphql_client.clone()).await
8577 }
8578 pub async fn value(&self) -> Result<String, DaggerError> {
8580 let query = self.selection.select("value");
8581 query.execute(self.graphql_client.clone()).await
8582 }
8583}
8584#[derive(Clone)]
8585pub struct Error {
8586 pub proc: Option<Arc<DaggerSessionProc>>,
8587 pub selection: Selection,
8588 pub graphql_client: DynGraphQLClient,
8589}
8590impl Error {
8591 pub async fn id(&self) -> Result<ErrorId, DaggerError> {
8593 let query = self.selection.select("id");
8594 query.execute(self.graphql_client.clone()).await
8595 }
8596 pub async fn message(&self) -> Result<String, DaggerError> {
8598 let query = self.selection.select("message");
8599 query.execute(self.graphql_client.clone()).await
8600 }
8601 pub fn values(&self) -> Vec<ErrorValue> {
8603 let query = self.selection.select("values");
8604 vec![ErrorValue {
8605 proc: self.proc.clone(),
8606 selection: query,
8607 graphql_client: self.graphql_client.clone(),
8608 }]
8609 }
8610 pub fn with_value(&self, name: impl Into<String>, value: Json) -> Error {
8617 let mut query = self.selection.select("withValue");
8618 query = query.arg("name", name.into());
8619 query = query.arg("value", value);
8620 Error {
8621 proc: self.proc.clone(),
8622 selection: query,
8623 graphql_client: self.graphql_client.clone(),
8624 }
8625 }
8626}
8627#[derive(Clone)]
8628pub struct ErrorValue {
8629 pub proc: Option<Arc<DaggerSessionProc>>,
8630 pub selection: Selection,
8631 pub graphql_client: DynGraphQLClient,
8632}
8633impl ErrorValue {
8634 pub async fn id(&self) -> Result<ErrorValueId, DaggerError> {
8636 let query = self.selection.select("id");
8637 query.execute(self.graphql_client.clone()).await
8638 }
8639 pub async fn name(&self) -> Result<String, DaggerError> {
8641 let query = self.selection.select("name");
8642 query.execute(self.graphql_client.clone()).await
8643 }
8644 pub async fn value(&self) -> Result<Json, DaggerError> {
8646 let query = self.selection.select("value");
8647 query.execute(self.graphql_client.clone()).await
8648 }
8649}
8650#[derive(Clone)]
8651pub struct FieldTypeDef {
8652 pub proc: Option<Arc<DaggerSessionProc>>,
8653 pub selection: Selection,
8654 pub graphql_client: DynGraphQLClient,
8655}
8656impl FieldTypeDef {
8657 pub async fn deprecated(&self) -> Result<String, DaggerError> {
8659 let query = self.selection.select("deprecated");
8660 query.execute(self.graphql_client.clone()).await
8661 }
8662 pub async fn description(&self) -> Result<String, DaggerError> {
8664 let query = self.selection.select("description");
8665 query.execute(self.graphql_client.clone()).await
8666 }
8667 pub async fn id(&self) -> Result<FieldTypeDefId, DaggerError> {
8669 let query = self.selection.select("id");
8670 query.execute(self.graphql_client.clone()).await
8671 }
8672 pub async fn name(&self) -> Result<String, DaggerError> {
8674 let query = self.selection.select("name");
8675 query.execute(self.graphql_client.clone()).await
8676 }
8677 pub fn source_map(&self) -> SourceMap {
8679 let query = self.selection.select("sourceMap");
8680 SourceMap {
8681 proc: self.proc.clone(),
8682 selection: query,
8683 graphql_client: self.graphql_client.clone(),
8684 }
8685 }
8686 pub fn type_def(&self) -> TypeDef {
8688 let query = self.selection.select("typeDef");
8689 TypeDef {
8690 proc: self.proc.clone(),
8691 selection: query,
8692 graphql_client: self.graphql_client.clone(),
8693 }
8694 }
8695}
8696#[derive(Clone)]
8697pub struct File {
8698 pub proc: Option<Arc<DaggerSessionProc>>,
8699 pub selection: Selection,
8700 pub graphql_client: DynGraphQLClient,
8701}
8702#[derive(Builder, Debug, PartialEq)]
8703pub struct FileAsEnvFileOpts {
8704 #[builder(setter(into, strip_option), default)]
8706 pub expand: Option<bool>,
8707}
8708#[derive(Builder, Debug, PartialEq)]
8709pub struct FileContentsOpts {
8710 #[builder(setter(into, strip_option), default)]
8712 pub limit_lines: Option<isize>,
8713 #[builder(setter(into, strip_option), default)]
8715 pub offset_lines: Option<isize>,
8716}
8717#[derive(Builder, Debug, PartialEq)]
8718pub struct FileDigestOpts {
8719 #[builder(setter(into, strip_option), default)]
8721 pub exclude_metadata: Option<bool>,
8722}
8723#[derive(Builder, Debug, PartialEq)]
8724pub struct FileExportOpts {
8725 #[builder(setter(into, strip_option), default)]
8727 pub allow_parent_dir_path: Option<bool>,
8728}
8729#[derive(Builder, Debug, PartialEq)]
8730pub struct FileSearchOpts<'a> {
8731 #[builder(setter(into, strip_option), default)]
8733 pub dotall: Option<bool>,
8734 #[builder(setter(into, strip_option), default)]
8736 pub files_only: Option<bool>,
8737 #[builder(setter(into, strip_option), default)]
8738 pub globs: Option<Vec<&'a str>>,
8739 #[builder(setter(into, strip_option), default)]
8741 pub insensitive: Option<bool>,
8742 #[builder(setter(into, strip_option), default)]
8744 pub limit: Option<isize>,
8745 #[builder(setter(into, strip_option), default)]
8747 pub literal: Option<bool>,
8748 #[builder(setter(into, strip_option), default)]
8750 pub multiline: Option<bool>,
8751 #[builder(setter(into, strip_option), default)]
8752 pub paths: Option<Vec<&'a str>>,
8753 #[builder(setter(into, strip_option), default)]
8755 pub skip_hidden: Option<bool>,
8756 #[builder(setter(into, strip_option), default)]
8758 pub skip_ignored: Option<bool>,
8759}
8760#[derive(Builder, Debug, PartialEq)]
8761pub struct FileWithReplacedOpts {
8762 #[builder(setter(into, strip_option), default)]
8764 pub all: Option<bool>,
8765 #[builder(setter(into, strip_option), default)]
8767 pub first_from: Option<isize>,
8768}
8769impl File {
8770 pub fn as_env_file(&self) -> EnvFile {
8776 let query = self.selection.select("asEnvFile");
8777 EnvFile {
8778 proc: self.proc.clone(),
8779 selection: query,
8780 graphql_client: self.graphql_client.clone(),
8781 }
8782 }
8783 pub fn as_env_file_opts(&self, opts: FileAsEnvFileOpts) -> EnvFile {
8789 let mut query = self.selection.select("asEnvFile");
8790 if let Some(expand) = opts.expand {
8791 query = query.arg("expand", expand);
8792 }
8793 EnvFile {
8794 proc: self.proc.clone(),
8795 selection: query,
8796 graphql_client: self.graphql_client.clone(),
8797 }
8798 }
8799 pub fn as_json(&self) -> JsonValue {
8801 let query = self.selection.select("asJSON");
8802 JsonValue {
8803 proc: self.proc.clone(),
8804 selection: query,
8805 graphql_client: self.graphql_client.clone(),
8806 }
8807 }
8808 pub fn chown(&self, owner: impl Into<String>) -> File {
8818 let mut query = self.selection.select("chown");
8819 query = query.arg("owner", owner.into());
8820 File {
8821 proc: self.proc.clone(),
8822 selection: query,
8823 graphql_client: self.graphql_client.clone(),
8824 }
8825 }
8826 pub async fn contents(&self) -> Result<String, DaggerError> {
8832 let query = self.selection.select("contents");
8833 query.execute(self.graphql_client.clone()).await
8834 }
8835 pub async fn contents_opts(&self, opts: FileContentsOpts) -> Result<String, DaggerError> {
8841 let mut query = self.selection.select("contents");
8842 if let Some(offset_lines) = opts.offset_lines {
8843 query = query.arg("offsetLines", offset_lines);
8844 }
8845 if let Some(limit_lines) = opts.limit_lines {
8846 query = query.arg("limitLines", limit_lines);
8847 }
8848 query.execute(self.graphql_client.clone()).await
8849 }
8850 pub async fn digest(&self) -> Result<String, DaggerError> {
8856 let query = self.selection.select("digest");
8857 query.execute(self.graphql_client.clone()).await
8858 }
8859 pub async fn digest_opts(&self, opts: FileDigestOpts) -> Result<String, DaggerError> {
8865 let mut query = self.selection.select("digest");
8866 if let Some(exclude_metadata) = opts.exclude_metadata {
8867 query = query.arg("excludeMetadata", exclude_metadata);
8868 }
8869 query.execute(self.graphql_client.clone()).await
8870 }
8871 pub async fn export(&self, path: impl Into<String>) -> Result<String, DaggerError> {
8878 let mut query = self.selection.select("export");
8879 query = query.arg("path", path.into());
8880 query.execute(self.graphql_client.clone()).await
8881 }
8882 pub async fn export_opts(
8889 &self,
8890 path: impl Into<String>,
8891 opts: FileExportOpts,
8892 ) -> Result<String, DaggerError> {
8893 let mut query = self.selection.select("export");
8894 query = query.arg("path", path.into());
8895 if let Some(allow_parent_dir_path) = opts.allow_parent_dir_path {
8896 query = query.arg("allowParentDirPath", allow_parent_dir_path);
8897 }
8898 query.execute(self.graphql_client.clone()).await
8899 }
8900 pub async fn id(&self) -> Result<FileId, DaggerError> {
8902 let query = self.selection.select("id");
8903 query.execute(self.graphql_client.clone()).await
8904 }
8905 pub async fn name(&self) -> Result<String, DaggerError> {
8907 let query = self.selection.select("name");
8908 query.execute(self.graphql_client.clone()).await
8909 }
8910 pub fn search(&self, pattern: impl Into<String>) -> Vec<SearchResult> {
8918 let mut query = self.selection.select("search");
8919 query = query.arg("pattern", pattern.into());
8920 vec![SearchResult {
8921 proc: self.proc.clone(),
8922 selection: query,
8923 graphql_client: self.graphql_client.clone(),
8924 }]
8925 }
8926 pub fn search_opts<'a>(
8934 &self,
8935 pattern: impl Into<String>,
8936 opts: FileSearchOpts<'a>,
8937 ) -> Vec<SearchResult> {
8938 let mut query = self.selection.select("search");
8939 query = query.arg("pattern", pattern.into());
8940 if let Some(literal) = opts.literal {
8941 query = query.arg("literal", literal);
8942 }
8943 if let Some(multiline) = opts.multiline {
8944 query = query.arg("multiline", multiline);
8945 }
8946 if let Some(dotall) = opts.dotall {
8947 query = query.arg("dotall", dotall);
8948 }
8949 if let Some(insensitive) = opts.insensitive {
8950 query = query.arg("insensitive", insensitive);
8951 }
8952 if let Some(skip_ignored) = opts.skip_ignored {
8953 query = query.arg("skipIgnored", skip_ignored);
8954 }
8955 if let Some(skip_hidden) = opts.skip_hidden {
8956 query = query.arg("skipHidden", skip_hidden);
8957 }
8958 if let Some(files_only) = opts.files_only {
8959 query = query.arg("filesOnly", files_only);
8960 }
8961 if let Some(limit) = opts.limit {
8962 query = query.arg("limit", limit);
8963 }
8964 if let Some(paths) = opts.paths {
8965 query = query.arg("paths", paths);
8966 }
8967 if let Some(globs) = opts.globs {
8968 query = query.arg("globs", globs);
8969 }
8970 vec![SearchResult {
8971 proc: self.proc.clone(),
8972 selection: query,
8973 graphql_client: self.graphql_client.clone(),
8974 }]
8975 }
8976 pub async fn size(&self) -> Result<isize, DaggerError> {
8978 let query = self.selection.select("size");
8979 query.execute(self.graphql_client.clone()).await
8980 }
8981 pub fn stat(&self) -> Stat {
8983 let query = self.selection.select("stat");
8984 Stat {
8985 proc: self.proc.clone(),
8986 selection: query,
8987 graphql_client: self.graphql_client.clone(),
8988 }
8989 }
8990 pub async fn sync(&self) -> Result<FileId, DaggerError> {
8992 let query = self.selection.select("sync");
8993 query.execute(self.graphql_client.clone()).await
8994 }
8995 pub fn with_name(&self, name: impl Into<String>) -> File {
9001 let mut query = self.selection.select("withName");
9002 query = query.arg("name", name.into());
9003 File {
9004 proc: self.proc.clone(),
9005 selection: query,
9006 graphql_client: self.graphql_client.clone(),
9007 }
9008 }
9009 pub fn with_replaced(&self, search: impl Into<String>, replacement: impl Into<String>) -> File {
9021 let mut query = self.selection.select("withReplaced");
9022 query = query.arg("search", search.into());
9023 query = query.arg("replacement", replacement.into());
9024 File {
9025 proc: self.proc.clone(),
9026 selection: query,
9027 graphql_client: self.graphql_client.clone(),
9028 }
9029 }
9030 pub fn with_replaced_opts(
9042 &self,
9043 search: impl Into<String>,
9044 replacement: impl Into<String>,
9045 opts: FileWithReplacedOpts,
9046 ) -> File {
9047 let mut query = self.selection.select("withReplaced");
9048 query = query.arg("search", search.into());
9049 query = query.arg("replacement", replacement.into());
9050 if let Some(all) = opts.all {
9051 query = query.arg("all", all);
9052 }
9053 if let Some(first_from) = opts.first_from {
9054 query = query.arg("firstFrom", first_from);
9055 }
9056 File {
9057 proc: self.proc.clone(),
9058 selection: query,
9059 graphql_client: self.graphql_client.clone(),
9060 }
9061 }
9062 pub fn with_timestamps(&self, timestamp: isize) -> File {
9070 let mut query = self.selection.select("withTimestamps");
9071 query = query.arg("timestamp", timestamp);
9072 File {
9073 proc: self.proc.clone(),
9074 selection: query,
9075 graphql_client: self.graphql_client.clone(),
9076 }
9077 }
9078}
9079#[derive(Clone)]
9080pub struct Function {
9081 pub proc: Option<Arc<DaggerSessionProc>>,
9082 pub selection: Selection,
9083 pub graphql_client: DynGraphQLClient,
9084}
9085#[derive(Builder, Debug, PartialEq)]
9086pub struct FunctionWithArgOpts<'a> {
9087 #[builder(setter(into, strip_option), default)]
9088 pub default_address: Option<&'a str>,
9089 #[builder(setter(into, strip_option), default)]
9091 pub default_path: Option<&'a str>,
9092 #[builder(setter(into, strip_option), default)]
9094 pub default_value: Option<Json>,
9095 #[builder(setter(into, strip_option), default)]
9097 pub deprecated: Option<&'a str>,
9098 #[builder(setter(into, strip_option), default)]
9100 pub description: Option<&'a str>,
9101 #[builder(setter(into, strip_option), default)]
9103 pub ignore: Option<Vec<&'a str>>,
9104 #[builder(setter(into, strip_option), default)]
9106 pub source_map: Option<SourceMapId>,
9107}
9108#[derive(Builder, Debug, PartialEq)]
9109pub struct FunctionWithCachePolicyOpts<'a> {
9110 #[builder(setter(into, strip_option), default)]
9112 pub time_to_live: Option<&'a str>,
9113}
9114#[derive(Builder, Debug, PartialEq)]
9115pub struct FunctionWithDeprecatedOpts<'a> {
9116 #[builder(setter(into, strip_option), default)]
9118 pub reason: Option<&'a str>,
9119}
9120impl Function {
9121 pub fn args(&self) -> Vec<FunctionArg> {
9123 let query = self.selection.select("args");
9124 vec![FunctionArg {
9125 proc: self.proc.clone(),
9126 selection: query,
9127 graphql_client: self.graphql_client.clone(),
9128 }]
9129 }
9130 pub async fn deprecated(&self) -> Result<String, DaggerError> {
9132 let query = self.selection.select("deprecated");
9133 query.execute(self.graphql_client.clone()).await
9134 }
9135 pub async fn description(&self) -> Result<String, DaggerError> {
9137 let query = self.selection.select("description");
9138 query.execute(self.graphql_client.clone()).await
9139 }
9140 pub async fn id(&self) -> Result<FunctionId, DaggerError> {
9142 let query = self.selection.select("id");
9143 query.execute(self.graphql_client.clone()).await
9144 }
9145 pub async fn name(&self) -> Result<String, DaggerError> {
9147 let query = self.selection.select("name");
9148 query.execute(self.graphql_client.clone()).await
9149 }
9150 pub fn return_type(&self) -> TypeDef {
9152 let query = self.selection.select("returnType");
9153 TypeDef {
9154 proc: self.proc.clone(),
9155 selection: query,
9156 graphql_client: self.graphql_client.clone(),
9157 }
9158 }
9159 pub fn source_map(&self) -> SourceMap {
9161 let query = self.selection.select("sourceMap");
9162 SourceMap {
9163 proc: self.proc.clone(),
9164 selection: query,
9165 graphql_client: self.graphql_client.clone(),
9166 }
9167 }
9168 pub fn with_arg(&self, name: impl Into<String>, type_def: impl IntoID<TypeDefId>) -> Function {
9176 let mut query = self.selection.select("withArg");
9177 query = query.arg("name", name.into());
9178 query = query.arg_lazy(
9179 "typeDef",
9180 Box::new(move || {
9181 let type_def = type_def.clone();
9182 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
9183 }),
9184 );
9185 Function {
9186 proc: self.proc.clone(),
9187 selection: query,
9188 graphql_client: self.graphql_client.clone(),
9189 }
9190 }
9191 pub fn with_arg_opts<'a>(
9199 &self,
9200 name: impl Into<String>,
9201 type_def: impl IntoID<TypeDefId>,
9202 opts: FunctionWithArgOpts<'a>,
9203 ) -> Function {
9204 let mut query = self.selection.select("withArg");
9205 query = query.arg("name", name.into());
9206 query = query.arg_lazy(
9207 "typeDef",
9208 Box::new(move || {
9209 let type_def = type_def.clone();
9210 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
9211 }),
9212 );
9213 if let Some(description) = opts.description {
9214 query = query.arg("description", description);
9215 }
9216 if let Some(default_value) = opts.default_value {
9217 query = query.arg("defaultValue", default_value);
9218 }
9219 if let Some(default_path) = opts.default_path {
9220 query = query.arg("defaultPath", default_path);
9221 }
9222 if let Some(ignore) = opts.ignore {
9223 query = query.arg("ignore", ignore);
9224 }
9225 if let Some(source_map) = opts.source_map {
9226 query = query.arg("sourceMap", source_map);
9227 }
9228 if let Some(deprecated) = opts.deprecated {
9229 query = query.arg("deprecated", deprecated);
9230 }
9231 if let Some(default_address) = opts.default_address {
9232 query = query.arg("defaultAddress", default_address);
9233 }
9234 Function {
9235 proc: self.proc.clone(),
9236 selection: query,
9237 graphql_client: self.graphql_client.clone(),
9238 }
9239 }
9240 pub fn with_cache_policy(&self, policy: FunctionCachePolicy) -> Function {
9247 let mut query = self.selection.select("withCachePolicy");
9248 query = query.arg("policy", policy);
9249 Function {
9250 proc: self.proc.clone(),
9251 selection: query,
9252 graphql_client: self.graphql_client.clone(),
9253 }
9254 }
9255 pub fn with_cache_policy_opts<'a>(
9262 &self,
9263 policy: FunctionCachePolicy,
9264 opts: FunctionWithCachePolicyOpts<'a>,
9265 ) -> Function {
9266 let mut query = self.selection.select("withCachePolicy");
9267 query = query.arg("policy", policy);
9268 if let Some(time_to_live) = opts.time_to_live {
9269 query = query.arg("timeToLive", time_to_live);
9270 }
9271 Function {
9272 proc: self.proc.clone(),
9273 selection: query,
9274 graphql_client: self.graphql_client.clone(),
9275 }
9276 }
9277 pub fn with_check(&self) -> Function {
9279 let query = self.selection.select("withCheck");
9280 Function {
9281 proc: self.proc.clone(),
9282 selection: query,
9283 graphql_client: self.graphql_client.clone(),
9284 }
9285 }
9286 pub fn with_deprecated(&self) -> Function {
9292 let query = self.selection.select("withDeprecated");
9293 Function {
9294 proc: self.proc.clone(),
9295 selection: query,
9296 graphql_client: self.graphql_client.clone(),
9297 }
9298 }
9299 pub fn with_deprecated_opts<'a>(&self, opts: FunctionWithDeprecatedOpts<'a>) -> Function {
9305 let mut query = self.selection.select("withDeprecated");
9306 if let Some(reason) = opts.reason {
9307 query = query.arg("reason", reason);
9308 }
9309 Function {
9310 proc: self.proc.clone(),
9311 selection: query,
9312 graphql_client: self.graphql_client.clone(),
9313 }
9314 }
9315 pub fn with_description(&self, description: impl Into<String>) -> Function {
9321 let mut query = self.selection.select("withDescription");
9322 query = query.arg("description", description.into());
9323 Function {
9324 proc: self.proc.clone(),
9325 selection: query,
9326 graphql_client: self.graphql_client.clone(),
9327 }
9328 }
9329 pub fn with_generator(&self) -> Function {
9331 let query = self.selection.select("withGenerator");
9332 Function {
9333 proc: self.proc.clone(),
9334 selection: query,
9335 graphql_client: self.graphql_client.clone(),
9336 }
9337 }
9338 pub fn with_source_map(&self, source_map: impl IntoID<SourceMapId>) -> Function {
9344 let mut query = self.selection.select("withSourceMap");
9345 query = query.arg_lazy(
9346 "sourceMap",
9347 Box::new(move || {
9348 let source_map = source_map.clone();
9349 Box::pin(async move { source_map.into_id().await.unwrap().quote() })
9350 }),
9351 );
9352 Function {
9353 proc: self.proc.clone(),
9354 selection: query,
9355 graphql_client: self.graphql_client.clone(),
9356 }
9357 }
9358}
9359#[derive(Clone)]
9360pub struct FunctionArg {
9361 pub proc: Option<Arc<DaggerSessionProc>>,
9362 pub selection: Selection,
9363 pub graphql_client: DynGraphQLClient,
9364}
9365impl FunctionArg {
9366 pub async fn default_address(&self) -> Result<String, DaggerError> {
9368 let query = self.selection.select("defaultAddress");
9369 query.execute(self.graphql_client.clone()).await
9370 }
9371 pub async fn default_path(&self) -> Result<String, DaggerError> {
9373 let query = self.selection.select("defaultPath");
9374 query.execute(self.graphql_client.clone()).await
9375 }
9376 pub async fn default_value(&self) -> Result<Json, DaggerError> {
9378 let query = self.selection.select("defaultValue");
9379 query.execute(self.graphql_client.clone()).await
9380 }
9381 pub async fn deprecated(&self) -> Result<String, DaggerError> {
9383 let query = self.selection.select("deprecated");
9384 query.execute(self.graphql_client.clone()).await
9385 }
9386 pub async fn description(&self) -> Result<String, DaggerError> {
9388 let query = self.selection.select("description");
9389 query.execute(self.graphql_client.clone()).await
9390 }
9391 pub async fn id(&self) -> Result<FunctionArgId, DaggerError> {
9393 let query = self.selection.select("id");
9394 query.execute(self.graphql_client.clone()).await
9395 }
9396 pub async fn ignore(&self) -> Result<Vec<String>, DaggerError> {
9398 let query = self.selection.select("ignore");
9399 query.execute(self.graphql_client.clone()).await
9400 }
9401 pub async fn name(&self) -> Result<String, DaggerError> {
9403 let query = self.selection.select("name");
9404 query.execute(self.graphql_client.clone()).await
9405 }
9406 pub fn source_map(&self) -> SourceMap {
9408 let query = self.selection.select("sourceMap");
9409 SourceMap {
9410 proc: self.proc.clone(),
9411 selection: query,
9412 graphql_client: self.graphql_client.clone(),
9413 }
9414 }
9415 pub fn type_def(&self) -> TypeDef {
9417 let query = self.selection.select("typeDef");
9418 TypeDef {
9419 proc: self.proc.clone(),
9420 selection: query,
9421 graphql_client: self.graphql_client.clone(),
9422 }
9423 }
9424}
9425#[derive(Clone)]
9426pub struct FunctionCall {
9427 pub proc: Option<Arc<DaggerSessionProc>>,
9428 pub selection: Selection,
9429 pub graphql_client: DynGraphQLClient,
9430}
9431impl FunctionCall {
9432 pub async fn id(&self) -> Result<FunctionCallId, DaggerError> {
9434 let query = self.selection.select("id");
9435 query.execute(self.graphql_client.clone()).await
9436 }
9437 pub fn input_args(&self) -> Vec<FunctionCallArgValue> {
9439 let query = self.selection.select("inputArgs");
9440 vec![FunctionCallArgValue {
9441 proc: self.proc.clone(),
9442 selection: query,
9443 graphql_client: self.graphql_client.clone(),
9444 }]
9445 }
9446 pub async fn name(&self) -> Result<String, DaggerError> {
9448 let query = self.selection.select("name");
9449 query.execute(self.graphql_client.clone()).await
9450 }
9451 pub async fn parent(&self) -> Result<Json, DaggerError> {
9453 let query = self.selection.select("parent");
9454 query.execute(self.graphql_client.clone()).await
9455 }
9456 pub async fn parent_name(&self) -> Result<String, DaggerError> {
9458 let query = self.selection.select("parentName");
9459 query.execute(self.graphql_client.clone()).await
9460 }
9461 pub async fn return_error(&self, error: impl IntoID<ErrorId>) -> Result<Void, DaggerError> {
9467 let mut query = self.selection.select("returnError");
9468 query = query.arg_lazy(
9469 "error",
9470 Box::new(move || {
9471 let error = error.clone();
9472 Box::pin(async move { error.into_id().await.unwrap().quote() })
9473 }),
9474 );
9475 query.execute(self.graphql_client.clone()).await
9476 }
9477 pub async fn return_value(&self, value: Json) -> Result<Void, DaggerError> {
9483 let mut query = self.selection.select("returnValue");
9484 query = query.arg("value", value);
9485 query.execute(self.graphql_client.clone()).await
9486 }
9487}
9488#[derive(Clone)]
9489pub struct FunctionCallArgValue {
9490 pub proc: Option<Arc<DaggerSessionProc>>,
9491 pub selection: Selection,
9492 pub graphql_client: DynGraphQLClient,
9493}
9494impl FunctionCallArgValue {
9495 pub async fn id(&self) -> Result<FunctionCallArgValueId, DaggerError> {
9497 let query = self.selection.select("id");
9498 query.execute(self.graphql_client.clone()).await
9499 }
9500 pub async fn name(&self) -> Result<String, DaggerError> {
9502 let query = self.selection.select("name");
9503 query.execute(self.graphql_client.clone()).await
9504 }
9505 pub async fn value(&self) -> Result<Json, DaggerError> {
9507 let query = self.selection.select("value");
9508 query.execute(self.graphql_client.clone()).await
9509 }
9510}
9511#[derive(Clone)]
9512pub struct GeneratedCode {
9513 pub proc: Option<Arc<DaggerSessionProc>>,
9514 pub selection: Selection,
9515 pub graphql_client: DynGraphQLClient,
9516}
9517impl GeneratedCode {
9518 pub fn code(&self) -> Directory {
9520 let query = self.selection.select("code");
9521 Directory {
9522 proc: self.proc.clone(),
9523 selection: query,
9524 graphql_client: self.graphql_client.clone(),
9525 }
9526 }
9527 pub async fn id(&self) -> Result<GeneratedCodeId, DaggerError> {
9529 let query = self.selection.select("id");
9530 query.execute(self.graphql_client.clone()).await
9531 }
9532 pub async fn vcs_generated_paths(&self) -> Result<Vec<String>, DaggerError> {
9534 let query = self.selection.select("vcsGeneratedPaths");
9535 query.execute(self.graphql_client.clone()).await
9536 }
9537 pub async fn vcs_ignored_paths(&self) -> Result<Vec<String>, DaggerError> {
9539 let query = self.selection.select("vcsIgnoredPaths");
9540 query.execute(self.graphql_client.clone()).await
9541 }
9542 pub fn with_vcs_generated_paths(&self, paths: Vec<impl Into<String>>) -> GeneratedCode {
9544 let mut query = self.selection.select("withVCSGeneratedPaths");
9545 query = query.arg(
9546 "paths",
9547 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
9548 );
9549 GeneratedCode {
9550 proc: self.proc.clone(),
9551 selection: query,
9552 graphql_client: self.graphql_client.clone(),
9553 }
9554 }
9555 pub fn with_vcs_ignored_paths(&self, paths: Vec<impl Into<String>>) -> GeneratedCode {
9557 let mut query = self.selection.select("withVCSIgnoredPaths");
9558 query = query.arg(
9559 "paths",
9560 paths.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
9561 );
9562 GeneratedCode {
9563 proc: self.proc.clone(),
9564 selection: query,
9565 graphql_client: self.graphql_client.clone(),
9566 }
9567 }
9568}
9569#[derive(Clone)]
9570pub struct Generator {
9571 pub proc: Option<Arc<DaggerSessionProc>>,
9572 pub selection: Selection,
9573 pub graphql_client: DynGraphQLClient,
9574}
9575impl Generator {
9576 pub fn changes(&self) -> Changeset {
9578 let query = self.selection.select("changes");
9579 Changeset {
9580 proc: self.proc.clone(),
9581 selection: query,
9582 graphql_client: self.graphql_client.clone(),
9583 }
9584 }
9585 pub async fn completed(&self) -> Result<bool, DaggerError> {
9587 let query = self.selection.select("completed");
9588 query.execute(self.graphql_client.clone()).await
9589 }
9590 pub async fn description(&self) -> Result<String, DaggerError> {
9592 let query = self.selection.select("description");
9593 query.execute(self.graphql_client.clone()).await
9594 }
9595 pub async fn id(&self) -> Result<GeneratorId, DaggerError> {
9597 let query = self.selection.select("id");
9598 query.execute(self.graphql_client.clone()).await
9599 }
9600 pub async fn is_empty(&self) -> Result<bool, DaggerError> {
9602 let query = self.selection.select("isEmpty");
9603 query.execute(self.graphql_client.clone()).await
9604 }
9605 pub async fn name(&self) -> Result<String, DaggerError> {
9607 let query = self.selection.select("name");
9608 query.execute(self.graphql_client.clone()).await
9609 }
9610 pub fn original_module(&self) -> Module {
9612 let query = self.selection.select("originalModule");
9613 Module {
9614 proc: self.proc.clone(),
9615 selection: query,
9616 graphql_client: self.graphql_client.clone(),
9617 }
9618 }
9619 pub async fn path(&self) -> Result<Vec<String>, DaggerError> {
9621 let query = self.selection.select("path");
9622 query.execute(self.graphql_client.clone()).await
9623 }
9624 pub fn run(&self) -> Generator {
9626 let query = self.selection.select("run");
9627 Generator {
9628 proc: self.proc.clone(),
9629 selection: query,
9630 graphql_client: self.graphql_client.clone(),
9631 }
9632 }
9633}
9634#[derive(Clone)]
9635pub struct GeneratorGroup {
9636 pub proc: Option<Arc<DaggerSessionProc>>,
9637 pub selection: Selection,
9638 pub graphql_client: DynGraphQLClient,
9639}
9640#[derive(Builder, Debug, PartialEq)]
9641pub struct GeneratorGroupChangesOpts {
9642 #[builder(setter(into, strip_option), default)]
9644 pub on_conflict: Option<ChangesetsMergeConflict>,
9645}
9646impl GeneratorGroup {
9647 pub fn changes(&self) -> Changeset {
9655 let query = self.selection.select("changes");
9656 Changeset {
9657 proc: self.proc.clone(),
9658 selection: query,
9659 graphql_client: self.graphql_client.clone(),
9660 }
9661 }
9662 pub fn changes_opts(&self, opts: GeneratorGroupChangesOpts) -> Changeset {
9670 let mut query = self.selection.select("changes");
9671 if let Some(on_conflict) = opts.on_conflict {
9672 query = query.arg("onConflict", on_conflict);
9673 }
9674 Changeset {
9675 proc: self.proc.clone(),
9676 selection: query,
9677 graphql_client: self.graphql_client.clone(),
9678 }
9679 }
9680 pub async fn id(&self) -> Result<GeneratorGroupId, DaggerError> {
9682 let query = self.selection.select("id");
9683 query.execute(self.graphql_client.clone()).await
9684 }
9685 pub async fn is_empty(&self) -> Result<bool, DaggerError> {
9687 let query = self.selection.select("isEmpty");
9688 query.execute(self.graphql_client.clone()).await
9689 }
9690 pub fn list(&self) -> Vec<Generator> {
9692 let query = self.selection.select("list");
9693 vec![Generator {
9694 proc: self.proc.clone(),
9695 selection: query,
9696 graphql_client: self.graphql_client.clone(),
9697 }]
9698 }
9699 pub fn run(&self) -> GeneratorGroup {
9701 let query = self.selection.select("run");
9702 GeneratorGroup {
9703 proc: self.proc.clone(),
9704 selection: query,
9705 graphql_client: self.graphql_client.clone(),
9706 }
9707 }
9708}
9709#[derive(Clone)]
9710pub struct GitRef {
9711 pub proc: Option<Arc<DaggerSessionProc>>,
9712 pub selection: Selection,
9713 pub graphql_client: DynGraphQLClient,
9714}
9715#[derive(Builder, Debug, PartialEq)]
9716pub struct GitRefTreeOpts {
9717 #[builder(setter(into, strip_option), default)]
9719 pub depth: Option<isize>,
9720 #[builder(setter(into, strip_option), default)]
9722 pub discard_git_dir: Option<bool>,
9723}
9724impl GitRef {
9725 pub async fn commit(&self) -> Result<String, DaggerError> {
9727 let query = self.selection.select("commit");
9728 query.execute(self.graphql_client.clone()).await
9729 }
9730 pub fn common_ancestor(&self, other: impl IntoID<GitRefId>) -> GitRef {
9736 let mut query = self.selection.select("commonAncestor");
9737 query = query.arg_lazy(
9738 "other",
9739 Box::new(move || {
9740 let other = other.clone();
9741 Box::pin(async move { other.into_id().await.unwrap().quote() })
9742 }),
9743 );
9744 GitRef {
9745 proc: self.proc.clone(),
9746 selection: query,
9747 graphql_client: self.graphql_client.clone(),
9748 }
9749 }
9750 pub async fn id(&self) -> Result<GitRefId, DaggerError> {
9752 let query = self.selection.select("id");
9753 query.execute(self.graphql_client.clone()).await
9754 }
9755 pub async fn r#ref(&self) -> Result<String, DaggerError> {
9757 let query = self.selection.select("ref");
9758 query.execute(self.graphql_client.clone()).await
9759 }
9760 pub fn tree(&self) -> Directory {
9766 let query = self.selection.select("tree");
9767 Directory {
9768 proc: self.proc.clone(),
9769 selection: query,
9770 graphql_client: self.graphql_client.clone(),
9771 }
9772 }
9773 pub fn tree_opts(&self, opts: GitRefTreeOpts) -> Directory {
9779 let mut query = self.selection.select("tree");
9780 if let Some(discard_git_dir) = opts.discard_git_dir {
9781 query = query.arg("discardGitDir", discard_git_dir);
9782 }
9783 if let Some(depth) = opts.depth {
9784 query = query.arg("depth", depth);
9785 }
9786 Directory {
9787 proc: self.proc.clone(),
9788 selection: query,
9789 graphql_client: self.graphql_client.clone(),
9790 }
9791 }
9792}
9793#[derive(Clone)]
9794pub struct GitRepository {
9795 pub proc: Option<Arc<DaggerSessionProc>>,
9796 pub selection: Selection,
9797 pub graphql_client: DynGraphQLClient,
9798}
9799#[derive(Builder, Debug, PartialEq)]
9800pub struct GitRepositoryBranchesOpts<'a> {
9801 #[builder(setter(into, strip_option), default)]
9803 pub patterns: Option<Vec<&'a str>>,
9804}
9805#[derive(Builder, Debug, PartialEq)]
9806pub struct GitRepositoryTagsOpts<'a> {
9807 #[builder(setter(into, strip_option), default)]
9809 pub patterns: Option<Vec<&'a str>>,
9810}
9811impl GitRepository {
9812 pub fn branch(&self, name: impl Into<String>) -> GitRef {
9818 let mut query = self.selection.select("branch");
9819 query = query.arg("name", name.into());
9820 GitRef {
9821 proc: self.proc.clone(),
9822 selection: query,
9823 graphql_client: self.graphql_client.clone(),
9824 }
9825 }
9826 pub async fn branches(&self) -> Result<Vec<String>, DaggerError> {
9832 let query = self.selection.select("branches");
9833 query.execute(self.graphql_client.clone()).await
9834 }
9835 pub async fn branches_opts<'a>(
9841 &self,
9842 opts: GitRepositoryBranchesOpts<'a>,
9843 ) -> Result<Vec<String>, DaggerError> {
9844 let mut query = self.selection.select("branches");
9845 if let Some(patterns) = opts.patterns {
9846 query = query.arg("patterns", patterns);
9847 }
9848 query.execute(self.graphql_client.clone()).await
9849 }
9850 pub fn commit(&self, id: impl Into<String>) -> GitRef {
9856 let mut query = self.selection.select("commit");
9857 query = query.arg("id", id.into());
9858 GitRef {
9859 proc: self.proc.clone(),
9860 selection: query,
9861 graphql_client: self.graphql_client.clone(),
9862 }
9863 }
9864 pub fn head(&self) -> GitRef {
9866 let query = self.selection.select("head");
9867 GitRef {
9868 proc: self.proc.clone(),
9869 selection: query,
9870 graphql_client: self.graphql_client.clone(),
9871 }
9872 }
9873 pub async fn id(&self) -> Result<GitRepositoryId, DaggerError> {
9875 let query = self.selection.select("id");
9876 query.execute(self.graphql_client.clone()).await
9877 }
9878 pub fn latest_version(&self) -> GitRef {
9880 let query = self.selection.select("latestVersion");
9881 GitRef {
9882 proc: self.proc.clone(),
9883 selection: query,
9884 graphql_client: self.graphql_client.clone(),
9885 }
9886 }
9887 pub fn r#ref(&self, name: impl Into<String>) -> GitRef {
9893 let mut query = self.selection.select("ref");
9894 query = query.arg("name", name.into());
9895 GitRef {
9896 proc: self.proc.clone(),
9897 selection: query,
9898 graphql_client: self.graphql_client.clone(),
9899 }
9900 }
9901 pub fn tag(&self, name: impl Into<String>) -> GitRef {
9907 let mut query = self.selection.select("tag");
9908 query = query.arg("name", name.into());
9909 GitRef {
9910 proc: self.proc.clone(),
9911 selection: query,
9912 graphql_client: self.graphql_client.clone(),
9913 }
9914 }
9915 pub async fn tags(&self) -> Result<Vec<String>, DaggerError> {
9921 let query = self.selection.select("tags");
9922 query.execute(self.graphql_client.clone()).await
9923 }
9924 pub async fn tags_opts<'a>(
9930 &self,
9931 opts: GitRepositoryTagsOpts<'a>,
9932 ) -> Result<Vec<String>, DaggerError> {
9933 let mut query = self.selection.select("tags");
9934 if let Some(patterns) = opts.patterns {
9935 query = query.arg("patterns", patterns);
9936 }
9937 query.execute(self.graphql_client.clone()).await
9938 }
9939 pub fn uncommitted(&self) -> Changeset {
9941 let query = self.selection.select("uncommitted");
9942 Changeset {
9943 proc: self.proc.clone(),
9944 selection: query,
9945 graphql_client: self.graphql_client.clone(),
9946 }
9947 }
9948 pub async fn url(&self) -> Result<String, DaggerError> {
9950 let query = self.selection.select("url");
9951 query.execute(self.graphql_client.clone()).await
9952 }
9953}
9954#[derive(Clone)]
9955pub struct Host {
9956 pub proc: Option<Arc<DaggerSessionProc>>,
9957 pub selection: Selection,
9958 pub graphql_client: DynGraphQLClient,
9959}
9960#[derive(Builder, Debug, PartialEq)]
9961pub struct HostDirectoryOpts<'a> {
9962 #[builder(setter(into, strip_option), default)]
9964 pub exclude: Option<Vec<&'a str>>,
9965 #[builder(setter(into, strip_option), default)]
9967 pub gitignore: Option<bool>,
9968 #[builder(setter(into, strip_option), default)]
9970 pub include: Option<Vec<&'a str>>,
9971 #[builder(setter(into, strip_option), default)]
9973 pub no_cache: Option<bool>,
9974}
9975#[derive(Builder, Debug, PartialEq)]
9976pub struct HostFileOpts {
9977 #[builder(setter(into, strip_option), default)]
9979 pub no_cache: Option<bool>,
9980}
9981#[derive(Builder, Debug, PartialEq)]
9982pub struct HostFindUpOpts {
9983 #[builder(setter(into, strip_option), default)]
9984 pub no_cache: Option<bool>,
9985}
9986#[derive(Builder, Debug, PartialEq)]
9987pub struct HostServiceOpts<'a> {
9988 #[builder(setter(into, strip_option), default)]
9990 pub host: Option<&'a str>,
9991}
9992#[derive(Builder, Debug, PartialEq)]
9993pub struct HostTunnelOpts {
9994 #[builder(setter(into, strip_option), default)]
9997 pub native: Option<bool>,
9998 #[builder(setter(into, strip_option), default)]
10003 pub ports: Option<Vec<PortForward>>,
10004}
10005impl Host {
10006 pub fn container_image(&self, name: impl Into<String>) -> Container {
10012 let mut query = self.selection.select("containerImage");
10013 query = query.arg("name", name.into());
10014 Container {
10015 proc: self.proc.clone(),
10016 selection: query,
10017 graphql_client: self.graphql_client.clone(),
10018 }
10019 }
10020 pub fn directory(&self, path: impl Into<String>) -> Directory {
10027 let mut query = self.selection.select("directory");
10028 query = query.arg("path", path.into());
10029 Directory {
10030 proc: self.proc.clone(),
10031 selection: query,
10032 graphql_client: self.graphql_client.clone(),
10033 }
10034 }
10035 pub fn directory_opts<'a>(
10042 &self,
10043 path: impl Into<String>,
10044 opts: HostDirectoryOpts<'a>,
10045 ) -> Directory {
10046 let mut query = self.selection.select("directory");
10047 query = query.arg("path", path.into());
10048 if let Some(exclude) = opts.exclude {
10049 query = query.arg("exclude", exclude);
10050 }
10051 if let Some(include) = opts.include {
10052 query = query.arg("include", include);
10053 }
10054 if let Some(no_cache) = opts.no_cache {
10055 query = query.arg("noCache", no_cache);
10056 }
10057 if let Some(gitignore) = opts.gitignore {
10058 query = query.arg("gitignore", gitignore);
10059 }
10060 Directory {
10061 proc: self.proc.clone(),
10062 selection: query,
10063 graphql_client: self.graphql_client.clone(),
10064 }
10065 }
10066 pub fn file(&self, path: impl Into<String>) -> File {
10073 let mut query = self.selection.select("file");
10074 query = query.arg("path", path.into());
10075 File {
10076 proc: self.proc.clone(),
10077 selection: query,
10078 graphql_client: self.graphql_client.clone(),
10079 }
10080 }
10081 pub fn file_opts(&self, path: impl Into<String>, opts: HostFileOpts) -> File {
10088 let mut query = self.selection.select("file");
10089 query = query.arg("path", path.into());
10090 if let Some(no_cache) = opts.no_cache {
10091 query = query.arg("noCache", no_cache);
10092 }
10093 File {
10094 proc: self.proc.clone(),
10095 selection: query,
10096 graphql_client: self.graphql_client.clone(),
10097 }
10098 }
10099 pub async fn find_up(&self, name: impl Into<String>) -> Result<String, DaggerError> {
10106 let mut query = self.selection.select("findUp");
10107 query = query.arg("name", name.into());
10108 query.execute(self.graphql_client.clone()).await
10109 }
10110 pub async fn find_up_opts(
10117 &self,
10118 name: impl Into<String>,
10119 opts: HostFindUpOpts,
10120 ) -> Result<String, DaggerError> {
10121 let mut query = self.selection.select("findUp");
10122 query = query.arg("name", name.into());
10123 if let Some(no_cache) = opts.no_cache {
10124 query = query.arg("noCache", no_cache);
10125 }
10126 query.execute(self.graphql_client.clone()).await
10127 }
10128 pub async fn id(&self) -> Result<HostId, DaggerError> {
10130 let query = self.selection.select("id");
10131 query.execute(self.graphql_client.clone()).await
10132 }
10133 pub fn service(&self, ports: Vec<PortForward>) -> Service {
10144 let mut query = self.selection.select("service");
10145 query = query.arg("ports", ports);
10146 Service {
10147 proc: self.proc.clone(),
10148 selection: query,
10149 graphql_client: self.graphql_client.clone(),
10150 }
10151 }
10152 pub fn service_opts<'a>(&self, ports: Vec<PortForward>, opts: HostServiceOpts<'a>) -> Service {
10163 let mut query = self.selection.select("service");
10164 query = query.arg("ports", ports);
10165 if let Some(host) = opts.host {
10166 query = query.arg("host", host);
10167 }
10168 Service {
10169 proc: self.proc.clone(),
10170 selection: query,
10171 graphql_client: self.graphql_client.clone(),
10172 }
10173 }
10174 pub fn tunnel(&self, service: impl IntoID<ServiceId>) -> Service {
10181 let mut query = self.selection.select("tunnel");
10182 query = query.arg_lazy(
10183 "service",
10184 Box::new(move || {
10185 let service = service.clone();
10186 Box::pin(async move { service.into_id().await.unwrap().quote() })
10187 }),
10188 );
10189 Service {
10190 proc: self.proc.clone(),
10191 selection: query,
10192 graphql_client: self.graphql_client.clone(),
10193 }
10194 }
10195 pub fn tunnel_opts(&self, service: impl IntoID<ServiceId>, opts: HostTunnelOpts) -> Service {
10202 let mut query = self.selection.select("tunnel");
10203 query = query.arg_lazy(
10204 "service",
10205 Box::new(move || {
10206 let service = service.clone();
10207 Box::pin(async move { service.into_id().await.unwrap().quote() })
10208 }),
10209 );
10210 if let Some(native) = opts.native {
10211 query = query.arg("native", native);
10212 }
10213 if let Some(ports) = opts.ports {
10214 query = query.arg("ports", ports);
10215 }
10216 Service {
10217 proc: self.proc.clone(),
10218 selection: query,
10219 graphql_client: self.graphql_client.clone(),
10220 }
10221 }
10222 pub fn unix_socket(&self, path: impl Into<String>) -> Socket {
10228 let mut query = self.selection.select("unixSocket");
10229 query = query.arg("path", path.into());
10230 Socket {
10231 proc: self.proc.clone(),
10232 selection: query,
10233 graphql_client: self.graphql_client.clone(),
10234 }
10235 }
10236}
10237#[derive(Clone)]
10238pub struct InputTypeDef {
10239 pub proc: Option<Arc<DaggerSessionProc>>,
10240 pub selection: Selection,
10241 pub graphql_client: DynGraphQLClient,
10242}
10243impl InputTypeDef {
10244 pub fn fields(&self) -> Vec<FieldTypeDef> {
10246 let query = self.selection.select("fields");
10247 vec![FieldTypeDef {
10248 proc: self.proc.clone(),
10249 selection: query,
10250 graphql_client: self.graphql_client.clone(),
10251 }]
10252 }
10253 pub async fn id(&self) -> Result<InputTypeDefId, DaggerError> {
10255 let query = self.selection.select("id");
10256 query.execute(self.graphql_client.clone()).await
10257 }
10258 pub async fn name(&self) -> Result<String, DaggerError> {
10260 let query = self.selection.select("name");
10261 query.execute(self.graphql_client.clone()).await
10262 }
10263}
10264#[derive(Clone)]
10265pub struct InterfaceTypeDef {
10266 pub proc: Option<Arc<DaggerSessionProc>>,
10267 pub selection: Selection,
10268 pub graphql_client: DynGraphQLClient,
10269}
10270impl InterfaceTypeDef {
10271 pub async fn description(&self) -> Result<String, DaggerError> {
10273 let query = self.selection.select("description");
10274 query.execute(self.graphql_client.clone()).await
10275 }
10276 pub fn functions(&self) -> Vec<Function> {
10278 let query = self.selection.select("functions");
10279 vec![Function {
10280 proc: self.proc.clone(),
10281 selection: query,
10282 graphql_client: self.graphql_client.clone(),
10283 }]
10284 }
10285 pub async fn id(&self) -> Result<InterfaceTypeDefId, DaggerError> {
10287 let query = self.selection.select("id");
10288 query.execute(self.graphql_client.clone()).await
10289 }
10290 pub async fn name(&self) -> Result<String, DaggerError> {
10292 let query = self.selection.select("name");
10293 query.execute(self.graphql_client.clone()).await
10294 }
10295 pub fn source_map(&self) -> SourceMap {
10297 let query = self.selection.select("sourceMap");
10298 SourceMap {
10299 proc: self.proc.clone(),
10300 selection: query,
10301 graphql_client: self.graphql_client.clone(),
10302 }
10303 }
10304 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
10306 let query = self.selection.select("sourceModuleName");
10307 query.execute(self.graphql_client.clone()).await
10308 }
10309}
10310#[derive(Clone)]
10311pub struct JsonValue {
10312 pub proc: Option<Arc<DaggerSessionProc>>,
10313 pub selection: Selection,
10314 pub graphql_client: DynGraphQLClient,
10315}
10316#[derive(Builder, Debug, PartialEq)]
10317pub struct JsonValueContentsOpts<'a> {
10318 #[builder(setter(into, strip_option), default)]
10320 pub indent: Option<&'a str>,
10321 #[builder(setter(into, strip_option), default)]
10323 pub pretty: Option<bool>,
10324}
10325impl JsonValue {
10326 pub fn as_array(&self) -> Vec<JsonValue> {
10328 let query = self.selection.select("asArray");
10329 vec![JsonValue {
10330 proc: self.proc.clone(),
10331 selection: query,
10332 graphql_client: self.graphql_client.clone(),
10333 }]
10334 }
10335 pub async fn as_boolean(&self) -> Result<bool, DaggerError> {
10337 let query = self.selection.select("asBoolean");
10338 query.execute(self.graphql_client.clone()).await
10339 }
10340 pub async fn as_integer(&self) -> Result<isize, DaggerError> {
10342 let query = self.selection.select("asInteger");
10343 query.execute(self.graphql_client.clone()).await
10344 }
10345 pub async fn as_string(&self) -> Result<String, DaggerError> {
10347 let query = self.selection.select("asString");
10348 query.execute(self.graphql_client.clone()).await
10349 }
10350 pub async fn contents(&self) -> Result<Json, DaggerError> {
10356 let query = self.selection.select("contents");
10357 query.execute(self.graphql_client.clone()).await
10358 }
10359 pub async fn contents_opts<'a>(
10365 &self,
10366 opts: JsonValueContentsOpts<'a>,
10367 ) -> Result<Json, DaggerError> {
10368 let mut query = self.selection.select("contents");
10369 if let Some(pretty) = opts.pretty {
10370 query = query.arg("pretty", pretty);
10371 }
10372 if let Some(indent) = opts.indent {
10373 query = query.arg("indent", indent);
10374 }
10375 query.execute(self.graphql_client.clone()).await
10376 }
10377 pub fn field(&self, path: Vec<impl Into<String>>) -> JsonValue {
10383 let mut query = self.selection.select("field");
10384 query = query.arg(
10385 "path",
10386 path.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
10387 );
10388 JsonValue {
10389 proc: self.proc.clone(),
10390 selection: query,
10391 graphql_client: self.graphql_client.clone(),
10392 }
10393 }
10394 pub async fn fields(&self) -> Result<Vec<String>, DaggerError> {
10396 let query = self.selection.select("fields");
10397 query.execute(self.graphql_client.clone()).await
10398 }
10399 pub async fn id(&self) -> Result<JsonValueId, DaggerError> {
10401 let query = self.selection.select("id");
10402 query.execute(self.graphql_client.clone()).await
10403 }
10404 pub fn new_boolean(&self, value: bool) -> JsonValue {
10410 let mut query = self.selection.select("newBoolean");
10411 query = query.arg("value", value);
10412 JsonValue {
10413 proc: self.proc.clone(),
10414 selection: query,
10415 graphql_client: self.graphql_client.clone(),
10416 }
10417 }
10418 pub fn new_integer(&self, value: isize) -> JsonValue {
10424 let mut query = self.selection.select("newInteger");
10425 query = query.arg("value", value);
10426 JsonValue {
10427 proc: self.proc.clone(),
10428 selection: query,
10429 graphql_client: self.graphql_client.clone(),
10430 }
10431 }
10432 pub fn new_string(&self, value: impl Into<String>) -> JsonValue {
10438 let mut query = self.selection.select("newString");
10439 query = query.arg("value", value.into());
10440 JsonValue {
10441 proc: self.proc.clone(),
10442 selection: query,
10443 graphql_client: self.graphql_client.clone(),
10444 }
10445 }
10446 pub fn with_contents(&self, contents: Json) -> JsonValue {
10452 let mut query = self.selection.select("withContents");
10453 query = query.arg("contents", contents);
10454 JsonValue {
10455 proc: self.proc.clone(),
10456 selection: query,
10457 graphql_client: self.graphql_client.clone(),
10458 }
10459 }
10460 pub fn with_field(
10467 &self,
10468 path: Vec<impl Into<String>>,
10469 value: impl IntoID<JsonValueId>,
10470 ) -> JsonValue {
10471 let mut query = self.selection.select("withField");
10472 query = query.arg(
10473 "path",
10474 path.into_iter().map(|i| i.into()).collect::<Vec<String>>(),
10475 );
10476 query = query.arg_lazy(
10477 "value",
10478 Box::new(move || {
10479 let value = value.clone();
10480 Box::pin(async move { value.into_id().await.unwrap().quote() })
10481 }),
10482 );
10483 JsonValue {
10484 proc: self.proc.clone(),
10485 selection: query,
10486 graphql_client: self.graphql_client.clone(),
10487 }
10488 }
10489}
10490#[derive(Clone)]
10491pub struct Llm {
10492 pub proc: Option<Arc<DaggerSessionProc>>,
10493 pub selection: Selection,
10494 pub graphql_client: DynGraphQLClient,
10495}
10496impl Llm {
10497 pub fn attempt(&self, number: isize) -> Llm {
10499 let mut query = self.selection.select("attempt");
10500 query = query.arg("number", number);
10501 Llm {
10502 proc: self.proc.clone(),
10503 selection: query,
10504 graphql_client: self.graphql_client.clone(),
10505 }
10506 }
10507 pub fn bind_result(&self, name: impl Into<String>) -> Binding {
10509 let mut query = self.selection.select("bindResult");
10510 query = query.arg("name", name.into());
10511 Binding {
10512 proc: self.proc.clone(),
10513 selection: query,
10514 graphql_client: self.graphql_client.clone(),
10515 }
10516 }
10517 pub fn env(&self) -> Env {
10519 let query = self.selection.select("env");
10520 Env {
10521 proc: self.proc.clone(),
10522 selection: query,
10523 graphql_client: self.graphql_client.clone(),
10524 }
10525 }
10526 pub async fn has_prompt(&self) -> Result<bool, DaggerError> {
10528 let query = self.selection.select("hasPrompt");
10529 query.execute(self.graphql_client.clone()).await
10530 }
10531 pub async fn history(&self) -> Result<Vec<String>, DaggerError> {
10533 let query = self.selection.select("history");
10534 query.execute(self.graphql_client.clone()).await
10535 }
10536 pub async fn history_json(&self) -> Result<Json, DaggerError> {
10538 let query = self.selection.select("historyJSON");
10539 query.execute(self.graphql_client.clone()).await
10540 }
10541 pub async fn id(&self) -> Result<Llmid, DaggerError> {
10543 let query = self.selection.select("id");
10544 query.execute(self.graphql_client.clone()).await
10545 }
10546 pub async fn last_reply(&self) -> Result<String, DaggerError> {
10548 let query = self.selection.select("lastReply");
10549 query.execute(self.graphql_client.clone()).await
10550 }
10551 pub fn r#loop(&self) -> Llm {
10553 let query = self.selection.select("loop");
10554 Llm {
10555 proc: self.proc.clone(),
10556 selection: query,
10557 graphql_client: self.graphql_client.clone(),
10558 }
10559 }
10560 pub async fn model(&self) -> Result<String, DaggerError> {
10562 let query = self.selection.select("model");
10563 query.execute(self.graphql_client.clone()).await
10564 }
10565 pub async fn provider(&self) -> Result<String, DaggerError> {
10567 let query = self.selection.select("provider");
10568 query.execute(self.graphql_client.clone()).await
10569 }
10570 pub async fn step(&self) -> Result<Llmid, DaggerError> {
10572 let query = self.selection.select("step");
10573 query.execute(self.graphql_client.clone()).await
10574 }
10575 pub async fn sync(&self) -> Result<Llmid, DaggerError> {
10577 let query = self.selection.select("sync");
10578 query.execute(self.graphql_client.clone()).await
10579 }
10580 pub fn token_usage(&self) -> LlmTokenUsage {
10582 let query = self.selection.select("tokenUsage");
10583 LlmTokenUsage {
10584 proc: self.proc.clone(),
10585 selection: query,
10586 graphql_client: self.graphql_client.clone(),
10587 }
10588 }
10589 pub async fn tools(&self) -> Result<String, DaggerError> {
10591 let query = self.selection.select("tools");
10592 query.execute(self.graphql_client.clone()).await
10593 }
10594 pub fn with_blocked_function(
10603 &self,
10604 type_name: impl Into<String>,
10605 function: impl Into<String>,
10606 ) -> Llm {
10607 let mut query = self.selection.select("withBlockedFunction");
10608 query = query.arg("typeName", type_name.into());
10609 query = query.arg("function", function.into());
10610 Llm {
10611 proc: self.proc.clone(),
10612 selection: query,
10613 graphql_client: self.graphql_client.clone(),
10614 }
10615 }
10616 pub fn with_env(&self, env: impl IntoID<EnvId>) -> Llm {
10618 let mut query = self.selection.select("withEnv");
10619 query = query.arg_lazy(
10620 "env",
10621 Box::new(move || {
10622 let env = env.clone();
10623 Box::pin(async move { env.into_id().await.unwrap().quote() })
10624 }),
10625 );
10626 Llm {
10627 proc: self.proc.clone(),
10628 selection: query,
10629 graphql_client: self.graphql_client.clone(),
10630 }
10631 }
10632 pub fn with_mcp_server(&self, name: impl Into<String>, service: impl IntoID<ServiceId>) -> Llm {
10639 let mut query = self.selection.select("withMCPServer");
10640 query = query.arg("name", name.into());
10641 query = query.arg_lazy(
10642 "service",
10643 Box::new(move || {
10644 let service = service.clone();
10645 Box::pin(async move { service.into_id().await.unwrap().quote() })
10646 }),
10647 );
10648 Llm {
10649 proc: self.proc.clone(),
10650 selection: query,
10651 graphql_client: self.graphql_client.clone(),
10652 }
10653 }
10654 pub fn with_model(&self, model: impl Into<String>) -> Llm {
10660 let mut query = self.selection.select("withModel");
10661 query = query.arg("model", model.into());
10662 Llm {
10663 proc: self.proc.clone(),
10664 selection: query,
10665 graphql_client: self.graphql_client.clone(),
10666 }
10667 }
10668 pub fn with_prompt(&self, prompt: impl Into<String>) -> Llm {
10674 let mut query = self.selection.select("withPrompt");
10675 query = query.arg("prompt", prompt.into());
10676 Llm {
10677 proc: self.proc.clone(),
10678 selection: query,
10679 graphql_client: self.graphql_client.clone(),
10680 }
10681 }
10682 pub fn with_prompt_file(&self, file: impl IntoID<FileId>) -> Llm {
10688 let mut query = self.selection.select("withPromptFile");
10689 query = query.arg_lazy(
10690 "file",
10691 Box::new(move || {
10692 let file = file.clone();
10693 Box::pin(async move { file.into_id().await.unwrap().quote() })
10694 }),
10695 );
10696 Llm {
10697 proc: self.proc.clone(),
10698 selection: query,
10699 graphql_client: self.graphql_client.clone(),
10700 }
10701 }
10702 pub fn with_static_tools(&self) -> Llm {
10704 let query = self.selection.select("withStaticTools");
10705 Llm {
10706 proc: self.proc.clone(),
10707 selection: query,
10708 graphql_client: self.graphql_client.clone(),
10709 }
10710 }
10711 pub fn with_system_prompt(&self, prompt: impl Into<String>) -> Llm {
10717 let mut query = self.selection.select("withSystemPrompt");
10718 query = query.arg("prompt", prompt.into());
10719 Llm {
10720 proc: self.proc.clone(),
10721 selection: query,
10722 graphql_client: self.graphql_client.clone(),
10723 }
10724 }
10725 pub fn without_default_system_prompt(&self) -> Llm {
10727 let query = self.selection.select("withoutDefaultSystemPrompt");
10728 Llm {
10729 proc: self.proc.clone(),
10730 selection: query,
10731 graphql_client: self.graphql_client.clone(),
10732 }
10733 }
10734 pub fn without_message_history(&self) -> Llm {
10736 let query = self.selection.select("withoutMessageHistory");
10737 Llm {
10738 proc: self.proc.clone(),
10739 selection: query,
10740 graphql_client: self.graphql_client.clone(),
10741 }
10742 }
10743 pub fn without_system_prompts(&self) -> Llm {
10745 let query = self.selection.select("withoutSystemPrompts");
10746 Llm {
10747 proc: self.proc.clone(),
10748 selection: query,
10749 graphql_client: self.graphql_client.clone(),
10750 }
10751 }
10752}
10753#[derive(Clone)]
10754pub struct LlmTokenUsage {
10755 pub proc: Option<Arc<DaggerSessionProc>>,
10756 pub selection: Selection,
10757 pub graphql_client: DynGraphQLClient,
10758}
10759impl LlmTokenUsage {
10760 pub async fn cached_token_reads(&self) -> Result<isize, DaggerError> {
10761 let query = self.selection.select("cachedTokenReads");
10762 query.execute(self.graphql_client.clone()).await
10763 }
10764 pub async fn cached_token_writes(&self) -> Result<isize, DaggerError> {
10765 let query = self.selection.select("cachedTokenWrites");
10766 query.execute(self.graphql_client.clone()).await
10767 }
10768 pub async fn id(&self) -> Result<LlmTokenUsageId, DaggerError> {
10770 let query = self.selection.select("id");
10771 query.execute(self.graphql_client.clone()).await
10772 }
10773 pub async fn input_tokens(&self) -> Result<isize, DaggerError> {
10774 let query = self.selection.select("inputTokens");
10775 query.execute(self.graphql_client.clone()).await
10776 }
10777 pub async fn output_tokens(&self) -> Result<isize, DaggerError> {
10778 let query = self.selection.select("outputTokens");
10779 query.execute(self.graphql_client.clone()).await
10780 }
10781 pub async fn total_tokens(&self) -> Result<isize, DaggerError> {
10782 let query = self.selection.select("totalTokens");
10783 query.execute(self.graphql_client.clone()).await
10784 }
10785}
10786#[derive(Clone)]
10787pub struct Label {
10788 pub proc: Option<Arc<DaggerSessionProc>>,
10789 pub selection: Selection,
10790 pub graphql_client: DynGraphQLClient,
10791}
10792impl Label {
10793 pub async fn id(&self) -> Result<LabelId, DaggerError> {
10795 let query = self.selection.select("id");
10796 query.execute(self.graphql_client.clone()).await
10797 }
10798 pub async fn name(&self) -> Result<String, DaggerError> {
10800 let query = self.selection.select("name");
10801 query.execute(self.graphql_client.clone()).await
10802 }
10803 pub async fn value(&self) -> Result<String, DaggerError> {
10805 let query = self.selection.select("value");
10806 query.execute(self.graphql_client.clone()).await
10807 }
10808}
10809#[derive(Clone)]
10810pub struct ListTypeDef {
10811 pub proc: Option<Arc<DaggerSessionProc>>,
10812 pub selection: Selection,
10813 pub graphql_client: DynGraphQLClient,
10814}
10815impl ListTypeDef {
10816 pub fn element_type_def(&self) -> TypeDef {
10818 let query = self.selection.select("elementTypeDef");
10819 TypeDef {
10820 proc: self.proc.clone(),
10821 selection: query,
10822 graphql_client: self.graphql_client.clone(),
10823 }
10824 }
10825 pub async fn id(&self) -> Result<ListTypeDefId, DaggerError> {
10827 let query = self.selection.select("id");
10828 query.execute(self.graphql_client.clone()).await
10829 }
10830}
10831#[derive(Clone)]
10832pub struct Module {
10833 pub proc: Option<Arc<DaggerSessionProc>>,
10834 pub selection: Selection,
10835 pub graphql_client: DynGraphQLClient,
10836}
10837#[derive(Builder, Debug, PartialEq)]
10838pub struct ModuleChecksOpts<'a> {
10839 #[builder(setter(into, strip_option), default)]
10841 pub include: Option<Vec<&'a str>>,
10842}
10843#[derive(Builder, Debug, PartialEq)]
10844pub struct ModuleGeneratorsOpts<'a> {
10845 #[builder(setter(into, strip_option), default)]
10847 pub include: Option<Vec<&'a str>>,
10848}
10849#[derive(Builder, Debug, PartialEq)]
10850pub struct ModuleServeOpts {
10851 #[builder(setter(into, strip_option), default)]
10853 pub include_dependencies: Option<bool>,
10854}
10855impl Module {
10856 pub fn check(&self, name: impl Into<String>) -> Check {
10862 let mut query = self.selection.select("check");
10863 query = query.arg("name", name.into());
10864 Check {
10865 proc: self.proc.clone(),
10866 selection: query,
10867 graphql_client: self.graphql_client.clone(),
10868 }
10869 }
10870 pub fn checks(&self) -> CheckGroup {
10876 let query = self.selection.select("checks");
10877 CheckGroup {
10878 proc: self.proc.clone(),
10879 selection: query,
10880 graphql_client: self.graphql_client.clone(),
10881 }
10882 }
10883 pub fn checks_opts<'a>(&self, opts: ModuleChecksOpts<'a>) -> CheckGroup {
10889 let mut query = self.selection.select("checks");
10890 if let Some(include) = opts.include {
10891 query = query.arg("include", include);
10892 }
10893 CheckGroup {
10894 proc: self.proc.clone(),
10895 selection: query,
10896 graphql_client: self.graphql_client.clone(),
10897 }
10898 }
10899 pub fn dependencies(&self) -> Vec<Module> {
10901 let query = self.selection.select("dependencies");
10902 vec![Module {
10903 proc: self.proc.clone(),
10904 selection: query,
10905 graphql_client: self.graphql_client.clone(),
10906 }]
10907 }
10908 pub async fn description(&self) -> Result<String, DaggerError> {
10910 let query = self.selection.select("description");
10911 query.execute(self.graphql_client.clone()).await
10912 }
10913 pub fn enums(&self) -> Vec<TypeDef> {
10915 let query = self.selection.select("enums");
10916 vec![TypeDef {
10917 proc: self.proc.clone(),
10918 selection: query,
10919 graphql_client: self.graphql_client.clone(),
10920 }]
10921 }
10922 pub fn generated_context_directory(&self) -> Directory {
10924 let query = self.selection.select("generatedContextDirectory");
10925 Directory {
10926 proc: self.proc.clone(),
10927 selection: query,
10928 graphql_client: self.graphql_client.clone(),
10929 }
10930 }
10931 pub fn generator(&self, name: impl Into<String>) -> Generator {
10937 let mut query = self.selection.select("generator");
10938 query = query.arg("name", name.into());
10939 Generator {
10940 proc: self.proc.clone(),
10941 selection: query,
10942 graphql_client: self.graphql_client.clone(),
10943 }
10944 }
10945 pub fn generators(&self) -> GeneratorGroup {
10951 let query = self.selection.select("generators");
10952 GeneratorGroup {
10953 proc: self.proc.clone(),
10954 selection: query,
10955 graphql_client: self.graphql_client.clone(),
10956 }
10957 }
10958 pub fn generators_opts<'a>(&self, opts: ModuleGeneratorsOpts<'a>) -> GeneratorGroup {
10964 let mut query = self.selection.select("generators");
10965 if let Some(include) = opts.include {
10966 query = query.arg("include", include);
10967 }
10968 GeneratorGroup {
10969 proc: self.proc.clone(),
10970 selection: query,
10971 graphql_client: self.graphql_client.clone(),
10972 }
10973 }
10974 pub async fn id(&self) -> Result<ModuleId, DaggerError> {
10976 let query = self.selection.select("id");
10977 query.execute(self.graphql_client.clone()).await
10978 }
10979 pub fn interfaces(&self) -> Vec<TypeDef> {
10981 let query = self.selection.select("interfaces");
10982 vec![TypeDef {
10983 proc: self.proc.clone(),
10984 selection: query,
10985 graphql_client: self.graphql_client.clone(),
10986 }]
10987 }
10988 pub fn introspection_schema_json(&self) -> File {
10992 let query = self.selection.select("introspectionSchemaJSON");
10993 File {
10994 proc: self.proc.clone(),
10995 selection: query,
10996 graphql_client: self.graphql_client.clone(),
10997 }
10998 }
10999 pub async fn name(&self) -> Result<String, DaggerError> {
11001 let query = self.selection.select("name");
11002 query.execute(self.graphql_client.clone()).await
11003 }
11004 pub fn objects(&self) -> Vec<TypeDef> {
11006 let query = self.selection.select("objects");
11007 vec![TypeDef {
11008 proc: self.proc.clone(),
11009 selection: query,
11010 graphql_client: self.graphql_client.clone(),
11011 }]
11012 }
11013 pub fn runtime(&self) -> Container {
11015 let query = self.selection.select("runtime");
11016 Container {
11017 proc: self.proc.clone(),
11018 selection: query,
11019 graphql_client: self.graphql_client.clone(),
11020 }
11021 }
11022 pub fn sdk(&self) -> SdkConfig {
11024 let query = self.selection.select("sdk");
11025 SdkConfig {
11026 proc: self.proc.clone(),
11027 selection: query,
11028 graphql_client: self.graphql_client.clone(),
11029 }
11030 }
11031 pub async fn serve(&self) -> Result<Void, DaggerError> {
11038 let query = self.selection.select("serve");
11039 query.execute(self.graphql_client.clone()).await
11040 }
11041 pub async fn serve_opts(&self, opts: ModuleServeOpts) -> Result<Void, DaggerError> {
11048 let mut query = self.selection.select("serve");
11049 if let Some(include_dependencies) = opts.include_dependencies {
11050 query = query.arg("includeDependencies", include_dependencies);
11051 }
11052 query.execute(self.graphql_client.clone()).await
11053 }
11054 pub fn source(&self) -> ModuleSource {
11056 let query = self.selection.select("source");
11057 ModuleSource {
11058 proc: self.proc.clone(),
11059 selection: query,
11060 graphql_client: self.graphql_client.clone(),
11061 }
11062 }
11063 pub async fn sync(&self) -> Result<ModuleId, DaggerError> {
11065 let query = self.selection.select("sync");
11066 query.execute(self.graphql_client.clone()).await
11067 }
11068 pub fn user_defaults(&self) -> EnvFile {
11070 let query = self.selection.select("userDefaults");
11071 EnvFile {
11072 proc: self.proc.clone(),
11073 selection: query,
11074 graphql_client: self.graphql_client.clone(),
11075 }
11076 }
11077 pub fn with_description(&self, description: impl Into<String>) -> Module {
11083 let mut query = self.selection.select("withDescription");
11084 query = query.arg("description", description.into());
11085 Module {
11086 proc: self.proc.clone(),
11087 selection: query,
11088 graphql_client: self.graphql_client.clone(),
11089 }
11090 }
11091 pub fn with_enum(&self, r#enum: impl IntoID<TypeDefId>) -> Module {
11093 let mut query = self.selection.select("withEnum");
11094 query = query.arg_lazy(
11095 "enum",
11096 Box::new(move || {
11097 let r#enum = r#enum.clone();
11098 Box::pin(async move { r#enum.into_id().await.unwrap().quote() })
11099 }),
11100 );
11101 Module {
11102 proc: self.proc.clone(),
11103 selection: query,
11104 graphql_client: self.graphql_client.clone(),
11105 }
11106 }
11107 pub fn with_interface(&self, iface: impl IntoID<TypeDefId>) -> Module {
11109 let mut query = self.selection.select("withInterface");
11110 query = query.arg_lazy(
11111 "iface",
11112 Box::new(move || {
11113 let iface = iface.clone();
11114 Box::pin(async move { iface.into_id().await.unwrap().quote() })
11115 }),
11116 );
11117 Module {
11118 proc: self.proc.clone(),
11119 selection: query,
11120 graphql_client: self.graphql_client.clone(),
11121 }
11122 }
11123 pub fn with_object(&self, object: impl IntoID<TypeDefId>) -> Module {
11125 let mut query = self.selection.select("withObject");
11126 query = query.arg_lazy(
11127 "object",
11128 Box::new(move || {
11129 let object = object.clone();
11130 Box::pin(async move { object.into_id().await.unwrap().quote() })
11131 }),
11132 );
11133 Module {
11134 proc: self.proc.clone(),
11135 selection: query,
11136 graphql_client: self.graphql_client.clone(),
11137 }
11138 }
11139}
11140#[derive(Clone)]
11141pub struct ModuleConfigClient {
11142 pub proc: Option<Arc<DaggerSessionProc>>,
11143 pub selection: Selection,
11144 pub graphql_client: DynGraphQLClient,
11145}
11146impl ModuleConfigClient {
11147 pub async fn directory(&self) -> Result<String, DaggerError> {
11149 let query = self.selection.select("directory");
11150 query.execute(self.graphql_client.clone()).await
11151 }
11152 pub async fn generator(&self) -> Result<String, DaggerError> {
11154 let query = self.selection.select("generator");
11155 query.execute(self.graphql_client.clone()).await
11156 }
11157 pub async fn id(&self) -> Result<ModuleConfigClientId, DaggerError> {
11159 let query = self.selection.select("id");
11160 query.execute(self.graphql_client.clone()).await
11161 }
11162}
11163#[derive(Clone)]
11164pub struct ModuleSource {
11165 pub proc: Option<Arc<DaggerSessionProc>>,
11166 pub selection: Selection,
11167 pub graphql_client: DynGraphQLClient,
11168}
11169impl ModuleSource {
11170 pub fn as_module(&self) -> Module {
11172 let query = self.selection.select("asModule");
11173 Module {
11174 proc: self.proc.clone(),
11175 selection: query,
11176 graphql_client: self.graphql_client.clone(),
11177 }
11178 }
11179 pub async fn as_string(&self) -> Result<String, DaggerError> {
11181 let query = self.selection.select("asString");
11182 query.execute(self.graphql_client.clone()).await
11183 }
11184 pub fn blueprint(&self) -> ModuleSource {
11186 let query = self.selection.select("blueprint");
11187 ModuleSource {
11188 proc: self.proc.clone(),
11189 selection: query,
11190 graphql_client: self.graphql_client.clone(),
11191 }
11192 }
11193 pub async fn clone_ref(&self) -> Result<String, DaggerError> {
11195 let query = self.selection.select("cloneRef");
11196 query.execute(self.graphql_client.clone()).await
11197 }
11198 pub async fn commit(&self) -> Result<String, DaggerError> {
11200 let query = self.selection.select("commit");
11201 query.execute(self.graphql_client.clone()).await
11202 }
11203 pub fn config_clients(&self) -> Vec<ModuleConfigClient> {
11205 let query = self.selection.select("configClients");
11206 vec![ModuleConfigClient {
11207 proc: self.proc.clone(),
11208 selection: query,
11209 graphql_client: self.graphql_client.clone(),
11210 }]
11211 }
11212 pub async fn config_exists(&self) -> Result<bool, DaggerError> {
11214 let query = self.selection.select("configExists");
11215 query.execute(self.graphql_client.clone()).await
11216 }
11217 pub fn context_directory(&self) -> Directory {
11219 let query = self.selection.select("contextDirectory");
11220 Directory {
11221 proc: self.proc.clone(),
11222 selection: query,
11223 graphql_client: self.graphql_client.clone(),
11224 }
11225 }
11226 pub fn dependencies(&self) -> Vec<ModuleSource> {
11228 let query = self.selection.select("dependencies");
11229 vec![ModuleSource {
11230 proc: self.proc.clone(),
11231 selection: query,
11232 graphql_client: self.graphql_client.clone(),
11233 }]
11234 }
11235 pub async fn digest(&self) -> Result<String, DaggerError> {
11237 let query = self.selection.select("digest");
11238 query.execute(self.graphql_client.clone()).await
11239 }
11240 pub fn directory(&self, path: impl Into<String>) -> Directory {
11246 let mut query = self.selection.select("directory");
11247 query = query.arg("path", path.into());
11248 Directory {
11249 proc: self.proc.clone(),
11250 selection: query,
11251 graphql_client: self.graphql_client.clone(),
11252 }
11253 }
11254 pub async fn engine_version(&self) -> Result<String, DaggerError> {
11256 let query = self.selection.select("engineVersion");
11257 query.execute(self.graphql_client.clone()).await
11258 }
11259 pub fn generated_context_directory(&self) -> Directory {
11261 let query = self.selection.select("generatedContextDirectory");
11262 Directory {
11263 proc: self.proc.clone(),
11264 selection: query,
11265 graphql_client: self.graphql_client.clone(),
11266 }
11267 }
11268 pub async fn html_repo_url(&self) -> Result<String, DaggerError> {
11270 let query = self.selection.select("htmlRepoURL");
11271 query.execute(self.graphql_client.clone()).await
11272 }
11273 pub async fn html_url(&self) -> Result<String, DaggerError> {
11275 let query = self.selection.select("htmlURL");
11276 query.execute(self.graphql_client.clone()).await
11277 }
11278 pub async fn id(&self) -> Result<ModuleSourceId, DaggerError> {
11280 let query = self.selection.select("id");
11281 query.execute(self.graphql_client.clone()).await
11282 }
11283 pub fn introspection_schema_json(&self) -> File {
11287 let query = self.selection.select("introspectionSchemaJSON");
11288 File {
11289 proc: self.proc.clone(),
11290 selection: query,
11291 graphql_client: self.graphql_client.clone(),
11292 }
11293 }
11294 pub async fn kind(&self) -> Result<ModuleSourceKind, DaggerError> {
11296 let query = self.selection.select("kind");
11297 query.execute(self.graphql_client.clone()).await
11298 }
11299 pub async fn local_context_directory_path(&self) -> Result<String, DaggerError> {
11301 let query = self.selection.select("localContextDirectoryPath");
11302 query.execute(self.graphql_client.clone()).await
11303 }
11304 pub async fn module_name(&self) -> Result<String, DaggerError> {
11306 let query = self.selection.select("moduleName");
11307 query.execute(self.graphql_client.clone()).await
11308 }
11309 pub async fn module_original_name(&self) -> Result<String, DaggerError> {
11311 let query = self.selection.select("moduleOriginalName");
11312 query.execute(self.graphql_client.clone()).await
11313 }
11314 pub async fn original_subpath(&self) -> Result<String, DaggerError> {
11316 let query = self.selection.select("originalSubpath");
11317 query.execute(self.graphql_client.clone()).await
11318 }
11319 pub async fn pin(&self) -> Result<String, DaggerError> {
11321 let query = self.selection.select("pin");
11322 query.execute(self.graphql_client.clone()).await
11323 }
11324 pub async fn repo_root_path(&self) -> Result<String, DaggerError> {
11326 let query = self.selection.select("repoRootPath");
11327 query.execute(self.graphql_client.clone()).await
11328 }
11329 pub fn sdk(&self) -> SdkConfig {
11331 let query = self.selection.select("sdk");
11332 SdkConfig {
11333 proc: self.proc.clone(),
11334 selection: query,
11335 graphql_client: self.graphql_client.clone(),
11336 }
11337 }
11338 pub async fn source_root_subpath(&self) -> Result<String, DaggerError> {
11340 let query = self.selection.select("sourceRootSubpath");
11341 query.execute(self.graphql_client.clone()).await
11342 }
11343 pub async fn source_subpath(&self) -> Result<String, DaggerError> {
11345 let query = self.selection.select("sourceSubpath");
11346 query.execute(self.graphql_client.clone()).await
11347 }
11348 pub async fn sync(&self) -> Result<ModuleSourceId, DaggerError> {
11350 let query = self.selection.select("sync");
11351 query.execute(self.graphql_client.clone()).await
11352 }
11353 pub fn toolchains(&self) -> Vec<ModuleSource> {
11355 let query = self.selection.select("toolchains");
11356 vec![ModuleSource {
11357 proc: self.proc.clone(),
11358 selection: query,
11359 graphql_client: self.graphql_client.clone(),
11360 }]
11361 }
11362 pub fn user_defaults(&self) -> EnvFile {
11364 let query = self.selection.select("userDefaults");
11365 EnvFile {
11366 proc: self.proc.clone(),
11367 selection: query,
11368 graphql_client: self.graphql_client.clone(),
11369 }
11370 }
11371 pub async fn version(&self) -> Result<String, DaggerError> {
11373 let query = self.selection.select("version");
11374 query.execute(self.graphql_client.clone()).await
11375 }
11376 pub fn with_blueprint(&self, blueprint: impl IntoID<ModuleSourceId>) -> ModuleSource {
11382 let mut query = self.selection.select("withBlueprint");
11383 query = query.arg_lazy(
11384 "blueprint",
11385 Box::new(move || {
11386 let blueprint = blueprint.clone();
11387 Box::pin(async move { blueprint.into_id().await.unwrap().quote() })
11388 }),
11389 );
11390 ModuleSource {
11391 proc: self.proc.clone(),
11392 selection: query,
11393 graphql_client: self.graphql_client.clone(),
11394 }
11395 }
11396 pub fn with_client(
11403 &self,
11404 generator: impl Into<String>,
11405 output_dir: impl Into<String>,
11406 ) -> ModuleSource {
11407 let mut query = self.selection.select("withClient");
11408 query = query.arg("generator", generator.into());
11409 query = query.arg("outputDir", output_dir.into());
11410 ModuleSource {
11411 proc: self.proc.clone(),
11412 selection: query,
11413 graphql_client: self.graphql_client.clone(),
11414 }
11415 }
11416 pub fn with_dependencies(&self, dependencies: Vec<ModuleSourceId>) -> ModuleSource {
11422 let mut query = self.selection.select("withDependencies");
11423 query = query.arg("dependencies", dependencies);
11424 ModuleSource {
11425 proc: self.proc.clone(),
11426 selection: query,
11427 graphql_client: self.graphql_client.clone(),
11428 }
11429 }
11430 pub fn with_engine_version(&self, version: impl Into<String>) -> ModuleSource {
11436 let mut query = self.selection.select("withEngineVersion");
11437 query = query.arg("version", version.into());
11438 ModuleSource {
11439 proc: self.proc.clone(),
11440 selection: query,
11441 graphql_client: self.graphql_client.clone(),
11442 }
11443 }
11444 pub fn with_experimental_features(
11450 &self,
11451 features: Vec<ModuleSourceExperimentalFeature>,
11452 ) -> ModuleSource {
11453 let mut query = self.selection.select("withExperimentalFeatures");
11454 query = query.arg("features", features);
11455 ModuleSource {
11456 proc: self.proc.clone(),
11457 selection: query,
11458 graphql_client: self.graphql_client.clone(),
11459 }
11460 }
11461 pub fn with_includes(&self, patterns: Vec<impl Into<String>>) -> ModuleSource {
11467 let mut query = self.selection.select("withIncludes");
11468 query = query.arg(
11469 "patterns",
11470 patterns
11471 .into_iter()
11472 .map(|i| i.into())
11473 .collect::<Vec<String>>(),
11474 );
11475 ModuleSource {
11476 proc: self.proc.clone(),
11477 selection: query,
11478 graphql_client: self.graphql_client.clone(),
11479 }
11480 }
11481 pub fn with_name(&self, name: impl Into<String>) -> ModuleSource {
11487 let mut query = self.selection.select("withName");
11488 query = query.arg("name", name.into());
11489 ModuleSource {
11490 proc: self.proc.clone(),
11491 selection: query,
11492 graphql_client: self.graphql_client.clone(),
11493 }
11494 }
11495 pub fn with_sdk(&self, source: impl Into<String>) -> ModuleSource {
11501 let mut query = self.selection.select("withSDK");
11502 query = query.arg("source", source.into());
11503 ModuleSource {
11504 proc: self.proc.clone(),
11505 selection: query,
11506 graphql_client: self.graphql_client.clone(),
11507 }
11508 }
11509 pub fn with_source_subpath(&self, path: impl Into<String>) -> ModuleSource {
11515 let mut query = self.selection.select("withSourceSubpath");
11516 query = query.arg("path", path.into());
11517 ModuleSource {
11518 proc: self.proc.clone(),
11519 selection: query,
11520 graphql_client: self.graphql_client.clone(),
11521 }
11522 }
11523 pub fn with_toolchains(&self, toolchains: Vec<ModuleSourceId>) -> ModuleSource {
11529 let mut query = self.selection.select("withToolchains");
11530 query = query.arg("toolchains", toolchains);
11531 ModuleSource {
11532 proc: self.proc.clone(),
11533 selection: query,
11534 graphql_client: self.graphql_client.clone(),
11535 }
11536 }
11537 pub fn with_update_blueprint(&self) -> ModuleSource {
11539 let query = self.selection.select("withUpdateBlueprint");
11540 ModuleSource {
11541 proc: self.proc.clone(),
11542 selection: query,
11543 graphql_client: self.graphql_client.clone(),
11544 }
11545 }
11546 pub fn with_update_dependencies(&self, dependencies: Vec<impl Into<String>>) -> ModuleSource {
11552 let mut query = self.selection.select("withUpdateDependencies");
11553 query = query.arg(
11554 "dependencies",
11555 dependencies
11556 .into_iter()
11557 .map(|i| i.into())
11558 .collect::<Vec<String>>(),
11559 );
11560 ModuleSource {
11561 proc: self.proc.clone(),
11562 selection: query,
11563 graphql_client: self.graphql_client.clone(),
11564 }
11565 }
11566 pub fn with_update_toolchains(&self, toolchains: Vec<impl Into<String>>) -> ModuleSource {
11572 let mut query = self.selection.select("withUpdateToolchains");
11573 query = query.arg(
11574 "toolchains",
11575 toolchains
11576 .into_iter()
11577 .map(|i| i.into())
11578 .collect::<Vec<String>>(),
11579 );
11580 ModuleSource {
11581 proc: self.proc.clone(),
11582 selection: query,
11583 graphql_client: self.graphql_client.clone(),
11584 }
11585 }
11586 pub fn with_updated_clients(&self, clients: Vec<impl Into<String>>) -> ModuleSource {
11592 let mut query = self.selection.select("withUpdatedClients");
11593 query = query.arg(
11594 "clients",
11595 clients
11596 .into_iter()
11597 .map(|i| i.into())
11598 .collect::<Vec<String>>(),
11599 );
11600 ModuleSource {
11601 proc: self.proc.clone(),
11602 selection: query,
11603 graphql_client: self.graphql_client.clone(),
11604 }
11605 }
11606 pub fn without_blueprint(&self) -> ModuleSource {
11608 let query = self.selection.select("withoutBlueprint");
11609 ModuleSource {
11610 proc: self.proc.clone(),
11611 selection: query,
11612 graphql_client: self.graphql_client.clone(),
11613 }
11614 }
11615 pub fn without_client(&self, path: impl Into<String>) -> ModuleSource {
11621 let mut query = self.selection.select("withoutClient");
11622 query = query.arg("path", path.into());
11623 ModuleSource {
11624 proc: self.proc.clone(),
11625 selection: query,
11626 graphql_client: self.graphql_client.clone(),
11627 }
11628 }
11629 pub fn without_dependencies(&self, dependencies: Vec<impl Into<String>>) -> ModuleSource {
11635 let mut query = self.selection.select("withoutDependencies");
11636 query = query.arg(
11637 "dependencies",
11638 dependencies
11639 .into_iter()
11640 .map(|i| i.into())
11641 .collect::<Vec<String>>(),
11642 );
11643 ModuleSource {
11644 proc: self.proc.clone(),
11645 selection: query,
11646 graphql_client: self.graphql_client.clone(),
11647 }
11648 }
11649 pub fn without_experimental_features(
11655 &self,
11656 features: Vec<ModuleSourceExperimentalFeature>,
11657 ) -> ModuleSource {
11658 let mut query = self.selection.select("withoutExperimentalFeatures");
11659 query = query.arg("features", features);
11660 ModuleSource {
11661 proc: self.proc.clone(),
11662 selection: query,
11663 graphql_client: self.graphql_client.clone(),
11664 }
11665 }
11666 pub fn without_toolchains(&self, toolchains: Vec<impl Into<String>>) -> ModuleSource {
11672 let mut query = self.selection.select("withoutToolchains");
11673 query = query.arg(
11674 "toolchains",
11675 toolchains
11676 .into_iter()
11677 .map(|i| i.into())
11678 .collect::<Vec<String>>(),
11679 );
11680 ModuleSource {
11681 proc: self.proc.clone(),
11682 selection: query,
11683 graphql_client: self.graphql_client.clone(),
11684 }
11685 }
11686}
11687#[derive(Clone)]
11688pub struct ObjectTypeDef {
11689 pub proc: Option<Arc<DaggerSessionProc>>,
11690 pub selection: Selection,
11691 pub graphql_client: DynGraphQLClient,
11692}
11693impl ObjectTypeDef {
11694 pub fn constructor(&self) -> Function {
11696 let query = self.selection.select("constructor");
11697 Function {
11698 proc: self.proc.clone(),
11699 selection: query,
11700 graphql_client: self.graphql_client.clone(),
11701 }
11702 }
11703 pub async fn deprecated(&self) -> Result<String, DaggerError> {
11705 let query = self.selection.select("deprecated");
11706 query.execute(self.graphql_client.clone()).await
11707 }
11708 pub async fn description(&self) -> Result<String, DaggerError> {
11710 let query = self.selection.select("description");
11711 query.execute(self.graphql_client.clone()).await
11712 }
11713 pub fn fields(&self) -> Vec<FieldTypeDef> {
11715 let query = self.selection.select("fields");
11716 vec![FieldTypeDef {
11717 proc: self.proc.clone(),
11718 selection: query,
11719 graphql_client: self.graphql_client.clone(),
11720 }]
11721 }
11722 pub fn functions(&self) -> Vec<Function> {
11724 let query = self.selection.select("functions");
11725 vec![Function {
11726 proc: self.proc.clone(),
11727 selection: query,
11728 graphql_client: self.graphql_client.clone(),
11729 }]
11730 }
11731 pub async fn id(&self) -> Result<ObjectTypeDefId, DaggerError> {
11733 let query = self.selection.select("id");
11734 query.execute(self.graphql_client.clone()).await
11735 }
11736 pub async fn name(&self) -> Result<String, DaggerError> {
11738 let query = self.selection.select("name");
11739 query.execute(self.graphql_client.clone()).await
11740 }
11741 pub fn source_map(&self) -> SourceMap {
11743 let query = self.selection.select("sourceMap");
11744 SourceMap {
11745 proc: self.proc.clone(),
11746 selection: query,
11747 graphql_client: self.graphql_client.clone(),
11748 }
11749 }
11750 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
11752 let query = self.selection.select("sourceModuleName");
11753 query.execute(self.graphql_client.clone()).await
11754 }
11755}
11756#[derive(Clone)]
11757pub struct Port {
11758 pub proc: Option<Arc<DaggerSessionProc>>,
11759 pub selection: Selection,
11760 pub graphql_client: DynGraphQLClient,
11761}
11762impl Port {
11763 pub async fn description(&self) -> Result<String, DaggerError> {
11765 let query = self.selection.select("description");
11766 query.execute(self.graphql_client.clone()).await
11767 }
11768 pub async fn experimental_skip_healthcheck(&self) -> Result<bool, DaggerError> {
11770 let query = self.selection.select("experimentalSkipHealthcheck");
11771 query.execute(self.graphql_client.clone()).await
11772 }
11773 pub async fn id(&self) -> Result<PortId, DaggerError> {
11775 let query = self.selection.select("id");
11776 query.execute(self.graphql_client.clone()).await
11777 }
11778 pub async fn port(&self) -> Result<isize, DaggerError> {
11780 let query = self.selection.select("port");
11781 query.execute(self.graphql_client.clone()).await
11782 }
11783 pub async fn protocol(&self) -> Result<NetworkProtocol, DaggerError> {
11785 let query = self.selection.select("protocol");
11786 query.execute(self.graphql_client.clone()).await
11787 }
11788}
11789#[derive(Clone)]
11790pub struct Query {
11791 pub proc: Option<Arc<DaggerSessionProc>>,
11792 pub selection: Selection,
11793 pub graphql_client: DynGraphQLClient,
11794}
11795#[derive(Builder, Debug, PartialEq)]
11796pub struct QueryContainerOpts {
11797 #[builder(setter(into, strip_option), default)]
11799 pub platform: Option<Platform>,
11800}
11801#[derive(Builder, Debug, PartialEq)]
11802pub struct QueryCurrentWorkspaceOpts {
11803 #[builder(setter(into, strip_option), default)]
11805 pub skip_migration_check: Option<bool>,
11806}
11807#[derive(Builder, Debug, PartialEq)]
11808pub struct QueryEnvOpts {
11809 #[builder(setter(into, strip_option), default)]
11811 pub privileged: Option<bool>,
11812 #[builder(setter(into, strip_option), default)]
11814 pub writable: Option<bool>,
11815}
11816#[derive(Builder, Debug, PartialEq)]
11817pub struct QueryEnvFileOpts {
11818 #[builder(setter(into, strip_option), default)]
11820 pub expand: Option<bool>,
11821}
11822#[derive(Builder, Debug, PartialEq)]
11823pub struct QueryFileOpts {
11824 #[builder(setter(into, strip_option), default)]
11826 pub permissions: Option<isize>,
11827}
11828#[derive(Builder, Debug, PartialEq)]
11829pub struct QueryGitOpts<'a> {
11830 #[builder(setter(into, strip_option), default)]
11832 pub experimental_service_host: Option<ServiceId>,
11833 #[builder(setter(into, strip_option), default)]
11835 pub http_auth_header: Option<SecretId>,
11836 #[builder(setter(into, strip_option), default)]
11838 pub http_auth_token: Option<SecretId>,
11839 #[builder(setter(into, strip_option), default)]
11841 pub http_auth_username: Option<&'a str>,
11842 #[builder(setter(into, strip_option), default)]
11844 pub keep_git_dir: Option<bool>,
11845 #[builder(setter(into, strip_option), default)]
11847 pub ssh_auth_socket: Option<SocketId>,
11848 #[builder(setter(into, strip_option), default)]
11850 pub ssh_known_hosts: Option<&'a str>,
11851}
11852#[derive(Builder, Debug, PartialEq)]
11853pub struct QueryHttpOpts<'a> {
11854 #[builder(setter(into, strip_option), default)]
11856 pub auth_header: Option<SecretId>,
11857 #[builder(setter(into, strip_option), default)]
11859 pub experimental_service_host: Option<ServiceId>,
11860 #[builder(setter(into, strip_option), default)]
11862 pub name: Option<&'a str>,
11863 #[builder(setter(into, strip_option), default)]
11865 pub permissions: Option<isize>,
11866}
11867#[derive(Builder, Debug, PartialEq)]
11868pub struct QueryLlmOpts<'a> {
11869 #[builder(setter(into, strip_option), default)]
11871 pub max_api_calls: Option<isize>,
11872 #[builder(setter(into, strip_option), default)]
11874 pub model: Option<&'a str>,
11875}
11876#[derive(Builder, Debug, PartialEq)]
11877pub struct QueryModuleSourceOpts<'a> {
11878 #[builder(setter(into, strip_option), default)]
11880 pub allow_not_exists: Option<bool>,
11881 #[builder(setter(into, strip_option), default)]
11883 pub disable_find_up: Option<bool>,
11884 #[builder(setter(into, strip_option), default)]
11886 pub ref_pin: Option<&'a str>,
11887 #[builder(setter(into, strip_option), default)]
11889 pub require_kind: Option<ModuleSourceKind>,
11890}
11891#[derive(Builder, Debug, PartialEq)]
11892pub struct QuerySecretOpts<'a> {
11893 #[builder(setter(into, strip_option), default)]
11897 pub cache_key: Option<&'a str>,
11898}
11899impl Query {
11900 pub fn address(&self, value: impl Into<String>) -> Address {
11902 let mut query = self.selection.select("address");
11903 query = query.arg("value", value.into());
11904 Address {
11905 proc: self.proc.clone(),
11906 selection: query,
11907 graphql_client: self.graphql_client.clone(),
11908 }
11909 }
11910 pub fn cache_volume(&self, key: impl Into<String>) -> CacheVolume {
11916 let mut query = self.selection.select("cacheVolume");
11917 query = query.arg("key", key.into());
11918 CacheVolume {
11919 proc: self.proc.clone(),
11920 selection: query,
11921 graphql_client: self.graphql_client.clone(),
11922 }
11923 }
11924 pub fn cloud(&self) -> Cloud {
11926 let query = self.selection.select("cloud");
11927 Cloud {
11928 proc: self.proc.clone(),
11929 selection: query,
11930 graphql_client: self.graphql_client.clone(),
11931 }
11932 }
11933 pub fn container(&self) -> Container {
11940 let query = self.selection.select("container");
11941 Container {
11942 proc: self.proc.clone(),
11943 selection: query,
11944 graphql_client: self.graphql_client.clone(),
11945 }
11946 }
11947 pub fn container_opts(&self, opts: QueryContainerOpts) -> Container {
11954 let mut query = self.selection.select("container");
11955 if let Some(platform) = opts.platform {
11956 query = query.arg("platform", platform);
11957 }
11958 Container {
11959 proc: self.proc.clone(),
11960 selection: query,
11961 graphql_client: self.graphql_client.clone(),
11962 }
11963 }
11964 pub fn current_env(&self) -> Env {
11968 let query = self.selection.select("currentEnv");
11969 Env {
11970 proc: self.proc.clone(),
11971 selection: query,
11972 graphql_client: self.graphql_client.clone(),
11973 }
11974 }
11975 pub fn current_function_call(&self) -> FunctionCall {
11978 let query = self.selection.select("currentFunctionCall");
11979 FunctionCall {
11980 proc: self.proc.clone(),
11981 selection: query,
11982 graphql_client: self.graphql_client.clone(),
11983 }
11984 }
11985 pub fn current_module(&self) -> CurrentModule {
11987 let query = self.selection.select("currentModule");
11988 CurrentModule {
11989 proc: self.proc.clone(),
11990 selection: query,
11991 graphql_client: self.graphql_client.clone(),
11992 }
11993 }
11994 pub fn current_type_defs(&self) -> Vec<TypeDef> {
11996 let query = self.selection.select("currentTypeDefs");
11997 vec![TypeDef {
11998 proc: self.proc.clone(),
11999 selection: query,
12000 graphql_client: self.graphql_client.clone(),
12001 }]
12002 }
12003 pub fn current_workspace(&self) -> Workspace {
12009 let query = self.selection.select("currentWorkspace");
12010 Workspace {
12011 proc: self.proc.clone(),
12012 selection: query,
12013 graphql_client: self.graphql_client.clone(),
12014 }
12015 }
12016 pub fn current_workspace_opts(&self, opts: QueryCurrentWorkspaceOpts) -> Workspace {
12022 let mut query = self.selection.select("currentWorkspace");
12023 if let Some(skip_migration_check) = opts.skip_migration_check {
12024 query = query.arg("skipMigrationCheck", skip_migration_check);
12025 }
12026 Workspace {
12027 proc: self.proc.clone(),
12028 selection: query,
12029 graphql_client: self.graphql_client.clone(),
12030 }
12031 }
12032 pub async fn default_platform(&self) -> Result<Platform, DaggerError> {
12034 let query = self.selection.select("defaultPlatform");
12035 query.execute(self.graphql_client.clone()).await
12036 }
12037 pub fn directory(&self) -> Directory {
12039 let query = self.selection.select("directory");
12040 Directory {
12041 proc: self.proc.clone(),
12042 selection: query,
12043 graphql_client: self.graphql_client.clone(),
12044 }
12045 }
12046 pub fn engine(&self) -> Engine {
12048 let query = self.selection.select("engine");
12049 Engine {
12050 proc: self.proc.clone(),
12051 selection: query,
12052 graphql_client: self.graphql_client.clone(),
12053 }
12054 }
12055 pub fn env(&self) -> Env {
12061 let query = self.selection.select("env");
12062 Env {
12063 proc: self.proc.clone(),
12064 selection: query,
12065 graphql_client: self.graphql_client.clone(),
12066 }
12067 }
12068 pub fn env_opts(&self, opts: QueryEnvOpts) -> Env {
12074 let mut query = self.selection.select("env");
12075 if let Some(privileged) = opts.privileged {
12076 query = query.arg("privileged", privileged);
12077 }
12078 if let Some(writable) = opts.writable {
12079 query = query.arg("writable", writable);
12080 }
12081 Env {
12082 proc: self.proc.clone(),
12083 selection: query,
12084 graphql_client: self.graphql_client.clone(),
12085 }
12086 }
12087 pub fn env_file(&self) -> EnvFile {
12093 let query = self.selection.select("envFile");
12094 EnvFile {
12095 proc: self.proc.clone(),
12096 selection: query,
12097 graphql_client: self.graphql_client.clone(),
12098 }
12099 }
12100 pub fn env_file_opts(&self, opts: QueryEnvFileOpts) -> EnvFile {
12106 let mut query = self.selection.select("envFile");
12107 if let Some(expand) = opts.expand {
12108 query = query.arg("expand", expand);
12109 }
12110 EnvFile {
12111 proc: self.proc.clone(),
12112 selection: query,
12113 graphql_client: self.graphql_client.clone(),
12114 }
12115 }
12116 pub fn error(&self, message: impl Into<String>) -> Error {
12122 let mut query = self.selection.select("error");
12123 query = query.arg("message", message.into());
12124 Error {
12125 proc: self.proc.clone(),
12126 selection: query,
12127 graphql_client: self.graphql_client.clone(),
12128 }
12129 }
12130 pub fn file(&self, name: impl Into<String>, contents: impl Into<String>) -> File {
12138 let mut query = self.selection.select("file");
12139 query = query.arg("name", name.into());
12140 query = query.arg("contents", contents.into());
12141 File {
12142 proc: self.proc.clone(),
12143 selection: query,
12144 graphql_client: self.graphql_client.clone(),
12145 }
12146 }
12147 pub fn file_opts(
12155 &self,
12156 name: impl Into<String>,
12157 contents: impl Into<String>,
12158 opts: QueryFileOpts,
12159 ) -> File {
12160 let mut query = self.selection.select("file");
12161 query = query.arg("name", name.into());
12162 query = query.arg("contents", contents.into());
12163 if let Some(permissions) = opts.permissions {
12164 query = query.arg("permissions", permissions);
12165 }
12166 File {
12167 proc: self.proc.clone(),
12168 selection: query,
12169 graphql_client: self.graphql_client.clone(),
12170 }
12171 }
12172 pub fn function(
12179 &self,
12180 name: impl Into<String>,
12181 return_type: impl IntoID<TypeDefId>,
12182 ) -> Function {
12183 let mut query = self.selection.select("function");
12184 query = query.arg("name", name.into());
12185 query = query.arg_lazy(
12186 "returnType",
12187 Box::new(move || {
12188 let return_type = return_type.clone();
12189 Box::pin(async move { return_type.into_id().await.unwrap().quote() })
12190 }),
12191 );
12192 Function {
12193 proc: self.proc.clone(),
12194 selection: query,
12195 graphql_client: self.graphql_client.clone(),
12196 }
12197 }
12198 pub fn generated_code(&self, code: impl IntoID<DirectoryId>) -> GeneratedCode {
12200 let mut query = self.selection.select("generatedCode");
12201 query = query.arg_lazy(
12202 "code",
12203 Box::new(move || {
12204 let code = code.clone();
12205 Box::pin(async move { code.into_id().await.unwrap().quote() })
12206 }),
12207 );
12208 GeneratedCode {
12209 proc: self.proc.clone(),
12210 selection: query,
12211 graphql_client: self.graphql_client.clone(),
12212 }
12213 }
12214 pub fn git(&self, url: impl Into<String>) -> GitRepository {
12225 let mut query = self.selection.select("git");
12226 query = query.arg("url", url.into());
12227 GitRepository {
12228 proc: self.proc.clone(),
12229 selection: query,
12230 graphql_client: self.graphql_client.clone(),
12231 }
12232 }
12233 pub fn git_opts<'a>(&self, url: impl Into<String>, opts: QueryGitOpts<'a>) -> GitRepository {
12244 let mut query = self.selection.select("git");
12245 query = query.arg("url", url.into());
12246 if let Some(keep_git_dir) = opts.keep_git_dir {
12247 query = query.arg("keepGitDir", keep_git_dir);
12248 }
12249 if let Some(ssh_known_hosts) = opts.ssh_known_hosts {
12250 query = query.arg("sshKnownHosts", ssh_known_hosts);
12251 }
12252 if let Some(ssh_auth_socket) = opts.ssh_auth_socket {
12253 query = query.arg("sshAuthSocket", ssh_auth_socket);
12254 }
12255 if let Some(http_auth_username) = opts.http_auth_username {
12256 query = query.arg("httpAuthUsername", http_auth_username);
12257 }
12258 if let Some(http_auth_token) = opts.http_auth_token {
12259 query = query.arg("httpAuthToken", http_auth_token);
12260 }
12261 if let Some(http_auth_header) = opts.http_auth_header {
12262 query = query.arg("httpAuthHeader", http_auth_header);
12263 }
12264 if let Some(experimental_service_host) = opts.experimental_service_host {
12265 query = query.arg("experimentalServiceHost", experimental_service_host);
12266 }
12267 GitRepository {
12268 proc: self.proc.clone(),
12269 selection: query,
12270 graphql_client: self.graphql_client.clone(),
12271 }
12272 }
12273 pub fn host(&self) -> Host {
12275 let query = self.selection.select("host");
12276 Host {
12277 proc: self.proc.clone(),
12278 selection: query,
12279 graphql_client: self.graphql_client.clone(),
12280 }
12281 }
12282 pub fn http(&self, url: impl Into<String>) -> File {
12289 let mut query = self.selection.select("http");
12290 query = query.arg("url", url.into());
12291 File {
12292 proc: self.proc.clone(),
12293 selection: query,
12294 graphql_client: self.graphql_client.clone(),
12295 }
12296 }
12297 pub fn http_opts<'a>(&self, url: impl Into<String>, opts: QueryHttpOpts<'a>) -> File {
12304 let mut query = self.selection.select("http");
12305 query = query.arg("url", url.into());
12306 if let Some(name) = opts.name {
12307 query = query.arg("name", name);
12308 }
12309 if let Some(permissions) = opts.permissions {
12310 query = query.arg("permissions", permissions);
12311 }
12312 if let Some(auth_header) = opts.auth_header {
12313 query = query.arg("authHeader", auth_header);
12314 }
12315 if let Some(experimental_service_host) = opts.experimental_service_host {
12316 query = query.arg("experimentalServiceHost", experimental_service_host);
12317 }
12318 File {
12319 proc: self.proc.clone(),
12320 selection: query,
12321 graphql_client: self.graphql_client.clone(),
12322 }
12323 }
12324 pub fn json(&self) -> JsonValue {
12326 let query = self.selection.select("json");
12327 JsonValue {
12328 proc: self.proc.clone(),
12329 selection: query,
12330 graphql_client: self.graphql_client.clone(),
12331 }
12332 }
12333 pub fn llm(&self) -> Llm {
12339 let query = self.selection.select("llm");
12340 Llm {
12341 proc: self.proc.clone(),
12342 selection: query,
12343 graphql_client: self.graphql_client.clone(),
12344 }
12345 }
12346 pub fn llm_opts<'a>(&self, opts: QueryLlmOpts<'a>) -> Llm {
12352 let mut query = self.selection.select("llm");
12353 if let Some(model) = opts.model {
12354 query = query.arg("model", model);
12355 }
12356 if let Some(max_api_calls) = opts.max_api_calls {
12357 query = query.arg("maxAPICalls", max_api_calls);
12358 }
12359 Llm {
12360 proc: self.proc.clone(),
12361 selection: query,
12362 graphql_client: self.graphql_client.clone(),
12363 }
12364 }
12365 pub fn load_address_from_id(&self, id: impl IntoID<AddressId>) -> Address {
12367 let mut query = self.selection.select("loadAddressFromID");
12368 query = query.arg_lazy(
12369 "id",
12370 Box::new(move || {
12371 let id = id.clone();
12372 Box::pin(async move { id.into_id().await.unwrap().quote() })
12373 }),
12374 );
12375 Address {
12376 proc: self.proc.clone(),
12377 selection: query,
12378 graphql_client: self.graphql_client.clone(),
12379 }
12380 }
12381 pub fn load_binding_from_id(&self, id: impl IntoID<BindingId>) -> Binding {
12383 let mut query = self.selection.select("loadBindingFromID");
12384 query = query.arg_lazy(
12385 "id",
12386 Box::new(move || {
12387 let id = id.clone();
12388 Box::pin(async move { id.into_id().await.unwrap().quote() })
12389 }),
12390 );
12391 Binding {
12392 proc: self.proc.clone(),
12393 selection: query,
12394 graphql_client: self.graphql_client.clone(),
12395 }
12396 }
12397 pub fn load_cache_volume_from_id(&self, id: impl IntoID<CacheVolumeId>) -> CacheVolume {
12399 let mut query = self.selection.select("loadCacheVolumeFromID");
12400 query = query.arg_lazy(
12401 "id",
12402 Box::new(move || {
12403 let id = id.clone();
12404 Box::pin(async move { id.into_id().await.unwrap().quote() })
12405 }),
12406 );
12407 CacheVolume {
12408 proc: self.proc.clone(),
12409 selection: query,
12410 graphql_client: self.graphql_client.clone(),
12411 }
12412 }
12413 pub fn load_changeset_from_id(&self, id: impl IntoID<ChangesetId>) -> Changeset {
12415 let mut query = self.selection.select("loadChangesetFromID");
12416 query = query.arg_lazy(
12417 "id",
12418 Box::new(move || {
12419 let id = id.clone();
12420 Box::pin(async move { id.into_id().await.unwrap().quote() })
12421 }),
12422 );
12423 Changeset {
12424 proc: self.proc.clone(),
12425 selection: query,
12426 graphql_client: self.graphql_client.clone(),
12427 }
12428 }
12429 pub fn load_check_from_id(&self, id: impl IntoID<CheckId>) -> Check {
12431 let mut query = self.selection.select("loadCheckFromID");
12432 query = query.arg_lazy(
12433 "id",
12434 Box::new(move || {
12435 let id = id.clone();
12436 Box::pin(async move { id.into_id().await.unwrap().quote() })
12437 }),
12438 );
12439 Check {
12440 proc: self.proc.clone(),
12441 selection: query,
12442 graphql_client: self.graphql_client.clone(),
12443 }
12444 }
12445 pub fn load_check_group_from_id(&self, id: impl IntoID<CheckGroupId>) -> CheckGroup {
12447 let mut query = self.selection.select("loadCheckGroupFromID");
12448 query = query.arg_lazy(
12449 "id",
12450 Box::new(move || {
12451 let id = id.clone();
12452 Box::pin(async move { id.into_id().await.unwrap().quote() })
12453 }),
12454 );
12455 CheckGroup {
12456 proc: self.proc.clone(),
12457 selection: query,
12458 graphql_client: self.graphql_client.clone(),
12459 }
12460 }
12461 pub fn load_cloud_from_id(&self, id: impl IntoID<CloudId>) -> Cloud {
12463 let mut query = self.selection.select("loadCloudFromID");
12464 query = query.arg_lazy(
12465 "id",
12466 Box::new(move || {
12467 let id = id.clone();
12468 Box::pin(async move { id.into_id().await.unwrap().quote() })
12469 }),
12470 );
12471 Cloud {
12472 proc: self.proc.clone(),
12473 selection: query,
12474 graphql_client: self.graphql_client.clone(),
12475 }
12476 }
12477 pub fn load_container_from_id(&self, id: impl IntoID<ContainerId>) -> Container {
12479 let mut query = self.selection.select("loadContainerFromID");
12480 query = query.arg_lazy(
12481 "id",
12482 Box::new(move || {
12483 let id = id.clone();
12484 Box::pin(async move { id.into_id().await.unwrap().quote() })
12485 }),
12486 );
12487 Container {
12488 proc: self.proc.clone(),
12489 selection: query,
12490 graphql_client: self.graphql_client.clone(),
12491 }
12492 }
12493 pub fn load_current_module_from_id(&self, id: impl IntoID<CurrentModuleId>) -> CurrentModule {
12495 let mut query = self.selection.select("loadCurrentModuleFromID");
12496 query = query.arg_lazy(
12497 "id",
12498 Box::new(move || {
12499 let id = id.clone();
12500 Box::pin(async move { id.into_id().await.unwrap().quote() })
12501 }),
12502 );
12503 CurrentModule {
12504 proc: self.proc.clone(),
12505 selection: query,
12506 graphql_client: self.graphql_client.clone(),
12507 }
12508 }
12509 pub fn load_directory_from_id(&self, id: impl IntoID<DirectoryId>) -> Directory {
12511 let mut query = self.selection.select("loadDirectoryFromID");
12512 query = query.arg_lazy(
12513 "id",
12514 Box::new(move || {
12515 let id = id.clone();
12516 Box::pin(async move { id.into_id().await.unwrap().quote() })
12517 }),
12518 );
12519 Directory {
12520 proc: self.proc.clone(),
12521 selection: query,
12522 graphql_client: self.graphql_client.clone(),
12523 }
12524 }
12525 pub fn load_engine_cache_entry_from_id(
12527 &self,
12528 id: impl IntoID<EngineCacheEntryId>,
12529 ) -> EngineCacheEntry {
12530 let mut query = self.selection.select("loadEngineCacheEntryFromID");
12531 query = query.arg_lazy(
12532 "id",
12533 Box::new(move || {
12534 let id = id.clone();
12535 Box::pin(async move { id.into_id().await.unwrap().quote() })
12536 }),
12537 );
12538 EngineCacheEntry {
12539 proc: self.proc.clone(),
12540 selection: query,
12541 graphql_client: self.graphql_client.clone(),
12542 }
12543 }
12544 pub fn load_engine_cache_entry_set_from_id(
12546 &self,
12547 id: impl IntoID<EngineCacheEntrySetId>,
12548 ) -> EngineCacheEntrySet {
12549 let mut query = self.selection.select("loadEngineCacheEntrySetFromID");
12550 query = query.arg_lazy(
12551 "id",
12552 Box::new(move || {
12553 let id = id.clone();
12554 Box::pin(async move { id.into_id().await.unwrap().quote() })
12555 }),
12556 );
12557 EngineCacheEntrySet {
12558 proc: self.proc.clone(),
12559 selection: query,
12560 graphql_client: self.graphql_client.clone(),
12561 }
12562 }
12563 pub fn load_engine_cache_from_id(&self, id: impl IntoID<EngineCacheId>) -> EngineCache {
12565 let mut query = self.selection.select("loadEngineCacheFromID");
12566 query = query.arg_lazy(
12567 "id",
12568 Box::new(move || {
12569 let id = id.clone();
12570 Box::pin(async move { id.into_id().await.unwrap().quote() })
12571 }),
12572 );
12573 EngineCache {
12574 proc: self.proc.clone(),
12575 selection: query,
12576 graphql_client: self.graphql_client.clone(),
12577 }
12578 }
12579 pub fn load_engine_from_id(&self, id: impl IntoID<EngineId>) -> Engine {
12581 let mut query = self.selection.select("loadEngineFromID");
12582 query = query.arg_lazy(
12583 "id",
12584 Box::new(move || {
12585 let id = id.clone();
12586 Box::pin(async move { id.into_id().await.unwrap().quote() })
12587 }),
12588 );
12589 Engine {
12590 proc: self.proc.clone(),
12591 selection: query,
12592 graphql_client: self.graphql_client.clone(),
12593 }
12594 }
12595 pub fn load_enum_type_def_from_id(&self, id: impl IntoID<EnumTypeDefId>) -> EnumTypeDef {
12597 let mut query = self.selection.select("loadEnumTypeDefFromID");
12598 query = query.arg_lazy(
12599 "id",
12600 Box::new(move || {
12601 let id = id.clone();
12602 Box::pin(async move { id.into_id().await.unwrap().quote() })
12603 }),
12604 );
12605 EnumTypeDef {
12606 proc: self.proc.clone(),
12607 selection: query,
12608 graphql_client: self.graphql_client.clone(),
12609 }
12610 }
12611 pub fn load_enum_value_type_def_from_id(
12613 &self,
12614 id: impl IntoID<EnumValueTypeDefId>,
12615 ) -> EnumValueTypeDef {
12616 let mut query = self.selection.select("loadEnumValueTypeDefFromID");
12617 query = query.arg_lazy(
12618 "id",
12619 Box::new(move || {
12620 let id = id.clone();
12621 Box::pin(async move { id.into_id().await.unwrap().quote() })
12622 }),
12623 );
12624 EnumValueTypeDef {
12625 proc: self.proc.clone(),
12626 selection: query,
12627 graphql_client: self.graphql_client.clone(),
12628 }
12629 }
12630 pub fn load_env_file_from_id(&self, id: impl IntoID<EnvFileId>) -> EnvFile {
12632 let mut query = self.selection.select("loadEnvFileFromID");
12633 query = query.arg_lazy(
12634 "id",
12635 Box::new(move || {
12636 let id = id.clone();
12637 Box::pin(async move { id.into_id().await.unwrap().quote() })
12638 }),
12639 );
12640 EnvFile {
12641 proc: self.proc.clone(),
12642 selection: query,
12643 graphql_client: self.graphql_client.clone(),
12644 }
12645 }
12646 pub fn load_env_from_id(&self, id: impl IntoID<EnvId>) -> Env {
12648 let mut query = self.selection.select("loadEnvFromID");
12649 query = query.arg_lazy(
12650 "id",
12651 Box::new(move || {
12652 let id = id.clone();
12653 Box::pin(async move { id.into_id().await.unwrap().quote() })
12654 }),
12655 );
12656 Env {
12657 proc: self.proc.clone(),
12658 selection: query,
12659 graphql_client: self.graphql_client.clone(),
12660 }
12661 }
12662 pub fn load_env_variable_from_id(&self, id: impl IntoID<EnvVariableId>) -> EnvVariable {
12664 let mut query = self.selection.select("loadEnvVariableFromID");
12665 query = query.arg_lazy(
12666 "id",
12667 Box::new(move || {
12668 let id = id.clone();
12669 Box::pin(async move { id.into_id().await.unwrap().quote() })
12670 }),
12671 );
12672 EnvVariable {
12673 proc: self.proc.clone(),
12674 selection: query,
12675 graphql_client: self.graphql_client.clone(),
12676 }
12677 }
12678 pub fn load_error_from_id(&self, id: impl IntoID<ErrorId>) -> Error {
12680 let mut query = self.selection.select("loadErrorFromID");
12681 query = query.arg_lazy(
12682 "id",
12683 Box::new(move || {
12684 let id = id.clone();
12685 Box::pin(async move { id.into_id().await.unwrap().quote() })
12686 }),
12687 );
12688 Error {
12689 proc: self.proc.clone(),
12690 selection: query,
12691 graphql_client: self.graphql_client.clone(),
12692 }
12693 }
12694 pub fn load_error_value_from_id(&self, id: impl IntoID<ErrorValueId>) -> ErrorValue {
12696 let mut query = self.selection.select("loadErrorValueFromID");
12697 query = query.arg_lazy(
12698 "id",
12699 Box::new(move || {
12700 let id = id.clone();
12701 Box::pin(async move { id.into_id().await.unwrap().quote() })
12702 }),
12703 );
12704 ErrorValue {
12705 proc: self.proc.clone(),
12706 selection: query,
12707 graphql_client: self.graphql_client.clone(),
12708 }
12709 }
12710 pub fn load_field_type_def_from_id(&self, id: impl IntoID<FieldTypeDefId>) -> FieldTypeDef {
12712 let mut query = self.selection.select("loadFieldTypeDefFromID");
12713 query = query.arg_lazy(
12714 "id",
12715 Box::new(move || {
12716 let id = id.clone();
12717 Box::pin(async move { id.into_id().await.unwrap().quote() })
12718 }),
12719 );
12720 FieldTypeDef {
12721 proc: self.proc.clone(),
12722 selection: query,
12723 graphql_client: self.graphql_client.clone(),
12724 }
12725 }
12726 pub fn load_file_from_id(&self, id: impl IntoID<FileId>) -> File {
12728 let mut query = self.selection.select("loadFileFromID");
12729 query = query.arg_lazy(
12730 "id",
12731 Box::new(move || {
12732 let id = id.clone();
12733 Box::pin(async move { id.into_id().await.unwrap().quote() })
12734 }),
12735 );
12736 File {
12737 proc: self.proc.clone(),
12738 selection: query,
12739 graphql_client: self.graphql_client.clone(),
12740 }
12741 }
12742 pub fn load_function_arg_from_id(&self, id: impl IntoID<FunctionArgId>) -> FunctionArg {
12744 let mut query = self.selection.select("loadFunctionArgFromID");
12745 query = query.arg_lazy(
12746 "id",
12747 Box::new(move || {
12748 let id = id.clone();
12749 Box::pin(async move { id.into_id().await.unwrap().quote() })
12750 }),
12751 );
12752 FunctionArg {
12753 proc: self.proc.clone(),
12754 selection: query,
12755 graphql_client: self.graphql_client.clone(),
12756 }
12757 }
12758 pub fn load_function_call_arg_value_from_id(
12760 &self,
12761 id: impl IntoID<FunctionCallArgValueId>,
12762 ) -> FunctionCallArgValue {
12763 let mut query = self.selection.select("loadFunctionCallArgValueFromID");
12764 query = query.arg_lazy(
12765 "id",
12766 Box::new(move || {
12767 let id = id.clone();
12768 Box::pin(async move { id.into_id().await.unwrap().quote() })
12769 }),
12770 );
12771 FunctionCallArgValue {
12772 proc: self.proc.clone(),
12773 selection: query,
12774 graphql_client: self.graphql_client.clone(),
12775 }
12776 }
12777 pub fn load_function_call_from_id(&self, id: impl IntoID<FunctionCallId>) -> FunctionCall {
12779 let mut query = self.selection.select("loadFunctionCallFromID");
12780 query = query.arg_lazy(
12781 "id",
12782 Box::new(move || {
12783 let id = id.clone();
12784 Box::pin(async move { id.into_id().await.unwrap().quote() })
12785 }),
12786 );
12787 FunctionCall {
12788 proc: self.proc.clone(),
12789 selection: query,
12790 graphql_client: self.graphql_client.clone(),
12791 }
12792 }
12793 pub fn load_function_from_id(&self, id: impl IntoID<FunctionId>) -> Function {
12795 let mut query = self.selection.select("loadFunctionFromID");
12796 query = query.arg_lazy(
12797 "id",
12798 Box::new(move || {
12799 let id = id.clone();
12800 Box::pin(async move { id.into_id().await.unwrap().quote() })
12801 }),
12802 );
12803 Function {
12804 proc: self.proc.clone(),
12805 selection: query,
12806 graphql_client: self.graphql_client.clone(),
12807 }
12808 }
12809 pub fn load_generated_code_from_id(&self, id: impl IntoID<GeneratedCodeId>) -> GeneratedCode {
12811 let mut query = self.selection.select("loadGeneratedCodeFromID");
12812 query = query.arg_lazy(
12813 "id",
12814 Box::new(move || {
12815 let id = id.clone();
12816 Box::pin(async move { id.into_id().await.unwrap().quote() })
12817 }),
12818 );
12819 GeneratedCode {
12820 proc: self.proc.clone(),
12821 selection: query,
12822 graphql_client: self.graphql_client.clone(),
12823 }
12824 }
12825 pub fn load_generator_from_id(&self, id: impl IntoID<GeneratorId>) -> Generator {
12827 let mut query = self.selection.select("loadGeneratorFromID");
12828 query = query.arg_lazy(
12829 "id",
12830 Box::new(move || {
12831 let id = id.clone();
12832 Box::pin(async move { id.into_id().await.unwrap().quote() })
12833 }),
12834 );
12835 Generator {
12836 proc: self.proc.clone(),
12837 selection: query,
12838 graphql_client: self.graphql_client.clone(),
12839 }
12840 }
12841 pub fn load_generator_group_from_id(
12843 &self,
12844 id: impl IntoID<GeneratorGroupId>,
12845 ) -> GeneratorGroup {
12846 let mut query = self.selection.select("loadGeneratorGroupFromID");
12847 query = query.arg_lazy(
12848 "id",
12849 Box::new(move || {
12850 let id = id.clone();
12851 Box::pin(async move { id.into_id().await.unwrap().quote() })
12852 }),
12853 );
12854 GeneratorGroup {
12855 proc: self.proc.clone(),
12856 selection: query,
12857 graphql_client: self.graphql_client.clone(),
12858 }
12859 }
12860 pub fn load_git_ref_from_id(&self, id: impl IntoID<GitRefId>) -> GitRef {
12862 let mut query = self.selection.select("loadGitRefFromID");
12863 query = query.arg_lazy(
12864 "id",
12865 Box::new(move || {
12866 let id = id.clone();
12867 Box::pin(async move { id.into_id().await.unwrap().quote() })
12868 }),
12869 );
12870 GitRef {
12871 proc: self.proc.clone(),
12872 selection: query,
12873 graphql_client: self.graphql_client.clone(),
12874 }
12875 }
12876 pub fn load_git_repository_from_id(&self, id: impl IntoID<GitRepositoryId>) -> GitRepository {
12878 let mut query = self.selection.select("loadGitRepositoryFromID");
12879 query = query.arg_lazy(
12880 "id",
12881 Box::new(move || {
12882 let id = id.clone();
12883 Box::pin(async move { id.into_id().await.unwrap().quote() })
12884 }),
12885 );
12886 GitRepository {
12887 proc: self.proc.clone(),
12888 selection: query,
12889 graphql_client: self.graphql_client.clone(),
12890 }
12891 }
12892 pub fn load_host_from_id(&self, id: impl IntoID<HostId>) -> Host {
12894 let mut query = self.selection.select("loadHostFromID");
12895 query = query.arg_lazy(
12896 "id",
12897 Box::new(move || {
12898 let id = id.clone();
12899 Box::pin(async move { id.into_id().await.unwrap().quote() })
12900 }),
12901 );
12902 Host {
12903 proc: self.proc.clone(),
12904 selection: query,
12905 graphql_client: self.graphql_client.clone(),
12906 }
12907 }
12908 pub fn load_input_type_def_from_id(&self, id: impl IntoID<InputTypeDefId>) -> InputTypeDef {
12910 let mut query = self.selection.select("loadInputTypeDefFromID");
12911 query = query.arg_lazy(
12912 "id",
12913 Box::new(move || {
12914 let id = id.clone();
12915 Box::pin(async move { id.into_id().await.unwrap().quote() })
12916 }),
12917 );
12918 InputTypeDef {
12919 proc: self.proc.clone(),
12920 selection: query,
12921 graphql_client: self.graphql_client.clone(),
12922 }
12923 }
12924 pub fn load_interface_type_def_from_id(
12926 &self,
12927 id: impl IntoID<InterfaceTypeDefId>,
12928 ) -> InterfaceTypeDef {
12929 let mut query = self.selection.select("loadInterfaceTypeDefFromID");
12930 query = query.arg_lazy(
12931 "id",
12932 Box::new(move || {
12933 let id = id.clone();
12934 Box::pin(async move { id.into_id().await.unwrap().quote() })
12935 }),
12936 );
12937 InterfaceTypeDef {
12938 proc: self.proc.clone(),
12939 selection: query,
12940 graphql_client: self.graphql_client.clone(),
12941 }
12942 }
12943 pub fn load_json_value_from_id(&self, id: impl IntoID<JsonValueId>) -> JsonValue {
12945 let mut query = self.selection.select("loadJSONValueFromID");
12946 query = query.arg_lazy(
12947 "id",
12948 Box::new(move || {
12949 let id = id.clone();
12950 Box::pin(async move { id.into_id().await.unwrap().quote() })
12951 }),
12952 );
12953 JsonValue {
12954 proc: self.proc.clone(),
12955 selection: query,
12956 graphql_client: self.graphql_client.clone(),
12957 }
12958 }
12959 pub fn load_llm_from_id(&self, id: impl IntoID<Llmid>) -> Llm {
12961 let mut query = self.selection.select("loadLLMFromID");
12962 query = query.arg_lazy(
12963 "id",
12964 Box::new(move || {
12965 let id = id.clone();
12966 Box::pin(async move { id.into_id().await.unwrap().quote() })
12967 }),
12968 );
12969 Llm {
12970 proc: self.proc.clone(),
12971 selection: query,
12972 graphql_client: self.graphql_client.clone(),
12973 }
12974 }
12975 pub fn load_llm_token_usage_from_id(&self, id: impl IntoID<LlmTokenUsageId>) -> LlmTokenUsage {
12977 let mut query = self.selection.select("loadLLMTokenUsageFromID");
12978 query = query.arg_lazy(
12979 "id",
12980 Box::new(move || {
12981 let id = id.clone();
12982 Box::pin(async move { id.into_id().await.unwrap().quote() })
12983 }),
12984 );
12985 LlmTokenUsage {
12986 proc: self.proc.clone(),
12987 selection: query,
12988 graphql_client: self.graphql_client.clone(),
12989 }
12990 }
12991 pub fn load_label_from_id(&self, id: impl IntoID<LabelId>) -> Label {
12993 let mut query = self.selection.select("loadLabelFromID");
12994 query = query.arg_lazy(
12995 "id",
12996 Box::new(move || {
12997 let id = id.clone();
12998 Box::pin(async move { id.into_id().await.unwrap().quote() })
12999 }),
13000 );
13001 Label {
13002 proc: self.proc.clone(),
13003 selection: query,
13004 graphql_client: self.graphql_client.clone(),
13005 }
13006 }
13007 pub fn load_list_type_def_from_id(&self, id: impl IntoID<ListTypeDefId>) -> ListTypeDef {
13009 let mut query = self.selection.select("loadListTypeDefFromID");
13010 query = query.arg_lazy(
13011 "id",
13012 Box::new(move || {
13013 let id = id.clone();
13014 Box::pin(async move { id.into_id().await.unwrap().quote() })
13015 }),
13016 );
13017 ListTypeDef {
13018 proc: self.proc.clone(),
13019 selection: query,
13020 graphql_client: self.graphql_client.clone(),
13021 }
13022 }
13023 pub fn load_module_config_client_from_id(
13025 &self,
13026 id: impl IntoID<ModuleConfigClientId>,
13027 ) -> ModuleConfigClient {
13028 let mut query = self.selection.select("loadModuleConfigClientFromID");
13029 query = query.arg_lazy(
13030 "id",
13031 Box::new(move || {
13032 let id = id.clone();
13033 Box::pin(async move { id.into_id().await.unwrap().quote() })
13034 }),
13035 );
13036 ModuleConfigClient {
13037 proc: self.proc.clone(),
13038 selection: query,
13039 graphql_client: self.graphql_client.clone(),
13040 }
13041 }
13042 pub fn load_module_from_id(&self, id: impl IntoID<ModuleId>) -> Module {
13044 let mut query = self.selection.select("loadModuleFromID");
13045 query = query.arg_lazy(
13046 "id",
13047 Box::new(move || {
13048 let id = id.clone();
13049 Box::pin(async move { id.into_id().await.unwrap().quote() })
13050 }),
13051 );
13052 Module {
13053 proc: self.proc.clone(),
13054 selection: query,
13055 graphql_client: self.graphql_client.clone(),
13056 }
13057 }
13058 pub fn load_module_source_from_id(&self, id: impl IntoID<ModuleSourceId>) -> ModuleSource {
13060 let mut query = self.selection.select("loadModuleSourceFromID");
13061 query = query.arg_lazy(
13062 "id",
13063 Box::new(move || {
13064 let id = id.clone();
13065 Box::pin(async move { id.into_id().await.unwrap().quote() })
13066 }),
13067 );
13068 ModuleSource {
13069 proc: self.proc.clone(),
13070 selection: query,
13071 graphql_client: self.graphql_client.clone(),
13072 }
13073 }
13074 pub fn load_object_type_def_from_id(&self, id: impl IntoID<ObjectTypeDefId>) -> ObjectTypeDef {
13076 let mut query = self.selection.select("loadObjectTypeDefFromID");
13077 query = query.arg_lazy(
13078 "id",
13079 Box::new(move || {
13080 let id = id.clone();
13081 Box::pin(async move { id.into_id().await.unwrap().quote() })
13082 }),
13083 );
13084 ObjectTypeDef {
13085 proc: self.proc.clone(),
13086 selection: query,
13087 graphql_client: self.graphql_client.clone(),
13088 }
13089 }
13090 pub fn load_port_from_id(&self, id: impl IntoID<PortId>) -> Port {
13092 let mut query = self.selection.select("loadPortFromID");
13093 query = query.arg_lazy(
13094 "id",
13095 Box::new(move || {
13096 let id = id.clone();
13097 Box::pin(async move { id.into_id().await.unwrap().quote() })
13098 }),
13099 );
13100 Port {
13101 proc: self.proc.clone(),
13102 selection: query,
13103 graphql_client: self.graphql_client.clone(),
13104 }
13105 }
13106 pub fn load_sdk_config_from_id(&self, id: impl IntoID<SdkConfigId>) -> SdkConfig {
13108 let mut query = self.selection.select("loadSDKConfigFromID");
13109 query = query.arg_lazy(
13110 "id",
13111 Box::new(move || {
13112 let id = id.clone();
13113 Box::pin(async move { id.into_id().await.unwrap().quote() })
13114 }),
13115 );
13116 SdkConfig {
13117 proc: self.proc.clone(),
13118 selection: query,
13119 graphql_client: self.graphql_client.clone(),
13120 }
13121 }
13122 pub fn load_scalar_type_def_from_id(&self, id: impl IntoID<ScalarTypeDefId>) -> ScalarTypeDef {
13124 let mut query = self.selection.select("loadScalarTypeDefFromID");
13125 query = query.arg_lazy(
13126 "id",
13127 Box::new(move || {
13128 let id = id.clone();
13129 Box::pin(async move { id.into_id().await.unwrap().quote() })
13130 }),
13131 );
13132 ScalarTypeDef {
13133 proc: self.proc.clone(),
13134 selection: query,
13135 graphql_client: self.graphql_client.clone(),
13136 }
13137 }
13138 pub fn load_search_result_from_id(&self, id: impl IntoID<SearchResultId>) -> SearchResult {
13140 let mut query = self.selection.select("loadSearchResultFromID");
13141 query = query.arg_lazy(
13142 "id",
13143 Box::new(move || {
13144 let id = id.clone();
13145 Box::pin(async move { id.into_id().await.unwrap().quote() })
13146 }),
13147 );
13148 SearchResult {
13149 proc: self.proc.clone(),
13150 selection: query,
13151 graphql_client: self.graphql_client.clone(),
13152 }
13153 }
13154 pub fn load_search_submatch_from_id(
13156 &self,
13157 id: impl IntoID<SearchSubmatchId>,
13158 ) -> SearchSubmatch {
13159 let mut query = self.selection.select("loadSearchSubmatchFromID");
13160 query = query.arg_lazy(
13161 "id",
13162 Box::new(move || {
13163 let id = id.clone();
13164 Box::pin(async move { id.into_id().await.unwrap().quote() })
13165 }),
13166 );
13167 SearchSubmatch {
13168 proc: self.proc.clone(),
13169 selection: query,
13170 graphql_client: self.graphql_client.clone(),
13171 }
13172 }
13173 pub fn load_secret_from_id(&self, id: impl IntoID<SecretId>) -> Secret {
13175 let mut query = self.selection.select("loadSecretFromID");
13176 query = query.arg_lazy(
13177 "id",
13178 Box::new(move || {
13179 let id = id.clone();
13180 Box::pin(async move { id.into_id().await.unwrap().quote() })
13181 }),
13182 );
13183 Secret {
13184 proc: self.proc.clone(),
13185 selection: query,
13186 graphql_client: self.graphql_client.clone(),
13187 }
13188 }
13189 pub fn load_service_from_id(&self, id: impl IntoID<ServiceId>) -> Service {
13191 let mut query = self.selection.select("loadServiceFromID");
13192 query = query.arg_lazy(
13193 "id",
13194 Box::new(move || {
13195 let id = id.clone();
13196 Box::pin(async move { id.into_id().await.unwrap().quote() })
13197 }),
13198 );
13199 Service {
13200 proc: self.proc.clone(),
13201 selection: query,
13202 graphql_client: self.graphql_client.clone(),
13203 }
13204 }
13205 pub fn load_socket_from_id(&self, id: impl IntoID<SocketId>) -> Socket {
13207 let mut query = self.selection.select("loadSocketFromID");
13208 query = query.arg_lazy(
13209 "id",
13210 Box::new(move || {
13211 let id = id.clone();
13212 Box::pin(async move { id.into_id().await.unwrap().quote() })
13213 }),
13214 );
13215 Socket {
13216 proc: self.proc.clone(),
13217 selection: query,
13218 graphql_client: self.graphql_client.clone(),
13219 }
13220 }
13221 pub fn load_source_map_from_id(&self, id: impl IntoID<SourceMapId>) -> SourceMap {
13223 let mut query = self.selection.select("loadSourceMapFromID");
13224 query = query.arg_lazy(
13225 "id",
13226 Box::new(move || {
13227 let id = id.clone();
13228 Box::pin(async move { id.into_id().await.unwrap().quote() })
13229 }),
13230 );
13231 SourceMap {
13232 proc: self.proc.clone(),
13233 selection: query,
13234 graphql_client: self.graphql_client.clone(),
13235 }
13236 }
13237 pub fn load_stat_from_id(&self, id: impl IntoID<StatId>) -> Stat {
13239 let mut query = self.selection.select("loadStatFromID");
13240 query = query.arg_lazy(
13241 "id",
13242 Box::new(move || {
13243 let id = id.clone();
13244 Box::pin(async move { id.into_id().await.unwrap().quote() })
13245 }),
13246 );
13247 Stat {
13248 proc: self.proc.clone(),
13249 selection: query,
13250 graphql_client: self.graphql_client.clone(),
13251 }
13252 }
13253 pub fn load_terminal_from_id(&self, id: impl IntoID<TerminalId>) -> Terminal {
13255 let mut query = self.selection.select("loadTerminalFromID");
13256 query = query.arg_lazy(
13257 "id",
13258 Box::new(move || {
13259 let id = id.clone();
13260 Box::pin(async move { id.into_id().await.unwrap().quote() })
13261 }),
13262 );
13263 Terminal {
13264 proc: self.proc.clone(),
13265 selection: query,
13266 graphql_client: self.graphql_client.clone(),
13267 }
13268 }
13269 pub fn load_type_def_from_id(&self, id: impl IntoID<TypeDefId>) -> TypeDef {
13271 let mut query = self.selection.select("loadTypeDefFromID");
13272 query = query.arg_lazy(
13273 "id",
13274 Box::new(move || {
13275 let id = id.clone();
13276 Box::pin(async move { id.into_id().await.unwrap().quote() })
13277 }),
13278 );
13279 TypeDef {
13280 proc: self.proc.clone(),
13281 selection: query,
13282 graphql_client: self.graphql_client.clone(),
13283 }
13284 }
13285 pub fn load_workspace_from_id(&self, id: impl IntoID<WorkspaceId>) -> Workspace {
13287 let mut query = self.selection.select("loadWorkspaceFromID");
13288 query = query.arg_lazy(
13289 "id",
13290 Box::new(move || {
13291 let id = id.clone();
13292 Box::pin(async move { id.into_id().await.unwrap().quote() })
13293 }),
13294 );
13295 Workspace {
13296 proc: self.proc.clone(),
13297 selection: query,
13298 graphql_client: self.graphql_client.clone(),
13299 }
13300 }
13301 pub fn module(&self) -> Module {
13303 let query = self.selection.select("module");
13304 Module {
13305 proc: self.proc.clone(),
13306 selection: query,
13307 graphql_client: self.graphql_client.clone(),
13308 }
13309 }
13310 pub fn module_source(&self, ref_string: impl Into<String>) -> ModuleSource {
13317 let mut query = self.selection.select("moduleSource");
13318 query = query.arg("refString", ref_string.into());
13319 ModuleSource {
13320 proc: self.proc.clone(),
13321 selection: query,
13322 graphql_client: self.graphql_client.clone(),
13323 }
13324 }
13325 pub fn module_source_opts<'a>(
13332 &self,
13333 ref_string: impl Into<String>,
13334 opts: QueryModuleSourceOpts<'a>,
13335 ) -> ModuleSource {
13336 let mut query = self.selection.select("moduleSource");
13337 query = query.arg("refString", ref_string.into());
13338 if let Some(ref_pin) = opts.ref_pin {
13339 query = query.arg("refPin", ref_pin);
13340 }
13341 if let Some(disable_find_up) = opts.disable_find_up {
13342 query = query.arg("disableFindUp", disable_find_up);
13343 }
13344 if let Some(allow_not_exists) = opts.allow_not_exists {
13345 query = query.arg("allowNotExists", allow_not_exists);
13346 }
13347 if let Some(require_kind) = opts.require_kind {
13348 query = query.arg("requireKind", require_kind);
13349 }
13350 ModuleSource {
13351 proc: self.proc.clone(),
13352 selection: query,
13353 graphql_client: self.graphql_client.clone(),
13354 }
13355 }
13356 pub fn secret(&self, uri: impl Into<String>) -> Secret {
13363 let mut query = self.selection.select("secret");
13364 query = query.arg("uri", uri.into());
13365 Secret {
13366 proc: self.proc.clone(),
13367 selection: query,
13368 graphql_client: self.graphql_client.clone(),
13369 }
13370 }
13371 pub fn secret_opts<'a>(&self, uri: impl Into<String>, opts: QuerySecretOpts<'a>) -> Secret {
13378 let mut query = self.selection.select("secret");
13379 query = query.arg("uri", uri.into());
13380 if let Some(cache_key) = opts.cache_key {
13381 query = query.arg("cacheKey", cache_key);
13382 }
13383 Secret {
13384 proc: self.proc.clone(),
13385 selection: query,
13386 graphql_client: self.graphql_client.clone(),
13387 }
13388 }
13389 pub fn set_secret(&self, name: impl Into<String>, plaintext: impl Into<String>) -> Secret {
13397 let mut query = self.selection.select("setSecret");
13398 query = query.arg("name", name.into());
13399 query = query.arg("plaintext", plaintext.into());
13400 Secret {
13401 proc: self.proc.clone(),
13402 selection: query,
13403 graphql_client: self.graphql_client.clone(),
13404 }
13405 }
13406 pub fn source_map(&self, filename: impl Into<String>, line: isize, column: isize) -> SourceMap {
13414 let mut query = self.selection.select("sourceMap");
13415 query = query.arg("filename", filename.into());
13416 query = query.arg("line", line);
13417 query = query.arg("column", column);
13418 SourceMap {
13419 proc: self.proc.clone(),
13420 selection: query,
13421 graphql_client: self.graphql_client.clone(),
13422 }
13423 }
13424 pub fn type_def(&self) -> TypeDef {
13426 let query = self.selection.select("typeDef");
13427 TypeDef {
13428 proc: self.proc.clone(),
13429 selection: query,
13430 graphql_client: self.graphql_client.clone(),
13431 }
13432 }
13433 pub async fn version(&self) -> Result<String, DaggerError> {
13435 let query = self.selection.select("version");
13436 query.execute(self.graphql_client.clone()).await
13437 }
13438}
13439#[derive(Clone)]
13440pub struct SdkConfig {
13441 pub proc: Option<Arc<DaggerSessionProc>>,
13442 pub selection: Selection,
13443 pub graphql_client: DynGraphQLClient,
13444}
13445impl SdkConfig {
13446 pub async fn debug(&self) -> Result<bool, DaggerError> {
13448 let query = self.selection.select("debug");
13449 query.execute(self.graphql_client.clone()).await
13450 }
13451 pub async fn id(&self) -> Result<SdkConfigId, DaggerError> {
13453 let query = self.selection.select("id");
13454 query.execute(self.graphql_client.clone()).await
13455 }
13456 pub async fn source(&self) -> Result<String, DaggerError> {
13458 let query = self.selection.select("source");
13459 query.execute(self.graphql_client.clone()).await
13460 }
13461}
13462#[derive(Clone)]
13463pub struct ScalarTypeDef {
13464 pub proc: Option<Arc<DaggerSessionProc>>,
13465 pub selection: Selection,
13466 pub graphql_client: DynGraphQLClient,
13467}
13468impl ScalarTypeDef {
13469 pub async fn description(&self) -> Result<String, DaggerError> {
13471 let query = self.selection.select("description");
13472 query.execute(self.graphql_client.clone()).await
13473 }
13474 pub async fn id(&self) -> Result<ScalarTypeDefId, DaggerError> {
13476 let query = self.selection.select("id");
13477 query.execute(self.graphql_client.clone()).await
13478 }
13479 pub async fn name(&self) -> Result<String, DaggerError> {
13481 let query = self.selection.select("name");
13482 query.execute(self.graphql_client.clone()).await
13483 }
13484 pub async fn source_module_name(&self) -> Result<String, DaggerError> {
13486 let query = self.selection.select("sourceModuleName");
13487 query.execute(self.graphql_client.clone()).await
13488 }
13489}
13490#[derive(Clone)]
13491pub struct SearchResult {
13492 pub proc: Option<Arc<DaggerSessionProc>>,
13493 pub selection: Selection,
13494 pub graphql_client: DynGraphQLClient,
13495}
13496impl SearchResult {
13497 pub async fn absolute_offset(&self) -> Result<isize, DaggerError> {
13499 let query = self.selection.select("absoluteOffset");
13500 query.execute(self.graphql_client.clone()).await
13501 }
13502 pub async fn file_path(&self) -> Result<String, DaggerError> {
13504 let query = self.selection.select("filePath");
13505 query.execute(self.graphql_client.clone()).await
13506 }
13507 pub async fn id(&self) -> Result<SearchResultId, DaggerError> {
13509 let query = self.selection.select("id");
13510 query.execute(self.graphql_client.clone()).await
13511 }
13512 pub async fn line_number(&self) -> Result<isize, DaggerError> {
13514 let query = self.selection.select("lineNumber");
13515 query.execute(self.graphql_client.clone()).await
13516 }
13517 pub async fn matched_lines(&self) -> Result<String, DaggerError> {
13519 let query = self.selection.select("matchedLines");
13520 query.execute(self.graphql_client.clone()).await
13521 }
13522 pub fn submatches(&self) -> Vec<SearchSubmatch> {
13524 let query = self.selection.select("submatches");
13525 vec![SearchSubmatch {
13526 proc: self.proc.clone(),
13527 selection: query,
13528 graphql_client: self.graphql_client.clone(),
13529 }]
13530 }
13531}
13532#[derive(Clone)]
13533pub struct SearchSubmatch {
13534 pub proc: Option<Arc<DaggerSessionProc>>,
13535 pub selection: Selection,
13536 pub graphql_client: DynGraphQLClient,
13537}
13538impl SearchSubmatch {
13539 pub async fn end(&self) -> Result<isize, DaggerError> {
13541 let query = self.selection.select("end");
13542 query.execute(self.graphql_client.clone()).await
13543 }
13544 pub async fn id(&self) -> Result<SearchSubmatchId, DaggerError> {
13546 let query = self.selection.select("id");
13547 query.execute(self.graphql_client.clone()).await
13548 }
13549 pub async fn start(&self) -> Result<isize, DaggerError> {
13551 let query = self.selection.select("start");
13552 query.execute(self.graphql_client.clone()).await
13553 }
13554 pub async fn text(&self) -> Result<String, DaggerError> {
13556 let query = self.selection.select("text");
13557 query.execute(self.graphql_client.clone()).await
13558 }
13559}
13560#[derive(Clone)]
13561pub struct Secret {
13562 pub proc: Option<Arc<DaggerSessionProc>>,
13563 pub selection: Selection,
13564 pub graphql_client: DynGraphQLClient,
13565}
13566impl Secret {
13567 pub async fn id(&self) -> Result<SecretId, DaggerError> {
13569 let query = self.selection.select("id");
13570 query.execute(self.graphql_client.clone()).await
13571 }
13572 pub async fn name(&self) -> Result<String, DaggerError> {
13574 let query = self.selection.select("name");
13575 query.execute(self.graphql_client.clone()).await
13576 }
13577 pub async fn plaintext(&self) -> Result<String, DaggerError> {
13579 let query = self.selection.select("plaintext");
13580 query.execute(self.graphql_client.clone()).await
13581 }
13582 pub async fn uri(&self) -> Result<String, DaggerError> {
13584 let query = self.selection.select("uri");
13585 query.execute(self.graphql_client.clone()).await
13586 }
13587}
13588#[derive(Clone)]
13589pub struct Service {
13590 pub proc: Option<Arc<DaggerSessionProc>>,
13591 pub selection: Selection,
13592 pub graphql_client: DynGraphQLClient,
13593}
13594#[derive(Builder, Debug, PartialEq)]
13595pub struct ServiceEndpointOpts<'a> {
13596 #[builder(setter(into, strip_option), default)]
13598 pub port: Option<isize>,
13599 #[builder(setter(into, strip_option), default)]
13601 pub scheme: Option<&'a str>,
13602}
13603#[derive(Builder, Debug, PartialEq)]
13604pub struct ServiceStopOpts {
13605 #[builder(setter(into, strip_option), default)]
13607 pub kill: Option<bool>,
13608}
13609#[derive(Builder, Debug, PartialEq)]
13610pub struct ServiceTerminalOpts<'a> {
13611 #[builder(setter(into, strip_option), default)]
13612 pub cmd: Option<Vec<&'a str>>,
13613}
13614#[derive(Builder, Debug, PartialEq)]
13615pub struct ServiceUpOpts {
13616 #[builder(setter(into, strip_option), default)]
13619 pub ports: Option<Vec<PortForward>>,
13620 #[builder(setter(into, strip_option), default)]
13622 pub random: Option<bool>,
13623}
13624impl Service {
13625 pub async fn endpoint(&self) -> Result<String, DaggerError> {
13633 let query = self.selection.select("endpoint");
13634 query.execute(self.graphql_client.clone()).await
13635 }
13636 pub async fn endpoint_opts<'a>(
13644 &self,
13645 opts: ServiceEndpointOpts<'a>,
13646 ) -> Result<String, DaggerError> {
13647 let mut query = self.selection.select("endpoint");
13648 if let Some(port) = opts.port {
13649 query = query.arg("port", port);
13650 }
13651 if let Some(scheme) = opts.scheme {
13652 query = query.arg("scheme", scheme);
13653 }
13654 query.execute(self.graphql_client.clone()).await
13655 }
13656 pub async fn hostname(&self) -> Result<String, DaggerError> {
13658 let query = self.selection.select("hostname");
13659 query.execute(self.graphql_client.clone()).await
13660 }
13661 pub async fn id(&self) -> Result<ServiceId, DaggerError> {
13663 let query = self.selection.select("id");
13664 query.execute(self.graphql_client.clone()).await
13665 }
13666 pub fn ports(&self) -> Vec<Port> {
13668 let query = self.selection.select("ports");
13669 vec![Port {
13670 proc: self.proc.clone(),
13671 selection: query,
13672 graphql_client: self.graphql_client.clone(),
13673 }]
13674 }
13675 pub async fn start(&self) -> Result<ServiceId, DaggerError> {
13678 let query = self.selection.select("start");
13679 query.execute(self.graphql_client.clone()).await
13680 }
13681 pub async fn stop(&self) -> Result<ServiceId, DaggerError> {
13687 let query = self.selection.select("stop");
13688 query.execute(self.graphql_client.clone()).await
13689 }
13690 pub async fn stop_opts(&self, opts: ServiceStopOpts) -> Result<ServiceId, DaggerError> {
13696 let mut query = self.selection.select("stop");
13697 if let Some(kill) = opts.kill {
13698 query = query.arg("kill", kill);
13699 }
13700 query.execute(self.graphql_client.clone()).await
13701 }
13702 pub async fn sync(&self) -> Result<ServiceId, DaggerError> {
13704 let query = self.selection.select("sync");
13705 query.execute(self.graphql_client.clone()).await
13706 }
13707 pub fn terminal(&self) -> Service {
13712 let query = self.selection.select("terminal");
13713 Service {
13714 proc: self.proc.clone(),
13715 selection: query,
13716 graphql_client: self.graphql_client.clone(),
13717 }
13718 }
13719 pub fn terminal_opts<'a>(&self, opts: ServiceTerminalOpts<'a>) -> Service {
13724 let mut query = self.selection.select("terminal");
13725 if let Some(cmd) = opts.cmd {
13726 query = query.arg("cmd", cmd);
13727 }
13728 Service {
13729 proc: self.proc.clone(),
13730 selection: query,
13731 graphql_client: self.graphql_client.clone(),
13732 }
13733 }
13734 pub async fn up(&self) -> Result<Void, DaggerError> {
13740 let query = self.selection.select("up");
13741 query.execute(self.graphql_client.clone()).await
13742 }
13743 pub async fn up_opts(&self, opts: ServiceUpOpts) -> Result<Void, DaggerError> {
13749 let mut query = self.selection.select("up");
13750 if let Some(ports) = opts.ports {
13751 query = query.arg("ports", ports);
13752 }
13753 if let Some(random) = opts.random {
13754 query = query.arg("random", random);
13755 }
13756 query.execute(self.graphql_client.clone()).await
13757 }
13758 pub fn with_hostname(&self, hostname: impl Into<String>) -> Service {
13764 let mut query = self.selection.select("withHostname");
13765 query = query.arg("hostname", hostname.into());
13766 Service {
13767 proc: self.proc.clone(),
13768 selection: query,
13769 graphql_client: self.graphql_client.clone(),
13770 }
13771 }
13772}
13773#[derive(Clone)]
13774pub struct Socket {
13775 pub proc: Option<Arc<DaggerSessionProc>>,
13776 pub selection: Selection,
13777 pub graphql_client: DynGraphQLClient,
13778}
13779impl Socket {
13780 pub async fn id(&self) -> Result<SocketId, DaggerError> {
13782 let query = self.selection.select("id");
13783 query.execute(self.graphql_client.clone()).await
13784 }
13785}
13786#[derive(Clone)]
13787pub struct SourceMap {
13788 pub proc: Option<Arc<DaggerSessionProc>>,
13789 pub selection: Selection,
13790 pub graphql_client: DynGraphQLClient,
13791}
13792impl SourceMap {
13793 pub async fn column(&self) -> Result<isize, DaggerError> {
13795 let query = self.selection.select("column");
13796 query.execute(self.graphql_client.clone()).await
13797 }
13798 pub async fn filename(&self) -> Result<String, DaggerError> {
13800 let query = self.selection.select("filename");
13801 query.execute(self.graphql_client.clone()).await
13802 }
13803 pub async fn id(&self) -> Result<SourceMapId, DaggerError> {
13805 let query = self.selection.select("id");
13806 query.execute(self.graphql_client.clone()).await
13807 }
13808 pub async fn line(&self) -> Result<isize, DaggerError> {
13810 let query = self.selection.select("line");
13811 query.execute(self.graphql_client.clone()).await
13812 }
13813 pub async fn module(&self) -> Result<String, DaggerError> {
13815 let query = self.selection.select("module");
13816 query.execute(self.graphql_client.clone()).await
13817 }
13818 pub async fn url(&self) -> Result<String, DaggerError> {
13820 let query = self.selection.select("url");
13821 query.execute(self.graphql_client.clone()).await
13822 }
13823}
13824#[derive(Clone)]
13825pub struct Stat {
13826 pub proc: Option<Arc<DaggerSessionProc>>,
13827 pub selection: Selection,
13828 pub graphql_client: DynGraphQLClient,
13829}
13830impl Stat {
13831 pub async fn file_type(&self) -> Result<FileType, DaggerError> {
13833 let query = self.selection.select("fileType");
13834 query.execute(self.graphql_client.clone()).await
13835 }
13836 pub async fn id(&self) -> Result<StatId, DaggerError> {
13838 let query = self.selection.select("id");
13839 query.execute(self.graphql_client.clone()).await
13840 }
13841 pub async fn name(&self) -> Result<String, DaggerError> {
13843 let query = self.selection.select("name");
13844 query.execute(self.graphql_client.clone()).await
13845 }
13846 pub async fn permissions(&self) -> Result<isize, DaggerError> {
13848 let query = self.selection.select("permissions");
13849 query.execute(self.graphql_client.clone()).await
13850 }
13851 pub async fn size(&self) -> Result<isize, DaggerError> {
13853 let query = self.selection.select("size");
13854 query.execute(self.graphql_client.clone()).await
13855 }
13856}
13857#[derive(Clone)]
13858pub struct Terminal {
13859 pub proc: Option<Arc<DaggerSessionProc>>,
13860 pub selection: Selection,
13861 pub graphql_client: DynGraphQLClient,
13862}
13863impl Terminal {
13864 pub async fn id(&self) -> Result<TerminalId, DaggerError> {
13866 let query = self.selection.select("id");
13867 query.execute(self.graphql_client.clone()).await
13868 }
13869 pub async fn sync(&self) -> Result<TerminalId, DaggerError> {
13872 let query = self.selection.select("sync");
13873 query.execute(self.graphql_client.clone()).await
13874 }
13875}
13876#[derive(Clone)]
13877pub struct TypeDef {
13878 pub proc: Option<Arc<DaggerSessionProc>>,
13879 pub selection: Selection,
13880 pub graphql_client: DynGraphQLClient,
13881}
13882#[derive(Builder, Debug, PartialEq)]
13883pub struct TypeDefWithEnumOpts<'a> {
13884 #[builder(setter(into, strip_option), default)]
13886 pub description: Option<&'a str>,
13887 #[builder(setter(into, strip_option), default)]
13889 pub source_map: Option<SourceMapId>,
13890}
13891#[derive(Builder, Debug, PartialEq)]
13892pub struct TypeDefWithEnumMemberOpts<'a> {
13893 #[builder(setter(into, strip_option), default)]
13895 pub deprecated: Option<&'a str>,
13896 #[builder(setter(into, strip_option), default)]
13898 pub description: Option<&'a str>,
13899 #[builder(setter(into, strip_option), default)]
13901 pub source_map: Option<SourceMapId>,
13902 #[builder(setter(into, strip_option), default)]
13904 pub value: Option<&'a str>,
13905}
13906#[derive(Builder, Debug, PartialEq)]
13907pub struct TypeDefWithEnumValueOpts<'a> {
13908 #[builder(setter(into, strip_option), default)]
13910 pub deprecated: Option<&'a str>,
13911 #[builder(setter(into, strip_option), default)]
13913 pub description: Option<&'a str>,
13914 #[builder(setter(into, strip_option), default)]
13916 pub source_map: Option<SourceMapId>,
13917}
13918#[derive(Builder, Debug, PartialEq)]
13919pub struct TypeDefWithFieldOpts<'a> {
13920 #[builder(setter(into, strip_option), default)]
13922 pub deprecated: Option<&'a str>,
13923 #[builder(setter(into, strip_option), default)]
13925 pub description: Option<&'a str>,
13926 #[builder(setter(into, strip_option), default)]
13928 pub source_map: Option<SourceMapId>,
13929}
13930#[derive(Builder, Debug, PartialEq)]
13931pub struct TypeDefWithInterfaceOpts<'a> {
13932 #[builder(setter(into, strip_option), default)]
13933 pub description: Option<&'a str>,
13934 #[builder(setter(into, strip_option), default)]
13935 pub source_map: Option<SourceMapId>,
13936}
13937#[derive(Builder, Debug, PartialEq)]
13938pub struct TypeDefWithObjectOpts<'a> {
13939 #[builder(setter(into, strip_option), default)]
13940 pub deprecated: Option<&'a str>,
13941 #[builder(setter(into, strip_option), default)]
13942 pub description: Option<&'a str>,
13943 #[builder(setter(into, strip_option), default)]
13944 pub source_map: Option<SourceMapId>,
13945}
13946#[derive(Builder, Debug, PartialEq)]
13947pub struct TypeDefWithScalarOpts<'a> {
13948 #[builder(setter(into, strip_option), default)]
13949 pub description: Option<&'a str>,
13950}
13951impl TypeDef {
13952 pub fn as_enum(&self) -> EnumTypeDef {
13954 let query = self.selection.select("asEnum");
13955 EnumTypeDef {
13956 proc: self.proc.clone(),
13957 selection: query,
13958 graphql_client: self.graphql_client.clone(),
13959 }
13960 }
13961 pub fn as_input(&self) -> InputTypeDef {
13963 let query = self.selection.select("asInput");
13964 InputTypeDef {
13965 proc: self.proc.clone(),
13966 selection: query,
13967 graphql_client: self.graphql_client.clone(),
13968 }
13969 }
13970 pub fn as_interface(&self) -> InterfaceTypeDef {
13972 let query = self.selection.select("asInterface");
13973 InterfaceTypeDef {
13974 proc: self.proc.clone(),
13975 selection: query,
13976 graphql_client: self.graphql_client.clone(),
13977 }
13978 }
13979 pub fn as_list(&self) -> ListTypeDef {
13981 let query = self.selection.select("asList");
13982 ListTypeDef {
13983 proc: self.proc.clone(),
13984 selection: query,
13985 graphql_client: self.graphql_client.clone(),
13986 }
13987 }
13988 pub fn as_object(&self) -> ObjectTypeDef {
13990 let query = self.selection.select("asObject");
13991 ObjectTypeDef {
13992 proc: self.proc.clone(),
13993 selection: query,
13994 graphql_client: self.graphql_client.clone(),
13995 }
13996 }
13997 pub fn as_scalar(&self) -> ScalarTypeDef {
13999 let query = self.selection.select("asScalar");
14000 ScalarTypeDef {
14001 proc: self.proc.clone(),
14002 selection: query,
14003 graphql_client: self.graphql_client.clone(),
14004 }
14005 }
14006 pub async fn id(&self) -> Result<TypeDefId, DaggerError> {
14008 let query = self.selection.select("id");
14009 query.execute(self.graphql_client.clone()).await
14010 }
14011 pub async fn kind(&self) -> Result<TypeDefKind, DaggerError> {
14013 let query = self.selection.select("kind");
14014 query.execute(self.graphql_client.clone()).await
14015 }
14016 pub async fn optional(&self) -> Result<bool, DaggerError> {
14018 let query = self.selection.select("optional");
14019 query.execute(self.graphql_client.clone()).await
14020 }
14021 pub fn with_constructor(&self, function: impl IntoID<FunctionId>) -> TypeDef {
14023 let mut query = self.selection.select("withConstructor");
14024 query = query.arg_lazy(
14025 "function",
14026 Box::new(move || {
14027 let function = function.clone();
14028 Box::pin(async move { function.into_id().await.unwrap().quote() })
14029 }),
14030 );
14031 TypeDef {
14032 proc: self.proc.clone(),
14033 selection: query,
14034 graphql_client: self.graphql_client.clone(),
14035 }
14036 }
14037 pub fn with_enum(&self, name: impl Into<String>) -> TypeDef {
14045 let mut query = self.selection.select("withEnum");
14046 query = query.arg("name", name.into());
14047 TypeDef {
14048 proc: self.proc.clone(),
14049 selection: query,
14050 graphql_client: self.graphql_client.clone(),
14051 }
14052 }
14053 pub fn with_enum_opts<'a>(
14061 &self,
14062 name: impl Into<String>,
14063 opts: TypeDefWithEnumOpts<'a>,
14064 ) -> TypeDef {
14065 let mut query = self.selection.select("withEnum");
14066 query = query.arg("name", name.into());
14067 if let Some(description) = opts.description {
14068 query = query.arg("description", description);
14069 }
14070 if let Some(source_map) = opts.source_map {
14071 query = query.arg("sourceMap", source_map);
14072 }
14073 TypeDef {
14074 proc: self.proc.clone(),
14075 selection: query,
14076 graphql_client: self.graphql_client.clone(),
14077 }
14078 }
14079 pub fn with_enum_member(&self, name: impl Into<String>) -> TypeDef {
14086 let mut query = self.selection.select("withEnumMember");
14087 query = query.arg("name", name.into());
14088 TypeDef {
14089 proc: self.proc.clone(),
14090 selection: query,
14091 graphql_client: self.graphql_client.clone(),
14092 }
14093 }
14094 pub fn with_enum_member_opts<'a>(
14101 &self,
14102 name: impl Into<String>,
14103 opts: TypeDefWithEnumMemberOpts<'a>,
14104 ) -> TypeDef {
14105 let mut query = self.selection.select("withEnumMember");
14106 query = query.arg("name", name.into());
14107 if let Some(value) = opts.value {
14108 query = query.arg("value", value);
14109 }
14110 if let Some(description) = opts.description {
14111 query = query.arg("description", description);
14112 }
14113 if let Some(source_map) = opts.source_map {
14114 query = query.arg("sourceMap", source_map);
14115 }
14116 if let Some(deprecated) = opts.deprecated {
14117 query = query.arg("deprecated", deprecated);
14118 }
14119 TypeDef {
14120 proc: self.proc.clone(),
14121 selection: query,
14122 graphql_client: self.graphql_client.clone(),
14123 }
14124 }
14125 pub fn with_enum_value(&self, value: impl Into<String>) -> TypeDef {
14132 let mut query = self.selection.select("withEnumValue");
14133 query = query.arg("value", value.into());
14134 TypeDef {
14135 proc: self.proc.clone(),
14136 selection: query,
14137 graphql_client: self.graphql_client.clone(),
14138 }
14139 }
14140 pub fn with_enum_value_opts<'a>(
14147 &self,
14148 value: impl Into<String>,
14149 opts: TypeDefWithEnumValueOpts<'a>,
14150 ) -> TypeDef {
14151 let mut query = self.selection.select("withEnumValue");
14152 query = query.arg("value", value.into());
14153 if let Some(description) = opts.description {
14154 query = query.arg("description", description);
14155 }
14156 if let Some(source_map) = opts.source_map {
14157 query = query.arg("sourceMap", source_map);
14158 }
14159 if let Some(deprecated) = opts.deprecated {
14160 query = query.arg("deprecated", deprecated);
14161 }
14162 TypeDef {
14163 proc: self.proc.clone(),
14164 selection: query,
14165 graphql_client: self.graphql_client.clone(),
14166 }
14167 }
14168 pub fn with_field(&self, name: impl Into<String>, type_def: impl IntoID<TypeDefId>) -> TypeDef {
14176 let mut query = self.selection.select("withField");
14177 query = query.arg("name", name.into());
14178 query = query.arg_lazy(
14179 "typeDef",
14180 Box::new(move || {
14181 let type_def = type_def.clone();
14182 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
14183 }),
14184 );
14185 TypeDef {
14186 proc: self.proc.clone(),
14187 selection: query,
14188 graphql_client: self.graphql_client.clone(),
14189 }
14190 }
14191 pub fn with_field_opts<'a>(
14199 &self,
14200 name: impl Into<String>,
14201 type_def: impl IntoID<TypeDefId>,
14202 opts: TypeDefWithFieldOpts<'a>,
14203 ) -> TypeDef {
14204 let mut query = self.selection.select("withField");
14205 query = query.arg("name", name.into());
14206 query = query.arg_lazy(
14207 "typeDef",
14208 Box::new(move || {
14209 let type_def = type_def.clone();
14210 Box::pin(async move { type_def.into_id().await.unwrap().quote() })
14211 }),
14212 );
14213 if let Some(description) = opts.description {
14214 query = query.arg("description", description);
14215 }
14216 if let Some(source_map) = opts.source_map {
14217 query = query.arg("sourceMap", source_map);
14218 }
14219 if let Some(deprecated) = opts.deprecated {
14220 query = query.arg("deprecated", deprecated);
14221 }
14222 TypeDef {
14223 proc: self.proc.clone(),
14224 selection: query,
14225 graphql_client: self.graphql_client.clone(),
14226 }
14227 }
14228 pub fn with_function(&self, function: impl IntoID<FunctionId>) -> TypeDef {
14230 let mut query = self.selection.select("withFunction");
14231 query = query.arg_lazy(
14232 "function",
14233 Box::new(move || {
14234 let function = function.clone();
14235 Box::pin(async move { function.into_id().await.unwrap().quote() })
14236 }),
14237 );
14238 TypeDef {
14239 proc: self.proc.clone(),
14240 selection: query,
14241 graphql_client: self.graphql_client.clone(),
14242 }
14243 }
14244 pub fn with_interface(&self, name: impl Into<String>) -> TypeDef {
14250 let mut query = self.selection.select("withInterface");
14251 query = query.arg("name", name.into());
14252 TypeDef {
14253 proc: self.proc.clone(),
14254 selection: query,
14255 graphql_client: self.graphql_client.clone(),
14256 }
14257 }
14258 pub fn with_interface_opts<'a>(
14264 &self,
14265 name: impl Into<String>,
14266 opts: TypeDefWithInterfaceOpts<'a>,
14267 ) -> TypeDef {
14268 let mut query = self.selection.select("withInterface");
14269 query = query.arg("name", name.into());
14270 if let Some(description) = opts.description {
14271 query = query.arg("description", description);
14272 }
14273 if let Some(source_map) = opts.source_map {
14274 query = query.arg("sourceMap", source_map);
14275 }
14276 TypeDef {
14277 proc: self.proc.clone(),
14278 selection: query,
14279 graphql_client: self.graphql_client.clone(),
14280 }
14281 }
14282 pub fn with_kind(&self, kind: TypeDefKind) -> TypeDef {
14284 let mut query = self.selection.select("withKind");
14285 query = query.arg("kind", kind);
14286 TypeDef {
14287 proc: self.proc.clone(),
14288 selection: query,
14289 graphql_client: self.graphql_client.clone(),
14290 }
14291 }
14292 pub fn with_list_of(&self, element_type: impl IntoID<TypeDefId>) -> TypeDef {
14294 let mut query = self.selection.select("withListOf");
14295 query = query.arg_lazy(
14296 "elementType",
14297 Box::new(move || {
14298 let element_type = element_type.clone();
14299 Box::pin(async move { element_type.into_id().await.unwrap().quote() })
14300 }),
14301 );
14302 TypeDef {
14303 proc: self.proc.clone(),
14304 selection: query,
14305 graphql_client: self.graphql_client.clone(),
14306 }
14307 }
14308 pub fn with_object(&self, name: impl Into<String>) -> TypeDef {
14315 let mut query = self.selection.select("withObject");
14316 query = query.arg("name", name.into());
14317 TypeDef {
14318 proc: self.proc.clone(),
14319 selection: query,
14320 graphql_client: self.graphql_client.clone(),
14321 }
14322 }
14323 pub fn with_object_opts<'a>(
14330 &self,
14331 name: impl Into<String>,
14332 opts: TypeDefWithObjectOpts<'a>,
14333 ) -> TypeDef {
14334 let mut query = self.selection.select("withObject");
14335 query = query.arg("name", name.into());
14336 if let Some(description) = opts.description {
14337 query = query.arg("description", description);
14338 }
14339 if let Some(source_map) = opts.source_map {
14340 query = query.arg("sourceMap", source_map);
14341 }
14342 if let Some(deprecated) = opts.deprecated {
14343 query = query.arg("deprecated", deprecated);
14344 }
14345 TypeDef {
14346 proc: self.proc.clone(),
14347 selection: query,
14348 graphql_client: self.graphql_client.clone(),
14349 }
14350 }
14351 pub fn with_optional(&self, optional: bool) -> TypeDef {
14353 let mut query = self.selection.select("withOptional");
14354 query = query.arg("optional", optional);
14355 TypeDef {
14356 proc: self.proc.clone(),
14357 selection: query,
14358 graphql_client: self.graphql_client.clone(),
14359 }
14360 }
14361 pub fn with_scalar(&self, name: impl Into<String>) -> TypeDef {
14367 let mut query = self.selection.select("withScalar");
14368 query = query.arg("name", name.into());
14369 TypeDef {
14370 proc: self.proc.clone(),
14371 selection: query,
14372 graphql_client: self.graphql_client.clone(),
14373 }
14374 }
14375 pub fn with_scalar_opts<'a>(
14381 &self,
14382 name: impl Into<String>,
14383 opts: TypeDefWithScalarOpts<'a>,
14384 ) -> TypeDef {
14385 let mut query = self.selection.select("withScalar");
14386 query = query.arg("name", name.into());
14387 if let Some(description) = opts.description {
14388 query = query.arg("description", description);
14389 }
14390 TypeDef {
14391 proc: self.proc.clone(),
14392 selection: query,
14393 graphql_client: self.graphql_client.clone(),
14394 }
14395 }
14396}
14397#[derive(Clone)]
14398pub struct Workspace {
14399 pub proc: Option<Arc<DaggerSessionProc>>,
14400 pub selection: Selection,
14401 pub graphql_client: DynGraphQLClient,
14402}
14403#[derive(Builder, Debug, PartialEq)]
14404pub struct WorkspaceDirectoryOpts<'a> {
14405 #[builder(setter(into, strip_option), default)]
14407 pub exclude: Option<Vec<&'a str>>,
14408 #[builder(setter(into, strip_option), default)]
14410 pub gitignore: Option<bool>,
14411 #[builder(setter(into, strip_option), default)]
14413 pub include: Option<Vec<&'a str>>,
14414}
14415#[derive(Builder, Debug, PartialEq)]
14416pub struct WorkspaceFindUpOpts<'a> {
14417 #[builder(setter(into, strip_option), default)]
14419 pub from: Option<&'a str>,
14420}
14421impl Workspace {
14422 pub async fn client_id(&self) -> Result<String, DaggerError> {
14424 let query = self.selection.select("clientId");
14425 query.execute(self.graphql_client.clone()).await
14426 }
14427 pub fn directory(&self, path: impl Into<String>) -> Directory {
14435 let mut query = self.selection.select("directory");
14436 query = query.arg("path", path.into());
14437 Directory {
14438 proc: self.proc.clone(),
14439 selection: query,
14440 graphql_client: self.graphql_client.clone(),
14441 }
14442 }
14443 pub fn directory_opts<'a>(
14451 &self,
14452 path: impl Into<String>,
14453 opts: WorkspaceDirectoryOpts<'a>,
14454 ) -> Directory {
14455 let mut query = self.selection.select("directory");
14456 query = query.arg("path", path.into());
14457 if let Some(exclude) = opts.exclude {
14458 query = query.arg("exclude", exclude);
14459 }
14460 if let Some(include) = opts.include {
14461 query = query.arg("include", include);
14462 }
14463 if let Some(gitignore) = opts.gitignore {
14464 query = query.arg("gitignore", gitignore);
14465 }
14466 Directory {
14467 proc: self.proc.clone(),
14468 selection: query,
14469 graphql_client: self.graphql_client.clone(),
14470 }
14471 }
14472 pub fn file(&self, path: impl Into<String>) -> File {
14479 let mut query = self.selection.select("file");
14480 query = query.arg("path", path.into());
14481 File {
14482 proc: self.proc.clone(),
14483 selection: query,
14484 graphql_client: self.graphql_client.clone(),
14485 }
14486 }
14487 pub async fn find_up(&self, name: impl Into<String>) -> Result<String, DaggerError> {
14496 let mut query = self.selection.select("findUp");
14497 query = query.arg("name", name.into());
14498 query.execute(self.graphql_client.clone()).await
14499 }
14500 pub async fn find_up_opts<'a>(
14509 &self,
14510 name: impl Into<String>,
14511 opts: WorkspaceFindUpOpts<'a>,
14512 ) -> Result<String, DaggerError> {
14513 let mut query = self.selection.select("findUp");
14514 query = query.arg("name", name.into());
14515 if let Some(from) = opts.from {
14516 query = query.arg("from", from);
14517 }
14518 query.execute(self.graphql_client.clone()).await
14519 }
14520 pub async fn id(&self) -> Result<WorkspaceId, DaggerError> {
14522 let query = self.selection.select("id");
14523 query.execute(self.graphql_client.clone()).await
14524 }
14525 pub async fn root(&self) -> Result<String, DaggerError> {
14527 let query = self.selection.select("root");
14528 query.execute(self.graphql_client.clone()).await
14529 }
14530}
14531#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14532pub enum CacheSharingMode {
14533 #[serde(rename = "LOCKED")]
14534 Locked,
14535 #[serde(rename = "PRIVATE")]
14536 Private,
14537 #[serde(rename = "SHARED")]
14538 Shared,
14539}
14540#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14541pub enum ChangesetMergeConflict {
14542 #[serde(rename = "FAIL")]
14543 Fail,
14544 #[serde(rename = "FAIL_EARLY")]
14545 FailEarly,
14546 #[serde(rename = "LEAVE_CONFLICT_MARKERS")]
14547 LeaveConflictMarkers,
14548 #[serde(rename = "PREFER_OURS")]
14549 PreferOurs,
14550 #[serde(rename = "PREFER_THEIRS")]
14551 PreferTheirs,
14552}
14553#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14554pub enum ChangesetsMergeConflict {
14555 #[serde(rename = "FAIL")]
14556 Fail,
14557 #[serde(rename = "FAIL_EARLY")]
14558 FailEarly,
14559}
14560#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14561pub enum ExistsType {
14562 #[serde(rename = "DIRECTORY_TYPE")]
14563 DirectoryType,
14564 #[serde(rename = "REGULAR_TYPE")]
14565 RegularType,
14566 #[serde(rename = "SYMLINK_TYPE")]
14567 SymlinkType,
14568}
14569#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14570pub enum FileType {
14571 #[serde(rename = "DIRECTORY")]
14572 Directory,
14573 #[serde(rename = "DIRECTORY_TYPE")]
14574 DirectoryType,
14575 #[serde(rename = "REGULAR")]
14576 Regular,
14577 #[serde(rename = "REGULAR_TYPE")]
14578 RegularType,
14579 #[serde(rename = "SYMLINK")]
14580 Symlink,
14581 #[serde(rename = "SYMLINK_TYPE")]
14582 SymlinkType,
14583 #[serde(rename = "UNKNOWN")]
14584 Unknown,
14585}
14586#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14587pub enum FunctionCachePolicy {
14588 #[serde(rename = "Default")]
14589 Default,
14590 #[serde(rename = "Never")]
14591 Never,
14592 #[serde(rename = "PerSession")]
14593 PerSession,
14594}
14595#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14596pub enum ImageLayerCompression {
14597 #[serde(rename = "EStarGZ")]
14598 EStarGz,
14599 #[serde(rename = "ESTARGZ")]
14600 Estargz,
14601 #[serde(rename = "Gzip")]
14602 Gzip,
14603 #[serde(rename = "Uncompressed")]
14604 Uncompressed,
14605 #[serde(rename = "Zstd")]
14606 Zstd,
14607}
14608#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14609pub enum ImageMediaTypes {
14610 #[serde(rename = "DOCKER")]
14611 Docker,
14612 #[serde(rename = "DockerMediaTypes")]
14613 DockerMediaTypes,
14614 #[serde(rename = "OCI")]
14615 Oci,
14616 #[serde(rename = "OCIMediaTypes")]
14617 OciMediaTypes,
14618}
14619#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14620pub enum ModuleSourceExperimentalFeature {
14621 #[serde(rename = "SELF_CALLS")]
14622 SelfCalls,
14623}
14624#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14625pub enum ModuleSourceKind {
14626 #[serde(rename = "DIR")]
14627 Dir,
14628 #[serde(rename = "DIR_SOURCE")]
14629 DirSource,
14630 #[serde(rename = "GIT")]
14631 Git,
14632 #[serde(rename = "GIT_SOURCE")]
14633 GitSource,
14634 #[serde(rename = "LOCAL")]
14635 Local,
14636 #[serde(rename = "LOCAL_SOURCE")]
14637 LocalSource,
14638}
14639#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14640pub enum NetworkProtocol {
14641 #[serde(rename = "TCP")]
14642 Tcp,
14643 #[serde(rename = "UDP")]
14644 Udp,
14645}
14646#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14647pub enum ReturnType {
14648 #[serde(rename = "ANY")]
14649 Any,
14650 #[serde(rename = "FAILURE")]
14651 Failure,
14652 #[serde(rename = "SUCCESS")]
14653 Success,
14654}
14655#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
14656pub enum TypeDefKind {
14657 #[serde(rename = "BOOLEAN")]
14658 Boolean,
14659 #[serde(rename = "BOOLEAN_KIND")]
14660 BooleanKind,
14661 #[serde(rename = "ENUM")]
14662 Enum,
14663 #[serde(rename = "ENUM_KIND")]
14664 EnumKind,
14665 #[serde(rename = "FLOAT")]
14666 Float,
14667 #[serde(rename = "FLOAT_KIND")]
14668 FloatKind,
14669 #[serde(rename = "INPUT")]
14670 Input,
14671 #[serde(rename = "INPUT_KIND")]
14672 InputKind,
14673 #[serde(rename = "INTEGER")]
14674 Integer,
14675 #[serde(rename = "INTEGER_KIND")]
14676 IntegerKind,
14677 #[serde(rename = "INTERFACE")]
14678 Interface,
14679 #[serde(rename = "INTERFACE_KIND")]
14680 InterfaceKind,
14681 #[serde(rename = "LIST")]
14682 List,
14683 #[serde(rename = "LIST_KIND")]
14684 ListKind,
14685 #[serde(rename = "OBJECT")]
14686 Object,
14687 #[serde(rename = "OBJECT_KIND")]
14688 ObjectKind,
14689 #[serde(rename = "SCALAR")]
14690 Scalar,
14691 #[serde(rename = "SCALAR_KIND")]
14692 ScalarKind,
14693 #[serde(rename = "STRING")]
14694 String,
14695 #[serde(rename = "STRING_KIND")]
14696 StringKind,
14697 #[serde(rename = "VOID")]
14698 Void,
14699 #[serde(rename = "VOID_KIND")]
14700 VoidKind,
14701}