Skip to main content

nominal_api_proto/proto/
nominal.asset.v2.rs

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