Skip to main content

nominal_api_proto/proto/
nominal.asset.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct AddDataScopesToAssetRequest {
4    #[prost(message, repeated, tag = "1")]
5    pub data_scopes: ::prost::alloc::vec::Vec<CreateAssetDataScope>,
6}
7#[derive(Clone, PartialEq, ::prost::Message)]
8pub struct Asset {
9    #[prost(string, tag = "1")]
10    pub rid: ::prost::alloc::string::String,
11    #[prost(string, tag = "2")]
12    pub title: ::prost::alloc::string::String,
13    #[prost(string, optional, tag = "3")]
14    pub description: ::core::option::Option<::prost::alloc::string::String>,
15    #[prost(map = "string, string", tag = "4")]
16    pub properties: ::std::collections::HashMap<
17        ::prost::alloc::string::String,
18        ::prost::alloc::string::String,
19    >,
20    #[prost(string, repeated, tag = "5")]
21    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
22    #[prost(message, repeated, tag = "6")]
23    pub links: ::prost::alloc::vec::Vec<Link>,
24    #[prost(message, repeated, tag = "7")]
25    pub data_scopes: ::prost::alloc::vec::Vec<DataScope>,
26    #[prost(string, optional, tag = "8")]
27    pub created_by: ::core::option::Option<::prost::alloc::string::String>,
28    #[prost(message, optional, tag = "9")]
29    pub created_at: ::core::option::Option<
30        super::super::super::google::protobuf::Timestamp,
31    >,
32    #[prost(message, optional, tag = "10")]
33    pub updated_at: ::core::option::Option<
34        super::super::super::google::protobuf::Timestamp,
35    >,
36    #[prost(string, repeated, tag = "11")]
37    pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
38    #[prost(string, optional, tag = "12")]
39    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
40    #[prost(bool, tag = "13")]
41    pub is_staged: bool,
42    #[prost(bool, tag = "14")]
43    pub is_archived: bool,
44}
45#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct AssetSortOptions {
47    #[prost(bool, tag = "1")]
48    pub is_descending: bool,
49    #[prost(enumeration = "AssetSortField", optional, tag = "2")]
50    pub field: ::core::option::Option<i32>,
51    #[prost(message, optional, tag = "3")]
52    pub sort_key: ::core::option::Option<SortKey>,
53}
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct AssetTypeDataScopeConfig {
56    #[prost(string, optional, tag = "1")]
57    pub suggested_ref_name: ::core::option::Option<::prost::alloc::string::String>,
58    #[prost(message, optional, tag = "2")]
59    pub tags: ::core::option::Option<TagConfig>,
60}
61#[derive(Clone, PartialEq, ::prost::Message)]
62pub struct AssetTypesFilter {
63    #[prost(string, repeated, tag = "1")]
64    pub asset_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
65}
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct BatchEditAssetMetadataRequest {
68    #[prost(message, optional, tag = "1")]
69    pub asset_search_query: ::core::option::Option<SearchAssetsQuery>,
70    #[prost(message, optional, tag = "2")]
71    pub operation: ::core::option::Option<MetadataChange>,
72}
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct BatchEditAssetMetadataResponse {
75    #[prost(string, repeated, tag = "1")]
76    pub modified_asset_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
77    #[prost(string, repeated, tag = "2")]
78    pub conflicting_asset_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
79}
80#[derive(Clone, PartialEq, ::prost::Message)]
81pub struct ChannelMetadata {
82    #[prost(string, tag = "1")]
83    pub name: ::prost::alloc::string::String,
84    #[prost(message, optional, tag = "2")]
85    pub data_source: ::core::option::Option<DataSource>,
86    #[prost(message, optional, tag = "3")]
87    pub unit: ::core::option::Option<super::super::run::v1::Unit>,
88    #[prost(string, optional, tag = "4")]
89    pub description: ::core::option::Option<::prost::alloc::string::String>,
90    #[prost(
91        enumeration = "super::super::types::series::SeriesDataType",
92        optional,
93        tag = "5"
94    )]
95    pub data_type: ::core::option::Option<i32>,
96}
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct CreateAssetDataScope {
99    #[prost(string, tag = "1")]
100    pub data_scope_name: ::prost::alloc::string::String,
101    #[prost(message, optional, tag = "2")]
102    pub data_source: ::core::option::Option<DataSource>,
103    #[prost(message, optional, tag = "3")]
104    pub offset: ::core::option::Option<Duration>,
105    #[prost(map = "string, string", tag = "4")]
106    pub series_tags: ::std::collections::HashMap<
107        ::prost::alloc::string::String,
108        ::prost::alloc::string::String,
109    >,
110}
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct CreateAssetRequest {
113    #[prost(string, tag = "1")]
114    pub title: ::prost::alloc::string::String,
115    #[prost(string, optional, tag = "2")]
116    pub description: ::core::option::Option<::prost::alloc::string::String>,
117    #[prost(map = "string, string", tag = "3")]
118    pub properties: ::std::collections::HashMap<
119        ::prost::alloc::string::String,
120        ::prost::alloc::string::String,
121    >,
122    #[prost(string, repeated, tag = "4")]
123    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
124    #[prost(message, repeated, tag = "5")]
125    pub links: ::prost::alloc::vec::Vec<Link>,
126    #[prost(message, repeated, tag = "6")]
127    pub data_scopes: ::prost::alloc::vec::Vec<CreateAssetDataScope>,
128    #[prost(string, repeated, tag = "7")]
129    pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
130    #[prost(string, optional, tag = "8")]
131    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
132    #[prost(string, optional, tag = "9")]
133    pub workspace: ::core::option::Option<::prost::alloc::string::String>,
134}
135#[derive(Clone, PartialEq, ::prost::Message)]
136pub struct CreateTypeRequest {
137    #[prost(string, tag = "1")]
138    pub name: ::prost::alloc::string::String,
139    #[prost(map = "string, message", tag = "2")]
140    pub property_configs: ::std::collections::HashMap<
141        ::prost::alloc::string::String,
142        PropertyConfig,
143    >,
144    #[prost(string, optional, tag = "3")]
145    pub description: ::core::option::Option<::prost::alloc::string::String>,
146    #[prost(string, optional, tag = "4")]
147    pub icon_name: ::core::option::Option<::prost::alloc::string::String>,
148    #[prost(string, optional, tag = "5")]
149    pub workspace: ::core::option::Option<::prost::alloc::string::String>,
150    #[prost(message, optional, tag = "6")]
151    pub datasource_configs: ::core::option::Option<AssetTypeDataScopeConfigMapWrapper>,
152}
153#[derive(Clone, PartialEq, ::prost::Message)]
154pub struct DataScope {
155    #[prost(string, tag = "1")]
156    pub data_scope_name: ::prost::alloc::string::String,
157    #[prost(message, optional, tag = "2")]
158    pub data_source: ::core::option::Option<DataSource>,
159    #[prost(message, optional, tag = "3")]
160    pub offset: ::core::option::Option<Duration>,
161    #[prost(enumeration = "super::super::run::v1::WeakTimestampType", tag = "4")]
162    pub timestamp_type: i32,
163    #[prost(map = "string, string", tag = "5")]
164    pub series_tags: ::std::collections::HashMap<
165        ::prost::alloc::string::String,
166        ::prost::alloc::string::String,
167    >,
168}
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct DataSource {
171    #[prost(oneof = "data_source::DataSource", tags = "1, 2, 3, 4, 5")]
172    pub data_source: ::core::option::Option<data_source::DataSource>,
173}
174/// Nested message and enum types in `DataSource`.
175pub mod data_source {
176    #[derive(Clone, PartialEq, ::prost::Oneof)]
177    pub enum DataSource {
178        #[prost(string, tag = "1")]
179        Dataset(::prost::alloc::string::String),
180        #[prost(string, tag = "2")]
181        Connection(::prost::alloc::string::String),
182        #[prost(string, tag = "3")]
183        LogSet(::prost::alloc::string::String),
184        #[prost(string, tag = "4")]
185        Video(::prost::alloc::string::String),
186        #[prost(string, tag = "5")]
187        Spatial(::prost::alloc::string::String),
188    }
189}
190#[derive(Clone, Copy, PartialEq, ::prost::Message)]
191pub struct Duration {
192    #[prost(int64, tag = "1")]
193    pub seconds: i64,
194    #[prost(int64, tag = "2")]
195    pub nanos: i64,
196}
197#[derive(Clone, PartialEq, ::prost::Message)]
198pub struct Link {
199    #[prost(string, optional, tag = "1")]
200    pub title: ::core::option::Option<::prost::alloc::string::String>,
201    #[prost(string, tag = "2")]
202    pub url: ::prost::alloc::string::String,
203}
204#[derive(Clone, PartialEq, ::prost::Message)]
205pub struct PropertiesFilter {
206    #[prost(string, tag = "1")]
207    pub name: ::prost::alloc::string::String,
208    #[prost(string, repeated, tag = "2")]
209    pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
210}
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct LabelsFilter {
213    #[prost(enumeration = "SetOperator", tag = "1")]
214    pub operator: i32,
215    #[prost(string, repeated, tag = "2")]
216    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
217}
218#[derive(Clone, PartialEq, ::prost::Message)]
219pub struct MetadataChange {
220    #[prost(oneof = "metadata_change::MetadataChange", tags = "1, 2, 3")]
221    pub metadata_change: ::core::option::Option<metadata_change::MetadataChange>,
222}
223/// Nested message and enum types in `MetadataChange`.
224pub mod metadata_change {
225    #[derive(Clone, PartialEq, ::prost::Oneof)]
226    pub enum MetadataChange {
227        #[prost(message, tag = "1")]
228        RenameLabel(super::RenameLabel),
229        #[prost(message, tag = "2")]
230        RenamePropertyKey(super::RenamePropertyKey),
231        #[prost(message, tag = "3")]
232        MergePropertyValuesForKey(super::MergePropertyValuesForKey),
233    }
234}
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct RenameLabel {
237    #[prost(string, repeated, tag = "1")]
238    pub source: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
239    #[prost(string, tag = "2")]
240    pub target: ::prost::alloc::string::String,
241}
242#[derive(Clone, PartialEq, ::prost::Message)]
243pub struct RenamePropertyKey {
244    #[prost(string, repeated, tag = "1")]
245    pub source: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
246    #[prost(string, tag = "2")]
247    pub target: ::prost::alloc::string::String,
248    #[prost(message, optional, tag = "3")]
249    pub on_conflict: ::core::option::Option<ConflictBehavior>,
250}
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct MergePropertyValuesForKey {
253    #[prost(string, tag = "1")]
254    pub key: ::prost::alloc::string::String,
255    #[prost(string, repeated, tag = "2")]
256    pub source: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
257    #[prost(string, tag = "3")]
258    pub target: ::prost::alloc::string::String,
259}
260#[derive(Clone, PartialEq, ::prost::Message)]
261pub struct ConflictBehavior {
262    #[prost(oneof = "conflict_behavior::ConflictBehavior", tags = "1, 2")]
263    pub conflict_behavior: ::core::option::Option<conflict_behavior::ConflictBehavior>,
264}
265/// Nested message and enum types in `ConflictBehavior`.
266pub mod conflict_behavior {
267    #[derive(Clone, PartialEq, ::prost::Oneof)]
268    pub enum ConflictBehavior {
269        #[prost(message, tag = "1")]
270        Skip(super::SkipOnConflict),
271        #[prost(message, tag = "2")]
272        Overwrite(super::OverwriteOnConflict),
273    }
274}
275#[derive(Clone, Copy, PartialEq, ::prost::Message)]
276pub struct SkipOnConflict {}
277#[derive(Clone, PartialEq, ::prost::Message)]
278pub struct OverwriteOnConflict {
279    #[prost(string, repeated, tag = "1")]
280    pub priority: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
281}
282#[derive(Clone, PartialEq, ::prost::Message)]
283pub struct PropertyConfig {
284    #[prost(bool, tag = "1")]
285    pub is_required: bool,
286    #[prost(string, optional, tag = "2")]
287    pub description: ::core::option::Option<::prost::alloc::string::String>,
288}
289#[derive(Clone, Copy, PartialEq, ::prost::Message)]
290pub struct RemoveType {}
291#[derive(Clone, PartialEq, ::prost::Message)]
292pub struct SearchAssetChannelsRequest {
293    #[prost(string, tag = "1")]
294    pub search_text: ::prost::alloc::string::String,
295    #[prost(string, repeated, tag = "2")]
296    pub data_scope_name_filter: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
297    #[prost(string, optional, tag = "3")]
298    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
299    #[prost(int32, optional, tag = "4")]
300    pub page_size: ::core::option::Option<i32>,
301}
302#[derive(Clone, PartialEq, ::prost::Message)]
303pub struct SearchAssetChannelsResponse {
304    #[prost(message, repeated, tag = "1")]
305    pub results: ::prost::alloc::vec::Vec<ChannelMetadata>,
306    #[prost(string, optional, tag = "2")]
307    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
308}
309#[derive(Clone, PartialEq, ::prost::Message)]
310pub struct SearchAssetsQuery {
311    #[prost(string, optional, tag = "1")]
312    pub search_text: ::core::option::Option<::prost::alloc::string::String>,
313    #[prost(string, optional, tag = "2")]
314    pub exact_substring: ::core::option::Option<::prost::alloc::string::String>,
315    #[prost(string, optional, tag = "3")]
316    pub label: ::core::option::Option<::prost::alloc::string::String>,
317    #[prost(message, optional, tag = "4")]
318    pub labels: ::core::option::Option<LabelsFilter>,
319    #[prost(message, optional, tag = "5")]
320    pub property: ::core::option::Option<super::super::types::Property>,
321    #[prost(string, optional, tag = "6")]
322    pub property_key: ::core::option::Option<::prost::alloc::string::String>,
323    #[prost(message, optional, tag = "7")]
324    pub properties: ::core::option::Option<PropertiesFilter>,
325    #[prost(string, optional, tag = "8")]
326    pub type_rid: ::core::option::Option<::prost::alloc::string::String>,
327    #[prost(message, optional, tag = "9")]
328    pub asset_types: ::core::option::Option<AssetTypesFilter>,
329    #[prost(bool, optional, tag = "10")]
330    pub is_staged: ::core::option::Option<bool>,
331    #[prost(bool, optional, tag = "11")]
332    pub archived: ::core::option::Option<bool>,
333    #[prost(message, optional, tag = "12")]
334    pub and: ::core::option::Option<SearchAssetsQueryListWrapper>,
335    #[prost(message, optional, tag = "13")]
336    pub or: ::core::option::Option<SearchAssetsQueryListWrapper>,
337    #[prost(message, optional, boxed, tag = "14")]
338    pub not: ::core::option::Option<::prost::alloc::boxed::Box<SearchAssetsQuery>>,
339    #[prost(string, optional, tag = "15")]
340    pub workspace: ::core::option::Option<::prost::alloc::string::String>,
341}
342#[derive(Clone, PartialEq, ::prost::Message)]
343pub struct SearchAssetsRequest {
344    #[prost(message, optional, tag = "1")]
345    pub sort: ::core::option::Option<AssetSortOptions>,
346    #[prost(int32, optional, tag = "2")]
347    pub page_size: ::core::option::Option<i32>,
348    #[prost(string, optional, tag = "3")]
349    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
350    #[prost(message, optional, tag = "4")]
351    pub query: ::core::option::Option<SearchAssetsQuery>,
352    #[prost(message, optional, tag = "5")]
353    pub archived_statuses: ::core::option::Option<ArchivedStatusSetWrapper>,
354    #[prost(bool, optional, tag = "6")]
355    pub include_match_count: ::core::option::Option<bool>,
356}
357#[derive(Clone, PartialEq, ::prost::Message)]
358pub struct SearchAssetsResponse {
359    #[prost(message, repeated, tag = "1")]
360    pub results: ::prost::alloc::vec::Vec<Asset>,
361    #[prost(string, optional, tag = "2")]
362    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
363    #[prost(int32, optional, tag = "3")]
364    pub total_count: ::core::option::Option<i32>,
365}
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct SearchTypesQuery {
368    #[prost(string, optional, tag = "1")]
369    pub search_text: ::core::option::Option<::prost::alloc::string::String>,
370    #[prost(string, optional, tag = "2")]
371    pub property: ::core::option::Option<::prost::alloc::string::String>,
372    #[prost(message, optional, tag = "3")]
373    pub and: ::core::option::Option<SearchTypesQueryListWrapper>,
374    #[prost(message, optional, tag = "4")]
375    pub or: ::core::option::Option<SearchTypesQueryListWrapper>,
376    #[prost(string, optional, tag = "5")]
377    pub workspace: ::core::option::Option<::prost::alloc::string::String>,
378    #[prost(string, optional, tag = "6")]
379    pub configured_datasource: ::core::option::Option<::prost::alloc::string::String>,
380}
381#[derive(Clone, PartialEq, ::prost::Message)]
382pub struct SearchTypesRequest {
383    #[prost(message, optional, tag = "1")]
384    pub sort: ::core::option::Option<TypeSortOptions>,
385    #[prost(int32, optional, tag = "2")]
386    pub page_size: ::core::option::Option<i32>,
387    #[prost(string, optional, tag = "3")]
388    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
389    #[prost(message, optional, tag = "4")]
390    pub query: ::core::option::Option<SearchTypesQuery>,
391    #[prost(message, optional, tag = "5")]
392    pub archived_statuses: ::core::option::Option<ArchivedStatusSetWrapper>,
393}
394#[derive(Clone, PartialEq, ::prost::Message)]
395pub struct SearchTypesResponse {
396    #[prost(message, repeated, tag = "1")]
397    pub results: ::prost::alloc::vec::Vec<Type>,
398    #[prost(string, optional, tag = "2")]
399    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
400}
401#[derive(Clone, PartialEq, ::prost::Message)]
402pub struct SortKey {
403    #[prost(oneof = "sort_key::SortKey", tags = "1, 2")]
404    pub sort_key: ::core::option::Option<sort_key::SortKey>,
405}
406/// Nested message and enum types in `SortKey`.
407pub mod sort_key {
408    #[derive(Clone, PartialEq, ::prost::Oneof)]
409    pub enum SortKey {
410        #[prost(enumeration = "super::AssetSortField", tag = "1")]
411        Field(i32),
412        #[prost(message, tag = "2")]
413        Property(super::SortProperty),
414    }
415}
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct SortProperty {
418    #[prost(string, tag = "1")]
419    pub name: ::prost::alloc::string::String,
420}
421#[derive(Clone, PartialEq, ::prost::Message)]
422pub struct TagConfig {
423    #[prost(string, repeated, tag = "1")]
424    pub v1: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
425}
426#[derive(Clone, PartialEq, ::prost::Message)]
427pub struct Type {
428    #[prost(string, tag = "1")]
429    pub rid: ::prost::alloc::string::String,
430    #[prost(string, tag = "2")]
431    pub name: ::prost::alloc::string::String,
432    #[prost(string, optional, tag = "3")]
433    pub description: ::core::option::Option<::prost::alloc::string::String>,
434    #[prost(map = "string, message", tag = "4")]
435    pub property_configs: ::std::collections::HashMap<
436        ::prost::alloc::string::String,
437        PropertyConfig,
438    >,
439    #[prost(message, optional, tag = "5")]
440    pub created_at: ::core::option::Option<
441        super::super::super::google::protobuf::Timestamp,
442    >,
443    #[prost(string, optional, tag = "6")]
444    pub icon_name: ::core::option::Option<::prost::alloc::string::String>,
445    #[prost(map = "string, message", tag = "7")]
446    pub datasource_configs: ::std::collections::HashMap<
447        ::prost::alloc::string::String,
448        AssetTypeDataScopeConfig,
449    >,
450}
451#[derive(Clone, Copy, PartialEq, ::prost::Message)]
452pub struct TypeSortOptions {
453    #[prost(bool, tag = "1")]
454    pub is_descending: bool,
455    #[prost(enumeration = "type_sort_options::TypeSortField", tag = "2")]
456    pub field: i32,
457}
458/// Nested message and enum types in `TypeSortOptions`.
459pub mod type_sort_options {
460    #[derive(
461        Clone,
462        Copy,
463        Debug,
464        PartialEq,
465        Eq,
466        Hash,
467        PartialOrd,
468        Ord,
469        ::prost::Enumeration
470    )]
471    #[repr(i32)]
472    pub enum TypeSortField {
473        Unspecified = 0,
474        CreatedAt = 1,
475    }
476    impl TypeSortField {
477        /// String value of the enum field names used in the ProtoBuf definition.
478        ///
479        /// The values are not transformed in any way and thus are considered stable
480        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
481        pub fn as_str_name(&self) -> &'static str {
482            match self {
483                Self::Unspecified => "TYPE_SORT_FIELD_UNSPECIFIED",
484                Self::CreatedAt => "CREATED_AT",
485            }
486        }
487        /// Creates an enum from field names used in the ProtoBuf definition.
488        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
489            match value {
490                "TYPE_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
491                "CREATED_AT" => Some(Self::CreatedAt),
492                _ => None,
493            }
494        }
495    }
496}
497#[derive(Clone, PartialEq, ::prost::Message)]
498pub struct UpdateAssetRefNamesRequest {
499    #[prost(map = "string, string", tag = "1")]
500    pub data_scope_ref_name_updates: ::std::collections::HashMap<
501        ::prost::alloc::string::String,
502        ::prost::alloc::string::String,
503    >,
504}
505#[derive(Clone, PartialEq, ::prost::Message)]
506pub struct UpdateAssetRequest {
507    #[prost(string, optional, tag = "1")]
508    pub title: ::core::option::Option<::prost::alloc::string::String>,
509    #[prost(string, optional, tag = "2")]
510    pub description: ::core::option::Option<::prost::alloc::string::String>,
511    #[prost(message, optional, tag = "3")]
512    pub properties: ::core::option::Option<super::super::types::PropertyUpdateWrapper>,
513    #[prost(message, optional, tag = "4")]
514    pub labels: ::core::option::Option<super::super::types::LabelUpdateWrapper>,
515    #[prost(message, optional, tag = "5")]
516    pub links: ::core::option::Option<LinkListWrapper>,
517    #[prost(message, optional, tag = "6")]
518    pub data_scopes: ::core::option::Option<CreateAssetDataScopeSetWrapper>,
519    #[prost(message, optional, tag = "7")]
520    pub r#type: ::core::option::Option<UpdateOrRemoveAssetType>,
521    #[prost(bool, optional, tag = "8")]
522    pub is_staged: ::core::option::Option<bool>,
523}
524#[derive(Clone, PartialEq, ::prost::Message)]
525pub struct LinkListWrapper {
526    #[prost(message, repeated, tag = "1")]
527    pub links: ::prost::alloc::vec::Vec<Link>,
528}
529#[derive(Clone, PartialEq, ::prost::Message)]
530pub struct SearchAssetsQueryListWrapper {
531    #[prost(message, repeated, tag = "1")]
532    pub queries: ::prost::alloc::vec::Vec<SearchAssetsQuery>,
533}
534#[derive(Clone, PartialEq, ::prost::Message)]
535pub struct SearchTypesQueryListWrapper {
536    #[prost(message, repeated, tag = "1")]
537    pub queries: ::prost::alloc::vec::Vec<SearchTypesQuery>,
538}
539#[derive(Clone, PartialEq, ::prost::Message)]
540pub struct ArchivedStatusSetWrapper {
541    #[prost(enumeration = "super::super::types::ArchivedStatus", repeated, tag = "1")]
542    pub archived_statuses: ::prost::alloc::vec::Vec<i32>,
543}
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct CreateAssetDataScopeSetWrapper {
546    #[prost(message, repeated, tag = "1")]
547    pub data_scopes: ::prost::alloc::vec::Vec<CreateAssetDataScope>,
548}
549#[derive(Clone, PartialEq, ::prost::Message)]
550pub struct PropertyConfigMapWrapper {
551    #[prost(map = "string, message", tag = "1")]
552    pub property_configs: ::std::collections::HashMap<
553        ::prost::alloc::string::String,
554        PropertyConfig,
555    >,
556}
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct AssetTypeDataScopeConfigMapWrapper {
559    #[prost(map = "string, message", tag = "1")]
560    pub datasource_configs: ::std::collections::HashMap<
561        ::prost::alloc::string::String,
562        AssetTypeDataScopeConfig,
563    >,
564}
565#[derive(Clone, PartialEq, ::prost::Message)]
566pub struct UpdateAttachmentsRequest {
567    #[prost(string, repeated, tag = "1")]
568    pub attachments_to_add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
569    #[prost(string, repeated, tag = "2")]
570    pub attachments_to_remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
571}
572#[derive(Clone, PartialEq, ::prost::Message)]
573pub struct UpdateOrRemoveAssetType {
574    #[prost(
575        oneof = "update_or_remove_asset_type::UpdateOrRemoveAssetType",
576        tags = "1, 2"
577    )]
578    pub update_or_remove_asset_type: ::core::option::Option<
579        update_or_remove_asset_type::UpdateOrRemoveAssetType,
580    >,
581}
582/// Nested message and enum types in `UpdateOrRemoveAssetType`.
583pub mod update_or_remove_asset_type {
584    #[derive(Clone, PartialEq, ::prost::Oneof)]
585    pub enum UpdateOrRemoveAssetType {
586        #[prost(string, tag = "1")]
587        TypeRid(::prost::alloc::string::String),
588        #[prost(message, tag = "2")]
589        RemoveType(super::RemoveType),
590    }
591}
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct UpdateTypeRequest {
594    #[prost(string, optional, tag = "1")]
595    pub name: ::core::option::Option<::prost::alloc::string::String>,
596    #[prost(message, optional, tag = "2")]
597    pub property_configs: ::core::option::Option<PropertyConfigMapWrapper>,
598    #[prost(string, optional, tag = "3")]
599    pub description: ::core::option::Option<::prost::alloc::string::String>,
600    #[prost(string, optional, tag = "4")]
601    pub icon_name: ::core::option::Option<::prost::alloc::string::String>,
602    #[prost(message, optional, tag = "5")]
603    pub datasource_configs: ::core::option::Option<AssetTypeDataScopeConfigMapWrapper>,
604}
605#[derive(Clone, PartialEq, ::prost::Message)]
606pub struct CreateAssetResponse {
607    #[prost(message, optional, tag = "1")]
608    pub asset: ::core::option::Option<Asset>,
609}
610#[derive(Clone, PartialEq, ::prost::Message)]
611pub struct UpdateAssetRequestWrapper {
612    #[prost(string, tag = "1")]
613    pub rid: ::prost::alloc::string::String,
614    #[prost(message, optional, tag = "2")]
615    pub details: ::core::option::Option<UpdateAssetRequest>,
616}
617#[derive(Clone, PartialEq, ::prost::Message)]
618pub struct UpdateAssetResponse {
619    #[prost(message, optional, tag = "1")]
620    pub asset: ::core::option::Option<Asset>,
621}
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct AddDataScopesToAssetRequestWrapper {
624    #[prost(string, tag = "1")]
625    pub asset_rid: ::prost::alloc::string::String,
626    #[prost(message, optional, tag = "2")]
627    pub request: ::core::option::Option<AddDataScopesToAssetRequest>,
628}
629#[derive(Clone, PartialEq, ::prost::Message)]
630pub struct AddDataScopesToAssetResponse {
631    #[prost(message, optional, tag = "1")]
632    pub asset: ::core::option::Option<Asset>,
633}
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct GetAssetsRequest {
636    #[prost(string, repeated, tag = "1")]
637    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
638}
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct GetAssetsResponse {
641    #[prost(map = "string, message", tag = "1")]
642    pub responses: ::std::collections::HashMap<::prost::alloc::string::String, Asset>,
643}
644#[derive(Clone, PartialEq, ::prost::Message)]
645pub struct GetAssetsByDataSourceRequest {
646    #[prost(string, tag = "1")]
647    pub data_source_rid: ::prost::alloc::string::String,
648}
649#[derive(Clone, PartialEq, ::prost::Message)]
650pub struct GetAssetsByDataSourceResponse {
651    #[prost(message, repeated, tag = "1")]
652    pub assets: ::prost::alloc::vec::Vec<Asset>,
653}
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct ArchiveRequest {
656    #[prost(string, tag = "1")]
657    pub rid: ::prost::alloc::string::String,
658    #[prost(bool, optional, tag = "2")]
659    pub include_linked_workbooks: ::core::option::Option<bool>,
660}
661#[derive(Clone, Copy, PartialEq, ::prost::Message)]
662pub struct ArchiveResponse {}
663#[derive(Clone, PartialEq, ::prost::Message)]
664pub struct UnarchiveRequest {
665    #[prost(string, tag = "1")]
666    pub rid: ::prost::alloc::string::String,
667    #[prost(bool, optional, tag = "2")]
668    pub include_linked_workbooks: ::core::option::Option<bool>,
669}
670#[derive(Clone, Copy, PartialEq, ::prost::Message)]
671pub struct UnarchiveResponse {}
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct UpdateAssetAttachmentsRequest {
674    #[prost(string, tag = "1")]
675    pub rid: ::prost::alloc::string::String,
676    #[prost(message, optional, tag = "2")]
677    pub request: ::core::option::Option<UpdateAttachmentsRequest>,
678}
679#[derive(Clone, Copy, PartialEq, ::prost::Message)]
680pub struct UpdateAssetAttachmentsResponse {}
681#[derive(Clone, PartialEq, ::prost::Message)]
682pub struct UpdateAssetRefNamesRequestWrapper {
683    #[prost(string, tag = "1")]
684    pub rid: ::prost::alloc::string::String,
685    #[prost(message, optional, tag = "2")]
686    pub request: ::core::option::Option<UpdateAssetRefNamesRequest>,
687}
688#[derive(Clone, Copy, PartialEq, ::prost::Message)]
689pub struct UpdateAssetRefNamesResponse {}
690#[derive(Clone, PartialEq, ::prost::Message)]
691pub struct CreateTypeResponse {
692    #[prost(message, optional, tag = "1")]
693    pub r#type: ::core::option::Option<Type>,
694}
695#[derive(Clone, PartialEq, ::prost::Message)]
696pub struct UpdateTypeRequestWrapper {
697    #[prost(string, tag = "1")]
698    pub type_rid: ::prost::alloc::string::String,
699    #[prost(message, optional, tag = "2")]
700    pub request: ::core::option::Option<UpdateTypeRequest>,
701}
702#[derive(Clone, PartialEq, ::prost::Message)]
703pub struct UpdateTypeResponse {
704    #[prost(message, optional, tag = "1")]
705    pub r#type: ::core::option::Option<Type>,
706}
707#[derive(Clone, PartialEq, ::prost::Message)]
708pub struct GetTypesRequest {
709    #[prost(string, repeated, tag = "1")]
710    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
711}
712#[derive(Clone, PartialEq, ::prost::Message)]
713pub struct GetTypesResponse {
714    #[prost(map = "string, message", tag = "1")]
715    pub responses: ::std::collections::HashMap<::prost::alloc::string::String, Type>,
716}
717#[derive(Clone, PartialEq, ::prost::Message)]
718pub struct GetTypesForDatasourceRequest {
719    #[prost(string, tag = "1")]
720    pub datasource_rid: ::prost::alloc::string::String,
721}
722#[derive(Clone, PartialEq, ::prost::Message)]
723pub struct GetTypesForDatasourceResponse {
724    #[prost(message, repeated, tag = "1")]
725    pub types: ::prost::alloc::vec::Vec<Type>,
726}
727#[derive(Clone, PartialEq, ::prost::Message)]
728pub struct DeleteTypeRequest {
729    #[prost(string, tag = "1")]
730    pub rid: ::prost::alloc::string::String,
731}
732#[derive(Clone, Copy, PartialEq, ::prost::Message)]
733pub struct DeleteTypeResponse {}
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct ArchiveTypeRequest {
736    #[prost(string, tag = "1")]
737    pub rid: ::prost::alloc::string::String,
738}
739#[derive(Clone, Copy, PartialEq, ::prost::Message)]
740pub struct ArchiveTypeResponse {}
741#[derive(Clone, PartialEq, ::prost::Message)]
742pub struct UnarchiveTypeRequest {
743    #[prost(string, tag = "1")]
744    pub rid: ::prost::alloc::string::String,
745}
746#[derive(Clone, Copy, PartialEq, ::prost::Message)]
747pub struct UnarchiveTypeResponse {}
748#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
749#[repr(i32)]
750pub enum AssetSortField {
751    Unspecified = 0,
752    Name = 1,
753    CreatedAt = 2,
754    MostRecentRunStart = 3,
755}
756impl AssetSortField {
757    /// String value of the enum field names used in the ProtoBuf definition.
758    ///
759    /// The values are not transformed in any way and thus are considered stable
760    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
761    pub fn as_str_name(&self) -> &'static str {
762        match self {
763            Self::Unspecified => "ASSET_SORT_FIELD_UNSPECIFIED",
764            Self::Name => "NAME",
765            Self::CreatedAt => "CREATED_AT",
766            Self::MostRecentRunStart => "MOST_RECENT_RUN_START",
767        }
768    }
769    /// Creates an enum from field names used in the ProtoBuf definition.
770    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
771        match value {
772            "ASSET_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
773            "NAME" => Some(Self::Name),
774            "CREATED_AT" => Some(Self::CreatedAt),
775            "MOST_RECENT_RUN_START" => Some(Self::MostRecentRunStart),
776            _ => None,
777        }
778    }
779}
780#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
781#[repr(i32)]
782pub enum SetOperator {
783    Unspecified = 0,
784    And = 1,
785    Or = 2,
786}
787impl SetOperator {
788    /// String value of the enum field names used in the ProtoBuf definition.
789    ///
790    /// The values are not transformed in any way and thus are considered stable
791    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
792    pub fn as_str_name(&self) -> &'static str {
793        match self {
794            Self::Unspecified => "SET_OPERATOR_UNSPECIFIED",
795            Self::And => "AND",
796            Self::Or => "OR",
797        }
798    }
799    /// Creates an enum from field names used in the ProtoBuf definition.
800    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
801        match value {
802            "SET_OPERATOR_UNSPECIFIED" => Some(Self::Unspecified),
803            "AND" => Some(Self::And),
804            "OR" => Some(Self::Or),
805            _ => None,
806        }
807    }
808}
809#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
810#[repr(i32)]
811pub enum AssetError {
812    InvalidRequest = 0,
813}
814impl AssetError {
815    /// String value of the enum field names used in the ProtoBuf definition.
816    ///
817    /// The values are not transformed in any way and thus are considered stable
818    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
819    pub fn as_str_name(&self) -> &'static str {
820        match self {
821            Self::InvalidRequest => "ASSET_ERROR_INVALID_REQUEST",
822        }
823    }
824    /// Creates an enum from field names used in the ProtoBuf definition.
825    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
826        match value {
827            "ASSET_ERROR_INVALID_REQUEST" => Some(Self::InvalidRequest),
828            _ => None,
829        }
830    }
831}
832/// Generated client implementations.
833pub mod asset_service_client {
834    #![allow(
835        unused_variables,
836        dead_code,
837        missing_docs,
838        clippy::wildcard_imports,
839        clippy::let_unit_value,
840    )]
841    use tonic::codegen::*;
842    use tonic::codegen::http::Uri;
843    #[derive(Debug, Clone)]
844    pub struct AssetServiceClient<T> {
845        inner: tonic::client::Grpc<T>,
846    }
847    impl AssetServiceClient<tonic::transport::Channel> {
848        /// Attempt to create a new client by connecting to a given endpoint.
849        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
850        where
851            D: TryInto<tonic::transport::Endpoint>,
852            D::Error: Into<StdError>,
853        {
854            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
855            Ok(Self::new(conn))
856        }
857    }
858    impl<T> AssetServiceClient<T>
859    where
860        T: tonic::client::GrpcService<tonic::body::Body>,
861        T::Error: Into<StdError>,
862        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
863        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
864    {
865        pub fn new(inner: T) -> Self {
866            let inner = tonic::client::Grpc::new(inner);
867            Self { inner }
868        }
869        pub fn with_origin(inner: T, origin: Uri) -> Self {
870            let inner = tonic::client::Grpc::with_origin(inner, origin);
871            Self { inner }
872        }
873        pub fn with_interceptor<F>(
874            inner: T,
875            interceptor: F,
876        ) -> AssetServiceClient<InterceptedService<T, F>>
877        where
878            F: tonic::service::Interceptor,
879            T::ResponseBody: Default,
880            T: tonic::codegen::Service<
881                http::Request<tonic::body::Body>,
882                Response = http::Response<
883                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
884                >,
885            >,
886            <T as tonic::codegen::Service<
887                http::Request<tonic::body::Body>,
888            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
889        {
890            AssetServiceClient::new(InterceptedService::new(inner, interceptor))
891        }
892        /// Compress requests with the given encoding.
893        ///
894        /// This requires the server to support it otherwise it might respond with an
895        /// error.
896        #[must_use]
897        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
898            self.inner = self.inner.send_compressed(encoding);
899            self
900        }
901        /// Enable decompressing responses.
902        #[must_use]
903        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
904            self.inner = self.inner.accept_compressed(encoding);
905            self
906        }
907        /// Limits the maximum size of a decoded message.
908        ///
909        /// Default: `4MB`
910        #[must_use]
911        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
912            self.inner = self.inner.max_decoding_message_size(limit);
913            self
914        }
915        /// Limits the maximum size of an encoded message.
916        ///
917        /// Default: `usize::MAX`
918        #[must_use]
919        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
920            self.inner = self.inner.max_encoding_message_size(limit);
921            self
922        }
923        pub async fn create_asset(
924            &mut self,
925            request: impl tonic::IntoRequest<super::CreateAssetRequest>,
926        ) -> std::result::Result<
927            tonic::Response<super::CreateAssetResponse>,
928            tonic::Status,
929        > {
930            self.inner
931                .ready()
932                .await
933                .map_err(|e| {
934                    tonic::Status::unknown(
935                        format!("Service was not ready: {}", e.into()),
936                    )
937                })?;
938            let codec = tonic::codec::ProstCodec::default();
939            let path = http::uri::PathAndQuery::from_static(
940                "/nominal.asset.v1.AssetService/CreateAsset",
941            );
942            let mut req = request.into_request();
943            req.extensions_mut()
944                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "CreateAsset"));
945            self.inner.unary(req, path, codec).await
946        }
947        pub async fn update_asset(
948            &mut self,
949            request: impl tonic::IntoRequest<super::UpdateAssetRequestWrapper>,
950        ) -> std::result::Result<
951            tonic::Response<super::UpdateAssetResponse>,
952            tonic::Status,
953        > {
954            self.inner
955                .ready()
956                .await
957                .map_err(|e| {
958                    tonic::Status::unknown(
959                        format!("Service was not ready: {}", e.into()),
960                    )
961                })?;
962            let codec = tonic::codec::ProstCodec::default();
963            let path = http::uri::PathAndQuery::from_static(
964                "/nominal.asset.v1.AssetService/UpdateAsset",
965            );
966            let mut req = request.into_request();
967            req.extensions_mut()
968                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "UpdateAsset"));
969            self.inner.unary(req, path, codec).await
970        }
971        pub async fn add_data_scopes_to_asset(
972            &mut self,
973            request: impl tonic::IntoRequest<super::AddDataScopesToAssetRequestWrapper>,
974        ) -> std::result::Result<
975            tonic::Response<super::AddDataScopesToAssetResponse>,
976            tonic::Status,
977        > {
978            self.inner
979                .ready()
980                .await
981                .map_err(|e| {
982                    tonic::Status::unknown(
983                        format!("Service was not ready: {}", e.into()),
984                    )
985                })?;
986            let codec = tonic::codec::ProstCodec::default();
987            let path = http::uri::PathAndQuery::from_static(
988                "/nominal.asset.v1.AssetService/AddDataScopesToAsset",
989            );
990            let mut req = request.into_request();
991            req.extensions_mut()
992                .insert(
993                    GrpcMethod::new(
994                        "nominal.asset.v1.AssetService",
995                        "AddDataScopesToAsset",
996                    ),
997                );
998            self.inner.unary(req, path, codec).await
999        }
1000        pub async fn get_assets(
1001            &mut self,
1002            request: impl tonic::IntoRequest<super::GetAssetsRequest>,
1003        ) -> std::result::Result<
1004            tonic::Response<super::GetAssetsResponse>,
1005            tonic::Status,
1006        > {
1007            self.inner
1008                .ready()
1009                .await
1010                .map_err(|e| {
1011                    tonic::Status::unknown(
1012                        format!("Service was not ready: {}", e.into()),
1013                    )
1014                })?;
1015            let codec = tonic::codec::ProstCodec::default();
1016            let path = http::uri::PathAndQuery::from_static(
1017                "/nominal.asset.v1.AssetService/GetAssets",
1018            );
1019            let mut req = request.into_request();
1020            req.extensions_mut()
1021                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "GetAssets"));
1022            self.inner.unary(req, path, codec).await
1023        }
1024        pub async fn get_assets_by_data_source(
1025            &mut self,
1026            request: impl tonic::IntoRequest<super::GetAssetsByDataSourceRequest>,
1027        ) -> std::result::Result<
1028            tonic::Response<super::GetAssetsByDataSourceResponse>,
1029            tonic::Status,
1030        > {
1031            self.inner
1032                .ready()
1033                .await
1034                .map_err(|e| {
1035                    tonic::Status::unknown(
1036                        format!("Service was not ready: {}", e.into()),
1037                    )
1038                })?;
1039            let codec = tonic::codec::ProstCodec::default();
1040            let path = http::uri::PathAndQuery::from_static(
1041                "/nominal.asset.v1.AssetService/GetAssetsByDataSource",
1042            );
1043            let mut req = request.into_request();
1044            req.extensions_mut()
1045                .insert(
1046                    GrpcMethod::new(
1047                        "nominal.asset.v1.AssetService",
1048                        "GetAssetsByDataSource",
1049                    ),
1050                );
1051            self.inner.unary(req, path, codec).await
1052        }
1053        pub async fn archive(
1054            &mut self,
1055            request: impl tonic::IntoRequest<super::ArchiveRequest>,
1056        ) -> std::result::Result<
1057            tonic::Response<super::ArchiveResponse>,
1058            tonic::Status,
1059        > {
1060            self.inner
1061                .ready()
1062                .await
1063                .map_err(|e| {
1064                    tonic::Status::unknown(
1065                        format!("Service was not ready: {}", e.into()),
1066                    )
1067                })?;
1068            let codec = tonic::codec::ProstCodec::default();
1069            let path = http::uri::PathAndQuery::from_static(
1070                "/nominal.asset.v1.AssetService/Archive",
1071            );
1072            let mut req = request.into_request();
1073            req.extensions_mut()
1074                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "Archive"));
1075            self.inner.unary(req, path, codec).await
1076        }
1077        pub async fn unarchive(
1078            &mut self,
1079            request: impl tonic::IntoRequest<super::UnarchiveRequest>,
1080        ) -> std::result::Result<
1081            tonic::Response<super::UnarchiveResponse>,
1082            tonic::Status,
1083        > {
1084            self.inner
1085                .ready()
1086                .await
1087                .map_err(|e| {
1088                    tonic::Status::unknown(
1089                        format!("Service was not ready: {}", e.into()),
1090                    )
1091                })?;
1092            let codec = tonic::codec::ProstCodec::default();
1093            let path = http::uri::PathAndQuery::from_static(
1094                "/nominal.asset.v1.AssetService/Unarchive",
1095            );
1096            let mut req = request.into_request();
1097            req.extensions_mut()
1098                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "Unarchive"));
1099            self.inner.unary(req, path, codec).await
1100        }
1101        pub async fn search_assets(
1102            &mut self,
1103            request: impl tonic::IntoRequest<super::SearchAssetsRequest>,
1104        ) -> std::result::Result<
1105            tonic::Response<super::SearchAssetsResponse>,
1106            tonic::Status,
1107        > {
1108            self.inner
1109                .ready()
1110                .await
1111                .map_err(|e| {
1112                    tonic::Status::unknown(
1113                        format!("Service was not ready: {}", e.into()),
1114                    )
1115                })?;
1116            let codec = tonic::codec::ProstCodec::default();
1117            let path = http::uri::PathAndQuery::from_static(
1118                "/nominal.asset.v1.AssetService/SearchAssets",
1119            );
1120            let mut req = request.into_request();
1121            req.extensions_mut()
1122                .insert(
1123                    GrpcMethod::new("nominal.asset.v1.AssetService", "SearchAssets"),
1124                );
1125            self.inner.unary(req, path, codec).await
1126        }
1127        pub async fn batch_edit_asset_metadata(
1128            &mut self,
1129            request: impl tonic::IntoRequest<super::BatchEditAssetMetadataRequest>,
1130        ) -> std::result::Result<
1131            tonic::Response<super::BatchEditAssetMetadataResponse>,
1132            tonic::Status,
1133        > {
1134            self.inner
1135                .ready()
1136                .await
1137                .map_err(|e| {
1138                    tonic::Status::unknown(
1139                        format!("Service was not ready: {}", e.into()),
1140                    )
1141                })?;
1142            let codec = tonic::codec::ProstCodec::default();
1143            let path = http::uri::PathAndQuery::from_static(
1144                "/nominal.asset.v1.AssetService/BatchEditAssetMetadata",
1145            );
1146            let mut req = request.into_request();
1147            req.extensions_mut()
1148                .insert(
1149                    GrpcMethod::new(
1150                        "nominal.asset.v1.AssetService",
1151                        "BatchEditAssetMetadata",
1152                    ),
1153                );
1154            self.inner.unary(req, path, codec).await
1155        }
1156        pub async fn search_types(
1157            &mut self,
1158            request: impl tonic::IntoRequest<super::SearchTypesRequest>,
1159        ) -> std::result::Result<
1160            tonic::Response<super::SearchTypesResponse>,
1161            tonic::Status,
1162        > {
1163            self.inner
1164                .ready()
1165                .await
1166                .map_err(|e| {
1167                    tonic::Status::unknown(
1168                        format!("Service was not ready: {}", e.into()),
1169                    )
1170                })?;
1171            let codec = tonic::codec::ProstCodec::default();
1172            let path = http::uri::PathAndQuery::from_static(
1173                "/nominal.asset.v1.AssetService/SearchTypes",
1174            );
1175            let mut req = request.into_request();
1176            req.extensions_mut()
1177                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "SearchTypes"));
1178            self.inner.unary(req, path, codec).await
1179        }
1180        pub async fn update_asset_attachments(
1181            &mut self,
1182            request: impl tonic::IntoRequest<super::UpdateAssetAttachmentsRequest>,
1183        ) -> std::result::Result<
1184            tonic::Response<super::UpdateAssetAttachmentsResponse>,
1185            tonic::Status,
1186        > {
1187            self.inner
1188                .ready()
1189                .await
1190                .map_err(|e| {
1191                    tonic::Status::unknown(
1192                        format!("Service was not ready: {}", e.into()),
1193                    )
1194                })?;
1195            let codec = tonic::codec::ProstCodec::default();
1196            let path = http::uri::PathAndQuery::from_static(
1197                "/nominal.asset.v1.AssetService/UpdateAssetAttachments",
1198            );
1199            let mut req = request.into_request();
1200            req.extensions_mut()
1201                .insert(
1202                    GrpcMethod::new(
1203                        "nominal.asset.v1.AssetService",
1204                        "UpdateAssetAttachments",
1205                    ),
1206                );
1207            self.inner.unary(req, path, codec).await
1208        }
1209        pub async fn update_asset_ref_names(
1210            &mut self,
1211            request: impl tonic::IntoRequest<super::UpdateAssetRefNamesRequestWrapper>,
1212        ) -> std::result::Result<
1213            tonic::Response<super::UpdateAssetRefNamesResponse>,
1214            tonic::Status,
1215        > {
1216            self.inner
1217                .ready()
1218                .await
1219                .map_err(|e| {
1220                    tonic::Status::unknown(
1221                        format!("Service was not ready: {}", e.into()),
1222                    )
1223                })?;
1224            let codec = tonic::codec::ProstCodec::default();
1225            let path = http::uri::PathAndQuery::from_static(
1226                "/nominal.asset.v1.AssetService/UpdateAssetRefNames",
1227            );
1228            let mut req = request.into_request();
1229            req.extensions_mut()
1230                .insert(
1231                    GrpcMethod::new(
1232                        "nominal.asset.v1.AssetService",
1233                        "UpdateAssetRefNames",
1234                    ),
1235                );
1236            self.inner.unary(req, path, codec).await
1237        }
1238        pub async fn create_type(
1239            &mut self,
1240            request: impl tonic::IntoRequest<super::CreateTypeRequest>,
1241        ) -> std::result::Result<
1242            tonic::Response<super::CreateTypeResponse>,
1243            tonic::Status,
1244        > {
1245            self.inner
1246                .ready()
1247                .await
1248                .map_err(|e| {
1249                    tonic::Status::unknown(
1250                        format!("Service was not ready: {}", e.into()),
1251                    )
1252                })?;
1253            let codec = tonic::codec::ProstCodec::default();
1254            let path = http::uri::PathAndQuery::from_static(
1255                "/nominal.asset.v1.AssetService/CreateType",
1256            );
1257            let mut req = request.into_request();
1258            req.extensions_mut()
1259                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "CreateType"));
1260            self.inner.unary(req, path, codec).await
1261        }
1262        pub async fn update_type(
1263            &mut self,
1264            request: impl tonic::IntoRequest<super::UpdateTypeRequestWrapper>,
1265        ) -> std::result::Result<
1266            tonic::Response<super::UpdateTypeResponse>,
1267            tonic::Status,
1268        > {
1269            self.inner
1270                .ready()
1271                .await
1272                .map_err(|e| {
1273                    tonic::Status::unknown(
1274                        format!("Service was not ready: {}", e.into()),
1275                    )
1276                })?;
1277            let codec = tonic::codec::ProstCodec::default();
1278            let path = http::uri::PathAndQuery::from_static(
1279                "/nominal.asset.v1.AssetService/UpdateType",
1280            );
1281            let mut req = request.into_request();
1282            req.extensions_mut()
1283                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "UpdateType"));
1284            self.inner.unary(req, path, codec).await
1285        }
1286        pub async fn get_types(
1287            &mut self,
1288            request: impl tonic::IntoRequest<super::GetTypesRequest>,
1289        ) -> std::result::Result<
1290            tonic::Response<super::GetTypesResponse>,
1291            tonic::Status,
1292        > {
1293            self.inner
1294                .ready()
1295                .await
1296                .map_err(|e| {
1297                    tonic::Status::unknown(
1298                        format!("Service was not ready: {}", e.into()),
1299                    )
1300                })?;
1301            let codec = tonic::codec::ProstCodec::default();
1302            let path = http::uri::PathAndQuery::from_static(
1303                "/nominal.asset.v1.AssetService/GetTypes",
1304            );
1305            let mut req = request.into_request();
1306            req.extensions_mut()
1307                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "GetTypes"));
1308            self.inner.unary(req, path, codec).await
1309        }
1310        pub async fn get_types_for_datasource(
1311            &mut self,
1312            request: impl tonic::IntoRequest<super::GetTypesForDatasourceRequest>,
1313        ) -> std::result::Result<
1314            tonic::Response<super::GetTypesForDatasourceResponse>,
1315            tonic::Status,
1316        > {
1317            self.inner
1318                .ready()
1319                .await
1320                .map_err(|e| {
1321                    tonic::Status::unknown(
1322                        format!("Service was not ready: {}", e.into()),
1323                    )
1324                })?;
1325            let codec = tonic::codec::ProstCodec::default();
1326            let path = http::uri::PathAndQuery::from_static(
1327                "/nominal.asset.v1.AssetService/GetTypesForDatasource",
1328            );
1329            let mut req = request.into_request();
1330            req.extensions_mut()
1331                .insert(
1332                    GrpcMethod::new(
1333                        "nominal.asset.v1.AssetService",
1334                        "GetTypesForDatasource",
1335                    ),
1336                );
1337            self.inner.unary(req, path, codec).await
1338        }
1339        pub async fn delete_type(
1340            &mut self,
1341            request: impl tonic::IntoRequest<super::DeleteTypeRequest>,
1342        ) -> std::result::Result<
1343            tonic::Response<super::DeleteTypeResponse>,
1344            tonic::Status,
1345        > {
1346            self.inner
1347                .ready()
1348                .await
1349                .map_err(|e| {
1350                    tonic::Status::unknown(
1351                        format!("Service was not ready: {}", e.into()),
1352                    )
1353                })?;
1354            let codec = tonic::codec::ProstCodec::default();
1355            let path = http::uri::PathAndQuery::from_static(
1356                "/nominal.asset.v1.AssetService/DeleteType",
1357            );
1358            let mut req = request.into_request();
1359            req.extensions_mut()
1360                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "DeleteType"));
1361            self.inner.unary(req, path, codec).await
1362        }
1363        pub async fn archive_type(
1364            &mut self,
1365            request: impl tonic::IntoRequest<super::ArchiveTypeRequest>,
1366        ) -> std::result::Result<
1367            tonic::Response<super::ArchiveTypeResponse>,
1368            tonic::Status,
1369        > {
1370            self.inner
1371                .ready()
1372                .await
1373                .map_err(|e| {
1374                    tonic::Status::unknown(
1375                        format!("Service was not ready: {}", e.into()),
1376                    )
1377                })?;
1378            let codec = tonic::codec::ProstCodec::default();
1379            let path = http::uri::PathAndQuery::from_static(
1380                "/nominal.asset.v1.AssetService/ArchiveType",
1381            );
1382            let mut req = request.into_request();
1383            req.extensions_mut()
1384                .insert(GrpcMethod::new("nominal.asset.v1.AssetService", "ArchiveType"));
1385            self.inner.unary(req, path, codec).await
1386        }
1387        pub async fn unarchive_type(
1388            &mut self,
1389            request: impl tonic::IntoRequest<super::UnarchiveTypeRequest>,
1390        ) -> std::result::Result<
1391            tonic::Response<super::UnarchiveTypeResponse>,
1392            tonic::Status,
1393        > {
1394            self.inner
1395                .ready()
1396                .await
1397                .map_err(|e| {
1398                    tonic::Status::unknown(
1399                        format!("Service was not ready: {}", e.into()),
1400                    )
1401                })?;
1402            let codec = tonic::codec::ProstCodec::default();
1403            let path = http::uri::PathAndQuery::from_static(
1404                "/nominal.asset.v1.AssetService/UnarchiveType",
1405            );
1406            let mut req = request.into_request();
1407            req.extensions_mut()
1408                .insert(
1409                    GrpcMethod::new("nominal.asset.v1.AssetService", "UnarchiveType"),
1410                );
1411            self.inner.unary(req, path, codec).await
1412        }
1413    }
1414}