Skip to main content

nominal_api_proto/proto/
nominal.metadata.v2.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct MatchCount {
4    #[prost(string, tag = "1")]
5    pub value: ::prost::alloc::string::String,
6    #[prost(int32, tag = "2")]
7    pub document_count: i32,
8}
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct LabelWithCount {
11    #[prost(string, tag = "1")]
12    pub label: ::prost::alloc::string::String,
13    #[prost(int32, tag = "2")]
14    pub document_count: i32,
15}
16#[derive(Clone, Copy, PartialEq, ::prost::Message)]
17pub struct StringPropertySummary {
18    #[prost(int32, tag = "1")]
19    pub document_count: i32,
20    #[prost(int32, tag = "2")]
21    pub distinct_value_count: i32,
22}
23#[derive(Clone, Copy, PartialEq, ::prost::Message)]
24pub struct NumericPropertySummary {
25    #[prost(int32, tag = "1")]
26    pub document_count: i32,
27    #[prost(double, tag = "4")]
28    pub mean: f64,
29}
30#[derive(Clone, PartialEq, ::prost::Message)]
31pub struct PropertyKeyWithCount {
32    #[prost(string, tag = "1")]
33    pub property_key: ::prost::alloc::string::String,
34    #[prost(int32, tag = "2")]
35    pub document_count: i32,
36    #[deprecated]
37    #[prost(int32, tag = "3")]
38    pub value_count: i32,
39    #[prost(message, optional, tag = "4")]
40    pub string: ::core::option::Option<StringPropertySummary>,
41    #[prost(message, optional, tag = "5")]
42    pub numeric: ::core::option::Option<NumericPropertySummary>,
43}
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct PropertyValueWithCount {
46    #[prost(string, tag = "1")]
47    pub property_value: ::prost::alloc::string::String,
48    #[prost(int32, tag = "2")]
49    pub document_count: i32,
50}
51#[derive(Clone, PartialEq, ::prost::Message)]
52pub struct ListPropertiesAndLabelsRequest {
53    #[prost(enumeration = "ResourceType", repeated, tag = "1")]
54    pub resource_types: ::prost::alloc::vec::Vec<i32>,
55    #[prost(string, repeated, tag = "2")]
56    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
57}
58#[derive(Clone, PartialEq, ::prost::Message)]
59pub struct ListPropertiesAndLabelsResponse {
60    #[prost(map = "string, message", tag = "1")]
61    pub properties: ::std::collections::HashMap<
62        ::prost::alloc::string::String,
63        list_properties_and_labels_response::PropertyValues,
64    >,
65    #[prost(string, repeated, tag = "2")]
66    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
67}
68/// Nested message and enum types in `ListPropertiesAndLabelsResponse`.
69pub mod list_properties_and_labels_response {
70    #[derive(Clone, PartialEq, ::prost::Message)]
71    pub struct PropertyValues {
72        #[prost(string, repeated, tag = "1")]
73        pub value: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
74    }
75}
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct MetadataUsageQuery {
78    #[prost(oneof = "metadata_usage_query::MetadataUsageQuery", tags = "1, 2, 3")]
79    pub metadata_usage_query: ::core::option::Option<
80        metadata_usage_query::MetadataUsageQuery,
81    >,
82}
83/// Nested message and enum types in `MetadataUsageQuery`.
84pub mod metadata_usage_query {
85    #[derive(Clone, PartialEq, ::prost::Oneof)]
86    pub enum MetadataUsageQuery {
87        #[prost(string, tag = "1")]
88        Label(::prost::alloc::string::String),
89        #[prost(string, tag = "2")]
90        PropertyName(::prost::alloc::string::String),
91        #[prost(message, tag = "3")]
92        Property(super::super::super::types::Property),
93    }
94}
95#[derive(Clone, PartialEq, ::prost::Message)]
96pub struct GetMetadataUsageCountRequest {
97    #[prost(message, optional, tag = "1")]
98    pub query: ::core::option::Option<MetadataUsageQuery>,
99    #[prost(enumeration = "ResourceType", repeated, tag = "2")]
100    pub resource_types: ::prost::alloc::vec::Vec<i32>,
101    #[prost(string, repeated, tag = "3")]
102    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
103}
104#[derive(Clone, Copy, PartialEq, ::prost::Message)]
105pub struct GetMetadataUsageCountResponse {
106    #[prost(int32, tag = "1")]
107    pub count: i32,
108}
109#[derive(Clone, PartialEq, ::prost::Message)]
110pub struct FindSimilarLabelMatchesRequest {
111    #[prost(enumeration = "ResourceType", repeated, tag = "1")]
112    pub resource_types: ::prost::alloc::vec::Vec<i32>,
113    #[prost(string, repeated, tag = "2")]
114    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
115    #[prost(string, repeated, tag = "3")]
116    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
119pub struct FindSimilarLabelMatchesResponse {
120    #[prost(map = "string, message", tag = "1")]
121    pub matches: ::std::collections::HashMap<
122        ::prost::alloc::string::String,
123        find_similar_label_matches_response::Matches,
124    >,
125}
126/// Nested message and enum types in `FindSimilarLabelMatchesResponse`.
127pub mod find_similar_label_matches_response {
128    #[derive(Clone, PartialEq, ::prost::Message)]
129    pub struct Matches {
130        #[prost(message, repeated, tag = "1")]
131        pub value: ::prost::alloc::vec::Vec<super::MatchCount>,
132    }
133}
134#[derive(Clone, PartialEq, ::prost::Message)]
135pub struct FindSimilarPropertyKeyMatchesRequest {
136    #[prost(enumeration = "ResourceType", repeated, tag = "1")]
137    pub resource_types: ::prost::alloc::vec::Vec<i32>,
138    #[prost(string, repeated, tag = "2")]
139    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
140    #[prost(string, repeated, tag = "3")]
141    pub property_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
142}
143#[derive(Clone, PartialEq, ::prost::Message)]
144pub struct FindSimilarPropertyKeyMatchesResponse {
145    #[prost(map = "string, message", tag = "1")]
146    pub key_matches: ::std::collections::HashMap<
147        ::prost::alloc::string::String,
148        find_similar_property_key_matches_response::Matches,
149    >,
150}
151/// Nested message and enum types in `FindSimilarPropertyKeyMatchesResponse`.
152pub mod find_similar_property_key_matches_response {
153    #[derive(Clone, PartialEq, ::prost::Message)]
154    pub struct Matches {
155        #[prost(message, repeated, tag = "1")]
156        pub value: ::prost::alloc::vec::Vec<super::MatchCount>,
157    }
158}
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct MetadataSearchParams {
161    #[prost(enumeration = "ResourceType", repeated, tag = "1")]
162    pub resource_types: ::prost::alloc::vec::Vec<i32>,
163    #[prost(string, repeated, tag = "2")]
164    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
165    #[prost(string, optional, tag = "3")]
166    pub search_text: ::core::option::Option<::prost::alloc::string::String>,
167    #[prost(int32, optional, tag = "4")]
168    pub page_size: ::core::option::Option<i32>,
169    #[prost(string, optional, tag = "5")]
170    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
171    #[prost(enumeration = "MetadataSortField", tag = "6")]
172    pub sort_by: i32,
173    #[prost(bool, optional, tag = "7")]
174    pub descending: ::core::option::Option<bool>,
175}
176#[derive(Clone, PartialEq, ::prost::Message)]
177pub struct SearchLabelsRequest {
178    #[prost(message, optional, tag = "1")]
179    pub params: ::core::option::Option<MetadataSearchParams>,
180}
181#[derive(Clone, PartialEq, ::prost::Message)]
182pub struct SearchLabelsResponse {
183    #[prost(message, repeated, tag = "1")]
184    pub labels: ::prost::alloc::vec::Vec<LabelWithCount>,
185    #[prost(string, optional, tag = "2")]
186    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
187}
188#[derive(Clone, PartialEq, ::prost::Message)]
189pub struct SearchPropertyKeysRequest {
190    #[prost(message, optional, tag = "1")]
191    pub params: ::core::option::Option<MetadataSearchParams>,
192}
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct SearchPropertyKeysResponse {
195    #[prost(message, repeated, tag = "1")]
196    pub property_keys: ::prost::alloc::vec::Vec<PropertyKeyWithCount>,
197    #[prost(string, optional, tag = "2")]
198    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
199}
200#[derive(Clone, PartialEq, ::prost::Message)]
201pub struct SearchPropertyValuesRequest {
202    #[prost(message, optional, tag = "1")]
203    pub params: ::core::option::Option<MetadataSearchParams>,
204    #[prost(string, tag = "2")]
205    pub property_key: ::prost::alloc::string::String,
206}
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct SearchPropertyValuesResponse {
209    #[prost(message, repeated, tag = "1")]
210    pub property_values: ::prost::alloc::vec::Vec<PropertyValueWithCount>,
211    #[prost(string, optional, tag = "2")]
212    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
213}
214#[derive(Clone, Copy, PartialEq, ::prost::Message)]
215pub struct NumericPropertyStatistics {
216    #[prost(double, tag = "1")]
217    pub min: f64,
218    #[prost(double, tag = "2")]
219    pub max: f64,
220}
221#[derive(Clone, PartialEq, ::prost::Message)]
222pub struct GetNumericPropertyStatisticsRequest {
223    #[prost(string, tag = "1")]
224    pub property_key: ::prost::alloc::string::String,
225    #[prost(enumeration = "ResourceType", repeated, tag = "2")]
226    pub resource_types: ::prost::alloc::vec::Vec<i32>,
227    #[prost(string, repeated, tag = "3")]
228    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
229}
230#[derive(Clone, Copy, PartialEq, ::prost::Message)]
231pub struct GetNumericPropertyStatisticsResponse {
232    #[prost(message, optional, tag = "1")]
233    pub statistics: ::core::option::Option<NumericPropertyStatistics>,
234}
235#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
236#[repr(i32)]
237pub enum ResourceType {
238    Unspecified = 0,
239    Run = 1,
240    Video = 2,
241    Asset = 3,
242    Event = 4,
243    Dataset = 5,
244    Module = 6,
245    ProcedureExecution = 7,
246    Procedure = 8,
247    SavedView = 9,
248    Plan = 10,
249}
250impl ResourceType {
251    /// String value of the enum field names used in the ProtoBuf definition.
252    ///
253    /// The values are not transformed in any way and thus are considered stable
254    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
255    pub fn as_str_name(&self) -> &'static str {
256        match self {
257            Self::Unspecified => "RESOURCE_TYPE_UNSPECIFIED",
258            Self::Run => "RUN",
259            Self::Video => "VIDEO",
260            Self::Asset => "ASSET",
261            Self::Event => "EVENT",
262            Self::Dataset => "DATASET",
263            Self::Module => "MODULE",
264            Self::ProcedureExecution => "PROCEDURE_EXECUTION",
265            Self::Procedure => "PROCEDURE",
266            Self::SavedView => "SAVED_VIEW",
267            Self::Plan => "PLAN",
268        }
269    }
270    /// Creates an enum from field names used in the ProtoBuf definition.
271    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
272        match value {
273            "RESOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
274            "RUN" => Some(Self::Run),
275            "VIDEO" => Some(Self::Video),
276            "ASSET" => Some(Self::Asset),
277            "EVENT" => Some(Self::Event),
278            "DATASET" => Some(Self::Dataset),
279            "MODULE" => Some(Self::Module),
280            "PROCEDURE_EXECUTION" => Some(Self::ProcedureExecution),
281            "PROCEDURE" => Some(Self::Procedure),
282            "SAVED_VIEW" => Some(Self::SavedView),
283            "PLAN" => Some(Self::Plan),
284            _ => None,
285        }
286    }
287}
288#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
289#[repr(i32)]
290pub enum MetadataSortField {
291    Unspecified = 0,
292    Alphabetical = 1,
293    UsageCount = 2,
294    PropertyValueCount = 3,
295}
296impl MetadataSortField {
297    /// String value of the enum field names used in the ProtoBuf definition.
298    ///
299    /// The values are not transformed in any way and thus are considered stable
300    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
301    pub fn as_str_name(&self) -> &'static str {
302        match self {
303            Self::Unspecified => "METADATA_SORT_FIELD_UNSPECIFIED",
304            Self::Alphabetical => "ALPHABETICAL",
305            Self::UsageCount => "USAGE_COUNT",
306            Self::PropertyValueCount => "PROPERTY_VALUE_COUNT",
307        }
308    }
309    /// Creates an enum from field names used in the ProtoBuf definition.
310    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
311        match value {
312            "METADATA_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
313            "ALPHABETICAL" => Some(Self::Alphabetical),
314            "USAGE_COUNT" => Some(Self::UsageCount),
315            "PROPERTY_VALUE_COUNT" => Some(Self::PropertyValueCount),
316            _ => None,
317        }
318    }
319}
320#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
321#[repr(i32)]
322pub enum MetadataError {
323    InvalidMetadataRequest = 0,
324}
325impl MetadataError {
326    /// String value of the enum field names used in the ProtoBuf definition.
327    ///
328    /// The values are not transformed in any way and thus are considered stable
329    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
330    pub fn as_str_name(&self) -> &'static str {
331        match self {
332            Self::InvalidMetadataRequest => "METADATA_ERROR_INVALID_METADATA_REQUEST",
333        }
334    }
335    /// Creates an enum from field names used in the ProtoBuf definition.
336    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
337        match value {
338            "METADATA_ERROR_INVALID_METADATA_REQUEST" => {
339                Some(Self::InvalidMetadataRequest)
340            }
341            _ => None,
342        }
343    }
344}
345/// Generated client implementations.
346pub mod resource_metadata_service_client {
347    #![allow(
348        unused_variables,
349        dead_code,
350        missing_docs,
351        clippy::wildcard_imports,
352        clippy::let_unit_value,
353    )]
354    use tonic::codegen::*;
355    use tonic::codegen::http::Uri;
356    #[derive(Debug, Clone)]
357    pub struct ResourceMetadataServiceClient<T> {
358        inner: tonic::client::Grpc<T>,
359    }
360    impl ResourceMetadataServiceClient<tonic::transport::Channel> {
361        /// Attempt to create a new client by connecting to a given endpoint.
362        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
363        where
364            D: TryInto<tonic::transport::Endpoint>,
365            D::Error: Into<StdError>,
366        {
367            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
368            Ok(Self::new(conn))
369        }
370    }
371    impl<T> ResourceMetadataServiceClient<T>
372    where
373        T: tonic::client::GrpcService<tonic::body::Body>,
374        T::Error: Into<StdError>,
375        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
376        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
377    {
378        pub fn new(inner: T) -> Self {
379            let inner = tonic::client::Grpc::new(inner);
380            Self { inner }
381        }
382        pub fn with_origin(inner: T, origin: Uri) -> Self {
383            let inner = tonic::client::Grpc::with_origin(inner, origin);
384            Self { inner }
385        }
386        pub fn with_interceptor<F>(
387            inner: T,
388            interceptor: F,
389        ) -> ResourceMetadataServiceClient<InterceptedService<T, F>>
390        where
391            F: tonic::service::Interceptor,
392            T::ResponseBody: Default,
393            T: tonic::codegen::Service<
394                http::Request<tonic::body::Body>,
395                Response = http::Response<
396                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
397                >,
398            >,
399            <T as tonic::codegen::Service<
400                http::Request<tonic::body::Body>,
401            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
402        {
403            ResourceMetadataServiceClient::new(
404                InterceptedService::new(inner, interceptor),
405            )
406        }
407        /// Compress requests with the given encoding.
408        ///
409        /// This requires the server to support it otherwise it might respond with an
410        /// error.
411        #[must_use]
412        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
413            self.inner = self.inner.send_compressed(encoding);
414            self
415        }
416        /// Enable decompressing responses.
417        #[must_use]
418        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
419            self.inner = self.inner.accept_compressed(encoding);
420            self
421        }
422        /// Limits the maximum size of a decoded message.
423        ///
424        /// Default: `4MB`
425        #[must_use]
426        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
427            self.inner = self.inner.max_decoding_message_size(limit);
428            self
429        }
430        /// Limits the maximum size of an encoded message.
431        ///
432        /// Default: `usize::MAX`
433        #[must_use]
434        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
435            self.inner = self.inner.max_encoding_message_size(limit);
436            self
437        }
438        pub async fn list_properties_and_labels(
439            &mut self,
440            request: impl tonic::IntoRequest<super::ListPropertiesAndLabelsRequest>,
441        ) -> std::result::Result<
442            tonic::Response<super::ListPropertiesAndLabelsResponse>,
443            tonic::Status,
444        > {
445            self.inner
446                .ready()
447                .await
448                .map_err(|e| {
449                    tonic::Status::unknown(
450                        format!("Service was not ready: {}", e.into()),
451                    )
452                })?;
453            let codec = tonic::codec::ProstCodec::default();
454            let path = http::uri::PathAndQuery::from_static(
455                "/nominal.metadata.v2.ResourceMetadataService/ListPropertiesAndLabels",
456            );
457            let mut req = request.into_request();
458            req.extensions_mut()
459                .insert(
460                    GrpcMethod::new(
461                        "nominal.metadata.v2.ResourceMetadataService",
462                        "ListPropertiesAndLabels",
463                    ),
464                );
465            self.inner.unary(req, path, codec).await
466        }
467        pub async fn get_metadata_usage_count(
468            &mut self,
469            request: impl tonic::IntoRequest<super::GetMetadataUsageCountRequest>,
470        ) -> std::result::Result<
471            tonic::Response<super::GetMetadataUsageCountResponse>,
472            tonic::Status,
473        > {
474            self.inner
475                .ready()
476                .await
477                .map_err(|e| {
478                    tonic::Status::unknown(
479                        format!("Service was not ready: {}", e.into()),
480                    )
481                })?;
482            let codec = tonic::codec::ProstCodec::default();
483            let path = http::uri::PathAndQuery::from_static(
484                "/nominal.metadata.v2.ResourceMetadataService/GetMetadataUsageCount",
485            );
486            let mut req = request.into_request();
487            req.extensions_mut()
488                .insert(
489                    GrpcMethod::new(
490                        "nominal.metadata.v2.ResourceMetadataService",
491                        "GetMetadataUsageCount",
492                    ),
493                );
494            self.inner.unary(req, path, codec).await
495        }
496        pub async fn find_similar_label_matches(
497            &mut self,
498            request: impl tonic::IntoRequest<super::FindSimilarLabelMatchesRequest>,
499        ) -> std::result::Result<
500            tonic::Response<super::FindSimilarLabelMatchesResponse>,
501            tonic::Status,
502        > {
503            self.inner
504                .ready()
505                .await
506                .map_err(|e| {
507                    tonic::Status::unknown(
508                        format!("Service was not ready: {}", e.into()),
509                    )
510                })?;
511            let codec = tonic::codec::ProstCodec::default();
512            let path = http::uri::PathAndQuery::from_static(
513                "/nominal.metadata.v2.ResourceMetadataService/FindSimilarLabelMatches",
514            );
515            let mut req = request.into_request();
516            req.extensions_mut()
517                .insert(
518                    GrpcMethod::new(
519                        "nominal.metadata.v2.ResourceMetadataService",
520                        "FindSimilarLabelMatches",
521                    ),
522                );
523            self.inner.unary(req, path, codec).await
524        }
525        pub async fn find_similar_property_key_matches(
526            &mut self,
527            request: impl tonic::IntoRequest<super::FindSimilarPropertyKeyMatchesRequest>,
528        ) -> std::result::Result<
529            tonic::Response<super::FindSimilarPropertyKeyMatchesResponse>,
530            tonic::Status,
531        > {
532            self.inner
533                .ready()
534                .await
535                .map_err(|e| {
536                    tonic::Status::unknown(
537                        format!("Service was not ready: {}", e.into()),
538                    )
539                })?;
540            let codec = tonic::codec::ProstCodec::default();
541            let path = http::uri::PathAndQuery::from_static(
542                "/nominal.metadata.v2.ResourceMetadataService/FindSimilarPropertyKeyMatches",
543            );
544            let mut req = request.into_request();
545            req.extensions_mut()
546                .insert(
547                    GrpcMethod::new(
548                        "nominal.metadata.v2.ResourceMetadataService",
549                        "FindSimilarPropertyKeyMatches",
550                    ),
551                );
552            self.inner.unary(req, path, codec).await
553        }
554        pub async fn search_labels(
555            &mut self,
556            request: impl tonic::IntoRequest<super::SearchLabelsRequest>,
557        ) -> std::result::Result<
558            tonic::Response<super::SearchLabelsResponse>,
559            tonic::Status,
560        > {
561            self.inner
562                .ready()
563                .await
564                .map_err(|e| {
565                    tonic::Status::unknown(
566                        format!("Service was not ready: {}", e.into()),
567                    )
568                })?;
569            let codec = tonic::codec::ProstCodec::default();
570            let path = http::uri::PathAndQuery::from_static(
571                "/nominal.metadata.v2.ResourceMetadataService/SearchLabels",
572            );
573            let mut req = request.into_request();
574            req.extensions_mut()
575                .insert(
576                    GrpcMethod::new(
577                        "nominal.metadata.v2.ResourceMetadataService",
578                        "SearchLabels",
579                    ),
580                );
581            self.inner.unary(req, path, codec).await
582        }
583        pub async fn search_property_keys(
584            &mut self,
585            request: impl tonic::IntoRequest<super::SearchPropertyKeysRequest>,
586        ) -> std::result::Result<
587            tonic::Response<super::SearchPropertyKeysResponse>,
588            tonic::Status,
589        > {
590            self.inner
591                .ready()
592                .await
593                .map_err(|e| {
594                    tonic::Status::unknown(
595                        format!("Service was not ready: {}", e.into()),
596                    )
597                })?;
598            let codec = tonic::codec::ProstCodec::default();
599            let path = http::uri::PathAndQuery::from_static(
600                "/nominal.metadata.v2.ResourceMetadataService/SearchPropertyKeys",
601            );
602            let mut req = request.into_request();
603            req.extensions_mut()
604                .insert(
605                    GrpcMethod::new(
606                        "nominal.metadata.v2.ResourceMetadataService",
607                        "SearchPropertyKeys",
608                    ),
609                );
610            self.inner.unary(req, path, codec).await
611        }
612        pub async fn search_property_values(
613            &mut self,
614            request: impl tonic::IntoRequest<super::SearchPropertyValuesRequest>,
615        ) -> std::result::Result<
616            tonic::Response<super::SearchPropertyValuesResponse>,
617            tonic::Status,
618        > {
619            self.inner
620                .ready()
621                .await
622                .map_err(|e| {
623                    tonic::Status::unknown(
624                        format!("Service was not ready: {}", e.into()),
625                    )
626                })?;
627            let codec = tonic::codec::ProstCodec::default();
628            let path = http::uri::PathAndQuery::from_static(
629                "/nominal.metadata.v2.ResourceMetadataService/SearchPropertyValues",
630            );
631            let mut req = request.into_request();
632            req.extensions_mut()
633                .insert(
634                    GrpcMethod::new(
635                        "nominal.metadata.v2.ResourceMetadataService",
636                        "SearchPropertyValues",
637                    ),
638                );
639            self.inner.unary(req, path, codec).await
640        }
641        pub async fn get_numeric_property_statistics(
642            &mut self,
643            request: impl tonic::IntoRequest<super::GetNumericPropertyStatisticsRequest>,
644        ) -> std::result::Result<
645            tonic::Response<super::GetNumericPropertyStatisticsResponse>,
646            tonic::Status,
647        > {
648            self.inner
649                .ready()
650                .await
651                .map_err(|e| {
652                    tonic::Status::unknown(
653                        format!("Service was not ready: {}", e.into()),
654                    )
655                })?;
656            let codec = tonic::codec::ProstCodec::default();
657            let path = http::uri::PathAndQuery::from_static(
658                "/nominal.metadata.v2.ResourceMetadataService/GetNumericPropertyStatistics",
659            );
660            let mut req = request.into_request();
661            req.extensions_mut()
662                .insert(
663                    GrpcMethod::new(
664                        "nominal.metadata.v2.ResourceMetadataService",
665                        "GetNumericPropertyStatistics",
666                    ),
667                );
668            self.inner.unary(req, path, codec).await
669        }
670    }
671}