1#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Namespace {
6    #[prost(string, tag="1")]
9    pub name: std::string::String,
10    #[prost(map="string, string", tag="2")]
14    pub labels: ::std::collections::HashMap<std::string::String, std::string::String>,
15}
16#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct Endpoint {
21    #[prost(string, tag="1")]
24    pub name: std::string::String,
25    #[prost(string, tag="2")]
34    pub address: std::string::String,
35    #[prost(int32, tag="3")]
37    pub port: i32,
38    #[prost(map="string, string", tag="4")]
43    pub metadata: ::std::collections::HashMap<std::string::String, std::string::String>,
44}
45#[derive(Clone, PartialEq, ::prost::Message)]
50pub struct Service {
51    #[prost(string, tag="1")]
54    pub name: std::string::String,
55    #[prost(map="string, string", tag="2")]
60    pub metadata: ::std::collections::HashMap<std::string::String, std::string::String>,
61    #[prost(message, repeated, tag="3")]
64    pub endpoints: ::std::vec::Vec<Endpoint>,
65}
66#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct ResolveServiceRequest {
70    #[prost(string, tag="1")]
72    pub name: std::string::String,
73    #[prost(int32, tag="2")]
77    pub max_endpoints: i32,
78    #[prost(string, tag="3")]
97    pub endpoint_filter: std::string::String,
98}
99#[derive(Clone, PartialEq, ::prost::Message)]
101pub struct ResolveServiceResponse {
102    #[prost(message, optional, tag="1")]
103    pub service: ::std::option::Option<Service>,
104}
105# [ doc = r" Generated client implementations." ] pub mod lookup_service_client { # ! [ allow ( unused_variables , dead_code , missing_docs ) ] use tonic :: codegen :: * ; # [ doc = " Service Directory API for looking up service data at runtime." ] pub struct LookupServiceClient < T > { inner : tonic :: client :: Grpc < T > , } impl < T > LookupServiceClient < T > where T : tonic :: client :: GrpcService < tonic :: body :: BoxBody > , T :: ResponseBody : Body + HttpBody + Send + 'static , T :: Error : Into < StdError > , < T :: ResponseBody as HttpBody > :: Error : Into < StdError > + Send , { pub fn new ( inner : T ) -> Self { let inner = tonic :: client :: Grpc :: new ( inner ) ; Self { inner } } pub fn with_interceptor ( inner : T , interceptor : impl Into < tonic :: Interceptor > ) -> Self { let inner = tonic :: client :: Grpc :: with_interceptor ( inner , interceptor ) ; Self { inner } } # [ doc = " Returns a [service][google.cloud.servicedirectory.v1beta1.Service] and its" ] # [ doc = " associated endpoints." ] # [ doc = " Resolving a service is not considered an active developer method." ] pub async fn resolve_service ( & mut self , request : impl tonic :: IntoRequest < super :: ResolveServiceRequest > , ) -> Result < tonic :: Response < super :: ResolveServiceResponse > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.LookupService/ResolveService" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } } impl < T : Clone > Clone for LookupServiceClient < T > { fn clone ( & self ) -> Self { Self { inner : self . inner . clone ( ) , } } } impl < T > std :: fmt :: Debug for LookupServiceClient < T > { fn fmt ( & self , f : & mut std :: fmt :: Formatter < '_ > ) -> std :: fmt :: Result { write ! ( f , "LookupServiceClient {{ ... }}" ) } } }#[derive(Clone, PartialEq, ::prost::Message)]
107pub struct CreateNamespaceRequest {
108    #[prost(string, tag="1")]
111    pub parent: std::string::String,
112    #[prost(string, tag="2")]
120    pub namespace_id: std::string::String,
121    #[prost(message, optional, tag="3")]
123    pub namespace: ::std::option::Option<Namespace>,
124}
125#[derive(Clone, PartialEq, ::prost::Message)]
127pub struct ListNamespacesRequest {
128    #[prost(string, tag="1")]
131    pub parent: std::string::String,
132    #[prost(int32, tag="2")]
134    pub page_size: i32,
135    #[prost(string, tag="3")]
137    pub page_token: std::string::String,
138    #[prost(string, tag="4")]
162    pub filter: std::string::String,
163    #[prost(string, tag="5")]
173    pub order_by: std::string::String,
174}
175#[derive(Clone, PartialEq, ::prost::Message)]
177pub struct ListNamespacesResponse {
178    #[prost(message, repeated, tag="1")]
180    pub namespaces: ::std::vec::Vec<Namespace>,
181    #[prost(string, tag="2")]
184    pub next_page_token: std::string::String,
185}
186#[derive(Clone, PartialEq, ::prost::Message)]
188pub struct GetNamespaceRequest {
189    #[prost(string, tag="1")]
191    pub name: std::string::String,
192}
193#[derive(Clone, PartialEq, ::prost::Message)]
195pub struct UpdateNamespaceRequest {
196    #[prost(message, optional, tag="1")]
198    pub namespace: ::std::option::Option<Namespace>,
199    #[prost(message, optional, tag="2")]
201    pub update_mask: ::std::option::Option<::prost_types::FieldMask>,
202}
203#[derive(Clone, PartialEq, ::prost::Message)]
205pub struct DeleteNamespaceRequest {
206    #[prost(string, tag="1")]
208    pub name: std::string::String,
209}
210#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct CreateServiceRequest {
213    #[prost(string, tag="1")]
215    pub parent: std::string::String,
216    #[prost(string, tag="2")]
224    pub service_id: std::string::String,
225    #[prost(message, optional, tag="3")]
227    pub service: ::std::option::Option<Service>,
228}
229#[derive(Clone, PartialEq, ::prost::Message)]
231pub struct ListServicesRequest {
232    #[prost(string, tag="1")]
235    pub parent: std::string::String,
236    #[prost(int32, tag="2")]
238    pub page_size: i32,
239    #[prost(string, tag="3")]
242    pub page_token: std::string::String,
243    #[prost(string, tag="4")]
267    pub filter: std::string::String,
268    #[prost(string, tag="5")]
270    pub order_by: std::string::String,
271}
272#[derive(Clone, PartialEq, ::prost::Message)]
274pub struct ListServicesResponse {
275    #[prost(message, repeated, tag="1")]
277    pub services: ::std::vec::Vec<Service>,
278    #[prost(string, tag="2")]
281    pub next_page_token: std::string::String,
282}
283#[derive(Clone, PartialEq, ::prost::Message)]
287pub struct GetServiceRequest {
288    #[prost(string, tag="1")]
290    pub name: std::string::String,
291}
292#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct UpdateServiceRequest {
295    #[prost(message, optional, tag="1")]
297    pub service: ::std::option::Option<Service>,
298    #[prost(message, optional, tag="2")]
300    pub update_mask: ::std::option::Option<::prost_types::FieldMask>,
301}
302#[derive(Clone, PartialEq, ::prost::Message)]
304pub struct DeleteServiceRequest {
305    #[prost(string, tag="1")]
307    pub name: std::string::String,
308}
309#[derive(Clone, PartialEq, ::prost::Message)]
311pub struct CreateEndpointRequest {
312    #[prost(string, tag="1")]
314    pub parent: std::string::String,
315    #[prost(string, tag="2")]
323    pub endpoint_id: std::string::String,
324    #[prost(message, optional, tag="3")]
326    pub endpoint: ::std::option::Option<Endpoint>,
327}
328#[derive(Clone, PartialEq, ::prost::Message)]
330pub struct ListEndpointsRequest {
331    #[prost(string, tag="1")]
334    pub parent: std::string::String,
335    #[prost(int32, tag="2")]
337    pub page_size: i32,
338    #[prost(string, tag="3")]
341    pub page_token: std::string::String,
342    #[prost(string, tag="4")]
368    pub filter: std::string::String,
369    #[prost(string, tag="5")]
371    pub order_by: std::string::String,
372}
373#[derive(Clone, PartialEq, ::prost::Message)]
375pub struct ListEndpointsResponse {
376    #[prost(message, repeated, tag="1")]
378    pub endpoints: ::std::vec::Vec<Endpoint>,
379    #[prost(string, tag="2")]
382    pub next_page_token: std::string::String,
383}
384#[derive(Clone, PartialEq, ::prost::Message)]
388pub struct GetEndpointRequest {
389    #[prost(string, tag="1")]
391    pub name: std::string::String,
392}
393#[derive(Clone, PartialEq, ::prost::Message)]
395pub struct UpdateEndpointRequest {
396    #[prost(message, optional, tag="1")]
398    pub endpoint: ::std::option::Option<Endpoint>,
399    #[prost(message, optional, tag="2")]
401    pub update_mask: ::std::option::Option<::prost_types::FieldMask>,
402}
403#[derive(Clone, PartialEq, ::prost::Message)]
405pub struct DeleteEndpointRequest {
406    #[prost(string, tag="1")]
408    pub name: std::string::String,
409}
410# [ doc = r" Generated client implementations." ] pub mod registration_service_client { # ! [ allow ( unused_variables , dead_code , missing_docs ) ] use tonic :: codegen :: * ; # [ doc = " Service Directory API for registering services. It defines the following" ] # [ doc = " resource model:" ] # [ doc = "" ] # [ doc = " - The API has a collection of" ] # [ doc = " [Namespace][google.cloud.servicedirectory.v1beta1.Namespace]" ] # [ doc = " resources, named `projects/*/locations/*/namespaces/*`." ] # [ doc = "" ] # [ doc = " - Each Namespace has a collection of" ] # [ doc = " [Service][google.cloud.servicedirectory.v1beta1.Service] resources, named" ] # [ doc = " `projects/*/locations/*/namespaces/*/services/*`." ] # [ doc = "" ] # [ doc = " - Each Service has a collection of" ] # [ doc = " [Endpoint][google.cloud.servicedirectory.v1beta1.Endpoint]" ] # [ doc = " resources, named" ] # [ doc = " `projects/*/locations/*/namespaces/*/services/*/endpoints/*`." ] pub struct RegistrationServiceClient < T > { inner : tonic :: client :: Grpc < T > , } impl < T > RegistrationServiceClient < T > where T : tonic :: client :: GrpcService < tonic :: body :: BoxBody > , T :: ResponseBody : Body + HttpBody + Send + 'static , T :: Error : Into < StdError > , < T :: ResponseBody as HttpBody > :: Error : Into < StdError > + Send , { pub fn new ( inner : T ) -> Self { let inner = tonic :: client :: Grpc :: new ( inner ) ; Self { inner } } pub fn with_interceptor ( inner : T , interceptor : impl Into < tonic :: Interceptor > ) -> Self { let inner = tonic :: client :: Grpc :: with_interceptor ( inner , interceptor ) ; Self { inner } } # [ doc = " Creates a namespace, and returns the new Namespace." ] pub async fn create_namespace ( & mut self , request : impl tonic :: IntoRequest < super :: CreateNamespaceRequest > , ) -> Result < tonic :: Response < super :: Namespace > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/CreateNamespace" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Lists all namespaces." ] pub async fn list_namespaces ( & mut self , request : impl tonic :: IntoRequest < super :: ListNamespacesRequest > , ) -> Result < tonic :: Response < super :: ListNamespacesResponse > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/ListNamespaces" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Gets a namespace." ] pub async fn get_namespace ( & mut self , request : impl tonic :: IntoRequest < super :: GetNamespaceRequest > , ) -> Result < tonic :: Response < super :: Namespace > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/GetNamespace" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Updates a namespace." ] pub async fn update_namespace ( & mut self , request : impl tonic :: IntoRequest < super :: UpdateNamespaceRequest > , ) -> Result < tonic :: Response < super :: Namespace > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/UpdateNamespace" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Deletes a namespace. This also deletes all services and endpoints in" ] # [ doc = " the namespace." ] pub async fn delete_namespace ( & mut self , request : impl tonic :: IntoRequest < super :: DeleteNamespaceRequest > , ) -> Result < tonic :: Response < ( ) > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/DeleteNamespace" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Creates a service, and returns the new Service." ] pub async fn create_service ( & mut self , request : impl tonic :: IntoRequest < super :: CreateServiceRequest > , ) -> Result < tonic :: Response < super :: Service > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/CreateService" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Lists all services belonging to a namespace." ] pub async fn list_services ( & mut self , request : impl tonic :: IntoRequest < super :: ListServicesRequest > , ) -> Result < tonic :: Response < super :: ListServicesResponse > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/ListServices" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Gets a service." ] pub async fn get_service ( & mut self , request : impl tonic :: IntoRequest < super :: GetServiceRequest > , ) -> Result < tonic :: Response < super :: Service > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/GetService" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Updates a service." ] pub async fn update_service ( & mut self , request : impl tonic :: IntoRequest < super :: UpdateServiceRequest > , ) -> Result < tonic :: Response < super :: Service > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/UpdateService" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Deletes a service. This also deletes all endpoints associated with" ] # [ doc = " the service." ] pub async fn delete_service ( & mut self , request : impl tonic :: IntoRequest < super :: DeleteServiceRequest > , ) -> Result < tonic :: Response < ( ) > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/DeleteService" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Creates a endpoint, and returns the new Endpoint." ] pub async fn create_endpoint ( & mut self , request : impl tonic :: IntoRequest < super :: CreateEndpointRequest > , ) -> Result < tonic :: Response < super :: Endpoint > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/CreateEndpoint" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Lists all endpoints." ] pub async fn list_endpoints ( & mut self , request : impl tonic :: IntoRequest < super :: ListEndpointsRequest > , ) -> Result < tonic :: Response < super :: ListEndpointsResponse > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/ListEndpoints" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Gets a endpoint." ] pub async fn get_endpoint ( & mut self , request : impl tonic :: IntoRequest < super :: GetEndpointRequest > , ) -> Result < tonic :: Response < super :: Endpoint > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/GetEndpoint" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Updates a endpoint." ] pub async fn update_endpoint ( & mut self , request : impl tonic :: IntoRequest < super :: UpdateEndpointRequest > , ) -> Result < tonic :: Response < super :: Endpoint > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/UpdateEndpoint" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Deletes a endpoint." ] pub async fn delete_endpoint ( & mut self , request : impl tonic :: IntoRequest < super :: DeleteEndpointRequest > , ) -> Result < tonic :: Response < ( ) > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/DeleteEndpoint" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Gets the IAM Policy for a resource (namespace or service only)." ] pub async fn get_iam_policy ( & mut self , request : impl tonic :: IntoRequest < super :: super :: super :: super :: iam :: v1 :: GetIamPolicyRequest > , ) -> Result < tonic :: Response < super :: super :: super :: super :: iam :: v1 :: Policy > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/GetIamPolicy" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Sets the IAM Policy for a resource (namespace or service only)." ] pub async fn set_iam_policy ( & mut self , request : impl tonic :: IntoRequest < super :: super :: super :: super :: iam :: v1 :: SetIamPolicyRequest > , ) -> Result < tonic :: Response < super :: super :: super :: super :: iam :: v1 :: Policy > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/SetIamPolicy" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } # [ doc = " Tests IAM permissions for a resource (namespace or service only)." ] pub async fn test_iam_permissions ( & mut self , request : impl tonic :: IntoRequest < super :: super :: super :: super :: iam :: v1 :: TestIamPermissionsRequest > , ) -> Result < tonic :: Response < super :: super :: super :: super :: iam :: v1 :: TestIamPermissionsResponse > , tonic :: Status > { self . inner . ready ( ) . await . map_err ( | e | { tonic :: Status :: new ( tonic :: Code :: Unknown , format ! ( "Service was not ready: {}" , e . into ( ) ) ) } ) ? ; let codec = tonic :: codec :: ProstCodec :: default ( ) ; let path = http :: uri :: PathAndQuery :: from_static ( "/google.cloud.servicedirectory.v1beta1.RegistrationService/TestIamPermissions" ) ; self . inner . unary ( request . into_request ( ) , path , codec ) . await } } impl < T : Clone > Clone for RegistrationServiceClient < T > { fn clone ( & self ) -> Self { Self { inner : self . inner . clone ( ) , } } } impl < T > std :: fmt :: Debug for RegistrationServiceClient < T > { fn fmt ( & self , f : & mut std :: fmt :: Formatter < '_ > ) -> std :: fmt :: Result { write ! ( f , "RegistrationServiceClient {{ ... }}" ) } } }use serde :: { Serialize , Deserialize } ;