Skip to main content

nominal_api/conjure/endpoints/scout/
template_service.rs

1use conjure_http::endpoint;
2/// TemplateService manages templates, which are workbooks that
3/// can be re-used across runs. Templates are versioned.
4#[conjure_http::conjure_endpoints(
5    name = "TemplateService",
6    use_legacy_error_serialization
7)]
8pub trait TemplateService {
9    /// Creates a new template.
10    #[endpoint(
11        method = POST,
12        path = "/scout/v1/template",
13        name = "create",
14        produces = conjure_http::server::StdResponseSerializer
15    )]
16    fn create(
17        &self,
18        #[auth]
19        auth_: conjure_object::BearerToken,
20        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
21        request: super::super::super::objects::scout::template::api::CreateTemplateRequest,
22    ) -> Result<
23        super::super::super::objects::scout::template::api::Template,
24        conjure_http::private::Error,
25    >;
26    /// Must only pass one of (branch, commit). If neither are passed,
27    /// the latest commit on the "main" branch is returned.
28    /// Throws if the template, branch, or commit doesn't exist.
29    #[endpoint(
30        method = GET,
31        path = "/scout/v1/template/{templateRid}",
32        name = "get",
33        produces = conjure_http::server::StdResponseSerializer
34    )]
35    fn get(
36        &self,
37        #[auth]
38        auth_: conjure_object::BearerToken,
39        #[path(
40            name = "templateRid",
41            decoder = conjure_http::server::conjure::FromPlainDecoder,
42            log_as = "templateRid",
43            safe
44        )]
45        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
46        #[query(
47            name = "branch",
48            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
49        )]
50        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
51        #[query(
52            name = "commit",
53            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
54            safe
55        )]
56        commit: Option<super::super::super::objects::scout::versioning::api::CommitId>,
57    ) -> Result<
58        super::super::super::objects::scout::template::api::Template,
59        conjure_http::private::Error,
60    >;
61    #[endpoint(
62        method = POST,
63        path = "/scout/v1/template/batch-get-metadata",
64        name = "batchGetMetadata",
65        produces = conjure_http::server::conjure::CollectionResponseSerializer
66    )]
67    fn batch_get_metadata(
68        &self,
69        #[auth]
70        auth_: conjure_object::BearerToken,
71        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
72        rids: std::collections::BTreeSet<
73            super::super::super::objects::scout::rids::api::TemplateRid,
74        >,
75    ) -> Result<
76        std::collections::BTreeSet<
77            super::super::super::objects::scout::template::api::TemplateSummary,
78        >,
79        conjure_http::private::Error,
80    >;
81    /// Creates a commit that may be compacted, e.g cleaned up and not exist anymore.
82    /// Throws if the template or branch doesn't exist.
83    /// Throws if the latest commit doesn't match the provided id.
84    /// Throws if you save to an archived template.
85    #[endpoint(
86        method = POST,
87        path = "/scout/v1/template/{templateRid}/save-working-state",
88        name = "saveWorkingState",
89        produces = conjure_http::server::StdResponseSerializer
90    )]
91    fn save_working_state(
92        &self,
93        #[auth]
94        auth_: conjure_object::BearerToken,
95        #[path(
96            name = "templateRid",
97            decoder = conjure_http::server::conjure::FromPlainDecoder,
98            log_as = "templateRid",
99            safe
100        )]
101        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
102        #[query(
103            name = "branch",
104            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
105        )]
106        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
107        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
108        request: super::super::super::objects::scout::template::api::SaveTemplateRequest,
109    ) -> Result<
110        super::super::super::objects::scout::template::api::Template,
111        conjure_http::private::Error,
112    >;
113    /// Returns the set of all ref names used by the template.
114    #[endpoint(
115        method = GET,
116        path = "/scout/v1/template/{templateRid}/ref-names",
117        name = "getUsedRefNames",
118        produces = conjure_http::server::conjure::CollectionResponseSerializer
119    )]
120    fn get_used_ref_names(
121        &self,
122        #[auth]
123        auth_: conjure_object::BearerToken,
124        #[path(
125            name = "templateRid",
126            decoder = conjure_http::server::conjure::FromPlainDecoder,
127            log_as = "templateRid",
128            safe
129        )]
130        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
131        #[query(
132            name = "branch",
133            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
134        )]
135        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
136        #[query(
137            name = "commit",
138            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
139            safe
140        )]
141        commit: Option<super::super::super::objects::scout::versioning::api::CommitId>,
142    ) -> Result<
143        std::collections::BTreeSet<
144            super::super::super::objects::scout::api::DataSourceRefName,
145        >,
146        conjure_http::private::Error,
147    >;
148    /// Updates the data source ref names for all variables used in the template.
149    #[endpoint(
150        method = POST,
151        path = "/scout/v1/template/{templateRid}/update-ref-names",
152        name = "updateRefNames",
153        produces = conjure_http::server::StdResponseSerializer
154    )]
155    fn update_ref_names(
156        &self,
157        #[auth]
158        auth_: conjure_object::BearerToken,
159        #[path(
160            name = "templateRid",
161            decoder = conjure_http::server::conjure::FromPlainDecoder,
162            log_as = "templateRid",
163            safe
164        )]
165        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
166        #[query(
167            name = "branch",
168            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
169        )]
170        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
171        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
172        request: super::super::super::objects::scout::template::api::UpdateRefNameRequest,
173    ) -> Result<
174        super::super::super::objects::scout::template::api::Template,
175        conjure_http::private::Error,
176    >;
177    /// Creates a commit with a commit message.
178    /// Throws if the template or branch doesn't exist.
179    /// Throws if the latest commit doesn't match the provided id.
180    /// Throws if you commit to an archived template.
181    #[endpoint(
182        method = POST,
183        path = "/scout/v1/template/{templateRid}/commit",
184        name = "commit",
185        produces = conjure_http::server::StdResponseSerializer
186    )]
187    fn commit(
188        &self,
189        #[auth]
190        auth_: conjure_object::BearerToken,
191        #[path(
192            name = "templateRid",
193            decoder = conjure_http::server::conjure::FromPlainDecoder,
194            log_as = "templateRid",
195            safe
196        )]
197        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
198        #[query(
199            name = "branch",
200            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
201        )]
202        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
203        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
204        request: super::super::super::objects::scout::template::api::CommitTemplateRequest,
205    ) -> Result<
206        super::super::super::objects::scout::template::api::Template,
207        conjure_http::private::Error,
208    >;
209    /// Throws if the template doesn't exist.
210    #[endpoint(
211        method = POST,
212        path = "/scout/v1/template/{templateRid}/metadata",
213        name = "updateMetadata",
214        produces = conjure_http::server::StdResponseSerializer
215    )]
216    fn update_metadata(
217        &self,
218        #[auth]
219        auth_: conjure_object::BearerToken,
220        #[path(
221            name = "templateRid",
222            decoder = conjure_http::server::conjure::FromPlainDecoder,
223            log_as = "templateRid",
224            safe
225        )]
226        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
227        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
228        request: super::super::super::objects::scout::template::api::UpdateMetadataRequest,
229    ) -> Result<
230        super::super::super::objects::scout::template::api::TemplateMetadata,
231        conjure_http::private::Error,
232    >;
233    #[endpoint(
234        method = POST,
235        path = "/scout/v1/template/search",
236        name = "searchTemplates",
237        produces = conjure_http::server::StdResponseSerializer
238    )]
239    fn search_templates(
240        &self,
241        #[auth]
242        auth_: conjure_object::BearerToken,
243        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
244        request: super::super::super::objects::scout::template::api::SearchTemplatesRequest,
245    ) -> Result<
246        super::super::super::objects::scout::template::api::SearchTemplatesResponse,
247        conjure_http::private::Error,
248    >;
249    #[endpoint(
250        method = GET,
251        path = "/scout/v1/template/get-all-labels-properties",
252        name = "getAllLabelsAndProperties",
253        produces = conjure_http::server::StdResponseSerializer
254    )]
255    fn get_all_labels_and_properties(
256        &self,
257        #[auth]
258        auth_: conjure_object::BearerToken,
259        #[query(
260            name = "workspaces",
261            decoder = conjure_http::server::conjure::FromPlainSeqDecoder<_>
262        )]
263        workspaces: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
264    ) -> Result<
265        super::super::super::objects::scout::template::api::GetAllLabelsAndPropertiesResponse,
266        conjure_http::private::Error,
267    >;
268    /// Duplicates an existing template, copying its content (layout, charts, variables)
269    /// and optionally overriding metadata fields such as title, description, labels,
270    /// and properties. Returns the newly created template.
271    #[endpoint(
272        method = POST,
273        path = "/scout/v1/template/{templateRid}/duplicate",
274        name = "duplicate",
275        produces = conjure_http::server::StdResponseSerializer
276    )]
277    fn duplicate(
278        &self,
279        #[auth]
280        auth_: conjure_object::BearerToken,
281        #[path(
282            name = "templateRid",
283            decoder = conjure_http::server::conjure::FromPlainDecoder,
284            log_as = "templateRid",
285            safe
286        )]
287        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
288        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
289        request: super::super::super::objects::scout::template::api::DuplicateTemplateRequest,
290    ) -> Result<
291        super::super::super::objects::scout::template::api::Template,
292        conjure_http::private::Error,
293    >;
294    /// Merges the given branch to the "main" branch.
295    /// Throws if the template or branch doesn't exist.
296    /// Throws if the latest commit doesn't match the provided id.
297    /// Throws if you merge on an archived template.
298    #[endpoint(
299        method = POST,
300        path = "/scout/v1/template/{templateRid}/merge-to-main",
301        name = "mergeToMain",
302        produces = conjure_http::server::StdResponseSerializer
303    )]
304    fn merge_to_main(
305        &self,
306        #[auth]
307        auth_: conjure_object::BearerToken,
308        #[path(
309            name = "templateRid",
310            decoder = conjure_http::server::conjure::FromPlainDecoder,
311            log_as = "templateRid",
312            safe
313        )]
314        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
315        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
316        request: super::super::super::objects::scout::template::api::MergeToMainRequest,
317    ) -> Result<
318        super::super::super::objects::scout::template::api::Template,
319        conjure_http::private::Error,
320    >;
321}
322/// TemplateService manages templates, which are workbooks that
323/// can be re-used across runs. Templates are versioned.
324#[conjure_http::conjure_endpoints(
325    name = "TemplateService",
326    use_legacy_error_serialization
327)]
328pub trait AsyncTemplateService {
329    /// Creates a new template.
330    #[endpoint(
331        method = POST,
332        path = "/scout/v1/template",
333        name = "create",
334        produces = conjure_http::server::StdResponseSerializer
335    )]
336    async fn create(
337        &self,
338        #[auth]
339        auth_: conjure_object::BearerToken,
340        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
341        request: super::super::super::objects::scout::template::api::CreateTemplateRequest,
342    ) -> Result<
343        super::super::super::objects::scout::template::api::Template,
344        conjure_http::private::Error,
345    >;
346    /// Must only pass one of (branch, commit). If neither are passed,
347    /// the latest commit on the "main" branch is returned.
348    /// Throws if the template, branch, or commit doesn't exist.
349    #[endpoint(
350        method = GET,
351        path = "/scout/v1/template/{templateRid}",
352        name = "get",
353        produces = conjure_http::server::StdResponseSerializer
354    )]
355    async fn get(
356        &self,
357        #[auth]
358        auth_: conjure_object::BearerToken,
359        #[path(
360            name = "templateRid",
361            decoder = conjure_http::server::conjure::FromPlainDecoder,
362            log_as = "templateRid",
363            safe
364        )]
365        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
366        #[query(
367            name = "branch",
368            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
369        )]
370        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
371        #[query(
372            name = "commit",
373            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
374            safe
375        )]
376        commit: Option<super::super::super::objects::scout::versioning::api::CommitId>,
377    ) -> Result<
378        super::super::super::objects::scout::template::api::Template,
379        conjure_http::private::Error,
380    >;
381    #[endpoint(
382        method = POST,
383        path = "/scout/v1/template/batch-get-metadata",
384        name = "batchGetMetadata",
385        produces = conjure_http::server::conjure::CollectionResponseSerializer
386    )]
387    async fn batch_get_metadata(
388        &self,
389        #[auth]
390        auth_: conjure_object::BearerToken,
391        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
392        rids: std::collections::BTreeSet<
393            super::super::super::objects::scout::rids::api::TemplateRid,
394        >,
395    ) -> Result<
396        std::collections::BTreeSet<
397            super::super::super::objects::scout::template::api::TemplateSummary,
398        >,
399        conjure_http::private::Error,
400    >;
401    /// Creates a commit that may be compacted, e.g cleaned up and not exist anymore.
402    /// Throws if the template or branch doesn't exist.
403    /// Throws if the latest commit doesn't match the provided id.
404    /// Throws if you save to an archived template.
405    #[endpoint(
406        method = POST,
407        path = "/scout/v1/template/{templateRid}/save-working-state",
408        name = "saveWorkingState",
409        produces = conjure_http::server::StdResponseSerializer
410    )]
411    async fn save_working_state(
412        &self,
413        #[auth]
414        auth_: conjure_object::BearerToken,
415        #[path(
416            name = "templateRid",
417            decoder = conjure_http::server::conjure::FromPlainDecoder,
418            log_as = "templateRid",
419            safe
420        )]
421        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
422        #[query(
423            name = "branch",
424            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
425        )]
426        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
427        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
428        request: super::super::super::objects::scout::template::api::SaveTemplateRequest,
429    ) -> Result<
430        super::super::super::objects::scout::template::api::Template,
431        conjure_http::private::Error,
432    >;
433    /// Returns the set of all ref names used by the template.
434    #[endpoint(
435        method = GET,
436        path = "/scout/v1/template/{templateRid}/ref-names",
437        name = "getUsedRefNames",
438        produces = conjure_http::server::conjure::CollectionResponseSerializer
439    )]
440    async fn get_used_ref_names(
441        &self,
442        #[auth]
443        auth_: conjure_object::BearerToken,
444        #[path(
445            name = "templateRid",
446            decoder = conjure_http::server::conjure::FromPlainDecoder,
447            log_as = "templateRid",
448            safe
449        )]
450        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
451        #[query(
452            name = "branch",
453            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
454        )]
455        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
456        #[query(
457            name = "commit",
458            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
459            safe
460        )]
461        commit: Option<super::super::super::objects::scout::versioning::api::CommitId>,
462    ) -> Result<
463        std::collections::BTreeSet<
464            super::super::super::objects::scout::api::DataSourceRefName,
465        >,
466        conjure_http::private::Error,
467    >;
468    /// Updates the data source ref names for all variables used in the template.
469    #[endpoint(
470        method = POST,
471        path = "/scout/v1/template/{templateRid}/update-ref-names",
472        name = "updateRefNames",
473        produces = conjure_http::server::StdResponseSerializer
474    )]
475    async fn update_ref_names(
476        &self,
477        #[auth]
478        auth_: conjure_object::BearerToken,
479        #[path(
480            name = "templateRid",
481            decoder = conjure_http::server::conjure::FromPlainDecoder,
482            log_as = "templateRid",
483            safe
484        )]
485        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
486        #[query(
487            name = "branch",
488            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
489        )]
490        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
491        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
492        request: super::super::super::objects::scout::template::api::UpdateRefNameRequest,
493    ) -> Result<
494        super::super::super::objects::scout::template::api::Template,
495        conjure_http::private::Error,
496    >;
497    /// Creates a commit with a commit message.
498    /// Throws if the template or branch doesn't exist.
499    /// Throws if the latest commit doesn't match the provided id.
500    /// Throws if you commit to an archived template.
501    #[endpoint(
502        method = POST,
503        path = "/scout/v1/template/{templateRid}/commit",
504        name = "commit",
505        produces = conjure_http::server::StdResponseSerializer
506    )]
507    async fn commit(
508        &self,
509        #[auth]
510        auth_: conjure_object::BearerToken,
511        #[path(
512            name = "templateRid",
513            decoder = conjure_http::server::conjure::FromPlainDecoder,
514            log_as = "templateRid",
515            safe
516        )]
517        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
518        #[query(
519            name = "branch",
520            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
521        )]
522        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
523        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
524        request: super::super::super::objects::scout::template::api::CommitTemplateRequest,
525    ) -> Result<
526        super::super::super::objects::scout::template::api::Template,
527        conjure_http::private::Error,
528    >;
529    /// Throws if the template doesn't exist.
530    #[endpoint(
531        method = POST,
532        path = "/scout/v1/template/{templateRid}/metadata",
533        name = "updateMetadata",
534        produces = conjure_http::server::StdResponseSerializer
535    )]
536    async fn update_metadata(
537        &self,
538        #[auth]
539        auth_: conjure_object::BearerToken,
540        #[path(
541            name = "templateRid",
542            decoder = conjure_http::server::conjure::FromPlainDecoder,
543            log_as = "templateRid",
544            safe
545        )]
546        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
547        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
548        request: super::super::super::objects::scout::template::api::UpdateMetadataRequest,
549    ) -> Result<
550        super::super::super::objects::scout::template::api::TemplateMetadata,
551        conjure_http::private::Error,
552    >;
553    #[endpoint(
554        method = POST,
555        path = "/scout/v1/template/search",
556        name = "searchTemplates",
557        produces = conjure_http::server::StdResponseSerializer
558    )]
559    async fn search_templates(
560        &self,
561        #[auth]
562        auth_: conjure_object::BearerToken,
563        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
564        request: super::super::super::objects::scout::template::api::SearchTemplatesRequest,
565    ) -> Result<
566        super::super::super::objects::scout::template::api::SearchTemplatesResponse,
567        conjure_http::private::Error,
568    >;
569    #[endpoint(
570        method = GET,
571        path = "/scout/v1/template/get-all-labels-properties",
572        name = "getAllLabelsAndProperties",
573        produces = conjure_http::server::StdResponseSerializer
574    )]
575    async fn get_all_labels_and_properties(
576        &self,
577        #[auth]
578        auth_: conjure_object::BearerToken,
579        #[query(
580            name = "workspaces",
581            decoder = conjure_http::server::conjure::FromPlainSeqDecoder<_>
582        )]
583        workspaces: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
584    ) -> Result<
585        super::super::super::objects::scout::template::api::GetAllLabelsAndPropertiesResponse,
586        conjure_http::private::Error,
587    >;
588    /// Duplicates an existing template, copying its content (layout, charts, variables)
589    /// and optionally overriding metadata fields such as title, description, labels,
590    /// and properties. Returns the newly created template.
591    #[endpoint(
592        method = POST,
593        path = "/scout/v1/template/{templateRid}/duplicate",
594        name = "duplicate",
595        produces = conjure_http::server::StdResponseSerializer
596    )]
597    async fn duplicate(
598        &self,
599        #[auth]
600        auth_: conjure_object::BearerToken,
601        #[path(
602            name = "templateRid",
603            decoder = conjure_http::server::conjure::FromPlainDecoder,
604            log_as = "templateRid",
605            safe
606        )]
607        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
608        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
609        request: super::super::super::objects::scout::template::api::DuplicateTemplateRequest,
610    ) -> Result<
611        super::super::super::objects::scout::template::api::Template,
612        conjure_http::private::Error,
613    >;
614    /// Merges the given branch to the "main" branch.
615    /// Throws if the template or branch doesn't exist.
616    /// Throws if the latest commit doesn't match the provided id.
617    /// Throws if you merge on an archived template.
618    #[endpoint(
619        method = POST,
620        path = "/scout/v1/template/{templateRid}/merge-to-main",
621        name = "mergeToMain",
622        produces = conjure_http::server::StdResponseSerializer
623    )]
624    async fn merge_to_main(
625        &self,
626        #[auth]
627        auth_: conjure_object::BearerToken,
628        #[path(
629            name = "templateRid",
630            decoder = conjure_http::server::conjure::FromPlainDecoder,
631            log_as = "templateRid",
632            safe
633        )]
634        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
635        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
636        request: super::super::super::objects::scout::template::api::MergeToMainRequest,
637    ) -> Result<
638        super::super::super::objects::scout::template::api::Template,
639        conjure_http::private::Error,
640    >;
641}
642/// TemplateService manages templates, which are workbooks that
643/// can be re-used across runs. Templates are versioned.
644#[conjure_http::conjure_endpoints(
645    name = "TemplateService",
646    use_legacy_error_serialization,
647    local
648)]
649pub trait LocalAsyncTemplateService {
650    /// Creates a new template.
651    #[endpoint(
652        method = POST,
653        path = "/scout/v1/template",
654        name = "create",
655        produces = conjure_http::server::StdResponseSerializer
656    )]
657    async fn create(
658        &self,
659        #[auth]
660        auth_: conjure_object::BearerToken,
661        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
662        request: super::super::super::objects::scout::template::api::CreateTemplateRequest,
663    ) -> Result<
664        super::super::super::objects::scout::template::api::Template,
665        conjure_http::private::Error,
666    >;
667    /// Must only pass one of (branch, commit). If neither are passed,
668    /// the latest commit on the "main" branch is returned.
669    /// Throws if the template, branch, or commit doesn't exist.
670    #[endpoint(
671        method = GET,
672        path = "/scout/v1/template/{templateRid}",
673        name = "get",
674        produces = conjure_http::server::StdResponseSerializer
675    )]
676    async fn get(
677        &self,
678        #[auth]
679        auth_: conjure_object::BearerToken,
680        #[path(
681            name = "templateRid",
682            decoder = conjure_http::server::conjure::FromPlainDecoder,
683            log_as = "templateRid",
684            safe
685        )]
686        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
687        #[query(
688            name = "branch",
689            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
690        )]
691        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
692        #[query(
693            name = "commit",
694            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
695            safe
696        )]
697        commit: Option<super::super::super::objects::scout::versioning::api::CommitId>,
698    ) -> Result<
699        super::super::super::objects::scout::template::api::Template,
700        conjure_http::private::Error,
701    >;
702    #[endpoint(
703        method = POST,
704        path = "/scout/v1/template/batch-get-metadata",
705        name = "batchGetMetadata",
706        produces = conjure_http::server::conjure::CollectionResponseSerializer
707    )]
708    async fn batch_get_metadata(
709        &self,
710        #[auth]
711        auth_: conjure_object::BearerToken,
712        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
713        rids: std::collections::BTreeSet<
714            super::super::super::objects::scout::rids::api::TemplateRid,
715        >,
716    ) -> Result<
717        std::collections::BTreeSet<
718            super::super::super::objects::scout::template::api::TemplateSummary,
719        >,
720        conjure_http::private::Error,
721    >;
722    /// Creates a commit that may be compacted, e.g cleaned up and not exist anymore.
723    /// Throws if the template or branch doesn't exist.
724    /// Throws if the latest commit doesn't match the provided id.
725    /// Throws if you save to an archived template.
726    #[endpoint(
727        method = POST,
728        path = "/scout/v1/template/{templateRid}/save-working-state",
729        name = "saveWorkingState",
730        produces = conjure_http::server::StdResponseSerializer
731    )]
732    async fn save_working_state(
733        &self,
734        #[auth]
735        auth_: conjure_object::BearerToken,
736        #[path(
737            name = "templateRid",
738            decoder = conjure_http::server::conjure::FromPlainDecoder,
739            log_as = "templateRid",
740            safe
741        )]
742        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
743        #[query(
744            name = "branch",
745            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
746        )]
747        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
748        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
749        request: super::super::super::objects::scout::template::api::SaveTemplateRequest,
750    ) -> Result<
751        super::super::super::objects::scout::template::api::Template,
752        conjure_http::private::Error,
753    >;
754    /// Returns the set of all ref names used by the template.
755    #[endpoint(
756        method = GET,
757        path = "/scout/v1/template/{templateRid}/ref-names",
758        name = "getUsedRefNames",
759        produces = conjure_http::server::conjure::CollectionResponseSerializer
760    )]
761    async fn get_used_ref_names(
762        &self,
763        #[auth]
764        auth_: conjure_object::BearerToken,
765        #[path(
766            name = "templateRid",
767            decoder = conjure_http::server::conjure::FromPlainDecoder,
768            log_as = "templateRid",
769            safe
770        )]
771        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
772        #[query(
773            name = "branch",
774            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
775        )]
776        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
777        #[query(
778            name = "commit",
779            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
780            safe
781        )]
782        commit: Option<super::super::super::objects::scout::versioning::api::CommitId>,
783    ) -> Result<
784        std::collections::BTreeSet<
785            super::super::super::objects::scout::api::DataSourceRefName,
786        >,
787        conjure_http::private::Error,
788    >;
789    /// Updates the data source ref names for all variables used in the template.
790    #[endpoint(
791        method = POST,
792        path = "/scout/v1/template/{templateRid}/update-ref-names",
793        name = "updateRefNames",
794        produces = conjure_http::server::StdResponseSerializer
795    )]
796    async fn update_ref_names(
797        &self,
798        #[auth]
799        auth_: conjure_object::BearerToken,
800        #[path(
801            name = "templateRid",
802            decoder = conjure_http::server::conjure::FromPlainDecoder,
803            log_as = "templateRid",
804            safe
805        )]
806        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
807        #[query(
808            name = "branch",
809            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
810        )]
811        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
812        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
813        request: super::super::super::objects::scout::template::api::UpdateRefNameRequest,
814    ) -> Result<
815        super::super::super::objects::scout::template::api::Template,
816        conjure_http::private::Error,
817    >;
818    /// Creates a commit with a commit message.
819    /// Throws if the template or branch doesn't exist.
820    /// Throws if the latest commit doesn't match the provided id.
821    /// Throws if you commit to an archived template.
822    #[endpoint(
823        method = POST,
824        path = "/scout/v1/template/{templateRid}/commit",
825        name = "commit",
826        produces = conjure_http::server::StdResponseSerializer
827    )]
828    async fn commit(
829        &self,
830        #[auth]
831        auth_: conjure_object::BearerToken,
832        #[path(
833            name = "templateRid",
834            decoder = conjure_http::server::conjure::FromPlainDecoder,
835            log_as = "templateRid",
836            safe
837        )]
838        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
839        #[query(
840            name = "branch",
841            decoder = conjure_http::server::conjure::FromPlainOptionDecoder
842        )]
843        branch: Option<super::super::super::objects::scout::versioning::api::BranchName>,
844        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
845        request: super::super::super::objects::scout::template::api::CommitTemplateRequest,
846    ) -> Result<
847        super::super::super::objects::scout::template::api::Template,
848        conjure_http::private::Error,
849    >;
850    /// Throws if the template doesn't exist.
851    #[endpoint(
852        method = POST,
853        path = "/scout/v1/template/{templateRid}/metadata",
854        name = "updateMetadata",
855        produces = conjure_http::server::StdResponseSerializer
856    )]
857    async fn update_metadata(
858        &self,
859        #[auth]
860        auth_: conjure_object::BearerToken,
861        #[path(
862            name = "templateRid",
863            decoder = conjure_http::server::conjure::FromPlainDecoder,
864            log_as = "templateRid",
865            safe
866        )]
867        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
868        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
869        request: super::super::super::objects::scout::template::api::UpdateMetadataRequest,
870    ) -> Result<
871        super::super::super::objects::scout::template::api::TemplateMetadata,
872        conjure_http::private::Error,
873    >;
874    #[endpoint(
875        method = POST,
876        path = "/scout/v1/template/search",
877        name = "searchTemplates",
878        produces = conjure_http::server::StdResponseSerializer
879    )]
880    async fn search_templates(
881        &self,
882        #[auth]
883        auth_: conjure_object::BearerToken,
884        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
885        request: super::super::super::objects::scout::template::api::SearchTemplatesRequest,
886    ) -> Result<
887        super::super::super::objects::scout::template::api::SearchTemplatesResponse,
888        conjure_http::private::Error,
889    >;
890    #[endpoint(
891        method = GET,
892        path = "/scout/v1/template/get-all-labels-properties",
893        name = "getAllLabelsAndProperties",
894        produces = conjure_http::server::StdResponseSerializer
895    )]
896    async fn get_all_labels_and_properties(
897        &self,
898        #[auth]
899        auth_: conjure_object::BearerToken,
900        #[query(
901            name = "workspaces",
902            decoder = conjure_http::server::conjure::FromPlainSeqDecoder<_>
903        )]
904        workspaces: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
905    ) -> Result<
906        super::super::super::objects::scout::template::api::GetAllLabelsAndPropertiesResponse,
907        conjure_http::private::Error,
908    >;
909    /// Duplicates an existing template, copying its content (layout, charts, variables)
910    /// and optionally overriding metadata fields such as title, description, labels,
911    /// and properties. Returns the newly created template.
912    #[endpoint(
913        method = POST,
914        path = "/scout/v1/template/{templateRid}/duplicate",
915        name = "duplicate",
916        produces = conjure_http::server::StdResponseSerializer
917    )]
918    async fn duplicate(
919        &self,
920        #[auth]
921        auth_: conjure_object::BearerToken,
922        #[path(
923            name = "templateRid",
924            decoder = conjure_http::server::conjure::FromPlainDecoder,
925            log_as = "templateRid",
926            safe
927        )]
928        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
929        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
930        request: super::super::super::objects::scout::template::api::DuplicateTemplateRequest,
931    ) -> Result<
932        super::super::super::objects::scout::template::api::Template,
933        conjure_http::private::Error,
934    >;
935    /// Merges the given branch to the "main" branch.
936    /// Throws if the template or branch doesn't exist.
937    /// Throws if the latest commit doesn't match the provided id.
938    /// Throws if you merge on an archived template.
939    #[endpoint(
940        method = POST,
941        path = "/scout/v1/template/{templateRid}/merge-to-main",
942        name = "mergeToMain",
943        produces = conjure_http::server::StdResponseSerializer
944    )]
945    async fn merge_to_main(
946        &self,
947        #[auth]
948        auth_: conjure_object::BearerToken,
949        #[path(
950            name = "templateRid",
951            decoder = conjure_http::server::conjure::FromPlainDecoder,
952            log_as = "templateRid",
953            safe
954        )]
955        template_rid: super::super::super::objects::scout::rids::api::TemplateRid,
956        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
957        request: super::super::super::objects::scout::template::api::MergeToMainRequest,
958    ) -> Result<
959        super::super::super::objects::scout::template::api::Template,
960        conjure_http::private::Error,
961    >;
962}