Skip to main content

nominal_api/conjure/endpoints/scout/assets/
asset_service.rs

1use conjure_http::endpoint;
2/// An asset is a physical entity within an organization, such as a vehicle or ground station. Assets are comprised
3/// of some metadata about the data, as well as a set of data scopes that define the data belonging to the asset. API
4/// endpoints allow for CRUD operations on asset objects.
5#[conjure_http::conjure_endpoints(name = "AssetService", use_legacy_error_serialization)]
6pub trait AssetService {
7    #[endpoint(
8        method = POST,
9        path = "/scout/v1/asset",
10        name = "createAsset",
11        produces = conjure_http::server::StdResponseSerializer
12    )]
13    fn create_asset(
14        &self,
15        #[auth]
16        auth_: conjure_object::BearerToken,
17        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
18        details: super::super::super::super::objects::scout::asset::api::CreateAssetRequest,
19    ) -> Result<
20        super::super::super::super::objects::scout::asset::api::Asset,
21        conjure_http::private::Error,
22    >;
23    #[endpoint(
24        method = PUT,
25        path = "/scout/v1/asset/{rid}",
26        name = "updateAsset",
27        produces = conjure_http::server::StdResponseSerializer
28    )]
29    fn update_asset(
30        &self,
31        #[auth]
32        auth_: conjure_object::BearerToken,
33        #[path(
34            name = "rid",
35            decoder = conjure_http::server::conjure::FromPlainDecoder,
36            safe
37        )]
38        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
39        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
40        details: super::super::super::super::objects::scout::asset::api::UpdateAssetRequest,
41    ) -> Result<
42        super::super::super::super::objects::scout::asset::api::Asset,
43        conjure_http::private::Error,
44    >;
45    /// Adds data scopes to an asset.
46    ///
47    /// Throws if the asset already has data scopes with data scope names matching those in the request.
48    #[endpoint(
49        method = POST,
50        path = "/scout/v1/asset/{assetRid}/data-sources",
51        name = "addDataScopesToAsset",
52        produces = conjure_http::server::StdResponseSerializer
53    )]
54    fn add_data_scopes_to_asset(
55        &self,
56        #[auth]
57        auth_: conjure_object::BearerToken,
58        #[path(
59            name = "assetRid",
60            decoder = conjure_http::server::conjure::FromPlainDecoder,
61            log_as = "assetRid",
62            safe
63        )]
64        asset_rid: super::super::super::super::objects::scout::rids::api::AssetRid,
65        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
66        request: super::super::super::super::objects::scout::asset::api::AddDataScopesToAssetRequest,
67    ) -> Result<
68        super::super::super::super::objects::scout::asset::api::Asset,
69        conjure_http::private::Error,
70    >;
71    #[endpoint(
72        method = POST,
73        path = "/scout/v1/asset/multiple",
74        name = "getAssets",
75        produces = conjure_http::server::conjure::CollectionResponseSerializer
76    )]
77    fn get_assets(
78        &self,
79        #[auth]
80        auth_: conjure_object::BearerToken,
81        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
82        rids: std::collections::BTreeSet<
83            super::super::super::super::objects::scout::rids::api::AssetRid,
84        >,
85    ) -> Result<
86        std::collections::BTreeMap<
87            super::super::super::super::objects::scout::rids::api::AssetRid,
88            super::super::super::super::objects::scout::asset::api::Asset,
89        >,
90        conjure_http::private::Error,
91    >;
92    /// Returns all assets with given data source as a data scope.
93    #[endpoint(
94        method = POST,
95        path = "/scout/v1/asset/by-data-source/{dataSourceRid}",
96        name = "getAssetsByDataSource",
97        produces = conjure_http::server::conjure::CollectionResponseSerializer
98    )]
99    fn get_assets_by_data_source(
100        &self,
101        #[auth]
102        auth_: conjure_object::BearerToken,
103        #[path(
104            name = "dataSourceRid",
105            decoder = conjure_http::server::conjure::FromPlainDecoder,
106            log_as = "dataSourceRid",
107            safe
108        )]
109        data_source_rid: super::super::super::super::objects::api::rids::DataSourceRid,
110    ) -> Result<
111        std::collections::BTreeSet<
112            super::super::super::super::objects::scout::asset::api::Asset,
113        >,
114        conjure_http::private::Error,
115    >;
116    #[endpoint(method = POST, path = "/scout/v1/archive/{rid}", name = "archive")]
117    fn archive(
118        &self,
119        #[auth]
120        auth_: conjure_object::BearerToken,
121        #[path(
122            name = "rid",
123            decoder = conjure_http::server::conjure::FromPlainDecoder,
124            safe
125        )]
126        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
127        #[query(
128            name = "includeLinkedWorkbooks",
129            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
130            log_as = "includeLinkedWorkbooks"
131        )]
132        include_linked_workbooks: Option<bool>,
133    ) -> Result<(), conjure_http::private::Error>;
134    #[endpoint(method = POST, path = "/scout/v1/unarchive/{rid}", name = "unarchive")]
135    fn unarchive(
136        &self,
137        #[auth]
138        auth_: conjure_object::BearerToken,
139        #[path(
140            name = "rid",
141            decoder = conjure_http::server::conjure::FromPlainDecoder,
142            safe
143        )]
144        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
145        #[query(
146            name = "includeLinkedWorkbooks",
147            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
148            log_as = "includeLinkedWorkbooks"
149        )]
150        include_linked_workbooks: Option<bool>,
151    ) -> Result<(), conjure_http::private::Error>;
152    #[endpoint(
153        method = POST,
154        path = "/scout/v1/search-assets",
155        name = "searchAssets",
156        produces = conjure_http::server::StdResponseSerializer
157    )]
158    fn search_assets(
159        &self,
160        #[auth]
161        auth_: conjure_object::BearerToken,
162        #[body(
163            deserializer = conjure_http::server::StdRequestDeserializer,
164            log_as = "searchAssetsRequest"
165        )]
166        search_assets_request: super::super::super::super::objects::scout::asset::api::SearchAssetsRequest,
167    ) -> Result<
168        super::super::super::super::objects::scout::asset::api::SearchAssetsResponse,
169        conjure_http::private::Error,
170    >;
171    /// Batch edits metadata across multiple assets. Supports rename/merge for labels and properties.
172    /// If more than 1000 assets are targeted, this endpoint will throw a 400.
173    #[endpoint(
174        method = POST,
175        path = "/scout/v1/asset/metadata/batch-edit",
176        name = "batchEditAssetMetadata",
177        produces = conjure_http::server::StdResponseSerializer
178    )]
179    fn batch_edit_asset_metadata(
180        &self,
181        #[auth]
182        auth_: conjure_object::BearerToken,
183        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
184        request: super::super::super::super::objects::scout::asset::api::BatchEditAssetMetadataRequest,
185    ) -> Result<
186        super::super::super::super::objects::scout::asset::api::BatchEditAssetMetadataResponse,
187        conjure_http::private::Error,
188    >;
189    #[endpoint(
190        method = POST,
191        path = "/scout/v1/search-types",
192        name = "searchTypes",
193        produces = conjure_http::server::StdResponseSerializer
194    )]
195    fn search_types(
196        &self,
197        #[auth]
198        auth_: conjure_object::BearerToken,
199        #[body(
200            deserializer = conjure_http::server::StdRequestDeserializer,
201            log_as = "searchTypesRequest"
202        )]
203        search_types_request: super::super::super::super::objects::scout::asset::api::SearchTypesRequest,
204    ) -> Result<
205        super::super::super::super::objects::scout::asset::api::SearchTypesResponse,
206        conjure_http::private::Error,
207    >;
208    /// Update the attachments associated with an asset.
209    #[endpoint(
210        method = POST,
211        path = "/scout/v1/asset/{rid}/attachments",
212        name = "updateAssetAttachments"
213    )]
214    fn update_asset_attachments(
215        &self,
216        #[auth]
217        auth_: conjure_object::BearerToken,
218        #[path(
219            name = "rid",
220            decoder = conjure_http::server::conjure::FromPlainDecoder,
221            safe
222        )]
223        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
224        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
225        request: super::super::super::super::objects::scout::asset::api::UpdateAttachmentsRequest,
226    ) -> Result<(), conjure_http::private::Error>;
227    /// Update the ref names for the data scopes on the asset. This update will also be applied on all associated
228    /// workbooks.
229    #[endpoint(
230        method = POST,
231        path = "/scout/v1/asset/{rid}/ref-names",
232        name = "updateAssetRefNames"
233    )]
234    fn update_asset_ref_names(
235        &self,
236        #[auth]
237        auth_: conjure_object::BearerToken,
238        #[path(
239            name = "rid",
240            decoder = conjure_http::server::conjure::FromPlainDecoder,
241            safe
242        )]
243        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
244        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
245        request: super::super::super::super::objects::scout::asset::api::UpdateAssetRefNamesRequest,
246    ) -> Result<(), conjure_http::private::Error>;
247    /// Creates a new type.
248    #[endpoint(
249        method = POST,
250        path = "/scout/v1/type",
251        name = "createType",
252        produces = conjure_http::server::StdResponseSerializer
253    )]
254    fn create_type(
255        &self,
256        #[auth]
257        auth_: conjure_object::BearerToken,
258        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
259        request: super::super::super::super::objects::scout::asset::api::CreateTypeRequest,
260    ) -> Result<
261        super::super::super::super::objects::scout::asset::api::Type,
262        conjure_http::private::Error,
263    >;
264    /// Updates a type. Will throw unless all assets that reference the type pass the updated type check.
265    #[endpoint(
266        method = PUT,
267        path = "/scout/v1/type/{typeRid}",
268        name = "updateType",
269        produces = conjure_http::server::StdResponseSerializer
270    )]
271    fn update_type(
272        &self,
273        #[auth]
274        auth_: conjure_object::BearerToken,
275        #[path(
276            name = "typeRid",
277            decoder = conjure_http::server::conjure::FromPlainDecoder,
278            log_as = "typeRid",
279            safe
280        )]
281        type_rid: super::super::super::super::objects::scout::rids::api::TypeRid,
282        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
283        request: super::super::super::super::objects::scout::asset::api::UpdateTypeRequest,
284    ) -> Result<
285        super::super::super::super::objects::scout::asset::api::Type,
286        conjure_http::private::Error,
287    >;
288    #[endpoint(
289        method = POST,
290        path = "/scout/v1/type/multiple",
291        name = "getTypes",
292        produces = conjure_http::server::conjure::CollectionResponseSerializer
293    )]
294    fn get_types(
295        &self,
296        #[auth]
297        auth_: conjure_object::BearerToken,
298        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
299        rids: std::collections::BTreeSet<
300            super::super::super::super::objects::scout::rids::api::TypeRid,
301        >,
302    ) -> Result<
303        std::collections::BTreeMap<
304            super::super::super::super::objects::scout::rids::api::TypeRid,
305            super::super::super::super::objects::scout::asset::api::Type,
306        >,
307        conjure_http::private::Error,
308    >;
309    #[endpoint(
310        method = POST,
311        path = "/scout/v1/type/datasource",
312        name = "getTypesForDatasource",
313        produces = conjure_http::server::conjure::CollectionResponseSerializer
314    )]
315    fn get_types_for_datasource(
316        &self,
317        #[auth]
318        auth_: conjure_object::BearerToken,
319        #[body(
320            deserializer = conjure_http::server::StdRequestDeserializer,
321            log_as = "datasourceRid",
322            safe
323        )]
324        datasource_rid: super::super::super::super::objects::api::rids::DataSourceRid,
325    ) -> Result<
326        Vec<super::super::super::super::objects::scout::asset::api::Type>,
327        conjure_http::private::Error,
328    >;
329    /// Deletes a type. The type must not be referenced by any assets.
330    #[endpoint(method = DELETE, path = "/scout/v1/type/{rid}", name = "deleteType")]
331    fn delete_type(
332        &self,
333        #[auth]
334        auth_: conjure_object::BearerToken,
335        #[path(
336            name = "rid",
337            decoder = conjure_http::server::conjure::FromPlainDecoder,
338            safe
339        )]
340        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
341    ) -> Result<(), conjure_http::private::Error>;
342    #[endpoint(
343        method = POST,
344        path = "/scout/v1/type/archive/{rid}",
345        name = "archiveType"
346    )]
347    fn archive_type(
348        &self,
349        #[auth]
350        auth_: conjure_object::BearerToken,
351        #[path(
352            name = "rid",
353            decoder = conjure_http::server::conjure::FromPlainDecoder,
354            safe
355        )]
356        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
357    ) -> Result<(), conjure_http::private::Error>;
358    #[endpoint(
359        method = POST,
360        path = "/scout/v1/type/unarchive/{rid}",
361        name = "unarchiveType"
362    )]
363    fn unarchive_type(
364        &self,
365        #[auth]
366        auth_: conjure_object::BearerToken,
367        #[path(
368            name = "rid",
369            decoder = conjure_http::server::conjure::FromPlainDecoder,
370            safe
371        )]
372        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
373    ) -> Result<(), conjure_http::private::Error>;
374}
375/// An asset is a physical entity within an organization, such as a vehicle or ground station. Assets are comprised
376/// of some metadata about the data, as well as a set of data scopes that define the data belonging to the asset. API
377/// endpoints allow for CRUD operations on asset objects.
378#[conjure_http::conjure_endpoints(name = "AssetService", use_legacy_error_serialization)]
379pub trait AsyncAssetService {
380    #[endpoint(
381        method = POST,
382        path = "/scout/v1/asset",
383        name = "createAsset",
384        produces = conjure_http::server::StdResponseSerializer
385    )]
386    async fn create_asset(
387        &self,
388        #[auth]
389        auth_: conjure_object::BearerToken,
390        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
391        details: super::super::super::super::objects::scout::asset::api::CreateAssetRequest,
392    ) -> Result<
393        super::super::super::super::objects::scout::asset::api::Asset,
394        conjure_http::private::Error,
395    >;
396    #[endpoint(
397        method = PUT,
398        path = "/scout/v1/asset/{rid}",
399        name = "updateAsset",
400        produces = conjure_http::server::StdResponseSerializer
401    )]
402    async fn update_asset(
403        &self,
404        #[auth]
405        auth_: conjure_object::BearerToken,
406        #[path(
407            name = "rid",
408            decoder = conjure_http::server::conjure::FromPlainDecoder,
409            safe
410        )]
411        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
412        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
413        details: super::super::super::super::objects::scout::asset::api::UpdateAssetRequest,
414    ) -> Result<
415        super::super::super::super::objects::scout::asset::api::Asset,
416        conjure_http::private::Error,
417    >;
418    /// Adds data scopes to an asset.
419    ///
420    /// Throws if the asset already has data scopes with data scope names matching those in the request.
421    #[endpoint(
422        method = POST,
423        path = "/scout/v1/asset/{assetRid}/data-sources",
424        name = "addDataScopesToAsset",
425        produces = conjure_http::server::StdResponseSerializer
426    )]
427    async fn add_data_scopes_to_asset(
428        &self,
429        #[auth]
430        auth_: conjure_object::BearerToken,
431        #[path(
432            name = "assetRid",
433            decoder = conjure_http::server::conjure::FromPlainDecoder,
434            log_as = "assetRid",
435            safe
436        )]
437        asset_rid: super::super::super::super::objects::scout::rids::api::AssetRid,
438        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
439        request: super::super::super::super::objects::scout::asset::api::AddDataScopesToAssetRequest,
440    ) -> Result<
441        super::super::super::super::objects::scout::asset::api::Asset,
442        conjure_http::private::Error,
443    >;
444    #[endpoint(
445        method = POST,
446        path = "/scout/v1/asset/multiple",
447        name = "getAssets",
448        produces = conjure_http::server::conjure::CollectionResponseSerializer
449    )]
450    async fn get_assets(
451        &self,
452        #[auth]
453        auth_: conjure_object::BearerToken,
454        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
455        rids: std::collections::BTreeSet<
456            super::super::super::super::objects::scout::rids::api::AssetRid,
457        >,
458    ) -> Result<
459        std::collections::BTreeMap<
460            super::super::super::super::objects::scout::rids::api::AssetRid,
461            super::super::super::super::objects::scout::asset::api::Asset,
462        >,
463        conjure_http::private::Error,
464    >;
465    /// Returns all assets with given data source as a data scope.
466    #[endpoint(
467        method = POST,
468        path = "/scout/v1/asset/by-data-source/{dataSourceRid}",
469        name = "getAssetsByDataSource",
470        produces = conjure_http::server::conjure::CollectionResponseSerializer
471    )]
472    async fn get_assets_by_data_source(
473        &self,
474        #[auth]
475        auth_: conjure_object::BearerToken,
476        #[path(
477            name = "dataSourceRid",
478            decoder = conjure_http::server::conjure::FromPlainDecoder,
479            log_as = "dataSourceRid",
480            safe
481        )]
482        data_source_rid: super::super::super::super::objects::api::rids::DataSourceRid,
483    ) -> Result<
484        std::collections::BTreeSet<
485            super::super::super::super::objects::scout::asset::api::Asset,
486        >,
487        conjure_http::private::Error,
488    >;
489    #[endpoint(method = POST, path = "/scout/v1/archive/{rid}", name = "archive")]
490    async fn archive(
491        &self,
492        #[auth]
493        auth_: conjure_object::BearerToken,
494        #[path(
495            name = "rid",
496            decoder = conjure_http::server::conjure::FromPlainDecoder,
497            safe
498        )]
499        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
500        #[query(
501            name = "includeLinkedWorkbooks",
502            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
503            log_as = "includeLinkedWorkbooks"
504        )]
505        include_linked_workbooks: Option<bool>,
506    ) -> Result<(), conjure_http::private::Error>;
507    #[endpoint(method = POST, path = "/scout/v1/unarchive/{rid}", name = "unarchive")]
508    async fn unarchive(
509        &self,
510        #[auth]
511        auth_: conjure_object::BearerToken,
512        #[path(
513            name = "rid",
514            decoder = conjure_http::server::conjure::FromPlainDecoder,
515            safe
516        )]
517        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
518        #[query(
519            name = "includeLinkedWorkbooks",
520            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
521            log_as = "includeLinkedWorkbooks"
522        )]
523        include_linked_workbooks: Option<bool>,
524    ) -> Result<(), conjure_http::private::Error>;
525    #[endpoint(
526        method = POST,
527        path = "/scout/v1/search-assets",
528        name = "searchAssets",
529        produces = conjure_http::server::StdResponseSerializer
530    )]
531    async fn search_assets(
532        &self,
533        #[auth]
534        auth_: conjure_object::BearerToken,
535        #[body(
536            deserializer = conjure_http::server::StdRequestDeserializer,
537            log_as = "searchAssetsRequest"
538        )]
539        search_assets_request: super::super::super::super::objects::scout::asset::api::SearchAssetsRequest,
540    ) -> Result<
541        super::super::super::super::objects::scout::asset::api::SearchAssetsResponse,
542        conjure_http::private::Error,
543    >;
544    /// Batch edits metadata across multiple assets. Supports rename/merge for labels and properties.
545    /// If more than 1000 assets are targeted, this endpoint will throw a 400.
546    #[endpoint(
547        method = POST,
548        path = "/scout/v1/asset/metadata/batch-edit",
549        name = "batchEditAssetMetadata",
550        produces = conjure_http::server::StdResponseSerializer
551    )]
552    async fn batch_edit_asset_metadata(
553        &self,
554        #[auth]
555        auth_: conjure_object::BearerToken,
556        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
557        request: super::super::super::super::objects::scout::asset::api::BatchEditAssetMetadataRequest,
558    ) -> Result<
559        super::super::super::super::objects::scout::asset::api::BatchEditAssetMetadataResponse,
560        conjure_http::private::Error,
561    >;
562    #[endpoint(
563        method = POST,
564        path = "/scout/v1/search-types",
565        name = "searchTypes",
566        produces = conjure_http::server::StdResponseSerializer
567    )]
568    async fn search_types(
569        &self,
570        #[auth]
571        auth_: conjure_object::BearerToken,
572        #[body(
573            deserializer = conjure_http::server::StdRequestDeserializer,
574            log_as = "searchTypesRequest"
575        )]
576        search_types_request: super::super::super::super::objects::scout::asset::api::SearchTypesRequest,
577    ) -> Result<
578        super::super::super::super::objects::scout::asset::api::SearchTypesResponse,
579        conjure_http::private::Error,
580    >;
581    /// Update the attachments associated with an asset.
582    #[endpoint(
583        method = POST,
584        path = "/scout/v1/asset/{rid}/attachments",
585        name = "updateAssetAttachments"
586    )]
587    async fn update_asset_attachments(
588        &self,
589        #[auth]
590        auth_: conjure_object::BearerToken,
591        #[path(
592            name = "rid",
593            decoder = conjure_http::server::conjure::FromPlainDecoder,
594            safe
595        )]
596        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
597        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
598        request: super::super::super::super::objects::scout::asset::api::UpdateAttachmentsRequest,
599    ) -> Result<(), conjure_http::private::Error>;
600    /// Update the ref names for the data scopes on the asset. This update will also be applied on all associated
601    /// workbooks.
602    #[endpoint(
603        method = POST,
604        path = "/scout/v1/asset/{rid}/ref-names",
605        name = "updateAssetRefNames"
606    )]
607    async fn update_asset_ref_names(
608        &self,
609        #[auth]
610        auth_: conjure_object::BearerToken,
611        #[path(
612            name = "rid",
613            decoder = conjure_http::server::conjure::FromPlainDecoder,
614            safe
615        )]
616        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
617        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
618        request: super::super::super::super::objects::scout::asset::api::UpdateAssetRefNamesRequest,
619    ) -> Result<(), conjure_http::private::Error>;
620    /// Creates a new type.
621    #[endpoint(
622        method = POST,
623        path = "/scout/v1/type",
624        name = "createType",
625        produces = conjure_http::server::StdResponseSerializer
626    )]
627    async fn create_type(
628        &self,
629        #[auth]
630        auth_: conjure_object::BearerToken,
631        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
632        request: super::super::super::super::objects::scout::asset::api::CreateTypeRequest,
633    ) -> Result<
634        super::super::super::super::objects::scout::asset::api::Type,
635        conjure_http::private::Error,
636    >;
637    /// Updates a type. Will throw unless all assets that reference the type pass the updated type check.
638    #[endpoint(
639        method = PUT,
640        path = "/scout/v1/type/{typeRid}",
641        name = "updateType",
642        produces = conjure_http::server::StdResponseSerializer
643    )]
644    async fn update_type(
645        &self,
646        #[auth]
647        auth_: conjure_object::BearerToken,
648        #[path(
649            name = "typeRid",
650            decoder = conjure_http::server::conjure::FromPlainDecoder,
651            log_as = "typeRid",
652            safe
653        )]
654        type_rid: super::super::super::super::objects::scout::rids::api::TypeRid,
655        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
656        request: super::super::super::super::objects::scout::asset::api::UpdateTypeRequest,
657    ) -> Result<
658        super::super::super::super::objects::scout::asset::api::Type,
659        conjure_http::private::Error,
660    >;
661    #[endpoint(
662        method = POST,
663        path = "/scout/v1/type/multiple",
664        name = "getTypes",
665        produces = conjure_http::server::conjure::CollectionResponseSerializer
666    )]
667    async fn get_types(
668        &self,
669        #[auth]
670        auth_: conjure_object::BearerToken,
671        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
672        rids: std::collections::BTreeSet<
673            super::super::super::super::objects::scout::rids::api::TypeRid,
674        >,
675    ) -> Result<
676        std::collections::BTreeMap<
677            super::super::super::super::objects::scout::rids::api::TypeRid,
678            super::super::super::super::objects::scout::asset::api::Type,
679        >,
680        conjure_http::private::Error,
681    >;
682    #[endpoint(
683        method = POST,
684        path = "/scout/v1/type/datasource",
685        name = "getTypesForDatasource",
686        produces = conjure_http::server::conjure::CollectionResponseSerializer
687    )]
688    async fn get_types_for_datasource(
689        &self,
690        #[auth]
691        auth_: conjure_object::BearerToken,
692        #[body(
693            deserializer = conjure_http::server::StdRequestDeserializer,
694            log_as = "datasourceRid",
695            safe
696        )]
697        datasource_rid: super::super::super::super::objects::api::rids::DataSourceRid,
698    ) -> Result<
699        Vec<super::super::super::super::objects::scout::asset::api::Type>,
700        conjure_http::private::Error,
701    >;
702    /// Deletes a type. The type must not be referenced by any assets.
703    #[endpoint(method = DELETE, path = "/scout/v1/type/{rid}", name = "deleteType")]
704    async fn delete_type(
705        &self,
706        #[auth]
707        auth_: conjure_object::BearerToken,
708        #[path(
709            name = "rid",
710            decoder = conjure_http::server::conjure::FromPlainDecoder,
711            safe
712        )]
713        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
714    ) -> Result<(), conjure_http::private::Error>;
715    #[endpoint(
716        method = POST,
717        path = "/scout/v1/type/archive/{rid}",
718        name = "archiveType"
719    )]
720    async fn archive_type(
721        &self,
722        #[auth]
723        auth_: conjure_object::BearerToken,
724        #[path(
725            name = "rid",
726            decoder = conjure_http::server::conjure::FromPlainDecoder,
727            safe
728        )]
729        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
730    ) -> Result<(), conjure_http::private::Error>;
731    #[endpoint(
732        method = POST,
733        path = "/scout/v1/type/unarchive/{rid}",
734        name = "unarchiveType"
735    )]
736    async fn unarchive_type(
737        &self,
738        #[auth]
739        auth_: conjure_object::BearerToken,
740        #[path(
741            name = "rid",
742            decoder = conjure_http::server::conjure::FromPlainDecoder,
743            safe
744        )]
745        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
746    ) -> Result<(), conjure_http::private::Error>;
747}
748/// An asset is a physical entity within an organization, such as a vehicle or ground station. Assets are comprised
749/// of some metadata about the data, as well as a set of data scopes that define the data belonging to the asset. API
750/// endpoints allow for CRUD operations on asset objects.
751#[conjure_http::conjure_endpoints(
752    name = "AssetService",
753    use_legacy_error_serialization,
754    local
755)]
756pub trait LocalAsyncAssetService {
757    #[endpoint(
758        method = POST,
759        path = "/scout/v1/asset",
760        name = "createAsset",
761        produces = conjure_http::server::StdResponseSerializer
762    )]
763    async fn create_asset(
764        &self,
765        #[auth]
766        auth_: conjure_object::BearerToken,
767        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
768        details: super::super::super::super::objects::scout::asset::api::CreateAssetRequest,
769    ) -> Result<
770        super::super::super::super::objects::scout::asset::api::Asset,
771        conjure_http::private::Error,
772    >;
773    #[endpoint(
774        method = PUT,
775        path = "/scout/v1/asset/{rid}",
776        name = "updateAsset",
777        produces = conjure_http::server::StdResponseSerializer
778    )]
779    async fn update_asset(
780        &self,
781        #[auth]
782        auth_: conjure_object::BearerToken,
783        #[path(
784            name = "rid",
785            decoder = conjure_http::server::conjure::FromPlainDecoder,
786            safe
787        )]
788        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
789        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
790        details: super::super::super::super::objects::scout::asset::api::UpdateAssetRequest,
791    ) -> Result<
792        super::super::super::super::objects::scout::asset::api::Asset,
793        conjure_http::private::Error,
794    >;
795    /// Adds data scopes to an asset.
796    ///
797    /// Throws if the asset already has data scopes with data scope names matching those in the request.
798    #[endpoint(
799        method = POST,
800        path = "/scout/v1/asset/{assetRid}/data-sources",
801        name = "addDataScopesToAsset",
802        produces = conjure_http::server::StdResponseSerializer
803    )]
804    async fn add_data_scopes_to_asset(
805        &self,
806        #[auth]
807        auth_: conjure_object::BearerToken,
808        #[path(
809            name = "assetRid",
810            decoder = conjure_http::server::conjure::FromPlainDecoder,
811            log_as = "assetRid",
812            safe
813        )]
814        asset_rid: super::super::super::super::objects::scout::rids::api::AssetRid,
815        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
816        request: super::super::super::super::objects::scout::asset::api::AddDataScopesToAssetRequest,
817    ) -> Result<
818        super::super::super::super::objects::scout::asset::api::Asset,
819        conjure_http::private::Error,
820    >;
821    #[endpoint(
822        method = POST,
823        path = "/scout/v1/asset/multiple",
824        name = "getAssets",
825        produces = conjure_http::server::conjure::CollectionResponseSerializer
826    )]
827    async fn get_assets(
828        &self,
829        #[auth]
830        auth_: conjure_object::BearerToken,
831        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
832        rids: std::collections::BTreeSet<
833            super::super::super::super::objects::scout::rids::api::AssetRid,
834        >,
835    ) -> Result<
836        std::collections::BTreeMap<
837            super::super::super::super::objects::scout::rids::api::AssetRid,
838            super::super::super::super::objects::scout::asset::api::Asset,
839        >,
840        conjure_http::private::Error,
841    >;
842    /// Returns all assets with given data source as a data scope.
843    #[endpoint(
844        method = POST,
845        path = "/scout/v1/asset/by-data-source/{dataSourceRid}",
846        name = "getAssetsByDataSource",
847        produces = conjure_http::server::conjure::CollectionResponseSerializer
848    )]
849    async fn get_assets_by_data_source(
850        &self,
851        #[auth]
852        auth_: conjure_object::BearerToken,
853        #[path(
854            name = "dataSourceRid",
855            decoder = conjure_http::server::conjure::FromPlainDecoder,
856            log_as = "dataSourceRid",
857            safe
858        )]
859        data_source_rid: super::super::super::super::objects::api::rids::DataSourceRid,
860    ) -> Result<
861        std::collections::BTreeSet<
862            super::super::super::super::objects::scout::asset::api::Asset,
863        >,
864        conjure_http::private::Error,
865    >;
866    #[endpoint(method = POST, path = "/scout/v1/archive/{rid}", name = "archive")]
867    async fn archive(
868        &self,
869        #[auth]
870        auth_: conjure_object::BearerToken,
871        #[path(
872            name = "rid",
873            decoder = conjure_http::server::conjure::FromPlainDecoder,
874            safe
875        )]
876        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
877        #[query(
878            name = "includeLinkedWorkbooks",
879            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
880            log_as = "includeLinkedWorkbooks"
881        )]
882        include_linked_workbooks: Option<bool>,
883    ) -> Result<(), conjure_http::private::Error>;
884    #[endpoint(method = POST, path = "/scout/v1/unarchive/{rid}", name = "unarchive")]
885    async fn unarchive(
886        &self,
887        #[auth]
888        auth_: conjure_object::BearerToken,
889        #[path(
890            name = "rid",
891            decoder = conjure_http::server::conjure::FromPlainDecoder,
892            safe
893        )]
894        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
895        #[query(
896            name = "includeLinkedWorkbooks",
897            decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
898            log_as = "includeLinkedWorkbooks"
899        )]
900        include_linked_workbooks: Option<bool>,
901    ) -> Result<(), conjure_http::private::Error>;
902    #[endpoint(
903        method = POST,
904        path = "/scout/v1/search-assets",
905        name = "searchAssets",
906        produces = conjure_http::server::StdResponseSerializer
907    )]
908    async fn search_assets(
909        &self,
910        #[auth]
911        auth_: conjure_object::BearerToken,
912        #[body(
913            deserializer = conjure_http::server::StdRequestDeserializer,
914            log_as = "searchAssetsRequest"
915        )]
916        search_assets_request: super::super::super::super::objects::scout::asset::api::SearchAssetsRequest,
917    ) -> Result<
918        super::super::super::super::objects::scout::asset::api::SearchAssetsResponse,
919        conjure_http::private::Error,
920    >;
921    /// Batch edits metadata across multiple assets. Supports rename/merge for labels and properties.
922    /// If more than 1000 assets are targeted, this endpoint will throw a 400.
923    #[endpoint(
924        method = POST,
925        path = "/scout/v1/asset/metadata/batch-edit",
926        name = "batchEditAssetMetadata",
927        produces = conjure_http::server::StdResponseSerializer
928    )]
929    async fn batch_edit_asset_metadata(
930        &self,
931        #[auth]
932        auth_: conjure_object::BearerToken,
933        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
934        request: super::super::super::super::objects::scout::asset::api::BatchEditAssetMetadataRequest,
935    ) -> Result<
936        super::super::super::super::objects::scout::asset::api::BatchEditAssetMetadataResponse,
937        conjure_http::private::Error,
938    >;
939    #[endpoint(
940        method = POST,
941        path = "/scout/v1/search-types",
942        name = "searchTypes",
943        produces = conjure_http::server::StdResponseSerializer
944    )]
945    async fn search_types(
946        &self,
947        #[auth]
948        auth_: conjure_object::BearerToken,
949        #[body(
950            deserializer = conjure_http::server::StdRequestDeserializer,
951            log_as = "searchTypesRequest"
952        )]
953        search_types_request: super::super::super::super::objects::scout::asset::api::SearchTypesRequest,
954    ) -> Result<
955        super::super::super::super::objects::scout::asset::api::SearchTypesResponse,
956        conjure_http::private::Error,
957    >;
958    /// Update the attachments associated with an asset.
959    #[endpoint(
960        method = POST,
961        path = "/scout/v1/asset/{rid}/attachments",
962        name = "updateAssetAttachments"
963    )]
964    async fn update_asset_attachments(
965        &self,
966        #[auth]
967        auth_: conjure_object::BearerToken,
968        #[path(
969            name = "rid",
970            decoder = conjure_http::server::conjure::FromPlainDecoder,
971            safe
972        )]
973        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
974        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
975        request: super::super::super::super::objects::scout::asset::api::UpdateAttachmentsRequest,
976    ) -> Result<(), conjure_http::private::Error>;
977    /// Update the ref names for the data scopes on the asset. This update will also be applied on all associated
978    /// workbooks.
979    #[endpoint(
980        method = POST,
981        path = "/scout/v1/asset/{rid}/ref-names",
982        name = "updateAssetRefNames"
983    )]
984    async fn update_asset_ref_names(
985        &self,
986        #[auth]
987        auth_: conjure_object::BearerToken,
988        #[path(
989            name = "rid",
990            decoder = conjure_http::server::conjure::FromPlainDecoder,
991            safe
992        )]
993        rid: super::super::super::super::objects::scout::rids::api::AssetRid,
994        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
995        request: super::super::super::super::objects::scout::asset::api::UpdateAssetRefNamesRequest,
996    ) -> Result<(), conjure_http::private::Error>;
997    /// Creates a new type.
998    #[endpoint(
999        method = POST,
1000        path = "/scout/v1/type",
1001        name = "createType",
1002        produces = conjure_http::server::StdResponseSerializer
1003    )]
1004    async fn create_type(
1005        &self,
1006        #[auth]
1007        auth_: conjure_object::BearerToken,
1008        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1009        request: super::super::super::super::objects::scout::asset::api::CreateTypeRequest,
1010    ) -> Result<
1011        super::super::super::super::objects::scout::asset::api::Type,
1012        conjure_http::private::Error,
1013    >;
1014    /// Updates a type. Will throw unless all assets that reference the type pass the updated type check.
1015    #[endpoint(
1016        method = PUT,
1017        path = "/scout/v1/type/{typeRid}",
1018        name = "updateType",
1019        produces = conjure_http::server::StdResponseSerializer
1020    )]
1021    async fn update_type(
1022        &self,
1023        #[auth]
1024        auth_: conjure_object::BearerToken,
1025        #[path(
1026            name = "typeRid",
1027            decoder = conjure_http::server::conjure::FromPlainDecoder,
1028            log_as = "typeRid",
1029            safe
1030        )]
1031        type_rid: super::super::super::super::objects::scout::rids::api::TypeRid,
1032        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1033        request: super::super::super::super::objects::scout::asset::api::UpdateTypeRequest,
1034    ) -> Result<
1035        super::super::super::super::objects::scout::asset::api::Type,
1036        conjure_http::private::Error,
1037    >;
1038    #[endpoint(
1039        method = POST,
1040        path = "/scout/v1/type/multiple",
1041        name = "getTypes",
1042        produces = conjure_http::server::conjure::CollectionResponseSerializer
1043    )]
1044    async fn get_types(
1045        &self,
1046        #[auth]
1047        auth_: conjure_object::BearerToken,
1048        #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1049        rids: std::collections::BTreeSet<
1050            super::super::super::super::objects::scout::rids::api::TypeRid,
1051        >,
1052    ) -> Result<
1053        std::collections::BTreeMap<
1054            super::super::super::super::objects::scout::rids::api::TypeRid,
1055            super::super::super::super::objects::scout::asset::api::Type,
1056        >,
1057        conjure_http::private::Error,
1058    >;
1059    #[endpoint(
1060        method = POST,
1061        path = "/scout/v1/type/datasource",
1062        name = "getTypesForDatasource",
1063        produces = conjure_http::server::conjure::CollectionResponseSerializer
1064    )]
1065    async fn get_types_for_datasource(
1066        &self,
1067        #[auth]
1068        auth_: conjure_object::BearerToken,
1069        #[body(
1070            deserializer = conjure_http::server::StdRequestDeserializer,
1071            log_as = "datasourceRid",
1072            safe
1073        )]
1074        datasource_rid: super::super::super::super::objects::api::rids::DataSourceRid,
1075    ) -> Result<
1076        Vec<super::super::super::super::objects::scout::asset::api::Type>,
1077        conjure_http::private::Error,
1078    >;
1079    /// Deletes a type. The type must not be referenced by any assets.
1080    #[endpoint(method = DELETE, path = "/scout/v1/type/{rid}", name = "deleteType")]
1081    async fn delete_type(
1082        &self,
1083        #[auth]
1084        auth_: conjure_object::BearerToken,
1085        #[path(
1086            name = "rid",
1087            decoder = conjure_http::server::conjure::FromPlainDecoder,
1088            safe
1089        )]
1090        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
1091    ) -> Result<(), conjure_http::private::Error>;
1092    #[endpoint(
1093        method = POST,
1094        path = "/scout/v1/type/archive/{rid}",
1095        name = "archiveType"
1096    )]
1097    async fn archive_type(
1098        &self,
1099        #[auth]
1100        auth_: conjure_object::BearerToken,
1101        #[path(
1102            name = "rid",
1103            decoder = conjure_http::server::conjure::FromPlainDecoder,
1104            safe
1105        )]
1106        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
1107    ) -> Result<(), conjure_http::private::Error>;
1108    #[endpoint(
1109        method = POST,
1110        path = "/scout/v1/type/unarchive/{rid}",
1111        name = "unarchiveType"
1112    )]
1113    async fn unarchive_type(
1114        &self,
1115        #[auth]
1116        auth_: conjure_object::BearerToken,
1117        #[path(
1118            name = "rid",
1119            decoder = conjure_http::server::conjure::FromPlainDecoder,
1120            safe
1121        )]
1122        rid: super::super::super::super::objects::scout::rids::api::TypeRid,
1123    ) -> Result<(), conjure_http::private::Error>;
1124}