Skip to main content

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