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