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