google_cloud_dataplex_v1/client.rs
1// Copyright 2025 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Code generated by sidekick. DO NOT EDIT.
16#![allow(rustdoc::redundant_explicit_links)]
17#![allow(rustdoc::broken_intra_doc_links)]
18
19/// Implements a client for the Cloud Dataplex API.
20///
21/// # Example
22/// ```
23/// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
24/// use google_cloud_gax::paginator::ItemPaginator as _;
25/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
26/// let client = BusinessGlossaryService::builder().build().await?;
27/// let parent = "parent_value";
28/// let mut list = client.list_glossaries()
29/// .set_parent(parent)
30/// .by_item();
31/// while let Some(item) = list.next().await.transpose()? {
32/// println!("{:?}", item);
33/// }
34/// # Ok(()) }
35/// ```
36///
37/// # Service Description
38///
39/// BusinessGlossaryService provides APIs for managing business glossary
40/// resources for enterprise customers.
41/// The resources currently supported in Business Glossary are:
42///
43/// 1. Glossary
44/// 1. GlossaryCategory
45/// 1. GlossaryTerm
46///
47/// # Configuration
48///
49/// To configure `BusinessGlossaryService` use the `with_*` methods in the type returned
50/// by [builder()][BusinessGlossaryService::builder]. The default configuration should
51/// work for most applications. Common configuration changes include
52///
53/// * [with_endpoint()]: by default this client uses the global default endpoint
54/// (`https://dataplex.googleapis.com`). Applications using regional
55/// endpoints or running in restricted networks (e.g. a network configured
56// with [Private Google Access with VPC Service Controls]) may want to
57/// override this default.
58/// * [with_credentials()]: by default this client uses
59/// [Application Default Credentials]. Applications using custom
60/// authentication may need to override this default.
61///
62/// [with_endpoint()]: super::builder::business_glossary_service::ClientBuilder::with_endpoint
63/// [with_credentials()]: super::builder::business_glossary_service::ClientBuilder::with_credentials
64/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
65/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
66///
67/// # Pooling and Cloning
68///
69/// `BusinessGlossaryService` holds a connection pool internally, it is advised to
70/// create one and reuse it. You do not need to wrap `BusinessGlossaryService` in
71/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
72/// already uses an `Arc` internally.
73#[derive(Clone, Debug)]
74pub struct BusinessGlossaryService {
75 inner: std::sync::Arc<dyn super::stub::dynamic::BusinessGlossaryService>,
76}
77
78impl BusinessGlossaryService {
79 /// Returns a builder for [BusinessGlossaryService].
80 ///
81 /// ```
82 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
83 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
84 /// let client = BusinessGlossaryService::builder().build().await?;
85 /// # Ok(()) }
86 /// ```
87 pub fn builder() -> super::builder::business_glossary_service::ClientBuilder {
88 crate::new_client_builder(super::builder::business_glossary_service::client::Factory)
89 }
90
91 /// Creates a new client from the provided stub.
92 ///
93 /// The most common case for calling this function is in tests mocking the
94 /// client's behavior.
95 pub fn from_stub<T>(stub: T) -> Self
96 where
97 T: super::stub::BusinessGlossaryService + 'static,
98 {
99 Self {
100 inner: std::sync::Arc::new(stub),
101 }
102 }
103
104 pub(crate) async fn new(
105 config: gaxi::options::ClientConfig,
106 ) -> crate::ClientBuilderResult<Self> {
107 let inner = Self::build_inner(config).await?;
108 Ok(Self { inner })
109 }
110
111 async fn build_inner(
112 conf: gaxi::options::ClientConfig,
113 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::BusinessGlossaryService>>
114 {
115 if gaxi::options::tracing_enabled(&conf) {
116 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
117 }
118 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
119 }
120
121 async fn build_transport(
122 conf: gaxi::options::ClientConfig,
123 ) -> crate::ClientBuilderResult<impl super::stub::BusinessGlossaryService> {
124 super::transport::BusinessGlossaryService::new(conf).await
125 }
126
127 async fn build_with_tracing(
128 conf: gaxi::options::ClientConfig,
129 ) -> crate::ClientBuilderResult<impl super::stub::BusinessGlossaryService> {
130 Self::build_transport(conf)
131 .await
132 .map(super::tracing::BusinessGlossaryService::new)
133 }
134
135 /// Creates a new Glossary resource.
136 ///
137 /// # Long running operations
138 ///
139 /// This method is used to start, and/or poll a [long-running Operation].
140 /// The [Working with long-running operations] chapter in the [user guide]
141 /// covers these operations in detail.
142 ///
143 /// [long-running operation]: https://google.aip.dev/151
144 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
145 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
146 ///
147 /// # Example
148 /// ```
149 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
150 /// use google_cloud_lro::Poller;
151 /// use google_cloud_dataplex_v1::model::Glossary;
152 /// use google_cloud_dataplex_v1::Result;
153 /// async fn sample(
154 /// client: &BusinessGlossaryService, parent: &str
155 /// ) -> Result<()> {
156 /// let response = client.create_glossary()
157 /// .set_parent(parent)
158 /// .set_glossary_id("glossary_id_value")
159 /// .set_glossary(
160 /// Glossary::new()/* set fields */
161 /// )
162 /// .poller().until_done().await?;
163 /// println!("response {:?}", response);
164 /// Ok(())
165 /// }
166 /// ```
167 pub fn create_glossary(&self) -> super::builder::business_glossary_service::CreateGlossary {
168 super::builder::business_glossary_service::CreateGlossary::new(self.inner.clone())
169 }
170
171 /// Updates a Glossary resource.
172 ///
173 /// # Long running operations
174 ///
175 /// This method is used to start, and/or poll a [long-running Operation].
176 /// The [Working with long-running operations] chapter in the [user guide]
177 /// covers these operations in detail.
178 ///
179 /// [long-running operation]: https://google.aip.dev/151
180 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
181 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
182 ///
183 /// # Example
184 /// ```
185 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
186 /// use google_cloud_lro::Poller;
187 /// # extern crate wkt as google_cloud_wkt;
188 /// use google_cloud_wkt::FieldMask;
189 /// use google_cloud_dataplex_v1::model::Glossary;
190 /// use google_cloud_dataplex_v1::Result;
191 /// async fn sample(
192 /// client: &BusinessGlossaryService, name: &str
193 /// ) -> Result<()> {
194 /// let response = client.update_glossary()
195 /// .set_glossary(
196 /// Glossary::new().set_name(name)/* set fields */
197 /// )
198 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
199 /// .poller().until_done().await?;
200 /// println!("response {:?}", response);
201 /// Ok(())
202 /// }
203 /// ```
204 pub fn update_glossary(&self) -> super::builder::business_glossary_service::UpdateGlossary {
205 super::builder::business_glossary_service::UpdateGlossary::new(self.inner.clone())
206 }
207
208 /// Deletes a Glossary resource. All the categories and terms within the
209 /// Glossary must be deleted before the Glossary can be deleted.
210 ///
211 /// # Long running operations
212 ///
213 /// This method is used to start, and/or poll a [long-running Operation].
214 /// The [Working with long-running operations] chapter in the [user guide]
215 /// covers these operations in detail.
216 ///
217 /// [long-running operation]: https://google.aip.dev/151
218 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
219 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
220 ///
221 /// # Example
222 /// ```
223 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
224 /// use google_cloud_lro::Poller;
225 /// use google_cloud_dataplex_v1::Result;
226 /// async fn sample(
227 /// client: &BusinessGlossaryService, name: &str
228 /// ) -> Result<()> {
229 /// client.delete_glossary()
230 /// .set_name(name)
231 /// .poller().until_done().await?;
232 /// Ok(())
233 /// }
234 /// ```
235 pub fn delete_glossary(&self) -> super::builder::business_glossary_service::DeleteGlossary {
236 super::builder::business_glossary_service::DeleteGlossary::new(self.inner.clone())
237 }
238
239 /// Gets a Glossary resource.
240 ///
241 /// # Example
242 /// ```
243 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
244 /// use google_cloud_dataplex_v1::Result;
245 /// async fn sample(
246 /// client: &BusinessGlossaryService, name: &str
247 /// ) -> Result<()> {
248 /// let response = client.get_glossary()
249 /// .set_name(name)
250 /// .send().await?;
251 /// println!("response {:?}", response);
252 /// Ok(())
253 /// }
254 /// ```
255 pub fn get_glossary(&self) -> super::builder::business_glossary_service::GetGlossary {
256 super::builder::business_glossary_service::GetGlossary::new(self.inner.clone())
257 }
258
259 /// Lists Glossary resources in a project and location.
260 ///
261 /// # Example
262 /// ```
263 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
264 /// use google_cloud_gax::paginator::ItemPaginator as _;
265 /// use google_cloud_dataplex_v1::Result;
266 /// async fn sample(
267 /// client: &BusinessGlossaryService, parent: &str
268 /// ) -> Result<()> {
269 /// let mut list = client.list_glossaries()
270 /// .set_parent(parent)
271 /// .by_item();
272 /// while let Some(item) = list.next().await.transpose()? {
273 /// println!("{:?}", item);
274 /// }
275 /// Ok(())
276 /// }
277 /// ```
278 pub fn list_glossaries(&self) -> super::builder::business_glossary_service::ListGlossaries {
279 super::builder::business_glossary_service::ListGlossaries::new(self.inner.clone())
280 }
281
282 /// Creates a new GlossaryCategory resource.
283 ///
284 /// # Example
285 /// ```
286 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
287 /// use google_cloud_dataplex_v1::Result;
288 /// async fn sample(
289 /// client: &BusinessGlossaryService
290 /// ) -> Result<()> {
291 /// let response = client.create_glossary_category()
292 /// /* set fields */
293 /// .send().await?;
294 /// println!("response {:?}", response);
295 /// Ok(())
296 /// }
297 /// ```
298 pub fn create_glossary_category(
299 &self,
300 ) -> super::builder::business_glossary_service::CreateGlossaryCategory {
301 super::builder::business_glossary_service::CreateGlossaryCategory::new(self.inner.clone())
302 }
303
304 /// Updates a GlossaryCategory resource.
305 ///
306 /// # Example
307 /// ```
308 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
309 /// use google_cloud_dataplex_v1::Result;
310 /// async fn sample(
311 /// client: &BusinessGlossaryService
312 /// ) -> Result<()> {
313 /// let response = client.update_glossary_category()
314 /// /* set fields */
315 /// .send().await?;
316 /// println!("response {:?}", response);
317 /// Ok(())
318 /// }
319 /// ```
320 pub fn update_glossary_category(
321 &self,
322 ) -> super::builder::business_glossary_service::UpdateGlossaryCategory {
323 super::builder::business_glossary_service::UpdateGlossaryCategory::new(self.inner.clone())
324 }
325
326 /// Deletes a GlossaryCategory resource. All the GlossaryCategories and
327 /// GlossaryTerms nested directly under the specified GlossaryCategory will be
328 /// moved one level up to the parent in the hierarchy.
329 ///
330 /// # Example
331 /// ```
332 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
333 /// use google_cloud_dataplex_v1::Result;
334 /// async fn sample(
335 /// client: &BusinessGlossaryService
336 /// ) -> Result<()> {
337 /// client.delete_glossary_category()
338 /// /* set fields */
339 /// .send().await?;
340 /// Ok(())
341 /// }
342 /// ```
343 pub fn delete_glossary_category(
344 &self,
345 ) -> super::builder::business_glossary_service::DeleteGlossaryCategory {
346 super::builder::business_glossary_service::DeleteGlossaryCategory::new(self.inner.clone())
347 }
348
349 /// Gets a GlossaryCategory resource.
350 ///
351 /// # Example
352 /// ```
353 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
354 /// use google_cloud_dataplex_v1::Result;
355 /// async fn sample(
356 /// client: &BusinessGlossaryService
357 /// ) -> Result<()> {
358 /// let response = client.get_glossary_category()
359 /// /* set fields */
360 /// .send().await?;
361 /// println!("response {:?}", response);
362 /// Ok(())
363 /// }
364 /// ```
365 pub fn get_glossary_category(
366 &self,
367 ) -> super::builder::business_glossary_service::GetGlossaryCategory {
368 super::builder::business_glossary_service::GetGlossaryCategory::new(self.inner.clone())
369 }
370
371 /// Lists GlossaryCategory resources in a Glossary.
372 ///
373 /// # Example
374 /// ```
375 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
376 /// use google_cloud_gax::paginator::ItemPaginator as _;
377 /// use google_cloud_dataplex_v1::Result;
378 /// async fn sample(
379 /// client: &BusinessGlossaryService, parent: &str
380 /// ) -> Result<()> {
381 /// let mut list = client.list_glossary_categories()
382 /// .set_parent(parent)
383 /// .by_item();
384 /// while let Some(item) = list.next().await.transpose()? {
385 /// println!("{:?}", item);
386 /// }
387 /// Ok(())
388 /// }
389 /// ```
390 pub fn list_glossary_categories(
391 &self,
392 ) -> super::builder::business_glossary_service::ListGlossaryCategories {
393 super::builder::business_glossary_service::ListGlossaryCategories::new(self.inner.clone())
394 }
395
396 /// Creates a new GlossaryTerm resource.
397 ///
398 /// # Example
399 /// ```
400 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
401 /// use google_cloud_dataplex_v1::Result;
402 /// async fn sample(
403 /// client: &BusinessGlossaryService
404 /// ) -> Result<()> {
405 /// let response = client.create_glossary_term()
406 /// /* set fields */
407 /// .send().await?;
408 /// println!("response {:?}", response);
409 /// Ok(())
410 /// }
411 /// ```
412 pub fn create_glossary_term(
413 &self,
414 ) -> super::builder::business_glossary_service::CreateGlossaryTerm {
415 super::builder::business_glossary_service::CreateGlossaryTerm::new(self.inner.clone())
416 }
417
418 /// Updates a GlossaryTerm resource.
419 ///
420 /// # Example
421 /// ```
422 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
423 /// use google_cloud_dataplex_v1::Result;
424 /// async fn sample(
425 /// client: &BusinessGlossaryService
426 /// ) -> Result<()> {
427 /// let response = client.update_glossary_term()
428 /// /* set fields */
429 /// .send().await?;
430 /// println!("response {:?}", response);
431 /// Ok(())
432 /// }
433 /// ```
434 pub fn update_glossary_term(
435 &self,
436 ) -> super::builder::business_glossary_service::UpdateGlossaryTerm {
437 super::builder::business_glossary_service::UpdateGlossaryTerm::new(self.inner.clone())
438 }
439
440 /// Deletes a GlossaryTerm resource.
441 ///
442 /// # Example
443 /// ```
444 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
445 /// use google_cloud_dataplex_v1::Result;
446 /// async fn sample(
447 /// client: &BusinessGlossaryService
448 /// ) -> Result<()> {
449 /// client.delete_glossary_term()
450 /// /* set fields */
451 /// .send().await?;
452 /// Ok(())
453 /// }
454 /// ```
455 pub fn delete_glossary_term(
456 &self,
457 ) -> super::builder::business_glossary_service::DeleteGlossaryTerm {
458 super::builder::business_glossary_service::DeleteGlossaryTerm::new(self.inner.clone())
459 }
460
461 /// Gets a GlossaryTerm resource.
462 ///
463 /// # Example
464 /// ```
465 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
466 /// use google_cloud_dataplex_v1::Result;
467 /// async fn sample(
468 /// client: &BusinessGlossaryService
469 /// ) -> Result<()> {
470 /// let response = client.get_glossary_term()
471 /// /* set fields */
472 /// .send().await?;
473 /// println!("response {:?}", response);
474 /// Ok(())
475 /// }
476 /// ```
477 pub fn get_glossary_term(&self) -> super::builder::business_glossary_service::GetGlossaryTerm {
478 super::builder::business_glossary_service::GetGlossaryTerm::new(self.inner.clone())
479 }
480
481 /// Lists GlossaryTerm resources in a Glossary.
482 ///
483 /// # Example
484 /// ```
485 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
486 /// use google_cloud_gax::paginator::ItemPaginator as _;
487 /// use google_cloud_dataplex_v1::Result;
488 /// async fn sample(
489 /// client: &BusinessGlossaryService, parent: &str
490 /// ) -> Result<()> {
491 /// let mut list = client.list_glossary_terms()
492 /// .set_parent(parent)
493 /// .by_item();
494 /// while let Some(item) = list.next().await.transpose()? {
495 /// println!("{:?}", item);
496 /// }
497 /// Ok(())
498 /// }
499 /// ```
500 pub fn list_glossary_terms(
501 &self,
502 ) -> super::builder::business_glossary_service::ListGlossaryTerms {
503 super::builder::business_glossary_service::ListGlossaryTerms::new(self.inner.clone())
504 }
505
506 /// Lists information about the supported locations for this service.
507 ///
508 /// # Example
509 /// ```
510 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
511 /// use google_cloud_gax::paginator::ItemPaginator as _;
512 /// use google_cloud_dataplex_v1::Result;
513 /// async fn sample(
514 /// client: &BusinessGlossaryService
515 /// ) -> Result<()> {
516 /// let mut list = client.list_locations()
517 /// /* set fields */
518 /// .by_item();
519 /// while let Some(item) = list.next().await.transpose()? {
520 /// println!("{:?}", item);
521 /// }
522 /// Ok(())
523 /// }
524 /// ```
525 pub fn list_locations(&self) -> super::builder::business_glossary_service::ListLocations {
526 super::builder::business_glossary_service::ListLocations::new(self.inner.clone())
527 }
528
529 /// Gets information about a location.
530 ///
531 /// # Example
532 /// ```
533 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
534 /// use google_cloud_dataplex_v1::Result;
535 /// async fn sample(
536 /// client: &BusinessGlossaryService
537 /// ) -> Result<()> {
538 /// let response = client.get_location()
539 /// /* set fields */
540 /// .send().await?;
541 /// println!("response {:?}", response);
542 /// Ok(())
543 /// }
544 /// ```
545 pub fn get_location(&self) -> super::builder::business_glossary_service::GetLocation {
546 super::builder::business_glossary_service::GetLocation::new(self.inner.clone())
547 }
548
549 /// Sets the access control policy on the specified resource. Replaces
550 /// any existing policy.
551 ///
552 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
553 /// errors.
554 ///
555 /// # Example
556 /// ```
557 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
558 /// use google_cloud_dataplex_v1::Result;
559 /// async fn sample(
560 /// client: &BusinessGlossaryService
561 /// ) -> Result<()> {
562 /// let response = client.set_iam_policy()
563 /// /* set fields */
564 /// .send().await?;
565 /// println!("response {:?}", response);
566 /// Ok(())
567 /// }
568 /// ```
569 pub fn set_iam_policy(&self) -> super::builder::business_glossary_service::SetIamPolicy {
570 super::builder::business_glossary_service::SetIamPolicy::new(self.inner.clone())
571 }
572
573 /// Gets the access control policy for a resource. Returns an empty policy
574 /// if the resource exists and does not have a policy set.
575 ///
576 /// # Example
577 /// ```
578 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
579 /// use google_cloud_dataplex_v1::Result;
580 /// async fn sample(
581 /// client: &BusinessGlossaryService
582 /// ) -> Result<()> {
583 /// let response = client.get_iam_policy()
584 /// /* set fields */
585 /// .send().await?;
586 /// println!("response {:?}", response);
587 /// Ok(())
588 /// }
589 /// ```
590 pub fn get_iam_policy(&self) -> super::builder::business_glossary_service::GetIamPolicy {
591 super::builder::business_glossary_service::GetIamPolicy::new(self.inner.clone())
592 }
593
594 /// Returns permissions that a caller has on the specified resource. If the
595 /// resource does not exist, this will return an empty set of
596 /// permissions, not a `NOT_FOUND` error.
597 ///
598 /// Note: This operation is designed to be used for building
599 /// permission-aware UIs and command-line tools, not for authorization
600 /// checking. This operation may "fail open" without warning.
601 ///
602 /// # Example
603 /// ```
604 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
605 /// use google_cloud_dataplex_v1::Result;
606 /// async fn sample(
607 /// client: &BusinessGlossaryService
608 /// ) -> Result<()> {
609 /// let response = client.test_iam_permissions()
610 /// /* set fields */
611 /// .send().await?;
612 /// println!("response {:?}", response);
613 /// Ok(())
614 /// }
615 /// ```
616 pub fn test_iam_permissions(
617 &self,
618 ) -> super::builder::business_glossary_service::TestIamPermissions {
619 super::builder::business_glossary_service::TestIamPermissions::new(self.inner.clone())
620 }
621
622 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
623 ///
624 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
625 ///
626 /// # Example
627 /// ```
628 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
629 /// use google_cloud_gax::paginator::ItemPaginator as _;
630 /// use google_cloud_dataplex_v1::Result;
631 /// async fn sample(
632 /// client: &BusinessGlossaryService
633 /// ) -> Result<()> {
634 /// let mut list = client.list_operations()
635 /// /* set fields */
636 /// .by_item();
637 /// while let Some(item) = list.next().await.transpose()? {
638 /// println!("{:?}", item);
639 /// }
640 /// Ok(())
641 /// }
642 /// ```
643 pub fn list_operations(&self) -> super::builder::business_glossary_service::ListOperations {
644 super::builder::business_glossary_service::ListOperations::new(self.inner.clone())
645 }
646
647 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
648 ///
649 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
650 ///
651 /// # Example
652 /// ```
653 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
654 /// use google_cloud_dataplex_v1::Result;
655 /// async fn sample(
656 /// client: &BusinessGlossaryService
657 /// ) -> Result<()> {
658 /// let response = client.get_operation()
659 /// /* set fields */
660 /// .send().await?;
661 /// println!("response {:?}", response);
662 /// Ok(())
663 /// }
664 /// ```
665 pub fn get_operation(&self) -> super::builder::business_glossary_service::GetOperation {
666 super::builder::business_glossary_service::GetOperation::new(self.inner.clone())
667 }
668
669 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
670 ///
671 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
672 ///
673 /// # Example
674 /// ```
675 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
676 /// use google_cloud_dataplex_v1::Result;
677 /// async fn sample(
678 /// client: &BusinessGlossaryService
679 /// ) -> Result<()> {
680 /// client.delete_operation()
681 /// /* set fields */
682 /// .send().await?;
683 /// Ok(())
684 /// }
685 /// ```
686 pub fn delete_operation(&self) -> super::builder::business_glossary_service::DeleteOperation {
687 super::builder::business_glossary_service::DeleteOperation::new(self.inner.clone())
688 }
689
690 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
691 ///
692 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
693 ///
694 /// # Example
695 /// ```
696 /// # use google_cloud_dataplex_v1::client::BusinessGlossaryService;
697 /// use google_cloud_dataplex_v1::Result;
698 /// async fn sample(
699 /// client: &BusinessGlossaryService
700 /// ) -> Result<()> {
701 /// client.cancel_operation()
702 /// /* set fields */
703 /// .send().await?;
704 /// Ok(())
705 /// }
706 /// ```
707 pub fn cancel_operation(&self) -> super::builder::business_glossary_service::CancelOperation {
708 super::builder::business_glossary_service::CancelOperation::new(self.inner.clone())
709 }
710}
711
712/// Implements a client for the Cloud Dataplex API.
713///
714/// # Example
715/// ```
716/// # use google_cloud_dataplex_v1::client::CatalogService;
717/// use google_cloud_gax::paginator::ItemPaginator as _;
718/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
719/// let client = CatalogService::builder().build().await?;
720/// let parent = "parent_value";
721/// let mut list = client.list_entry_types()
722/// .set_parent(parent)
723/// .by_item();
724/// while let Some(item) = list.next().await.transpose()? {
725/// println!("{:?}", item);
726/// }
727/// # Ok(()) }
728/// ```
729///
730/// # Service Description
731///
732/// The primary resources offered by this service are EntryGroups, EntryTypes,
733/// AspectTypes, Entries and EntryLinks. They collectively let data
734/// administrators organize, manage, secure, and catalog data located across
735/// cloud projects in their organization in a variety of storage systems,
736/// including Cloud Storage and BigQuery.
737///
738/// # Configuration
739///
740/// To configure `CatalogService` use the `with_*` methods in the type returned
741/// by [builder()][CatalogService::builder]. The default configuration should
742/// work for most applications. Common configuration changes include
743///
744/// * [with_endpoint()]: by default this client uses the global default endpoint
745/// (`https://dataplex.googleapis.com`). Applications using regional
746/// endpoints or running in restricted networks (e.g. a network configured
747// with [Private Google Access with VPC Service Controls]) may want to
748/// override this default.
749/// * [with_credentials()]: by default this client uses
750/// [Application Default Credentials]. Applications using custom
751/// authentication may need to override this default.
752///
753/// [with_endpoint()]: super::builder::catalog_service::ClientBuilder::with_endpoint
754/// [with_credentials()]: super::builder::catalog_service::ClientBuilder::with_credentials
755/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
756/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
757///
758/// # Pooling and Cloning
759///
760/// `CatalogService` holds a connection pool internally, it is advised to
761/// create one and reuse it. You do not need to wrap `CatalogService` in
762/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
763/// already uses an `Arc` internally.
764#[derive(Clone, Debug)]
765pub struct CatalogService {
766 inner: std::sync::Arc<dyn super::stub::dynamic::CatalogService>,
767}
768
769impl CatalogService {
770 /// Returns a builder for [CatalogService].
771 ///
772 /// ```
773 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
774 /// # use google_cloud_dataplex_v1::client::CatalogService;
775 /// let client = CatalogService::builder().build().await?;
776 /// # Ok(()) }
777 /// ```
778 pub fn builder() -> super::builder::catalog_service::ClientBuilder {
779 crate::new_client_builder(super::builder::catalog_service::client::Factory)
780 }
781
782 /// Creates a new client from the provided stub.
783 ///
784 /// The most common case for calling this function is in tests mocking the
785 /// client's behavior.
786 pub fn from_stub<T>(stub: T) -> Self
787 where
788 T: super::stub::CatalogService + 'static,
789 {
790 Self {
791 inner: std::sync::Arc::new(stub),
792 }
793 }
794
795 pub(crate) async fn new(
796 config: gaxi::options::ClientConfig,
797 ) -> crate::ClientBuilderResult<Self> {
798 let inner = Self::build_inner(config).await?;
799 Ok(Self { inner })
800 }
801
802 async fn build_inner(
803 conf: gaxi::options::ClientConfig,
804 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::CatalogService>> {
805 if gaxi::options::tracing_enabled(&conf) {
806 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
807 }
808 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
809 }
810
811 async fn build_transport(
812 conf: gaxi::options::ClientConfig,
813 ) -> crate::ClientBuilderResult<impl super::stub::CatalogService> {
814 super::transport::CatalogService::new(conf).await
815 }
816
817 async fn build_with_tracing(
818 conf: gaxi::options::ClientConfig,
819 ) -> crate::ClientBuilderResult<impl super::stub::CatalogService> {
820 Self::build_transport(conf)
821 .await
822 .map(super::tracing::CatalogService::new)
823 }
824
825 /// Creates an EntryType.
826 ///
827 /// # Long running operations
828 ///
829 /// This method is used to start, and/or poll a [long-running Operation].
830 /// The [Working with long-running operations] chapter in the [user guide]
831 /// covers these operations in detail.
832 ///
833 /// [long-running operation]: https://google.aip.dev/151
834 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
835 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
836 ///
837 /// # Example
838 /// ```
839 /// # use google_cloud_dataplex_v1::client::CatalogService;
840 /// use google_cloud_lro::Poller;
841 /// use google_cloud_dataplex_v1::model::EntryType;
842 /// use google_cloud_dataplex_v1::Result;
843 /// async fn sample(
844 /// client: &CatalogService, parent: &str
845 /// ) -> Result<()> {
846 /// let response = client.create_entry_type()
847 /// .set_parent(parent)
848 /// .set_entry_type(
849 /// EntryType::new()/* set fields */
850 /// )
851 /// .poller().until_done().await?;
852 /// println!("response {:?}", response);
853 /// Ok(())
854 /// }
855 /// ```
856 pub fn create_entry_type(&self) -> super::builder::catalog_service::CreateEntryType {
857 super::builder::catalog_service::CreateEntryType::new(self.inner.clone())
858 }
859
860 /// Updates an EntryType.
861 ///
862 /// # Long running operations
863 ///
864 /// This method is used to start, and/or poll a [long-running Operation].
865 /// The [Working with long-running operations] chapter in the [user guide]
866 /// covers these operations in detail.
867 ///
868 /// [long-running operation]: https://google.aip.dev/151
869 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
870 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
871 ///
872 /// # Example
873 /// ```
874 /// # use google_cloud_dataplex_v1::client::CatalogService;
875 /// use google_cloud_lro::Poller;
876 /// # extern crate wkt as google_cloud_wkt;
877 /// use google_cloud_wkt::FieldMask;
878 /// use google_cloud_dataplex_v1::model::EntryType;
879 /// use google_cloud_dataplex_v1::Result;
880 /// async fn sample(
881 /// client: &CatalogService, name: &str
882 /// ) -> Result<()> {
883 /// let response = client.update_entry_type()
884 /// .set_entry_type(
885 /// EntryType::new().set_name(name)/* set fields */
886 /// )
887 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
888 /// .poller().until_done().await?;
889 /// println!("response {:?}", response);
890 /// Ok(())
891 /// }
892 /// ```
893 pub fn update_entry_type(&self) -> super::builder::catalog_service::UpdateEntryType {
894 super::builder::catalog_service::UpdateEntryType::new(self.inner.clone())
895 }
896
897 /// Deletes an EntryType.
898 ///
899 /// # Long running operations
900 ///
901 /// This method is used to start, and/or poll a [long-running Operation].
902 /// The [Working with long-running operations] chapter in the [user guide]
903 /// covers these operations in detail.
904 ///
905 /// [long-running operation]: https://google.aip.dev/151
906 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
907 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
908 ///
909 /// # Example
910 /// ```
911 /// # use google_cloud_dataplex_v1::client::CatalogService;
912 /// use google_cloud_lro::Poller;
913 /// use google_cloud_dataplex_v1::Result;
914 /// async fn sample(
915 /// client: &CatalogService, name: &str
916 /// ) -> Result<()> {
917 /// client.delete_entry_type()
918 /// .set_name(name)
919 /// .poller().until_done().await?;
920 /// Ok(())
921 /// }
922 /// ```
923 pub fn delete_entry_type(&self) -> super::builder::catalog_service::DeleteEntryType {
924 super::builder::catalog_service::DeleteEntryType::new(self.inner.clone())
925 }
926
927 /// Lists EntryType resources in a project and location.
928 ///
929 /// # Example
930 /// ```
931 /// # use google_cloud_dataplex_v1::client::CatalogService;
932 /// use google_cloud_gax::paginator::ItemPaginator as _;
933 /// use google_cloud_dataplex_v1::Result;
934 /// async fn sample(
935 /// client: &CatalogService, parent: &str
936 /// ) -> Result<()> {
937 /// let mut list = client.list_entry_types()
938 /// .set_parent(parent)
939 /// .by_item();
940 /// while let Some(item) = list.next().await.transpose()? {
941 /// println!("{:?}", item);
942 /// }
943 /// Ok(())
944 /// }
945 /// ```
946 pub fn list_entry_types(&self) -> super::builder::catalog_service::ListEntryTypes {
947 super::builder::catalog_service::ListEntryTypes::new(self.inner.clone())
948 }
949
950 /// Gets an EntryType.
951 ///
952 /// # Example
953 /// ```
954 /// # use google_cloud_dataplex_v1::client::CatalogService;
955 /// use google_cloud_dataplex_v1::Result;
956 /// async fn sample(
957 /// client: &CatalogService, name: &str
958 /// ) -> Result<()> {
959 /// let response = client.get_entry_type()
960 /// .set_name(name)
961 /// .send().await?;
962 /// println!("response {:?}", response);
963 /// Ok(())
964 /// }
965 /// ```
966 pub fn get_entry_type(&self) -> super::builder::catalog_service::GetEntryType {
967 super::builder::catalog_service::GetEntryType::new(self.inner.clone())
968 }
969
970 /// Creates an AspectType.
971 ///
972 /// # Long running operations
973 ///
974 /// This method is used to start, and/or poll a [long-running Operation].
975 /// The [Working with long-running operations] chapter in the [user guide]
976 /// covers these operations in detail.
977 ///
978 /// [long-running operation]: https://google.aip.dev/151
979 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
980 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
981 ///
982 /// # Example
983 /// ```
984 /// # use google_cloud_dataplex_v1::client::CatalogService;
985 /// use google_cloud_lro::Poller;
986 /// use google_cloud_dataplex_v1::model::AspectType;
987 /// use google_cloud_dataplex_v1::Result;
988 /// async fn sample(
989 /// client: &CatalogService, parent: &str
990 /// ) -> Result<()> {
991 /// let response = client.create_aspect_type()
992 /// .set_parent(parent)
993 /// .set_aspect_type(
994 /// AspectType::new()/* set fields */
995 /// )
996 /// .poller().until_done().await?;
997 /// println!("response {:?}", response);
998 /// Ok(())
999 /// }
1000 /// ```
1001 pub fn create_aspect_type(&self) -> super::builder::catalog_service::CreateAspectType {
1002 super::builder::catalog_service::CreateAspectType::new(self.inner.clone())
1003 }
1004
1005 /// Updates an AspectType.
1006 ///
1007 /// # Long running operations
1008 ///
1009 /// This method is used to start, and/or poll a [long-running Operation].
1010 /// The [Working with long-running operations] chapter in the [user guide]
1011 /// covers these operations in detail.
1012 ///
1013 /// [long-running operation]: https://google.aip.dev/151
1014 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1015 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1016 ///
1017 /// # Example
1018 /// ```
1019 /// # use google_cloud_dataplex_v1::client::CatalogService;
1020 /// use google_cloud_lro::Poller;
1021 /// # extern crate wkt as google_cloud_wkt;
1022 /// use google_cloud_wkt::FieldMask;
1023 /// use google_cloud_dataplex_v1::model::AspectType;
1024 /// use google_cloud_dataplex_v1::Result;
1025 /// async fn sample(
1026 /// client: &CatalogService, name: &str
1027 /// ) -> Result<()> {
1028 /// let response = client.update_aspect_type()
1029 /// .set_aspect_type(
1030 /// AspectType::new().set_name(name)/* set fields */
1031 /// )
1032 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1033 /// .poller().until_done().await?;
1034 /// println!("response {:?}", response);
1035 /// Ok(())
1036 /// }
1037 /// ```
1038 pub fn update_aspect_type(&self) -> super::builder::catalog_service::UpdateAspectType {
1039 super::builder::catalog_service::UpdateAspectType::new(self.inner.clone())
1040 }
1041
1042 /// Deletes an AspectType.
1043 ///
1044 /// # Long running operations
1045 ///
1046 /// This method is used to start, and/or poll a [long-running Operation].
1047 /// The [Working with long-running operations] chapter in the [user guide]
1048 /// covers these operations in detail.
1049 ///
1050 /// [long-running operation]: https://google.aip.dev/151
1051 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1052 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1053 ///
1054 /// # Example
1055 /// ```
1056 /// # use google_cloud_dataplex_v1::client::CatalogService;
1057 /// use google_cloud_lro::Poller;
1058 /// use google_cloud_dataplex_v1::Result;
1059 /// async fn sample(
1060 /// client: &CatalogService, name: &str
1061 /// ) -> Result<()> {
1062 /// client.delete_aspect_type()
1063 /// .set_name(name)
1064 /// .poller().until_done().await?;
1065 /// Ok(())
1066 /// }
1067 /// ```
1068 pub fn delete_aspect_type(&self) -> super::builder::catalog_service::DeleteAspectType {
1069 super::builder::catalog_service::DeleteAspectType::new(self.inner.clone())
1070 }
1071
1072 /// Lists AspectType resources in a project and location.
1073 ///
1074 /// # Example
1075 /// ```
1076 /// # use google_cloud_dataplex_v1::client::CatalogService;
1077 /// use google_cloud_gax::paginator::ItemPaginator as _;
1078 /// use google_cloud_dataplex_v1::Result;
1079 /// async fn sample(
1080 /// client: &CatalogService, parent: &str
1081 /// ) -> Result<()> {
1082 /// let mut list = client.list_aspect_types()
1083 /// .set_parent(parent)
1084 /// .by_item();
1085 /// while let Some(item) = list.next().await.transpose()? {
1086 /// println!("{:?}", item);
1087 /// }
1088 /// Ok(())
1089 /// }
1090 /// ```
1091 pub fn list_aspect_types(&self) -> super::builder::catalog_service::ListAspectTypes {
1092 super::builder::catalog_service::ListAspectTypes::new(self.inner.clone())
1093 }
1094
1095 /// Gets an AspectType.
1096 ///
1097 /// # Example
1098 /// ```
1099 /// # use google_cloud_dataplex_v1::client::CatalogService;
1100 /// use google_cloud_dataplex_v1::Result;
1101 /// async fn sample(
1102 /// client: &CatalogService, name: &str
1103 /// ) -> Result<()> {
1104 /// let response = client.get_aspect_type()
1105 /// .set_name(name)
1106 /// .send().await?;
1107 /// println!("response {:?}", response);
1108 /// Ok(())
1109 /// }
1110 /// ```
1111 pub fn get_aspect_type(&self) -> super::builder::catalog_service::GetAspectType {
1112 super::builder::catalog_service::GetAspectType::new(self.inner.clone())
1113 }
1114
1115 /// Creates an EntryGroup.
1116 ///
1117 /// # Long running operations
1118 ///
1119 /// This method is used to start, and/or poll a [long-running Operation].
1120 /// The [Working with long-running operations] chapter in the [user guide]
1121 /// covers these operations in detail.
1122 ///
1123 /// [long-running operation]: https://google.aip.dev/151
1124 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1125 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1126 ///
1127 /// # Example
1128 /// ```
1129 /// # use google_cloud_dataplex_v1::client::CatalogService;
1130 /// use google_cloud_lro::Poller;
1131 /// use google_cloud_dataplex_v1::model::EntryGroup;
1132 /// use google_cloud_dataplex_v1::Result;
1133 /// async fn sample(
1134 /// client: &CatalogService, parent: &str
1135 /// ) -> Result<()> {
1136 /// let response = client.create_entry_group()
1137 /// .set_parent(parent)
1138 /// .set_entry_group(
1139 /// EntryGroup::new()/* set fields */
1140 /// )
1141 /// .poller().until_done().await?;
1142 /// println!("response {:?}", response);
1143 /// Ok(())
1144 /// }
1145 /// ```
1146 pub fn create_entry_group(&self) -> super::builder::catalog_service::CreateEntryGroup {
1147 super::builder::catalog_service::CreateEntryGroup::new(self.inner.clone())
1148 }
1149
1150 /// Updates an EntryGroup.
1151 ///
1152 /// # Long running operations
1153 ///
1154 /// This method is used to start, and/or poll a [long-running Operation].
1155 /// The [Working with long-running operations] chapter in the [user guide]
1156 /// covers these operations in detail.
1157 ///
1158 /// [long-running operation]: https://google.aip.dev/151
1159 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1160 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1161 ///
1162 /// # Example
1163 /// ```
1164 /// # use google_cloud_dataplex_v1::client::CatalogService;
1165 /// use google_cloud_lro::Poller;
1166 /// # extern crate wkt as google_cloud_wkt;
1167 /// use google_cloud_wkt::FieldMask;
1168 /// use google_cloud_dataplex_v1::model::EntryGroup;
1169 /// use google_cloud_dataplex_v1::Result;
1170 /// async fn sample(
1171 /// client: &CatalogService, name: &str
1172 /// ) -> Result<()> {
1173 /// let response = client.update_entry_group()
1174 /// .set_entry_group(
1175 /// EntryGroup::new().set_name(name)/* set fields */
1176 /// )
1177 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1178 /// .poller().until_done().await?;
1179 /// println!("response {:?}", response);
1180 /// Ok(())
1181 /// }
1182 /// ```
1183 pub fn update_entry_group(&self) -> super::builder::catalog_service::UpdateEntryGroup {
1184 super::builder::catalog_service::UpdateEntryGroup::new(self.inner.clone())
1185 }
1186
1187 /// Deletes an EntryGroup.
1188 ///
1189 /// # Long running operations
1190 ///
1191 /// This method is used to start, and/or poll a [long-running Operation].
1192 /// The [Working with long-running operations] chapter in the [user guide]
1193 /// covers these operations in detail.
1194 ///
1195 /// [long-running operation]: https://google.aip.dev/151
1196 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1197 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1198 ///
1199 /// # Example
1200 /// ```
1201 /// # use google_cloud_dataplex_v1::client::CatalogService;
1202 /// use google_cloud_lro::Poller;
1203 /// use google_cloud_dataplex_v1::Result;
1204 /// async fn sample(
1205 /// client: &CatalogService, name: &str
1206 /// ) -> Result<()> {
1207 /// client.delete_entry_group()
1208 /// .set_name(name)
1209 /// .poller().until_done().await?;
1210 /// Ok(())
1211 /// }
1212 /// ```
1213 pub fn delete_entry_group(&self) -> super::builder::catalog_service::DeleteEntryGroup {
1214 super::builder::catalog_service::DeleteEntryGroup::new(self.inner.clone())
1215 }
1216
1217 /// Lists EntryGroup resources in a project and location.
1218 ///
1219 /// # Example
1220 /// ```
1221 /// # use google_cloud_dataplex_v1::client::CatalogService;
1222 /// use google_cloud_gax::paginator::ItemPaginator as _;
1223 /// use google_cloud_dataplex_v1::Result;
1224 /// async fn sample(
1225 /// client: &CatalogService, parent: &str
1226 /// ) -> Result<()> {
1227 /// let mut list = client.list_entry_groups()
1228 /// .set_parent(parent)
1229 /// .by_item();
1230 /// while let Some(item) = list.next().await.transpose()? {
1231 /// println!("{:?}", item);
1232 /// }
1233 /// Ok(())
1234 /// }
1235 /// ```
1236 pub fn list_entry_groups(&self) -> super::builder::catalog_service::ListEntryGroups {
1237 super::builder::catalog_service::ListEntryGroups::new(self.inner.clone())
1238 }
1239
1240 /// Gets an EntryGroup.
1241 ///
1242 /// # Example
1243 /// ```
1244 /// # use google_cloud_dataplex_v1::client::CatalogService;
1245 /// use google_cloud_dataplex_v1::Result;
1246 /// async fn sample(
1247 /// client: &CatalogService, name: &str
1248 /// ) -> Result<()> {
1249 /// let response = client.get_entry_group()
1250 /// .set_name(name)
1251 /// .send().await?;
1252 /// println!("response {:?}", response);
1253 /// Ok(())
1254 /// }
1255 /// ```
1256 pub fn get_entry_group(&self) -> super::builder::catalog_service::GetEntryGroup {
1257 super::builder::catalog_service::GetEntryGroup::new(self.inner.clone())
1258 }
1259
1260 /// Creates an Entry.
1261 ///
1262 /// # Example
1263 /// ```
1264 /// # use google_cloud_dataplex_v1::client::CatalogService;
1265 /// use google_cloud_dataplex_v1::model::Entry;
1266 /// use google_cloud_dataplex_v1::Result;
1267 /// async fn sample(
1268 /// client: &CatalogService, parent: &str
1269 /// ) -> Result<()> {
1270 /// let response = client.create_entry()
1271 /// .set_parent(parent)
1272 /// .set_entry_id("entry_id_value")
1273 /// .set_entry(
1274 /// Entry::new()/* set fields */
1275 /// )
1276 /// .send().await?;
1277 /// println!("response {:?}", response);
1278 /// Ok(())
1279 /// }
1280 /// ```
1281 pub fn create_entry(&self) -> super::builder::catalog_service::CreateEntry {
1282 super::builder::catalog_service::CreateEntry::new(self.inner.clone())
1283 }
1284
1285 /// Updates an Entry.
1286 ///
1287 /// # Example
1288 /// ```
1289 /// # use google_cloud_dataplex_v1::client::CatalogService;
1290 /// # extern crate wkt as google_cloud_wkt;
1291 /// use google_cloud_wkt::FieldMask;
1292 /// use google_cloud_dataplex_v1::model::Entry;
1293 /// use google_cloud_dataplex_v1::Result;
1294 /// async fn sample(
1295 /// client: &CatalogService, name: &str
1296 /// ) -> Result<()> {
1297 /// let response = client.update_entry()
1298 /// .set_entry(
1299 /// Entry::new().set_name(name)/* set fields */
1300 /// )
1301 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1302 /// .send().await?;
1303 /// println!("response {:?}", response);
1304 /// Ok(())
1305 /// }
1306 /// ```
1307 pub fn update_entry(&self) -> super::builder::catalog_service::UpdateEntry {
1308 super::builder::catalog_service::UpdateEntry::new(self.inner.clone())
1309 }
1310
1311 /// Deletes an Entry.
1312 ///
1313 /// # Example
1314 /// ```
1315 /// # use google_cloud_dataplex_v1::client::CatalogService;
1316 /// use google_cloud_dataplex_v1::Result;
1317 /// async fn sample(
1318 /// client: &CatalogService, name: &str
1319 /// ) -> Result<()> {
1320 /// let response = client.delete_entry()
1321 /// .set_name(name)
1322 /// .send().await?;
1323 /// println!("response {:?}", response);
1324 /// Ok(())
1325 /// }
1326 /// ```
1327 pub fn delete_entry(&self) -> super::builder::catalog_service::DeleteEntry {
1328 super::builder::catalog_service::DeleteEntry::new(self.inner.clone())
1329 }
1330
1331 /// Lists Entries within an EntryGroup.
1332 /// Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc
1333 /// Metastore metadata that is stored in Dataplex Universal Catalog is
1334 /// changing. For more information, see [Changes to metadata stored in
1335 /// Dataplex Universal
1336 /// Catalog](https://cloud.google.com/dataplex/docs/metadata-changes).
1337 ///
1338 /// # Example
1339 /// ```
1340 /// # use google_cloud_dataplex_v1::client::CatalogService;
1341 /// use google_cloud_gax::paginator::ItemPaginator as _;
1342 /// use google_cloud_dataplex_v1::Result;
1343 /// async fn sample(
1344 /// client: &CatalogService, parent: &str
1345 /// ) -> Result<()> {
1346 /// let mut list = client.list_entries()
1347 /// .set_parent(parent)
1348 /// .by_item();
1349 /// while let Some(item) = list.next().await.transpose()? {
1350 /// println!("{:?}", item);
1351 /// }
1352 /// Ok(())
1353 /// }
1354 /// ```
1355 pub fn list_entries(&self) -> super::builder::catalog_service::ListEntries {
1356 super::builder::catalog_service::ListEntries::new(self.inner.clone())
1357 }
1358
1359 /// Gets an Entry.
1360 /// Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc
1361 /// Metastore metadata that is stored in Dataplex Universal Catalog is
1362 /// changing. For more information, see [Changes to metadata stored in
1363 /// Dataplex Universal
1364 /// Catalog](https://cloud.google.com/dataplex/docs/metadata-changes).
1365 ///
1366 /// # Example
1367 /// ```
1368 /// # use google_cloud_dataplex_v1::client::CatalogService;
1369 /// use google_cloud_dataplex_v1::Result;
1370 /// async fn sample(
1371 /// client: &CatalogService, name: &str
1372 /// ) -> Result<()> {
1373 /// let response = client.get_entry()
1374 /// .set_name(name)
1375 /// .send().await?;
1376 /// println!("response {:?}", response);
1377 /// Ok(())
1378 /// }
1379 /// ```
1380 pub fn get_entry(&self) -> super::builder::catalog_service::GetEntry {
1381 super::builder::catalog_service::GetEntry::new(self.inner.clone())
1382 }
1383
1384 /// Looks up an entry by name using the permission on the source system.
1385 /// Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc
1386 /// Metastore metadata that is stored in Dataplex Universal Catalog is
1387 /// changing. For more information, see [Changes to metadata stored in
1388 /// Dataplex Universal
1389 /// Catalog](https://cloud.google.com/dataplex/docs/metadata-changes).
1390 ///
1391 /// # Example
1392 /// ```
1393 /// # use google_cloud_dataplex_v1::client::CatalogService;
1394 /// use google_cloud_dataplex_v1::Result;
1395 /// async fn sample(
1396 /// client: &CatalogService
1397 /// ) -> Result<()> {
1398 /// let response = client.lookup_entry()
1399 /// /* set fields */
1400 /// .send().await?;
1401 /// println!("response {:?}", response);
1402 /// Ok(())
1403 /// }
1404 /// ```
1405 pub fn lookup_entry(&self) -> super::builder::catalog_service::LookupEntry {
1406 super::builder::catalog_service::LookupEntry::new(self.inner.clone())
1407 }
1408
1409 /// Searches for Entries matching the given query and scope.
1410 ///
1411 /// # Example
1412 /// ```
1413 /// # use google_cloud_dataplex_v1::client::CatalogService;
1414 /// use google_cloud_gax::paginator::ItemPaginator as _;
1415 /// use google_cloud_dataplex_v1::Result;
1416 /// async fn sample(
1417 /// client: &CatalogService
1418 /// ) -> Result<()> {
1419 /// let mut list = client.search_entries()
1420 /// /* set fields */
1421 /// .by_item();
1422 /// while let Some(item) = list.next().await.transpose()? {
1423 /// println!("{:?}", item);
1424 /// }
1425 /// Ok(())
1426 /// }
1427 /// ```
1428 pub fn search_entries(&self) -> super::builder::catalog_service::SearchEntries {
1429 super::builder::catalog_service::SearchEntries::new(self.inner.clone())
1430 }
1431
1432 /// Creates a metadata job. For example, use a metadata job to import metadata
1433 /// from a third-party system into Dataplex Universal Catalog.
1434 ///
1435 /// # Long running operations
1436 ///
1437 /// This method is used to start, and/or poll a [long-running Operation].
1438 /// The [Working with long-running operations] chapter in the [user guide]
1439 /// covers these operations in detail.
1440 ///
1441 /// [long-running operation]: https://google.aip.dev/151
1442 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1443 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1444 ///
1445 /// # Example
1446 /// ```
1447 /// # use google_cloud_dataplex_v1::client::CatalogService;
1448 /// use google_cloud_lro::Poller;
1449 /// use google_cloud_dataplex_v1::model::MetadataJob;
1450 /// use google_cloud_dataplex_v1::Result;
1451 /// async fn sample(
1452 /// client: &CatalogService, parent: &str
1453 /// ) -> Result<()> {
1454 /// let response = client.create_metadata_job()
1455 /// .set_parent(parent)
1456 /// .set_metadata_job(
1457 /// MetadataJob::new()/* set fields */
1458 /// )
1459 /// .poller().until_done().await?;
1460 /// println!("response {:?}", response);
1461 /// Ok(())
1462 /// }
1463 /// ```
1464 pub fn create_metadata_job(&self) -> super::builder::catalog_service::CreateMetadataJob {
1465 super::builder::catalog_service::CreateMetadataJob::new(self.inner.clone())
1466 }
1467
1468 /// Gets a metadata job.
1469 ///
1470 /// # Example
1471 /// ```
1472 /// # use google_cloud_dataplex_v1::client::CatalogService;
1473 /// use google_cloud_dataplex_v1::Result;
1474 /// async fn sample(
1475 /// client: &CatalogService, name: &str
1476 /// ) -> Result<()> {
1477 /// let response = client.get_metadata_job()
1478 /// .set_name(name)
1479 /// .send().await?;
1480 /// println!("response {:?}", response);
1481 /// Ok(())
1482 /// }
1483 /// ```
1484 pub fn get_metadata_job(&self) -> super::builder::catalog_service::GetMetadataJob {
1485 super::builder::catalog_service::GetMetadataJob::new(self.inner.clone())
1486 }
1487
1488 /// Lists metadata jobs.
1489 ///
1490 /// # Example
1491 /// ```
1492 /// # use google_cloud_dataplex_v1::client::CatalogService;
1493 /// use google_cloud_gax::paginator::ItemPaginator as _;
1494 /// use google_cloud_dataplex_v1::Result;
1495 /// async fn sample(
1496 /// client: &CatalogService, parent: &str
1497 /// ) -> Result<()> {
1498 /// let mut list = client.list_metadata_jobs()
1499 /// .set_parent(parent)
1500 /// .by_item();
1501 /// while let Some(item) = list.next().await.transpose()? {
1502 /// println!("{:?}", item);
1503 /// }
1504 /// Ok(())
1505 /// }
1506 /// ```
1507 pub fn list_metadata_jobs(&self) -> super::builder::catalog_service::ListMetadataJobs {
1508 super::builder::catalog_service::ListMetadataJobs::new(self.inner.clone())
1509 }
1510
1511 /// Cancels a metadata job.
1512 ///
1513 /// If you cancel a metadata import job that is in progress, the changes in the
1514 /// job might be partially applied. We recommend that you reset the state of
1515 /// the entry groups in your project by running another metadata job that
1516 /// reverts the changes from the canceled job.
1517 ///
1518 /// # Example
1519 /// ```
1520 /// # use google_cloud_dataplex_v1::client::CatalogService;
1521 /// use google_cloud_dataplex_v1::Result;
1522 /// async fn sample(
1523 /// client: &CatalogService
1524 /// ) -> Result<()> {
1525 /// client.cancel_metadata_job()
1526 /// /* set fields */
1527 /// .send().await?;
1528 /// Ok(())
1529 /// }
1530 /// ```
1531 pub fn cancel_metadata_job(&self) -> super::builder::catalog_service::CancelMetadataJob {
1532 super::builder::catalog_service::CancelMetadataJob::new(self.inner.clone())
1533 }
1534
1535 /// Creates an Entry Link.
1536 ///
1537 /// # Example
1538 /// ```
1539 /// # use google_cloud_dataplex_v1::client::CatalogService;
1540 /// use google_cloud_dataplex_v1::model::EntryLink;
1541 /// use google_cloud_dataplex_v1::Result;
1542 /// async fn sample(
1543 /// client: &CatalogService, parent: &str
1544 /// ) -> Result<()> {
1545 /// let response = client.create_entry_link()
1546 /// .set_parent(parent)
1547 /// .set_entry_link(
1548 /// EntryLink::new()/* set fields */
1549 /// )
1550 /// .send().await?;
1551 /// println!("response {:?}", response);
1552 /// Ok(())
1553 /// }
1554 /// ```
1555 pub fn create_entry_link(&self) -> super::builder::catalog_service::CreateEntryLink {
1556 super::builder::catalog_service::CreateEntryLink::new(self.inner.clone())
1557 }
1558
1559 /// Deletes an Entry Link.
1560 ///
1561 /// # Example
1562 /// ```
1563 /// # use google_cloud_dataplex_v1::client::CatalogService;
1564 /// use google_cloud_dataplex_v1::Result;
1565 /// async fn sample(
1566 /// client: &CatalogService, name: &str
1567 /// ) -> Result<()> {
1568 /// let response = client.delete_entry_link()
1569 /// .set_name(name)
1570 /// .send().await?;
1571 /// println!("response {:?}", response);
1572 /// Ok(())
1573 /// }
1574 /// ```
1575 pub fn delete_entry_link(&self) -> super::builder::catalog_service::DeleteEntryLink {
1576 super::builder::catalog_service::DeleteEntryLink::new(self.inner.clone())
1577 }
1578
1579 /// Gets an Entry Link.
1580 ///
1581 /// # Example
1582 /// ```
1583 /// # use google_cloud_dataplex_v1::client::CatalogService;
1584 /// use google_cloud_dataplex_v1::Result;
1585 /// async fn sample(
1586 /// client: &CatalogService, name: &str
1587 /// ) -> Result<()> {
1588 /// let response = client.get_entry_link()
1589 /// .set_name(name)
1590 /// .send().await?;
1591 /// println!("response {:?}", response);
1592 /// Ok(())
1593 /// }
1594 /// ```
1595 pub fn get_entry_link(&self) -> super::builder::catalog_service::GetEntryLink {
1596 super::builder::catalog_service::GetEntryLink::new(self.inner.clone())
1597 }
1598
1599 /// Lists information about the supported locations for this service.
1600 ///
1601 /// # Example
1602 /// ```
1603 /// # use google_cloud_dataplex_v1::client::CatalogService;
1604 /// use google_cloud_gax::paginator::ItemPaginator as _;
1605 /// use google_cloud_dataplex_v1::Result;
1606 /// async fn sample(
1607 /// client: &CatalogService
1608 /// ) -> Result<()> {
1609 /// let mut list = client.list_locations()
1610 /// /* set fields */
1611 /// .by_item();
1612 /// while let Some(item) = list.next().await.transpose()? {
1613 /// println!("{:?}", item);
1614 /// }
1615 /// Ok(())
1616 /// }
1617 /// ```
1618 pub fn list_locations(&self) -> super::builder::catalog_service::ListLocations {
1619 super::builder::catalog_service::ListLocations::new(self.inner.clone())
1620 }
1621
1622 /// Gets information about a location.
1623 ///
1624 /// # Example
1625 /// ```
1626 /// # use google_cloud_dataplex_v1::client::CatalogService;
1627 /// use google_cloud_dataplex_v1::Result;
1628 /// async fn sample(
1629 /// client: &CatalogService
1630 /// ) -> Result<()> {
1631 /// let response = client.get_location()
1632 /// /* set fields */
1633 /// .send().await?;
1634 /// println!("response {:?}", response);
1635 /// Ok(())
1636 /// }
1637 /// ```
1638 pub fn get_location(&self) -> super::builder::catalog_service::GetLocation {
1639 super::builder::catalog_service::GetLocation::new(self.inner.clone())
1640 }
1641
1642 /// Sets the access control policy on the specified resource. Replaces
1643 /// any existing policy.
1644 ///
1645 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
1646 /// errors.
1647 ///
1648 /// # Example
1649 /// ```
1650 /// # use google_cloud_dataplex_v1::client::CatalogService;
1651 /// use google_cloud_dataplex_v1::Result;
1652 /// async fn sample(
1653 /// client: &CatalogService
1654 /// ) -> Result<()> {
1655 /// let response = client.set_iam_policy()
1656 /// /* set fields */
1657 /// .send().await?;
1658 /// println!("response {:?}", response);
1659 /// Ok(())
1660 /// }
1661 /// ```
1662 pub fn set_iam_policy(&self) -> super::builder::catalog_service::SetIamPolicy {
1663 super::builder::catalog_service::SetIamPolicy::new(self.inner.clone())
1664 }
1665
1666 /// Gets the access control policy for a resource. Returns an empty policy
1667 /// if the resource exists and does not have a policy set.
1668 ///
1669 /// # Example
1670 /// ```
1671 /// # use google_cloud_dataplex_v1::client::CatalogService;
1672 /// use google_cloud_dataplex_v1::Result;
1673 /// async fn sample(
1674 /// client: &CatalogService
1675 /// ) -> Result<()> {
1676 /// let response = client.get_iam_policy()
1677 /// /* set fields */
1678 /// .send().await?;
1679 /// println!("response {:?}", response);
1680 /// Ok(())
1681 /// }
1682 /// ```
1683 pub fn get_iam_policy(&self) -> super::builder::catalog_service::GetIamPolicy {
1684 super::builder::catalog_service::GetIamPolicy::new(self.inner.clone())
1685 }
1686
1687 /// Returns permissions that a caller has on the specified resource. If the
1688 /// resource does not exist, this will return an empty set of
1689 /// permissions, not a `NOT_FOUND` error.
1690 ///
1691 /// Note: This operation is designed to be used for building
1692 /// permission-aware UIs and command-line tools, not for authorization
1693 /// checking. This operation may "fail open" without warning.
1694 ///
1695 /// # Example
1696 /// ```
1697 /// # use google_cloud_dataplex_v1::client::CatalogService;
1698 /// use google_cloud_dataplex_v1::Result;
1699 /// async fn sample(
1700 /// client: &CatalogService
1701 /// ) -> Result<()> {
1702 /// let response = client.test_iam_permissions()
1703 /// /* set fields */
1704 /// .send().await?;
1705 /// println!("response {:?}", response);
1706 /// Ok(())
1707 /// }
1708 /// ```
1709 pub fn test_iam_permissions(&self) -> super::builder::catalog_service::TestIamPermissions {
1710 super::builder::catalog_service::TestIamPermissions::new(self.inner.clone())
1711 }
1712
1713 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1714 ///
1715 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
1716 ///
1717 /// # Example
1718 /// ```
1719 /// # use google_cloud_dataplex_v1::client::CatalogService;
1720 /// use google_cloud_gax::paginator::ItemPaginator as _;
1721 /// use google_cloud_dataplex_v1::Result;
1722 /// async fn sample(
1723 /// client: &CatalogService
1724 /// ) -> Result<()> {
1725 /// let mut list = client.list_operations()
1726 /// /* set fields */
1727 /// .by_item();
1728 /// while let Some(item) = list.next().await.transpose()? {
1729 /// println!("{:?}", item);
1730 /// }
1731 /// Ok(())
1732 /// }
1733 /// ```
1734 pub fn list_operations(&self) -> super::builder::catalog_service::ListOperations {
1735 super::builder::catalog_service::ListOperations::new(self.inner.clone())
1736 }
1737
1738 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1739 ///
1740 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
1741 ///
1742 /// # Example
1743 /// ```
1744 /// # use google_cloud_dataplex_v1::client::CatalogService;
1745 /// use google_cloud_dataplex_v1::Result;
1746 /// async fn sample(
1747 /// client: &CatalogService
1748 /// ) -> Result<()> {
1749 /// let response = client.get_operation()
1750 /// /* set fields */
1751 /// .send().await?;
1752 /// println!("response {:?}", response);
1753 /// Ok(())
1754 /// }
1755 /// ```
1756 pub fn get_operation(&self) -> super::builder::catalog_service::GetOperation {
1757 super::builder::catalog_service::GetOperation::new(self.inner.clone())
1758 }
1759
1760 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1761 ///
1762 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
1763 ///
1764 /// # Example
1765 /// ```
1766 /// # use google_cloud_dataplex_v1::client::CatalogService;
1767 /// use google_cloud_dataplex_v1::Result;
1768 /// async fn sample(
1769 /// client: &CatalogService
1770 /// ) -> Result<()> {
1771 /// client.delete_operation()
1772 /// /* set fields */
1773 /// .send().await?;
1774 /// Ok(())
1775 /// }
1776 /// ```
1777 pub fn delete_operation(&self) -> super::builder::catalog_service::DeleteOperation {
1778 super::builder::catalog_service::DeleteOperation::new(self.inner.clone())
1779 }
1780
1781 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
1782 ///
1783 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
1784 ///
1785 /// # Example
1786 /// ```
1787 /// # use google_cloud_dataplex_v1::client::CatalogService;
1788 /// use google_cloud_dataplex_v1::Result;
1789 /// async fn sample(
1790 /// client: &CatalogService
1791 /// ) -> Result<()> {
1792 /// client.cancel_operation()
1793 /// /* set fields */
1794 /// .send().await?;
1795 /// Ok(())
1796 /// }
1797 /// ```
1798 pub fn cancel_operation(&self) -> super::builder::catalog_service::CancelOperation {
1799 super::builder::catalog_service::CancelOperation::new(self.inner.clone())
1800 }
1801}
1802
1803/// Implements a client for the Cloud Dataplex API.
1804///
1805/// # Example
1806/// ```
1807/// # use google_cloud_dataplex_v1::client::CmekService;
1808/// use google_cloud_gax::paginator::ItemPaginator as _;
1809/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
1810/// let client = CmekService::builder().build().await?;
1811/// let parent = "parent_value";
1812/// let mut list = client.list_encryption_configs()
1813/// .set_parent(parent)
1814/// .by_item();
1815/// while let Some(item) = list.next().await.transpose()? {
1816/// println!("{:?}", item);
1817/// }
1818/// # Ok(()) }
1819/// ```
1820///
1821/// # Service Description
1822///
1823/// Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service
1824///
1825/// # Configuration
1826///
1827/// To configure `CmekService` use the `with_*` methods in the type returned
1828/// by [builder()][CmekService::builder]. The default configuration should
1829/// work for most applications. Common configuration changes include
1830///
1831/// * [with_endpoint()]: by default this client uses the global default endpoint
1832/// (`https://dataplex.googleapis.com`). Applications using regional
1833/// endpoints or running in restricted networks (e.g. a network configured
1834// with [Private Google Access with VPC Service Controls]) may want to
1835/// override this default.
1836/// * [with_credentials()]: by default this client uses
1837/// [Application Default Credentials]. Applications using custom
1838/// authentication may need to override this default.
1839///
1840/// [with_endpoint()]: super::builder::cmek_service::ClientBuilder::with_endpoint
1841/// [with_credentials()]: super::builder::cmek_service::ClientBuilder::with_credentials
1842/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
1843/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
1844///
1845/// # Pooling and Cloning
1846///
1847/// `CmekService` holds a connection pool internally, it is advised to
1848/// create one and reuse it. You do not need to wrap `CmekService` in
1849/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
1850/// already uses an `Arc` internally.
1851#[derive(Clone, Debug)]
1852pub struct CmekService {
1853 inner: std::sync::Arc<dyn super::stub::dynamic::CmekService>,
1854}
1855
1856impl CmekService {
1857 /// Returns a builder for [CmekService].
1858 ///
1859 /// ```
1860 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
1861 /// # use google_cloud_dataplex_v1::client::CmekService;
1862 /// let client = CmekService::builder().build().await?;
1863 /// # Ok(()) }
1864 /// ```
1865 pub fn builder() -> super::builder::cmek_service::ClientBuilder {
1866 crate::new_client_builder(super::builder::cmek_service::client::Factory)
1867 }
1868
1869 /// Creates a new client from the provided stub.
1870 ///
1871 /// The most common case for calling this function is in tests mocking the
1872 /// client's behavior.
1873 pub fn from_stub<T>(stub: T) -> Self
1874 where
1875 T: super::stub::CmekService + 'static,
1876 {
1877 Self {
1878 inner: std::sync::Arc::new(stub),
1879 }
1880 }
1881
1882 pub(crate) async fn new(
1883 config: gaxi::options::ClientConfig,
1884 ) -> crate::ClientBuilderResult<Self> {
1885 let inner = Self::build_inner(config).await?;
1886 Ok(Self { inner })
1887 }
1888
1889 async fn build_inner(
1890 conf: gaxi::options::ClientConfig,
1891 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::CmekService>> {
1892 if gaxi::options::tracing_enabled(&conf) {
1893 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
1894 }
1895 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
1896 }
1897
1898 async fn build_transport(
1899 conf: gaxi::options::ClientConfig,
1900 ) -> crate::ClientBuilderResult<impl super::stub::CmekService> {
1901 super::transport::CmekService::new(conf).await
1902 }
1903
1904 async fn build_with_tracing(
1905 conf: gaxi::options::ClientConfig,
1906 ) -> crate::ClientBuilderResult<impl super::stub::CmekService> {
1907 Self::build_transport(conf)
1908 .await
1909 .map(super::tracing::CmekService::new)
1910 }
1911
1912 /// Create an EncryptionConfig.
1913 ///
1914 /// # Long running operations
1915 ///
1916 /// This method is used to start, and/or poll a [long-running Operation].
1917 /// The [Working with long-running operations] chapter in the [user guide]
1918 /// covers these operations in detail.
1919 ///
1920 /// [long-running operation]: https://google.aip.dev/151
1921 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1922 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1923 ///
1924 /// # Example
1925 /// ```
1926 /// # use google_cloud_dataplex_v1::client::CmekService;
1927 /// use google_cloud_lro::Poller;
1928 /// use google_cloud_dataplex_v1::model::EncryptionConfig;
1929 /// use google_cloud_dataplex_v1::Result;
1930 /// async fn sample(
1931 /// client: &CmekService, parent: &str
1932 /// ) -> Result<()> {
1933 /// let response = client.create_encryption_config()
1934 /// .set_parent(parent)
1935 /// .set_encryption_config(
1936 /// EncryptionConfig::new()/* set fields */
1937 /// )
1938 /// .poller().until_done().await?;
1939 /// println!("response {:?}", response);
1940 /// Ok(())
1941 /// }
1942 /// ```
1943 pub fn create_encryption_config(&self) -> super::builder::cmek_service::CreateEncryptionConfig {
1944 super::builder::cmek_service::CreateEncryptionConfig::new(self.inner.clone())
1945 }
1946
1947 /// Update an EncryptionConfig.
1948 ///
1949 /// # Long running operations
1950 ///
1951 /// This method is used to start, and/or poll a [long-running Operation].
1952 /// The [Working with long-running operations] chapter in the [user guide]
1953 /// covers these operations in detail.
1954 ///
1955 /// [long-running operation]: https://google.aip.dev/151
1956 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1957 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1958 ///
1959 /// # Example
1960 /// ```
1961 /// # use google_cloud_dataplex_v1::client::CmekService;
1962 /// use google_cloud_lro::Poller;
1963 /// # extern crate wkt as google_cloud_wkt;
1964 /// use google_cloud_wkt::FieldMask;
1965 /// use google_cloud_dataplex_v1::model::EncryptionConfig;
1966 /// use google_cloud_dataplex_v1::Result;
1967 /// async fn sample(
1968 /// client: &CmekService, name: &str
1969 /// ) -> Result<()> {
1970 /// let response = client.update_encryption_config()
1971 /// .set_encryption_config(
1972 /// EncryptionConfig::new().set_name(name)/* set fields */
1973 /// )
1974 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
1975 /// .poller().until_done().await?;
1976 /// println!("response {:?}", response);
1977 /// Ok(())
1978 /// }
1979 /// ```
1980 pub fn update_encryption_config(&self) -> super::builder::cmek_service::UpdateEncryptionConfig {
1981 super::builder::cmek_service::UpdateEncryptionConfig::new(self.inner.clone())
1982 }
1983
1984 /// Delete an EncryptionConfig.
1985 ///
1986 /// # Long running operations
1987 ///
1988 /// This method is used to start, and/or poll a [long-running Operation].
1989 /// The [Working with long-running operations] chapter in the [user guide]
1990 /// covers these operations in detail.
1991 ///
1992 /// [long-running operation]: https://google.aip.dev/151
1993 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
1994 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
1995 ///
1996 /// # Example
1997 /// ```
1998 /// # use google_cloud_dataplex_v1::client::CmekService;
1999 /// use google_cloud_lro::Poller;
2000 /// use google_cloud_dataplex_v1::Result;
2001 /// async fn sample(
2002 /// client: &CmekService, name: &str
2003 /// ) -> Result<()> {
2004 /// client.delete_encryption_config()
2005 /// .set_name(name)
2006 /// .poller().until_done().await?;
2007 /// Ok(())
2008 /// }
2009 /// ```
2010 pub fn delete_encryption_config(&self) -> super::builder::cmek_service::DeleteEncryptionConfig {
2011 super::builder::cmek_service::DeleteEncryptionConfig::new(self.inner.clone())
2012 }
2013
2014 /// List EncryptionConfigs.
2015 ///
2016 /// # Example
2017 /// ```
2018 /// # use google_cloud_dataplex_v1::client::CmekService;
2019 /// use google_cloud_gax::paginator::ItemPaginator as _;
2020 /// use google_cloud_dataplex_v1::Result;
2021 /// async fn sample(
2022 /// client: &CmekService, parent: &str
2023 /// ) -> Result<()> {
2024 /// let mut list = client.list_encryption_configs()
2025 /// .set_parent(parent)
2026 /// .by_item();
2027 /// while let Some(item) = list.next().await.transpose()? {
2028 /// println!("{:?}", item);
2029 /// }
2030 /// Ok(())
2031 /// }
2032 /// ```
2033 pub fn list_encryption_configs(&self) -> super::builder::cmek_service::ListEncryptionConfigs {
2034 super::builder::cmek_service::ListEncryptionConfigs::new(self.inner.clone())
2035 }
2036
2037 /// Get an EncryptionConfig.
2038 ///
2039 /// # Example
2040 /// ```
2041 /// # use google_cloud_dataplex_v1::client::CmekService;
2042 /// use google_cloud_dataplex_v1::Result;
2043 /// async fn sample(
2044 /// client: &CmekService, name: &str
2045 /// ) -> Result<()> {
2046 /// let response = client.get_encryption_config()
2047 /// .set_name(name)
2048 /// .send().await?;
2049 /// println!("response {:?}", response);
2050 /// Ok(())
2051 /// }
2052 /// ```
2053 pub fn get_encryption_config(&self) -> super::builder::cmek_service::GetEncryptionConfig {
2054 super::builder::cmek_service::GetEncryptionConfig::new(self.inner.clone())
2055 }
2056
2057 /// Lists information about the supported locations for this service.
2058 ///
2059 /// # Example
2060 /// ```
2061 /// # use google_cloud_dataplex_v1::client::CmekService;
2062 /// use google_cloud_gax::paginator::ItemPaginator as _;
2063 /// use google_cloud_dataplex_v1::Result;
2064 /// async fn sample(
2065 /// client: &CmekService
2066 /// ) -> Result<()> {
2067 /// let mut list = client.list_locations()
2068 /// /* set fields */
2069 /// .by_item();
2070 /// while let Some(item) = list.next().await.transpose()? {
2071 /// println!("{:?}", item);
2072 /// }
2073 /// Ok(())
2074 /// }
2075 /// ```
2076 pub fn list_locations(&self) -> super::builder::cmek_service::ListLocations {
2077 super::builder::cmek_service::ListLocations::new(self.inner.clone())
2078 }
2079
2080 /// Gets information about a location.
2081 ///
2082 /// # Example
2083 /// ```
2084 /// # use google_cloud_dataplex_v1::client::CmekService;
2085 /// use google_cloud_dataplex_v1::Result;
2086 /// async fn sample(
2087 /// client: &CmekService
2088 /// ) -> Result<()> {
2089 /// let response = client.get_location()
2090 /// /* set fields */
2091 /// .send().await?;
2092 /// println!("response {:?}", response);
2093 /// Ok(())
2094 /// }
2095 /// ```
2096 pub fn get_location(&self) -> super::builder::cmek_service::GetLocation {
2097 super::builder::cmek_service::GetLocation::new(self.inner.clone())
2098 }
2099
2100 /// Sets the access control policy on the specified resource. Replaces
2101 /// any existing policy.
2102 ///
2103 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
2104 /// errors.
2105 ///
2106 /// # Example
2107 /// ```
2108 /// # use google_cloud_dataplex_v1::client::CmekService;
2109 /// use google_cloud_dataplex_v1::Result;
2110 /// async fn sample(
2111 /// client: &CmekService
2112 /// ) -> Result<()> {
2113 /// let response = client.set_iam_policy()
2114 /// /* set fields */
2115 /// .send().await?;
2116 /// println!("response {:?}", response);
2117 /// Ok(())
2118 /// }
2119 /// ```
2120 pub fn set_iam_policy(&self) -> super::builder::cmek_service::SetIamPolicy {
2121 super::builder::cmek_service::SetIamPolicy::new(self.inner.clone())
2122 }
2123
2124 /// Gets the access control policy for a resource. Returns an empty policy
2125 /// if the resource exists and does not have a policy set.
2126 ///
2127 /// # Example
2128 /// ```
2129 /// # use google_cloud_dataplex_v1::client::CmekService;
2130 /// use google_cloud_dataplex_v1::Result;
2131 /// async fn sample(
2132 /// client: &CmekService
2133 /// ) -> Result<()> {
2134 /// let response = client.get_iam_policy()
2135 /// /* set fields */
2136 /// .send().await?;
2137 /// println!("response {:?}", response);
2138 /// Ok(())
2139 /// }
2140 /// ```
2141 pub fn get_iam_policy(&self) -> super::builder::cmek_service::GetIamPolicy {
2142 super::builder::cmek_service::GetIamPolicy::new(self.inner.clone())
2143 }
2144
2145 /// Returns permissions that a caller has on the specified resource. If the
2146 /// resource does not exist, this will return an empty set of
2147 /// permissions, not a `NOT_FOUND` error.
2148 ///
2149 /// Note: This operation is designed to be used for building
2150 /// permission-aware UIs and command-line tools, not for authorization
2151 /// checking. This operation may "fail open" without warning.
2152 ///
2153 /// # Example
2154 /// ```
2155 /// # use google_cloud_dataplex_v1::client::CmekService;
2156 /// use google_cloud_dataplex_v1::Result;
2157 /// async fn sample(
2158 /// client: &CmekService
2159 /// ) -> Result<()> {
2160 /// let response = client.test_iam_permissions()
2161 /// /* set fields */
2162 /// .send().await?;
2163 /// println!("response {:?}", response);
2164 /// Ok(())
2165 /// }
2166 /// ```
2167 pub fn test_iam_permissions(&self) -> super::builder::cmek_service::TestIamPermissions {
2168 super::builder::cmek_service::TestIamPermissions::new(self.inner.clone())
2169 }
2170
2171 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2172 ///
2173 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2174 ///
2175 /// # Example
2176 /// ```
2177 /// # use google_cloud_dataplex_v1::client::CmekService;
2178 /// use google_cloud_gax::paginator::ItemPaginator as _;
2179 /// use google_cloud_dataplex_v1::Result;
2180 /// async fn sample(
2181 /// client: &CmekService
2182 /// ) -> Result<()> {
2183 /// let mut list = client.list_operations()
2184 /// /* set fields */
2185 /// .by_item();
2186 /// while let Some(item) = list.next().await.transpose()? {
2187 /// println!("{:?}", item);
2188 /// }
2189 /// Ok(())
2190 /// }
2191 /// ```
2192 pub fn list_operations(&self) -> super::builder::cmek_service::ListOperations {
2193 super::builder::cmek_service::ListOperations::new(self.inner.clone())
2194 }
2195
2196 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2197 ///
2198 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2199 ///
2200 /// # Example
2201 /// ```
2202 /// # use google_cloud_dataplex_v1::client::CmekService;
2203 /// use google_cloud_dataplex_v1::Result;
2204 /// async fn sample(
2205 /// client: &CmekService
2206 /// ) -> Result<()> {
2207 /// let response = client.get_operation()
2208 /// /* set fields */
2209 /// .send().await?;
2210 /// println!("response {:?}", response);
2211 /// Ok(())
2212 /// }
2213 /// ```
2214 pub fn get_operation(&self) -> super::builder::cmek_service::GetOperation {
2215 super::builder::cmek_service::GetOperation::new(self.inner.clone())
2216 }
2217
2218 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2219 ///
2220 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2221 ///
2222 /// # Example
2223 /// ```
2224 /// # use google_cloud_dataplex_v1::client::CmekService;
2225 /// use google_cloud_dataplex_v1::Result;
2226 /// async fn sample(
2227 /// client: &CmekService
2228 /// ) -> Result<()> {
2229 /// client.delete_operation()
2230 /// /* set fields */
2231 /// .send().await?;
2232 /// Ok(())
2233 /// }
2234 /// ```
2235 pub fn delete_operation(&self) -> super::builder::cmek_service::DeleteOperation {
2236 super::builder::cmek_service::DeleteOperation::new(self.inner.clone())
2237 }
2238
2239 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2240 ///
2241 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2242 ///
2243 /// # Example
2244 /// ```
2245 /// # use google_cloud_dataplex_v1::client::CmekService;
2246 /// use google_cloud_dataplex_v1::Result;
2247 /// async fn sample(
2248 /// client: &CmekService
2249 /// ) -> Result<()> {
2250 /// client.cancel_operation()
2251 /// /* set fields */
2252 /// .send().await?;
2253 /// Ok(())
2254 /// }
2255 /// ```
2256 pub fn cancel_operation(&self) -> super::builder::cmek_service::CancelOperation {
2257 super::builder::cmek_service::CancelOperation::new(self.inner.clone())
2258 }
2259}
2260
2261/// Implements a client for the Cloud Dataplex API.
2262///
2263/// # Example
2264/// ```
2265/// # use google_cloud_dataplex_v1::client::ContentService;
2266/// use google_cloud_gax::paginator::ItemPaginator as _;
2267/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
2268/// let client = ContentService::builder().build().await?;
2269/// let parent = "parent_value";
2270/// let mut list = client.list_content()
2271/// .set_parent(parent)
2272/// .by_item();
2273/// while let Some(item) = list.next().await.transpose()? {
2274/// println!("{:?}", item);
2275/// }
2276/// # Ok(()) }
2277/// ```
2278///
2279/// # Service Description
2280///
2281/// ContentService manages Notebook and SQL Scripts for Dataplex Universal
2282/// Catalog.
2283///
2284/// # Configuration
2285///
2286/// To configure `ContentService` use the `with_*` methods in the type returned
2287/// by [builder()][ContentService::builder]. The default configuration should
2288/// work for most applications. Common configuration changes include
2289///
2290/// * [with_endpoint()]: by default this client uses the global default endpoint
2291/// (`https://dataplex.googleapis.com`). Applications using regional
2292/// endpoints or running in restricted networks (e.g. a network configured
2293// with [Private Google Access with VPC Service Controls]) may want to
2294/// override this default.
2295/// * [with_credentials()]: by default this client uses
2296/// [Application Default Credentials]. Applications using custom
2297/// authentication may need to override this default.
2298///
2299/// [with_endpoint()]: super::builder::content_service::ClientBuilder::with_endpoint
2300/// [with_credentials()]: super::builder::content_service::ClientBuilder::with_credentials
2301/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
2302/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
2303///
2304/// # Pooling and Cloning
2305///
2306/// `ContentService` holds a connection pool internally, it is advised to
2307/// create one and reuse it. You do not need to wrap `ContentService` in
2308/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
2309/// already uses an `Arc` internally.
2310#[derive(Clone, Debug)]
2311pub struct ContentService {
2312 inner: std::sync::Arc<dyn super::stub::dynamic::ContentService>,
2313}
2314
2315impl ContentService {
2316 /// Returns a builder for [ContentService].
2317 ///
2318 /// ```
2319 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
2320 /// # use google_cloud_dataplex_v1::client::ContentService;
2321 /// let client = ContentService::builder().build().await?;
2322 /// # Ok(()) }
2323 /// ```
2324 pub fn builder() -> super::builder::content_service::ClientBuilder {
2325 crate::new_client_builder(super::builder::content_service::client::Factory)
2326 }
2327
2328 /// Creates a new client from the provided stub.
2329 ///
2330 /// The most common case for calling this function is in tests mocking the
2331 /// client's behavior.
2332 pub fn from_stub<T>(stub: T) -> Self
2333 where
2334 T: super::stub::ContentService + 'static,
2335 {
2336 Self {
2337 inner: std::sync::Arc::new(stub),
2338 }
2339 }
2340
2341 pub(crate) async fn new(
2342 config: gaxi::options::ClientConfig,
2343 ) -> crate::ClientBuilderResult<Self> {
2344 let inner = Self::build_inner(config).await?;
2345 Ok(Self { inner })
2346 }
2347
2348 async fn build_inner(
2349 conf: gaxi::options::ClientConfig,
2350 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::ContentService>> {
2351 if gaxi::options::tracing_enabled(&conf) {
2352 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
2353 }
2354 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
2355 }
2356
2357 async fn build_transport(
2358 conf: gaxi::options::ClientConfig,
2359 ) -> crate::ClientBuilderResult<impl super::stub::ContentService> {
2360 super::transport::ContentService::new(conf).await
2361 }
2362
2363 async fn build_with_tracing(
2364 conf: gaxi::options::ClientConfig,
2365 ) -> crate::ClientBuilderResult<impl super::stub::ContentService> {
2366 Self::build_transport(conf)
2367 .await
2368 .map(super::tracing::ContentService::new)
2369 }
2370
2371 /// Create a content.
2372 ///
2373 /// # Example
2374 /// ```
2375 /// # use google_cloud_dataplex_v1::client::ContentService;
2376 /// use google_cloud_dataplex_v1::model::Content;
2377 /// use google_cloud_dataplex_v1::Result;
2378 /// async fn sample(
2379 /// client: &ContentService, parent: &str
2380 /// ) -> Result<()> {
2381 /// let response = client.create_content()
2382 /// .set_parent(parent)
2383 /// .set_content(
2384 /// Content::new()/* set fields */
2385 /// )
2386 /// .send().await?;
2387 /// println!("response {:?}", response);
2388 /// Ok(())
2389 /// }
2390 /// ```
2391 pub fn create_content(&self) -> super::builder::content_service::CreateContent {
2392 super::builder::content_service::CreateContent::new(self.inner.clone())
2393 }
2394
2395 /// Update a content. Only supports full resource update.
2396 ///
2397 /// # Example
2398 /// ```
2399 /// # use google_cloud_dataplex_v1::client::ContentService;
2400 /// # extern crate wkt as google_cloud_wkt;
2401 /// use google_cloud_wkt::FieldMask;
2402 /// use google_cloud_dataplex_v1::model::Content;
2403 /// use google_cloud_dataplex_v1::Result;
2404 /// async fn sample(
2405 /// client: &ContentService, name: &str
2406 /// ) -> Result<()> {
2407 /// let response = client.update_content()
2408 /// .set_content(
2409 /// Content::new().set_name(name)/* set fields */
2410 /// )
2411 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
2412 /// .send().await?;
2413 /// println!("response {:?}", response);
2414 /// Ok(())
2415 /// }
2416 /// ```
2417 pub fn update_content(&self) -> super::builder::content_service::UpdateContent {
2418 super::builder::content_service::UpdateContent::new(self.inner.clone())
2419 }
2420
2421 /// Delete a content.
2422 ///
2423 /// # Example
2424 /// ```
2425 /// # use google_cloud_dataplex_v1::client::ContentService;
2426 /// use google_cloud_dataplex_v1::Result;
2427 /// async fn sample(
2428 /// client: &ContentService, name: &str
2429 /// ) -> Result<()> {
2430 /// client.delete_content()
2431 /// .set_name(name)
2432 /// .send().await?;
2433 /// Ok(())
2434 /// }
2435 /// ```
2436 pub fn delete_content(&self) -> super::builder::content_service::DeleteContent {
2437 super::builder::content_service::DeleteContent::new(self.inner.clone())
2438 }
2439
2440 /// Get a content resource.
2441 ///
2442 /// # Example
2443 /// ```
2444 /// # use google_cloud_dataplex_v1::client::ContentService;
2445 /// use google_cloud_dataplex_v1::Result;
2446 /// async fn sample(
2447 /// client: &ContentService, name: &str
2448 /// ) -> Result<()> {
2449 /// let response = client.get_content()
2450 /// .set_name(name)
2451 /// .send().await?;
2452 /// println!("response {:?}", response);
2453 /// Ok(())
2454 /// }
2455 /// ```
2456 pub fn get_content(&self) -> super::builder::content_service::GetContent {
2457 super::builder::content_service::GetContent::new(self.inner.clone())
2458 }
2459
2460 /// Gets the access control policy for a contentitem resource. A `NOT_FOUND`
2461 /// error is returned if the resource does not exist. An empty policy is
2462 /// returned if the resource exists but does not have a policy set on it.
2463 ///
2464 /// Caller must have Google IAM `dataplex.content.getIamPolicy` permission
2465 /// on the resource.
2466 ///
2467 /// # Example
2468 /// ```
2469 /// # use google_cloud_dataplex_v1::client::ContentService;
2470 /// use google_cloud_dataplex_v1::Result;
2471 /// async fn sample(
2472 /// client: &ContentService
2473 /// ) -> Result<()> {
2474 /// let response = client.get_iam_policy()
2475 /// /* set fields */
2476 /// .send().await?;
2477 /// println!("response {:?}", response);
2478 /// Ok(())
2479 /// }
2480 /// ```
2481 pub fn get_iam_policy(&self) -> super::builder::content_service::GetIamPolicy {
2482 super::builder::content_service::GetIamPolicy::new(self.inner.clone())
2483 }
2484
2485 /// Sets the access control policy on the specified contentitem resource.
2486 /// Replaces any existing policy.
2487 ///
2488 /// Caller must have Google IAM `dataplex.content.setIamPolicy` permission
2489 /// on the resource.
2490 ///
2491 /// # Example
2492 /// ```
2493 /// # use google_cloud_dataplex_v1::client::ContentService;
2494 /// use google_cloud_dataplex_v1::Result;
2495 /// async fn sample(
2496 /// client: &ContentService
2497 /// ) -> Result<()> {
2498 /// let response = client.set_iam_policy()
2499 /// /* set fields */
2500 /// .send().await?;
2501 /// println!("response {:?}", response);
2502 /// Ok(())
2503 /// }
2504 /// ```
2505 pub fn set_iam_policy(&self) -> super::builder::content_service::SetIamPolicy {
2506 super::builder::content_service::SetIamPolicy::new(self.inner.clone())
2507 }
2508
2509 /// Returns the caller's permissions on a resource.
2510 /// If the resource does not exist, an empty set of
2511 /// permissions is returned (a `NOT_FOUND` error is not returned).
2512 ///
2513 /// A caller is not required to have Google IAM permission to make this
2514 /// request.
2515 ///
2516 /// Note: This operation is designed to be used for building permission-aware
2517 /// UIs and command-line tools, not for authorization checking. This operation
2518 /// may "fail open" without warning.
2519 ///
2520 /// # Example
2521 /// ```
2522 /// # use google_cloud_dataplex_v1::client::ContentService;
2523 /// use google_cloud_dataplex_v1::Result;
2524 /// async fn sample(
2525 /// client: &ContentService
2526 /// ) -> Result<()> {
2527 /// let response = client.test_iam_permissions()
2528 /// /* set fields */
2529 /// .send().await?;
2530 /// println!("response {:?}", response);
2531 /// Ok(())
2532 /// }
2533 /// ```
2534 pub fn test_iam_permissions(&self) -> super::builder::content_service::TestIamPermissions {
2535 super::builder::content_service::TestIamPermissions::new(self.inner.clone())
2536 }
2537
2538 /// List content.
2539 ///
2540 /// # Example
2541 /// ```
2542 /// # use google_cloud_dataplex_v1::client::ContentService;
2543 /// use google_cloud_gax::paginator::ItemPaginator as _;
2544 /// use google_cloud_dataplex_v1::Result;
2545 /// async fn sample(
2546 /// client: &ContentService, parent: &str
2547 /// ) -> Result<()> {
2548 /// let mut list = client.list_content()
2549 /// .set_parent(parent)
2550 /// .by_item();
2551 /// while let Some(item) = list.next().await.transpose()? {
2552 /// println!("{:?}", item);
2553 /// }
2554 /// Ok(())
2555 /// }
2556 /// ```
2557 pub fn list_content(&self) -> super::builder::content_service::ListContent {
2558 super::builder::content_service::ListContent::new(self.inner.clone())
2559 }
2560
2561 /// Lists information about the supported locations for this service.
2562 ///
2563 /// # Example
2564 /// ```
2565 /// # use google_cloud_dataplex_v1::client::ContentService;
2566 /// use google_cloud_gax::paginator::ItemPaginator as _;
2567 /// use google_cloud_dataplex_v1::Result;
2568 /// async fn sample(
2569 /// client: &ContentService
2570 /// ) -> Result<()> {
2571 /// let mut list = client.list_locations()
2572 /// /* set fields */
2573 /// .by_item();
2574 /// while let Some(item) = list.next().await.transpose()? {
2575 /// println!("{:?}", item);
2576 /// }
2577 /// Ok(())
2578 /// }
2579 /// ```
2580 pub fn list_locations(&self) -> super::builder::content_service::ListLocations {
2581 super::builder::content_service::ListLocations::new(self.inner.clone())
2582 }
2583
2584 /// Gets information about a location.
2585 ///
2586 /// # Example
2587 /// ```
2588 /// # use google_cloud_dataplex_v1::client::ContentService;
2589 /// use google_cloud_dataplex_v1::Result;
2590 /// async fn sample(
2591 /// client: &ContentService
2592 /// ) -> Result<()> {
2593 /// let response = client.get_location()
2594 /// /* set fields */
2595 /// .send().await?;
2596 /// println!("response {:?}", response);
2597 /// Ok(())
2598 /// }
2599 /// ```
2600 pub fn get_location(&self) -> super::builder::content_service::GetLocation {
2601 super::builder::content_service::GetLocation::new(self.inner.clone())
2602 }
2603
2604 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2605 ///
2606 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2607 ///
2608 /// # Example
2609 /// ```
2610 /// # use google_cloud_dataplex_v1::client::ContentService;
2611 /// use google_cloud_gax::paginator::ItemPaginator as _;
2612 /// use google_cloud_dataplex_v1::Result;
2613 /// async fn sample(
2614 /// client: &ContentService
2615 /// ) -> Result<()> {
2616 /// let mut list = client.list_operations()
2617 /// /* set fields */
2618 /// .by_item();
2619 /// while let Some(item) = list.next().await.transpose()? {
2620 /// println!("{:?}", item);
2621 /// }
2622 /// Ok(())
2623 /// }
2624 /// ```
2625 pub fn list_operations(&self) -> super::builder::content_service::ListOperations {
2626 super::builder::content_service::ListOperations::new(self.inner.clone())
2627 }
2628
2629 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2630 ///
2631 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2632 ///
2633 /// # Example
2634 /// ```
2635 /// # use google_cloud_dataplex_v1::client::ContentService;
2636 /// use google_cloud_dataplex_v1::Result;
2637 /// async fn sample(
2638 /// client: &ContentService
2639 /// ) -> Result<()> {
2640 /// let response = client.get_operation()
2641 /// /* set fields */
2642 /// .send().await?;
2643 /// println!("response {:?}", response);
2644 /// Ok(())
2645 /// }
2646 /// ```
2647 pub fn get_operation(&self) -> super::builder::content_service::GetOperation {
2648 super::builder::content_service::GetOperation::new(self.inner.clone())
2649 }
2650
2651 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2652 ///
2653 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2654 ///
2655 /// # Example
2656 /// ```
2657 /// # use google_cloud_dataplex_v1::client::ContentService;
2658 /// use google_cloud_dataplex_v1::Result;
2659 /// async fn sample(
2660 /// client: &ContentService
2661 /// ) -> Result<()> {
2662 /// client.delete_operation()
2663 /// /* set fields */
2664 /// .send().await?;
2665 /// Ok(())
2666 /// }
2667 /// ```
2668 pub fn delete_operation(&self) -> super::builder::content_service::DeleteOperation {
2669 super::builder::content_service::DeleteOperation::new(self.inner.clone())
2670 }
2671
2672 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
2673 ///
2674 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
2675 ///
2676 /// # Example
2677 /// ```
2678 /// # use google_cloud_dataplex_v1::client::ContentService;
2679 /// use google_cloud_dataplex_v1::Result;
2680 /// async fn sample(
2681 /// client: &ContentService
2682 /// ) -> Result<()> {
2683 /// client.cancel_operation()
2684 /// /* set fields */
2685 /// .send().await?;
2686 /// Ok(())
2687 /// }
2688 /// ```
2689 pub fn cancel_operation(&self) -> super::builder::content_service::CancelOperation {
2690 super::builder::content_service::CancelOperation::new(self.inner.clone())
2691 }
2692}
2693
2694/// Implements a client for the Cloud Dataplex API.
2695///
2696/// # Example
2697/// ```
2698/// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2699/// use google_cloud_gax::paginator::ItemPaginator as _;
2700/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
2701/// let client = DataTaxonomyService::builder().build().await?;
2702/// let parent = "parent_value";
2703/// let mut list = client.list_data_taxonomies()
2704/// .set_parent(parent)
2705/// .by_item();
2706/// while let Some(item) = list.next().await.transpose()? {
2707/// println!("{:?}", item);
2708/// }
2709/// # Ok(()) }
2710/// ```
2711///
2712/// # Service Description
2713///
2714/// DataTaxonomyService enables attribute-based governance. The resources
2715/// currently offered include DataTaxonomy and DataAttribute.
2716///
2717/// # Configuration
2718///
2719/// To configure `DataTaxonomyService` use the `with_*` methods in the type returned
2720/// by [builder()][DataTaxonomyService::builder]. The default configuration should
2721/// work for most applications. Common configuration changes include
2722///
2723/// * [with_endpoint()]: by default this client uses the global default endpoint
2724/// (`https://dataplex.googleapis.com`). Applications using regional
2725/// endpoints or running in restricted networks (e.g. a network configured
2726// with [Private Google Access with VPC Service Controls]) may want to
2727/// override this default.
2728/// * [with_credentials()]: by default this client uses
2729/// [Application Default Credentials]. Applications using custom
2730/// authentication may need to override this default.
2731///
2732/// [with_endpoint()]: super::builder::data_taxonomy_service::ClientBuilder::with_endpoint
2733/// [with_credentials()]: super::builder::data_taxonomy_service::ClientBuilder::with_credentials
2734/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
2735/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
2736///
2737/// # Pooling and Cloning
2738///
2739/// `DataTaxonomyService` holds a connection pool internally, it is advised to
2740/// create one and reuse it. You do not need to wrap `DataTaxonomyService` in
2741/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
2742/// already uses an `Arc` internally.
2743#[derive(Clone, Debug)]
2744#[deprecated]
2745pub struct DataTaxonomyService {
2746 inner: std::sync::Arc<dyn super::stub::dynamic::DataTaxonomyService>,
2747}
2748
2749impl DataTaxonomyService {
2750 /// Returns a builder for [DataTaxonomyService].
2751 ///
2752 /// ```
2753 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
2754 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2755 /// let client = DataTaxonomyService::builder().build().await?;
2756 /// # Ok(()) }
2757 /// ```
2758 pub fn builder() -> super::builder::data_taxonomy_service::ClientBuilder {
2759 crate::new_client_builder(super::builder::data_taxonomy_service::client::Factory)
2760 }
2761
2762 /// Creates a new client from the provided stub.
2763 ///
2764 /// The most common case for calling this function is in tests mocking the
2765 /// client's behavior.
2766 pub fn from_stub<T>(stub: T) -> Self
2767 where
2768 T: super::stub::DataTaxonomyService + 'static,
2769 {
2770 Self {
2771 inner: std::sync::Arc::new(stub),
2772 }
2773 }
2774
2775 pub(crate) async fn new(
2776 config: gaxi::options::ClientConfig,
2777 ) -> crate::ClientBuilderResult<Self> {
2778 let inner = Self::build_inner(config).await?;
2779 Ok(Self { inner })
2780 }
2781
2782 async fn build_inner(
2783 conf: gaxi::options::ClientConfig,
2784 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::DataTaxonomyService>>
2785 {
2786 if gaxi::options::tracing_enabled(&conf) {
2787 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
2788 }
2789 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
2790 }
2791
2792 async fn build_transport(
2793 conf: gaxi::options::ClientConfig,
2794 ) -> crate::ClientBuilderResult<impl super::stub::DataTaxonomyService> {
2795 super::transport::DataTaxonomyService::new(conf).await
2796 }
2797
2798 async fn build_with_tracing(
2799 conf: gaxi::options::ClientConfig,
2800 ) -> crate::ClientBuilderResult<impl super::stub::DataTaxonomyService> {
2801 Self::build_transport(conf)
2802 .await
2803 .map(super::tracing::DataTaxonomyService::new)
2804 }
2805
2806 /// Create a DataTaxonomy resource.
2807 ///
2808 /// # Long running operations
2809 ///
2810 /// This method is used to start, and/or poll a [long-running Operation].
2811 /// The [Working with long-running operations] chapter in the [user guide]
2812 /// covers these operations in detail.
2813 ///
2814 /// [long-running operation]: https://google.aip.dev/151
2815 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2816 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2817 ///
2818 /// # Example
2819 /// ```
2820 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2821 /// use google_cloud_lro::Poller;
2822 /// use google_cloud_dataplex_v1::model::DataTaxonomy;
2823 /// use google_cloud_dataplex_v1::Result;
2824 /// async fn sample(
2825 /// client: &DataTaxonomyService, parent: &str
2826 /// ) -> Result<()> {
2827 /// let response = client.create_data_taxonomy()
2828 /// .set_parent(parent)
2829 /// .set_data_taxonomy(
2830 /// DataTaxonomy::new()/* set fields */
2831 /// )
2832 /// .poller().until_done().await?;
2833 /// println!("response {:?}", response);
2834 /// Ok(())
2835 /// }
2836 /// ```
2837 #[deprecated]
2838 pub fn create_data_taxonomy(
2839 &self,
2840 ) -> super::builder::data_taxonomy_service::CreateDataTaxonomy {
2841 super::builder::data_taxonomy_service::CreateDataTaxonomy::new(self.inner.clone())
2842 }
2843
2844 /// Updates a DataTaxonomy resource.
2845 ///
2846 /// # Long running operations
2847 ///
2848 /// This method is used to start, and/or poll a [long-running Operation].
2849 /// The [Working with long-running operations] chapter in the [user guide]
2850 /// covers these operations in detail.
2851 ///
2852 /// [long-running operation]: https://google.aip.dev/151
2853 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2854 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2855 ///
2856 /// # Example
2857 /// ```
2858 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2859 /// use google_cloud_lro::Poller;
2860 /// # extern crate wkt as google_cloud_wkt;
2861 /// use google_cloud_wkt::FieldMask;
2862 /// use google_cloud_dataplex_v1::model::DataTaxonomy;
2863 /// use google_cloud_dataplex_v1::Result;
2864 /// async fn sample(
2865 /// client: &DataTaxonomyService, name: &str
2866 /// ) -> Result<()> {
2867 /// let response = client.update_data_taxonomy()
2868 /// .set_data_taxonomy(
2869 /// DataTaxonomy::new().set_name(name)/* set fields */
2870 /// )
2871 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
2872 /// .poller().until_done().await?;
2873 /// println!("response {:?}", response);
2874 /// Ok(())
2875 /// }
2876 /// ```
2877 #[deprecated]
2878 pub fn update_data_taxonomy(
2879 &self,
2880 ) -> super::builder::data_taxonomy_service::UpdateDataTaxonomy {
2881 super::builder::data_taxonomy_service::UpdateDataTaxonomy::new(self.inner.clone())
2882 }
2883
2884 /// Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy
2885 /// must be deleted before the DataTaxonomy can be deleted.
2886 ///
2887 /// # Long running operations
2888 ///
2889 /// This method is used to start, and/or poll a [long-running Operation].
2890 /// The [Working with long-running operations] chapter in the [user guide]
2891 /// covers these operations in detail.
2892 ///
2893 /// [long-running operation]: https://google.aip.dev/151
2894 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2895 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2896 ///
2897 /// # Example
2898 /// ```
2899 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2900 /// use google_cloud_lro::Poller;
2901 /// use google_cloud_dataplex_v1::Result;
2902 /// async fn sample(
2903 /// client: &DataTaxonomyService, name: &str
2904 /// ) -> Result<()> {
2905 /// client.delete_data_taxonomy()
2906 /// .set_name(name)
2907 /// .poller().until_done().await?;
2908 /// Ok(())
2909 /// }
2910 /// ```
2911 #[deprecated]
2912 pub fn delete_data_taxonomy(
2913 &self,
2914 ) -> super::builder::data_taxonomy_service::DeleteDataTaxonomy {
2915 super::builder::data_taxonomy_service::DeleteDataTaxonomy::new(self.inner.clone())
2916 }
2917
2918 /// Lists DataTaxonomy resources in a project and location.
2919 ///
2920 /// # Example
2921 /// ```
2922 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2923 /// use google_cloud_gax::paginator::ItemPaginator as _;
2924 /// use google_cloud_dataplex_v1::Result;
2925 /// async fn sample(
2926 /// client: &DataTaxonomyService, parent: &str
2927 /// ) -> Result<()> {
2928 /// let mut list = client.list_data_taxonomies()
2929 /// .set_parent(parent)
2930 /// .by_item();
2931 /// while let Some(item) = list.next().await.transpose()? {
2932 /// println!("{:?}", item);
2933 /// }
2934 /// Ok(())
2935 /// }
2936 /// ```
2937 #[deprecated]
2938 pub fn list_data_taxonomies(
2939 &self,
2940 ) -> super::builder::data_taxonomy_service::ListDataTaxonomies {
2941 super::builder::data_taxonomy_service::ListDataTaxonomies::new(self.inner.clone())
2942 }
2943
2944 /// Retrieves a DataTaxonomy resource.
2945 ///
2946 /// # Example
2947 /// ```
2948 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2949 /// use google_cloud_dataplex_v1::Result;
2950 /// async fn sample(
2951 /// client: &DataTaxonomyService, name: &str
2952 /// ) -> Result<()> {
2953 /// let response = client.get_data_taxonomy()
2954 /// .set_name(name)
2955 /// .send().await?;
2956 /// println!("response {:?}", response);
2957 /// Ok(())
2958 /// }
2959 /// ```
2960 #[deprecated]
2961 pub fn get_data_taxonomy(&self) -> super::builder::data_taxonomy_service::GetDataTaxonomy {
2962 super::builder::data_taxonomy_service::GetDataTaxonomy::new(self.inner.clone())
2963 }
2964
2965 /// Create a DataAttributeBinding resource.
2966 ///
2967 /// # Long running operations
2968 ///
2969 /// This method is used to start, and/or poll a [long-running Operation].
2970 /// The [Working with long-running operations] chapter in the [user guide]
2971 /// covers these operations in detail.
2972 ///
2973 /// [long-running operation]: https://google.aip.dev/151
2974 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
2975 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
2976 ///
2977 /// # Example
2978 /// ```
2979 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
2980 /// use google_cloud_lro::Poller;
2981 /// use google_cloud_dataplex_v1::model::DataAttributeBinding;
2982 /// use google_cloud_dataplex_v1::Result;
2983 /// async fn sample(
2984 /// client: &DataTaxonomyService, parent: &str
2985 /// ) -> Result<()> {
2986 /// let response = client.create_data_attribute_binding()
2987 /// .set_parent(parent)
2988 /// .set_data_attribute_binding(
2989 /// DataAttributeBinding::new()/* set fields */
2990 /// )
2991 /// .poller().until_done().await?;
2992 /// println!("response {:?}", response);
2993 /// Ok(())
2994 /// }
2995 /// ```
2996 #[deprecated]
2997 pub fn create_data_attribute_binding(
2998 &self,
2999 ) -> super::builder::data_taxonomy_service::CreateDataAttributeBinding {
3000 super::builder::data_taxonomy_service::CreateDataAttributeBinding::new(self.inner.clone())
3001 }
3002
3003 /// Updates a DataAttributeBinding resource.
3004 ///
3005 /// # Long running operations
3006 ///
3007 /// This method is used to start, and/or poll a [long-running Operation].
3008 /// The [Working with long-running operations] chapter in the [user guide]
3009 /// covers these operations in detail.
3010 ///
3011 /// [long-running operation]: https://google.aip.dev/151
3012 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3013 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3014 ///
3015 /// # Example
3016 /// ```
3017 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3018 /// use google_cloud_lro::Poller;
3019 /// # extern crate wkt as google_cloud_wkt;
3020 /// use google_cloud_wkt::FieldMask;
3021 /// use google_cloud_dataplex_v1::model::DataAttributeBinding;
3022 /// use google_cloud_dataplex_v1::Result;
3023 /// async fn sample(
3024 /// client: &DataTaxonomyService, name: &str
3025 /// ) -> Result<()> {
3026 /// let response = client.update_data_attribute_binding()
3027 /// .set_data_attribute_binding(
3028 /// DataAttributeBinding::new().set_name(name)/* set fields */
3029 /// )
3030 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
3031 /// .poller().until_done().await?;
3032 /// println!("response {:?}", response);
3033 /// Ok(())
3034 /// }
3035 /// ```
3036 #[deprecated]
3037 pub fn update_data_attribute_binding(
3038 &self,
3039 ) -> super::builder::data_taxonomy_service::UpdateDataAttributeBinding {
3040 super::builder::data_taxonomy_service::UpdateDataAttributeBinding::new(self.inner.clone())
3041 }
3042
3043 /// Deletes a DataAttributeBinding resource. All attributes within the
3044 /// DataAttributeBinding must be deleted before the DataAttributeBinding can be
3045 /// deleted.
3046 ///
3047 /// # Long running operations
3048 ///
3049 /// This method is used to start, and/or poll a [long-running Operation].
3050 /// The [Working with long-running operations] chapter in the [user guide]
3051 /// covers these operations in detail.
3052 ///
3053 /// [long-running operation]: https://google.aip.dev/151
3054 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3055 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3056 ///
3057 /// # Example
3058 /// ```
3059 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3060 /// use google_cloud_lro::Poller;
3061 /// use google_cloud_dataplex_v1::Result;
3062 /// async fn sample(
3063 /// client: &DataTaxonomyService, name: &str
3064 /// ) -> Result<()> {
3065 /// client.delete_data_attribute_binding()
3066 /// .set_name(name)
3067 /// .poller().until_done().await?;
3068 /// Ok(())
3069 /// }
3070 /// ```
3071 #[deprecated]
3072 pub fn delete_data_attribute_binding(
3073 &self,
3074 ) -> super::builder::data_taxonomy_service::DeleteDataAttributeBinding {
3075 super::builder::data_taxonomy_service::DeleteDataAttributeBinding::new(self.inner.clone())
3076 }
3077
3078 /// Lists DataAttributeBinding resources in a project and location.
3079 ///
3080 /// # Example
3081 /// ```
3082 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3083 /// use google_cloud_gax::paginator::ItemPaginator as _;
3084 /// use google_cloud_dataplex_v1::Result;
3085 /// async fn sample(
3086 /// client: &DataTaxonomyService, parent: &str
3087 /// ) -> Result<()> {
3088 /// let mut list = client.list_data_attribute_bindings()
3089 /// .set_parent(parent)
3090 /// .by_item();
3091 /// while let Some(item) = list.next().await.transpose()? {
3092 /// println!("{:?}", item);
3093 /// }
3094 /// Ok(())
3095 /// }
3096 /// ```
3097 #[deprecated]
3098 pub fn list_data_attribute_bindings(
3099 &self,
3100 ) -> super::builder::data_taxonomy_service::ListDataAttributeBindings {
3101 super::builder::data_taxonomy_service::ListDataAttributeBindings::new(self.inner.clone())
3102 }
3103
3104 /// Retrieves a DataAttributeBinding resource.
3105 ///
3106 /// # Example
3107 /// ```
3108 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3109 /// use google_cloud_dataplex_v1::Result;
3110 /// async fn sample(
3111 /// client: &DataTaxonomyService, name: &str
3112 /// ) -> Result<()> {
3113 /// let response = client.get_data_attribute_binding()
3114 /// .set_name(name)
3115 /// .send().await?;
3116 /// println!("response {:?}", response);
3117 /// Ok(())
3118 /// }
3119 /// ```
3120 #[deprecated]
3121 pub fn get_data_attribute_binding(
3122 &self,
3123 ) -> super::builder::data_taxonomy_service::GetDataAttributeBinding {
3124 super::builder::data_taxonomy_service::GetDataAttributeBinding::new(self.inner.clone())
3125 }
3126
3127 /// Create a DataAttribute resource.
3128 ///
3129 /// # Long running operations
3130 ///
3131 /// This method is used to start, and/or poll a [long-running Operation].
3132 /// The [Working with long-running operations] chapter in the [user guide]
3133 /// covers these operations in detail.
3134 ///
3135 /// [long-running operation]: https://google.aip.dev/151
3136 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3137 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3138 ///
3139 /// # Example
3140 /// ```
3141 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3142 /// use google_cloud_lro::Poller;
3143 /// use google_cloud_dataplex_v1::model::DataAttribute;
3144 /// use google_cloud_dataplex_v1::Result;
3145 /// async fn sample(
3146 /// client: &DataTaxonomyService, parent: &str
3147 /// ) -> Result<()> {
3148 /// let response = client.create_data_attribute()
3149 /// .set_parent(parent)
3150 /// .set_data_attribute(
3151 /// DataAttribute::new()/* set fields */
3152 /// )
3153 /// .poller().until_done().await?;
3154 /// println!("response {:?}", response);
3155 /// Ok(())
3156 /// }
3157 /// ```
3158 #[deprecated]
3159 pub fn create_data_attribute(
3160 &self,
3161 ) -> super::builder::data_taxonomy_service::CreateDataAttribute {
3162 super::builder::data_taxonomy_service::CreateDataAttribute::new(self.inner.clone())
3163 }
3164
3165 /// Updates a DataAttribute resource.
3166 ///
3167 /// # Long running operations
3168 ///
3169 /// This method is used to start, and/or poll a [long-running Operation].
3170 /// The [Working with long-running operations] chapter in the [user guide]
3171 /// covers these operations in detail.
3172 ///
3173 /// [long-running operation]: https://google.aip.dev/151
3174 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3175 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3176 ///
3177 /// # Example
3178 /// ```
3179 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3180 /// use google_cloud_lro::Poller;
3181 /// # extern crate wkt as google_cloud_wkt;
3182 /// use google_cloud_wkt::FieldMask;
3183 /// use google_cloud_dataplex_v1::model::DataAttribute;
3184 /// use google_cloud_dataplex_v1::Result;
3185 /// async fn sample(
3186 /// client: &DataTaxonomyService, name: &str
3187 /// ) -> Result<()> {
3188 /// let response = client.update_data_attribute()
3189 /// .set_data_attribute(
3190 /// DataAttribute::new().set_name(name)/* set fields */
3191 /// )
3192 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
3193 /// .poller().until_done().await?;
3194 /// println!("response {:?}", response);
3195 /// Ok(())
3196 /// }
3197 /// ```
3198 #[deprecated]
3199 pub fn update_data_attribute(
3200 &self,
3201 ) -> super::builder::data_taxonomy_service::UpdateDataAttribute {
3202 super::builder::data_taxonomy_service::UpdateDataAttribute::new(self.inner.clone())
3203 }
3204
3205 /// Deletes a Data Attribute resource.
3206 ///
3207 /// # Long running operations
3208 ///
3209 /// This method is used to start, and/or poll a [long-running Operation].
3210 /// The [Working with long-running operations] chapter in the [user guide]
3211 /// covers these operations in detail.
3212 ///
3213 /// [long-running operation]: https://google.aip.dev/151
3214 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3215 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3216 ///
3217 /// # Example
3218 /// ```
3219 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3220 /// use google_cloud_lro::Poller;
3221 /// use google_cloud_dataplex_v1::Result;
3222 /// async fn sample(
3223 /// client: &DataTaxonomyService, name: &str
3224 /// ) -> Result<()> {
3225 /// client.delete_data_attribute()
3226 /// .set_name(name)
3227 /// .poller().until_done().await?;
3228 /// Ok(())
3229 /// }
3230 /// ```
3231 #[deprecated]
3232 pub fn delete_data_attribute(
3233 &self,
3234 ) -> super::builder::data_taxonomy_service::DeleteDataAttribute {
3235 super::builder::data_taxonomy_service::DeleteDataAttribute::new(self.inner.clone())
3236 }
3237
3238 /// Lists Data Attribute resources in a DataTaxonomy.
3239 ///
3240 /// # Example
3241 /// ```
3242 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3243 /// use google_cloud_gax::paginator::ItemPaginator as _;
3244 /// use google_cloud_dataplex_v1::Result;
3245 /// async fn sample(
3246 /// client: &DataTaxonomyService, parent: &str
3247 /// ) -> Result<()> {
3248 /// let mut list = client.list_data_attributes()
3249 /// .set_parent(parent)
3250 /// .by_item();
3251 /// while let Some(item) = list.next().await.transpose()? {
3252 /// println!("{:?}", item);
3253 /// }
3254 /// Ok(())
3255 /// }
3256 /// ```
3257 #[deprecated]
3258 pub fn list_data_attributes(
3259 &self,
3260 ) -> super::builder::data_taxonomy_service::ListDataAttributes {
3261 super::builder::data_taxonomy_service::ListDataAttributes::new(self.inner.clone())
3262 }
3263
3264 /// Retrieves a Data Attribute resource.
3265 ///
3266 /// # Example
3267 /// ```
3268 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3269 /// use google_cloud_dataplex_v1::Result;
3270 /// async fn sample(
3271 /// client: &DataTaxonomyService, name: &str
3272 /// ) -> Result<()> {
3273 /// let response = client.get_data_attribute()
3274 /// .set_name(name)
3275 /// .send().await?;
3276 /// println!("response {:?}", response);
3277 /// Ok(())
3278 /// }
3279 /// ```
3280 #[deprecated]
3281 pub fn get_data_attribute(&self) -> super::builder::data_taxonomy_service::GetDataAttribute {
3282 super::builder::data_taxonomy_service::GetDataAttribute::new(self.inner.clone())
3283 }
3284
3285 /// Lists information about the supported locations for this service.
3286 ///
3287 /// # Example
3288 /// ```
3289 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3290 /// use google_cloud_gax::paginator::ItemPaginator as _;
3291 /// use google_cloud_dataplex_v1::Result;
3292 /// async fn sample(
3293 /// client: &DataTaxonomyService
3294 /// ) -> Result<()> {
3295 /// let mut list = client.list_locations()
3296 /// /* set fields */
3297 /// .by_item();
3298 /// while let Some(item) = list.next().await.transpose()? {
3299 /// println!("{:?}", item);
3300 /// }
3301 /// Ok(())
3302 /// }
3303 /// ```
3304 pub fn list_locations(&self) -> super::builder::data_taxonomy_service::ListLocations {
3305 super::builder::data_taxonomy_service::ListLocations::new(self.inner.clone())
3306 }
3307
3308 /// Gets information about a location.
3309 ///
3310 /// # Example
3311 /// ```
3312 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3313 /// use google_cloud_dataplex_v1::Result;
3314 /// async fn sample(
3315 /// client: &DataTaxonomyService
3316 /// ) -> Result<()> {
3317 /// let response = client.get_location()
3318 /// /* set fields */
3319 /// .send().await?;
3320 /// println!("response {:?}", response);
3321 /// Ok(())
3322 /// }
3323 /// ```
3324 pub fn get_location(&self) -> super::builder::data_taxonomy_service::GetLocation {
3325 super::builder::data_taxonomy_service::GetLocation::new(self.inner.clone())
3326 }
3327
3328 /// Sets the access control policy on the specified resource. Replaces
3329 /// any existing policy.
3330 ///
3331 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
3332 /// errors.
3333 ///
3334 /// # Example
3335 /// ```
3336 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3337 /// use google_cloud_dataplex_v1::Result;
3338 /// async fn sample(
3339 /// client: &DataTaxonomyService
3340 /// ) -> Result<()> {
3341 /// let response = client.set_iam_policy()
3342 /// /* set fields */
3343 /// .send().await?;
3344 /// println!("response {:?}", response);
3345 /// Ok(())
3346 /// }
3347 /// ```
3348 pub fn set_iam_policy(&self) -> super::builder::data_taxonomy_service::SetIamPolicy {
3349 super::builder::data_taxonomy_service::SetIamPolicy::new(self.inner.clone())
3350 }
3351
3352 /// Gets the access control policy for a resource. Returns an empty policy
3353 /// if the resource exists and does not have a policy set.
3354 ///
3355 /// # Example
3356 /// ```
3357 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3358 /// use google_cloud_dataplex_v1::Result;
3359 /// async fn sample(
3360 /// client: &DataTaxonomyService
3361 /// ) -> Result<()> {
3362 /// let response = client.get_iam_policy()
3363 /// /* set fields */
3364 /// .send().await?;
3365 /// println!("response {:?}", response);
3366 /// Ok(())
3367 /// }
3368 /// ```
3369 pub fn get_iam_policy(&self) -> super::builder::data_taxonomy_service::GetIamPolicy {
3370 super::builder::data_taxonomy_service::GetIamPolicy::new(self.inner.clone())
3371 }
3372
3373 /// Returns permissions that a caller has on the specified resource. If the
3374 /// resource does not exist, this will return an empty set of
3375 /// permissions, not a `NOT_FOUND` error.
3376 ///
3377 /// Note: This operation is designed to be used for building
3378 /// permission-aware UIs and command-line tools, not for authorization
3379 /// checking. This operation may "fail open" without warning.
3380 ///
3381 /// # Example
3382 /// ```
3383 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3384 /// use google_cloud_dataplex_v1::Result;
3385 /// async fn sample(
3386 /// client: &DataTaxonomyService
3387 /// ) -> Result<()> {
3388 /// let response = client.test_iam_permissions()
3389 /// /* set fields */
3390 /// .send().await?;
3391 /// println!("response {:?}", response);
3392 /// Ok(())
3393 /// }
3394 /// ```
3395 pub fn test_iam_permissions(
3396 &self,
3397 ) -> super::builder::data_taxonomy_service::TestIamPermissions {
3398 super::builder::data_taxonomy_service::TestIamPermissions::new(self.inner.clone())
3399 }
3400
3401 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3402 ///
3403 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3404 ///
3405 /// # Example
3406 /// ```
3407 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3408 /// use google_cloud_gax::paginator::ItemPaginator as _;
3409 /// use google_cloud_dataplex_v1::Result;
3410 /// async fn sample(
3411 /// client: &DataTaxonomyService
3412 /// ) -> Result<()> {
3413 /// let mut list = client.list_operations()
3414 /// /* set fields */
3415 /// .by_item();
3416 /// while let Some(item) = list.next().await.transpose()? {
3417 /// println!("{:?}", item);
3418 /// }
3419 /// Ok(())
3420 /// }
3421 /// ```
3422 pub fn list_operations(&self) -> super::builder::data_taxonomy_service::ListOperations {
3423 super::builder::data_taxonomy_service::ListOperations::new(self.inner.clone())
3424 }
3425
3426 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3427 ///
3428 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3429 ///
3430 /// # Example
3431 /// ```
3432 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3433 /// use google_cloud_dataplex_v1::Result;
3434 /// async fn sample(
3435 /// client: &DataTaxonomyService
3436 /// ) -> Result<()> {
3437 /// let response = client.get_operation()
3438 /// /* set fields */
3439 /// .send().await?;
3440 /// println!("response {:?}", response);
3441 /// Ok(())
3442 /// }
3443 /// ```
3444 pub fn get_operation(&self) -> super::builder::data_taxonomy_service::GetOperation {
3445 super::builder::data_taxonomy_service::GetOperation::new(self.inner.clone())
3446 }
3447
3448 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3449 ///
3450 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3451 ///
3452 /// # Example
3453 /// ```
3454 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3455 /// use google_cloud_dataplex_v1::Result;
3456 /// async fn sample(
3457 /// client: &DataTaxonomyService
3458 /// ) -> Result<()> {
3459 /// client.delete_operation()
3460 /// /* set fields */
3461 /// .send().await?;
3462 /// Ok(())
3463 /// }
3464 /// ```
3465 pub fn delete_operation(&self) -> super::builder::data_taxonomy_service::DeleteOperation {
3466 super::builder::data_taxonomy_service::DeleteOperation::new(self.inner.clone())
3467 }
3468
3469 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3470 ///
3471 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3472 ///
3473 /// # Example
3474 /// ```
3475 /// # use google_cloud_dataplex_v1::client::DataTaxonomyService;
3476 /// use google_cloud_dataplex_v1::Result;
3477 /// async fn sample(
3478 /// client: &DataTaxonomyService
3479 /// ) -> Result<()> {
3480 /// client.cancel_operation()
3481 /// /* set fields */
3482 /// .send().await?;
3483 /// Ok(())
3484 /// }
3485 /// ```
3486 pub fn cancel_operation(&self) -> super::builder::data_taxonomy_service::CancelOperation {
3487 super::builder::data_taxonomy_service::CancelOperation::new(self.inner.clone())
3488 }
3489}
3490
3491/// Implements a client for the Cloud Dataplex API.
3492///
3493/// # Example
3494/// ```
3495/// # use google_cloud_dataplex_v1::client::DataScanService;
3496/// use google_cloud_gax::paginator::ItemPaginator as _;
3497/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
3498/// let client = DataScanService::builder().build().await?;
3499/// let parent = "parent_value";
3500/// let mut list = client.list_data_scans()
3501/// .set_parent(parent)
3502/// .by_item();
3503/// while let Some(item) = list.next().await.transpose()? {
3504/// println!("{:?}", item);
3505/// }
3506/// # Ok(()) }
3507/// ```
3508///
3509/// # Service Description
3510///
3511/// DataScanService manages DataScan resources which can be configured to run
3512/// various types of data scanning workload and generate enriched metadata (e.g.
3513/// Data Profile, Data Quality) for the data source.
3514///
3515/// # Configuration
3516///
3517/// To configure `DataScanService` use the `with_*` methods in the type returned
3518/// by [builder()][DataScanService::builder]. The default configuration should
3519/// work for most applications. Common configuration changes include
3520///
3521/// * [with_endpoint()]: by default this client uses the global default endpoint
3522/// (`https://dataplex.googleapis.com`). Applications using regional
3523/// endpoints or running in restricted networks (e.g. a network configured
3524// with [Private Google Access with VPC Service Controls]) may want to
3525/// override this default.
3526/// * [with_credentials()]: by default this client uses
3527/// [Application Default Credentials]. Applications using custom
3528/// authentication may need to override this default.
3529///
3530/// [with_endpoint()]: super::builder::data_scan_service::ClientBuilder::with_endpoint
3531/// [with_credentials()]: super::builder::data_scan_service::ClientBuilder::with_credentials
3532/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
3533/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
3534///
3535/// # Pooling and Cloning
3536///
3537/// `DataScanService` holds a connection pool internally, it is advised to
3538/// create one and reuse it. You do not need to wrap `DataScanService` in
3539/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
3540/// already uses an `Arc` internally.
3541#[derive(Clone, Debug)]
3542pub struct DataScanService {
3543 inner: std::sync::Arc<dyn super::stub::dynamic::DataScanService>,
3544}
3545
3546impl DataScanService {
3547 /// Returns a builder for [DataScanService].
3548 ///
3549 /// ```
3550 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
3551 /// # use google_cloud_dataplex_v1::client::DataScanService;
3552 /// let client = DataScanService::builder().build().await?;
3553 /// # Ok(()) }
3554 /// ```
3555 pub fn builder() -> super::builder::data_scan_service::ClientBuilder {
3556 crate::new_client_builder(super::builder::data_scan_service::client::Factory)
3557 }
3558
3559 /// Creates a new client from the provided stub.
3560 ///
3561 /// The most common case for calling this function is in tests mocking the
3562 /// client's behavior.
3563 pub fn from_stub<T>(stub: T) -> Self
3564 where
3565 T: super::stub::DataScanService + 'static,
3566 {
3567 Self {
3568 inner: std::sync::Arc::new(stub),
3569 }
3570 }
3571
3572 pub(crate) async fn new(
3573 config: gaxi::options::ClientConfig,
3574 ) -> crate::ClientBuilderResult<Self> {
3575 let inner = Self::build_inner(config).await?;
3576 Ok(Self { inner })
3577 }
3578
3579 async fn build_inner(
3580 conf: gaxi::options::ClientConfig,
3581 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::DataScanService>> {
3582 if gaxi::options::tracing_enabled(&conf) {
3583 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
3584 }
3585 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
3586 }
3587
3588 async fn build_transport(
3589 conf: gaxi::options::ClientConfig,
3590 ) -> crate::ClientBuilderResult<impl super::stub::DataScanService> {
3591 super::transport::DataScanService::new(conf).await
3592 }
3593
3594 async fn build_with_tracing(
3595 conf: gaxi::options::ClientConfig,
3596 ) -> crate::ClientBuilderResult<impl super::stub::DataScanService> {
3597 Self::build_transport(conf)
3598 .await
3599 .map(super::tracing::DataScanService::new)
3600 }
3601
3602 /// Creates a DataScan resource.
3603 ///
3604 /// # Long running operations
3605 ///
3606 /// This method is used to start, and/or poll a [long-running Operation].
3607 /// The [Working with long-running operations] chapter in the [user guide]
3608 /// covers these operations in detail.
3609 ///
3610 /// [long-running operation]: https://google.aip.dev/151
3611 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3612 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3613 ///
3614 /// # Example
3615 /// ```
3616 /// # use google_cloud_dataplex_v1::client::DataScanService;
3617 /// use google_cloud_lro::Poller;
3618 /// use google_cloud_dataplex_v1::model::DataScan;
3619 /// use google_cloud_dataplex_v1::Result;
3620 /// async fn sample(
3621 /// client: &DataScanService, parent: &str
3622 /// ) -> Result<()> {
3623 /// let response = client.create_data_scan()
3624 /// .set_parent(parent)
3625 /// .set_data_scan(
3626 /// DataScan::new()/* set fields */
3627 /// )
3628 /// .poller().until_done().await?;
3629 /// println!("response {:?}", response);
3630 /// Ok(())
3631 /// }
3632 /// ```
3633 pub fn create_data_scan(&self) -> super::builder::data_scan_service::CreateDataScan {
3634 super::builder::data_scan_service::CreateDataScan::new(self.inner.clone())
3635 }
3636
3637 /// Updates a DataScan resource.
3638 ///
3639 /// # Long running operations
3640 ///
3641 /// This method is used to start, and/or poll a [long-running Operation].
3642 /// The [Working with long-running operations] chapter in the [user guide]
3643 /// covers these operations in detail.
3644 ///
3645 /// [long-running operation]: https://google.aip.dev/151
3646 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3647 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3648 ///
3649 /// # Example
3650 /// ```
3651 /// # use google_cloud_dataplex_v1::client::DataScanService;
3652 /// use google_cloud_lro::Poller;
3653 /// # extern crate wkt as google_cloud_wkt;
3654 /// use google_cloud_wkt::FieldMask;
3655 /// use google_cloud_dataplex_v1::model::DataScan;
3656 /// use google_cloud_dataplex_v1::Result;
3657 /// async fn sample(
3658 /// client: &DataScanService, name: &str
3659 /// ) -> Result<()> {
3660 /// let response = client.update_data_scan()
3661 /// .set_data_scan(
3662 /// DataScan::new().set_name(name)/* set fields */
3663 /// )
3664 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
3665 /// .poller().until_done().await?;
3666 /// println!("response {:?}", response);
3667 /// Ok(())
3668 /// }
3669 /// ```
3670 pub fn update_data_scan(&self) -> super::builder::data_scan_service::UpdateDataScan {
3671 super::builder::data_scan_service::UpdateDataScan::new(self.inner.clone())
3672 }
3673
3674 /// Deletes a DataScan resource.
3675 ///
3676 /// # Long running operations
3677 ///
3678 /// This method is used to start, and/or poll a [long-running Operation].
3679 /// The [Working with long-running operations] chapter in the [user guide]
3680 /// covers these operations in detail.
3681 ///
3682 /// [long-running operation]: https://google.aip.dev/151
3683 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
3684 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
3685 ///
3686 /// # Example
3687 /// ```
3688 /// # use google_cloud_dataplex_v1::client::DataScanService;
3689 /// use google_cloud_lro::Poller;
3690 /// use google_cloud_dataplex_v1::Result;
3691 /// async fn sample(
3692 /// client: &DataScanService, name: &str
3693 /// ) -> Result<()> {
3694 /// client.delete_data_scan()
3695 /// .set_name(name)
3696 /// .poller().until_done().await?;
3697 /// Ok(())
3698 /// }
3699 /// ```
3700 pub fn delete_data_scan(&self) -> super::builder::data_scan_service::DeleteDataScan {
3701 super::builder::data_scan_service::DeleteDataScan::new(self.inner.clone())
3702 }
3703
3704 /// Gets a DataScan resource.
3705 ///
3706 /// # Example
3707 /// ```
3708 /// # use google_cloud_dataplex_v1::client::DataScanService;
3709 /// use google_cloud_dataplex_v1::Result;
3710 /// async fn sample(
3711 /// client: &DataScanService, name: &str
3712 /// ) -> Result<()> {
3713 /// let response = client.get_data_scan()
3714 /// .set_name(name)
3715 /// .send().await?;
3716 /// println!("response {:?}", response);
3717 /// Ok(())
3718 /// }
3719 /// ```
3720 pub fn get_data_scan(&self) -> super::builder::data_scan_service::GetDataScan {
3721 super::builder::data_scan_service::GetDataScan::new(self.inner.clone())
3722 }
3723
3724 /// Lists DataScans.
3725 ///
3726 /// # Example
3727 /// ```
3728 /// # use google_cloud_dataplex_v1::client::DataScanService;
3729 /// use google_cloud_gax::paginator::ItemPaginator as _;
3730 /// use google_cloud_dataplex_v1::Result;
3731 /// async fn sample(
3732 /// client: &DataScanService, parent: &str
3733 /// ) -> Result<()> {
3734 /// let mut list = client.list_data_scans()
3735 /// .set_parent(parent)
3736 /// .by_item();
3737 /// while let Some(item) = list.next().await.transpose()? {
3738 /// println!("{:?}", item);
3739 /// }
3740 /// Ok(())
3741 /// }
3742 /// ```
3743 pub fn list_data_scans(&self) -> super::builder::data_scan_service::ListDataScans {
3744 super::builder::data_scan_service::ListDataScans::new(self.inner.clone())
3745 }
3746
3747 /// Runs an on-demand execution of a DataScan
3748 ///
3749 /// # Example
3750 /// ```
3751 /// # use google_cloud_dataplex_v1::client::DataScanService;
3752 /// use google_cloud_dataplex_v1::Result;
3753 /// async fn sample(
3754 /// client: &DataScanService
3755 /// ) -> Result<()> {
3756 /// let response = client.run_data_scan()
3757 /// /* set fields */
3758 /// .send().await?;
3759 /// println!("response {:?}", response);
3760 /// Ok(())
3761 /// }
3762 /// ```
3763 pub fn run_data_scan(&self) -> super::builder::data_scan_service::RunDataScan {
3764 super::builder::data_scan_service::RunDataScan::new(self.inner.clone())
3765 }
3766
3767 /// Gets a DataScanJob resource.
3768 ///
3769 /// # Example
3770 /// ```
3771 /// # use google_cloud_dataplex_v1::client::DataScanService;
3772 /// use google_cloud_dataplex_v1::Result;
3773 /// async fn sample(
3774 /// client: &DataScanService, name: &str
3775 /// ) -> Result<()> {
3776 /// let response = client.get_data_scan_job()
3777 /// .set_name(name)
3778 /// .send().await?;
3779 /// println!("response {:?}", response);
3780 /// Ok(())
3781 /// }
3782 /// ```
3783 pub fn get_data_scan_job(&self) -> super::builder::data_scan_service::GetDataScanJob {
3784 super::builder::data_scan_service::GetDataScanJob::new(self.inner.clone())
3785 }
3786
3787 /// Lists DataScanJobs under the given DataScan.
3788 ///
3789 /// # Example
3790 /// ```
3791 /// # use google_cloud_dataplex_v1::client::DataScanService;
3792 /// use google_cloud_gax::paginator::ItemPaginator as _;
3793 /// use google_cloud_dataplex_v1::Result;
3794 /// async fn sample(
3795 /// client: &DataScanService, parent: &str
3796 /// ) -> Result<()> {
3797 /// let mut list = client.list_data_scan_jobs()
3798 /// .set_parent(parent)
3799 /// .by_item();
3800 /// while let Some(item) = list.next().await.transpose()? {
3801 /// println!("{:?}", item);
3802 /// }
3803 /// Ok(())
3804 /// }
3805 /// ```
3806 pub fn list_data_scan_jobs(&self) -> super::builder::data_scan_service::ListDataScanJobs {
3807 super::builder::data_scan_service::ListDataScanJobs::new(self.inner.clone())
3808 }
3809
3810 /// Generates recommended data quality rules based on the results of a data
3811 /// profiling scan.
3812 ///
3813 /// Use the recommendations to build rules for a data quality scan.
3814 ///
3815 /// # Example
3816 /// ```
3817 /// # use google_cloud_dataplex_v1::client::DataScanService;
3818 /// use google_cloud_dataplex_v1::Result;
3819 /// async fn sample(
3820 /// client: &DataScanService
3821 /// ) -> Result<()> {
3822 /// let response = client.generate_data_quality_rules()
3823 /// /* set fields */
3824 /// .send().await?;
3825 /// println!("response {:?}", response);
3826 /// Ok(())
3827 /// }
3828 /// ```
3829 pub fn generate_data_quality_rules(
3830 &self,
3831 ) -> super::builder::data_scan_service::GenerateDataQualityRules {
3832 super::builder::data_scan_service::GenerateDataQualityRules::new(self.inner.clone())
3833 }
3834
3835 /// Lists information about the supported locations for this service.
3836 ///
3837 /// # Example
3838 /// ```
3839 /// # use google_cloud_dataplex_v1::client::DataScanService;
3840 /// use google_cloud_gax::paginator::ItemPaginator as _;
3841 /// use google_cloud_dataplex_v1::Result;
3842 /// async fn sample(
3843 /// client: &DataScanService
3844 /// ) -> Result<()> {
3845 /// let mut list = client.list_locations()
3846 /// /* set fields */
3847 /// .by_item();
3848 /// while let Some(item) = list.next().await.transpose()? {
3849 /// println!("{:?}", item);
3850 /// }
3851 /// Ok(())
3852 /// }
3853 /// ```
3854 pub fn list_locations(&self) -> super::builder::data_scan_service::ListLocations {
3855 super::builder::data_scan_service::ListLocations::new(self.inner.clone())
3856 }
3857
3858 /// Gets information about a location.
3859 ///
3860 /// # Example
3861 /// ```
3862 /// # use google_cloud_dataplex_v1::client::DataScanService;
3863 /// use google_cloud_dataplex_v1::Result;
3864 /// async fn sample(
3865 /// client: &DataScanService
3866 /// ) -> Result<()> {
3867 /// let response = client.get_location()
3868 /// /* set fields */
3869 /// .send().await?;
3870 /// println!("response {:?}", response);
3871 /// Ok(())
3872 /// }
3873 /// ```
3874 pub fn get_location(&self) -> super::builder::data_scan_service::GetLocation {
3875 super::builder::data_scan_service::GetLocation::new(self.inner.clone())
3876 }
3877
3878 /// Sets the access control policy on the specified resource. Replaces
3879 /// any existing policy.
3880 ///
3881 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
3882 /// errors.
3883 ///
3884 /// # Example
3885 /// ```
3886 /// # use google_cloud_dataplex_v1::client::DataScanService;
3887 /// use google_cloud_dataplex_v1::Result;
3888 /// async fn sample(
3889 /// client: &DataScanService
3890 /// ) -> Result<()> {
3891 /// let response = client.set_iam_policy()
3892 /// /* set fields */
3893 /// .send().await?;
3894 /// println!("response {:?}", response);
3895 /// Ok(())
3896 /// }
3897 /// ```
3898 pub fn set_iam_policy(&self) -> super::builder::data_scan_service::SetIamPolicy {
3899 super::builder::data_scan_service::SetIamPolicy::new(self.inner.clone())
3900 }
3901
3902 /// Gets the access control policy for a resource. Returns an empty policy
3903 /// if the resource exists and does not have a policy set.
3904 ///
3905 /// # Example
3906 /// ```
3907 /// # use google_cloud_dataplex_v1::client::DataScanService;
3908 /// use google_cloud_dataplex_v1::Result;
3909 /// async fn sample(
3910 /// client: &DataScanService
3911 /// ) -> Result<()> {
3912 /// let response = client.get_iam_policy()
3913 /// /* set fields */
3914 /// .send().await?;
3915 /// println!("response {:?}", response);
3916 /// Ok(())
3917 /// }
3918 /// ```
3919 pub fn get_iam_policy(&self) -> super::builder::data_scan_service::GetIamPolicy {
3920 super::builder::data_scan_service::GetIamPolicy::new(self.inner.clone())
3921 }
3922
3923 /// Returns permissions that a caller has on the specified resource. If the
3924 /// resource does not exist, this will return an empty set of
3925 /// permissions, not a `NOT_FOUND` error.
3926 ///
3927 /// Note: This operation is designed to be used for building
3928 /// permission-aware UIs and command-line tools, not for authorization
3929 /// checking. This operation may "fail open" without warning.
3930 ///
3931 /// # Example
3932 /// ```
3933 /// # use google_cloud_dataplex_v1::client::DataScanService;
3934 /// use google_cloud_dataplex_v1::Result;
3935 /// async fn sample(
3936 /// client: &DataScanService
3937 /// ) -> Result<()> {
3938 /// let response = client.test_iam_permissions()
3939 /// /* set fields */
3940 /// .send().await?;
3941 /// println!("response {:?}", response);
3942 /// Ok(())
3943 /// }
3944 /// ```
3945 pub fn test_iam_permissions(&self) -> super::builder::data_scan_service::TestIamPermissions {
3946 super::builder::data_scan_service::TestIamPermissions::new(self.inner.clone())
3947 }
3948
3949 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3950 ///
3951 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3952 ///
3953 /// # Example
3954 /// ```
3955 /// # use google_cloud_dataplex_v1::client::DataScanService;
3956 /// use google_cloud_gax::paginator::ItemPaginator as _;
3957 /// use google_cloud_dataplex_v1::Result;
3958 /// async fn sample(
3959 /// client: &DataScanService
3960 /// ) -> Result<()> {
3961 /// let mut list = client.list_operations()
3962 /// /* set fields */
3963 /// .by_item();
3964 /// while let Some(item) = list.next().await.transpose()? {
3965 /// println!("{:?}", item);
3966 /// }
3967 /// Ok(())
3968 /// }
3969 /// ```
3970 pub fn list_operations(&self) -> super::builder::data_scan_service::ListOperations {
3971 super::builder::data_scan_service::ListOperations::new(self.inner.clone())
3972 }
3973
3974 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3975 ///
3976 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3977 ///
3978 /// # Example
3979 /// ```
3980 /// # use google_cloud_dataplex_v1::client::DataScanService;
3981 /// use google_cloud_dataplex_v1::Result;
3982 /// async fn sample(
3983 /// client: &DataScanService
3984 /// ) -> Result<()> {
3985 /// let response = client.get_operation()
3986 /// /* set fields */
3987 /// .send().await?;
3988 /// println!("response {:?}", response);
3989 /// Ok(())
3990 /// }
3991 /// ```
3992 pub fn get_operation(&self) -> super::builder::data_scan_service::GetOperation {
3993 super::builder::data_scan_service::GetOperation::new(self.inner.clone())
3994 }
3995
3996 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
3997 ///
3998 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
3999 ///
4000 /// # Example
4001 /// ```
4002 /// # use google_cloud_dataplex_v1::client::DataScanService;
4003 /// use google_cloud_dataplex_v1::Result;
4004 /// async fn sample(
4005 /// client: &DataScanService
4006 /// ) -> Result<()> {
4007 /// client.delete_operation()
4008 /// /* set fields */
4009 /// .send().await?;
4010 /// Ok(())
4011 /// }
4012 /// ```
4013 pub fn delete_operation(&self) -> super::builder::data_scan_service::DeleteOperation {
4014 super::builder::data_scan_service::DeleteOperation::new(self.inner.clone())
4015 }
4016
4017 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
4018 ///
4019 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
4020 ///
4021 /// # Example
4022 /// ```
4023 /// # use google_cloud_dataplex_v1::client::DataScanService;
4024 /// use google_cloud_dataplex_v1::Result;
4025 /// async fn sample(
4026 /// client: &DataScanService
4027 /// ) -> Result<()> {
4028 /// client.cancel_operation()
4029 /// /* set fields */
4030 /// .send().await?;
4031 /// Ok(())
4032 /// }
4033 /// ```
4034 pub fn cancel_operation(&self) -> super::builder::data_scan_service::CancelOperation {
4035 super::builder::data_scan_service::CancelOperation::new(self.inner.clone())
4036 }
4037}
4038
4039/// Implements a client for the Cloud Dataplex API.
4040///
4041/// # Example
4042/// ```
4043/// # use google_cloud_dataplex_v1::client::MetadataService;
4044/// use google_cloud_gax::paginator::ItemPaginator as _;
4045/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
4046/// let client = MetadataService::builder().build().await?;
4047/// let parent = "parent_value";
4048/// let mut list = client.list_entities()
4049/// .set_parent(parent)
4050/// .by_item();
4051/// while let Some(item) = list.next().await.transpose()? {
4052/// println!("{:?}", item);
4053/// }
4054/// # Ok(()) }
4055/// ```
4056///
4057/// # Service Description
4058///
4059/// Metadata service manages metadata resources such as tables, filesets and
4060/// partitions.
4061///
4062/// # Configuration
4063///
4064/// To configure `MetadataService` use the `with_*` methods in the type returned
4065/// by [builder()][MetadataService::builder]. The default configuration should
4066/// work for most applications. Common configuration changes include
4067///
4068/// * [with_endpoint()]: by default this client uses the global default endpoint
4069/// (`https://dataplex.googleapis.com`). Applications using regional
4070/// endpoints or running in restricted networks (e.g. a network configured
4071// with [Private Google Access with VPC Service Controls]) may want to
4072/// override this default.
4073/// * [with_credentials()]: by default this client uses
4074/// [Application Default Credentials]. Applications using custom
4075/// authentication may need to override this default.
4076///
4077/// [with_endpoint()]: super::builder::metadata_service::ClientBuilder::with_endpoint
4078/// [with_credentials()]: super::builder::metadata_service::ClientBuilder::with_credentials
4079/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
4080/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
4081///
4082/// # Pooling and Cloning
4083///
4084/// `MetadataService` holds a connection pool internally, it is advised to
4085/// create one and reuse it. You do not need to wrap `MetadataService` in
4086/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
4087/// already uses an `Arc` internally.
4088#[derive(Clone, Debug)]
4089pub struct MetadataService {
4090 inner: std::sync::Arc<dyn super::stub::dynamic::MetadataService>,
4091}
4092
4093impl MetadataService {
4094 /// Returns a builder for [MetadataService].
4095 ///
4096 /// ```
4097 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
4098 /// # use google_cloud_dataplex_v1::client::MetadataService;
4099 /// let client = MetadataService::builder().build().await?;
4100 /// # Ok(()) }
4101 /// ```
4102 pub fn builder() -> super::builder::metadata_service::ClientBuilder {
4103 crate::new_client_builder(super::builder::metadata_service::client::Factory)
4104 }
4105
4106 /// Creates a new client from the provided stub.
4107 ///
4108 /// The most common case for calling this function is in tests mocking the
4109 /// client's behavior.
4110 pub fn from_stub<T>(stub: T) -> Self
4111 where
4112 T: super::stub::MetadataService + 'static,
4113 {
4114 Self {
4115 inner: std::sync::Arc::new(stub),
4116 }
4117 }
4118
4119 pub(crate) async fn new(
4120 config: gaxi::options::ClientConfig,
4121 ) -> crate::ClientBuilderResult<Self> {
4122 let inner = Self::build_inner(config).await?;
4123 Ok(Self { inner })
4124 }
4125
4126 async fn build_inner(
4127 conf: gaxi::options::ClientConfig,
4128 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::MetadataService>> {
4129 if gaxi::options::tracing_enabled(&conf) {
4130 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
4131 }
4132 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
4133 }
4134
4135 async fn build_transport(
4136 conf: gaxi::options::ClientConfig,
4137 ) -> crate::ClientBuilderResult<impl super::stub::MetadataService> {
4138 super::transport::MetadataService::new(conf).await
4139 }
4140
4141 async fn build_with_tracing(
4142 conf: gaxi::options::ClientConfig,
4143 ) -> crate::ClientBuilderResult<impl super::stub::MetadataService> {
4144 Self::build_transport(conf)
4145 .await
4146 .map(super::tracing::MetadataService::new)
4147 }
4148
4149 /// Create a metadata entity.
4150 ///
4151 /// # Example
4152 /// ```
4153 /// # use google_cloud_dataplex_v1::client::MetadataService;
4154 /// use google_cloud_dataplex_v1::model::Entity;
4155 /// use google_cloud_dataplex_v1::Result;
4156 /// async fn sample(
4157 /// client: &MetadataService, parent: &str
4158 /// ) -> Result<()> {
4159 /// let response = client.create_entity()
4160 /// .set_parent(parent)
4161 /// .set_entity(
4162 /// Entity::new()/* set fields */
4163 /// )
4164 /// .send().await?;
4165 /// println!("response {:?}", response);
4166 /// Ok(())
4167 /// }
4168 /// ```
4169 pub fn create_entity(&self) -> super::builder::metadata_service::CreateEntity {
4170 super::builder::metadata_service::CreateEntity::new(self.inner.clone())
4171 }
4172
4173 /// Update a metadata entity. Only supports full resource update.
4174 ///
4175 /// # Example
4176 /// ```
4177 /// # use google_cloud_dataplex_v1::client::MetadataService;
4178 /// use google_cloud_dataplex_v1::model::Entity;
4179 /// use google_cloud_dataplex_v1::Result;
4180 /// async fn sample(
4181 /// client: &MetadataService, name: &str
4182 /// ) -> Result<()> {
4183 /// let response = client.update_entity()
4184 /// .set_entity(
4185 /// Entity::new().set_name(name)/* set fields */
4186 /// )
4187 /// .send().await?;
4188 /// println!("response {:?}", response);
4189 /// Ok(())
4190 /// }
4191 /// ```
4192 pub fn update_entity(&self) -> super::builder::metadata_service::UpdateEntity {
4193 super::builder::metadata_service::UpdateEntity::new(self.inner.clone())
4194 }
4195
4196 /// Delete a metadata entity.
4197 ///
4198 /// # Example
4199 /// ```
4200 /// # use google_cloud_dataplex_v1::client::MetadataService;
4201 /// use google_cloud_dataplex_v1::Result;
4202 /// async fn sample(
4203 /// client: &MetadataService, name: &str
4204 /// ) -> Result<()> {
4205 /// client.delete_entity()
4206 /// .set_name(name)
4207 /// .send().await?;
4208 /// Ok(())
4209 /// }
4210 /// ```
4211 pub fn delete_entity(&self) -> super::builder::metadata_service::DeleteEntity {
4212 super::builder::metadata_service::DeleteEntity::new(self.inner.clone())
4213 }
4214
4215 /// Get a metadata entity.
4216 ///
4217 /// # Example
4218 /// ```
4219 /// # use google_cloud_dataplex_v1::client::MetadataService;
4220 /// use google_cloud_dataplex_v1::Result;
4221 /// async fn sample(
4222 /// client: &MetadataService, name: &str
4223 /// ) -> Result<()> {
4224 /// let response = client.get_entity()
4225 /// .set_name(name)
4226 /// .send().await?;
4227 /// println!("response {:?}", response);
4228 /// Ok(())
4229 /// }
4230 /// ```
4231 pub fn get_entity(&self) -> super::builder::metadata_service::GetEntity {
4232 super::builder::metadata_service::GetEntity::new(self.inner.clone())
4233 }
4234
4235 /// List metadata entities in a zone.
4236 ///
4237 /// # Example
4238 /// ```
4239 /// # use google_cloud_dataplex_v1::client::MetadataService;
4240 /// use google_cloud_gax::paginator::ItemPaginator as _;
4241 /// use google_cloud_dataplex_v1::Result;
4242 /// async fn sample(
4243 /// client: &MetadataService, parent: &str
4244 /// ) -> Result<()> {
4245 /// let mut list = client.list_entities()
4246 /// .set_parent(parent)
4247 /// .by_item();
4248 /// while let Some(item) = list.next().await.transpose()? {
4249 /// println!("{:?}", item);
4250 /// }
4251 /// Ok(())
4252 /// }
4253 /// ```
4254 pub fn list_entities(&self) -> super::builder::metadata_service::ListEntities {
4255 super::builder::metadata_service::ListEntities::new(self.inner.clone())
4256 }
4257
4258 /// Create a metadata partition.
4259 ///
4260 /// # Example
4261 /// ```
4262 /// # use google_cloud_dataplex_v1::client::MetadataService;
4263 /// use google_cloud_dataplex_v1::model::Partition;
4264 /// use google_cloud_dataplex_v1::Result;
4265 /// async fn sample(
4266 /// client: &MetadataService, parent: &str
4267 /// ) -> Result<()> {
4268 /// let response = client.create_partition()
4269 /// .set_parent(parent)
4270 /// .set_partition(
4271 /// Partition::new()/* set fields */
4272 /// )
4273 /// .send().await?;
4274 /// println!("response {:?}", response);
4275 /// Ok(())
4276 /// }
4277 /// ```
4278 pub fn create_partition(&self) -> super::builder::metadata_service::CreatePartition {
4279 super::builder::metadata_service::CreatePartition::new(self.inner.clone())
4280 }
4281
4282 /// Delete a metadata partition.
4283 ///
4284 /// # Example
4285 /// ```
4286 /// # use google_cloud_dataplex_v1::client::MetadataService;
4287 /// use google_cloud_dataplex_v1::Result;
4288 /// async fn sample(
4289 /// client: &MetadataService, name: &str
4290 /// ) -> Result<()> {
4291 /// client.delete_partition()
4292 /// .set_name(name)
4293 /// .send().await?;
4294 /// Ok(())
4295 /// }
4296 /// ```
4297 pub fn delete_partition(&self) -> super::builder::metadata_service::DeletePartition {
4298 super::builder::metadata_service::DeletePartition::new(self.inner.clone())
4299 }
4300
4301 /// Get a metadata partition of an entity.
4302 ///
4303 /// # Example
4304 /// ```
4305 /// # use google_cloud_dataplex_v1::client::MetadataService;
4306 /// use google_cloud_dataplex_v1::Result;
4307 /// async fn sample(
4308 /// client: &MetadataService, name: &str
4309 /// ) -> Result<()> {
4310 /// let response = client.get_partition()
4311 /// .set_name(name)
4312 /// .send().await?;
4313 /// println!("response {:?}", response);
4314 /// Ok(())
4315 /// }
4316 /// ```
4317 pub fn get_partition(&self) -> super::builder::metadata_service::GetPartition {
4318 super::builder::metadata_service::GetPartition::new(self.inner.clone())
4319 }
4320
4321 /// List metadata partitions of an entity.
4322 ///
4323 /// # Example
4324 /// ```
4325 /// # use google_cloud_dataplex_v1::client::MetadataService;
4326 /// use google_cloud_gax::paginator::ItemPaginator as _;
4327 /// use google_cloud_dataplex_v1::Result;
4328 /// async fn sample(
4329 /// client: &MetadataService, parent: &str
4330 /// ) -> Result<()> {
4331 /// let mut list = client.list_partitions()
4332 /// .set_parent(parent)
4333 /// .by_item();
4334 /// while let Some(item) = list.next().await.transpose()? {
4335 /// println!("{:?}", item);
4336 /// }
4337 /// Ok(())
4338 /// }
4339 /// ```
4340 pub fn list_partitions(&self) -> super::builder::metadata_service::ListPartitions {
4341 super::builder::metadata_service::ListPartitions::new(self.inner.clone())
4342 }
4343
4344 /// Lists information about the supported locations for this service.
4345 ///
4346 /// # Example
4347 /// ```
4348 /// # use google_cloud_dataplex_v1::client::MetadataService;
4349 /// use google_cloud_gax::paginator::ItemPaginator as _;
4350 /// use google_cloud_dataplex_v1::Result;
4351 /// async fn sample(
4352 /// client: &MetadataService
4353 /// ) -> Result<()> {
4354 /// let mut list = client.list_locations()
4355 /// /* set fields */
4356 /// .by_item();
4357 /// while let Some(item) = list.next().await.transpose()? {
4358 /// println!("{:?}", item);
4359 /// }
4360 /// Ok(())
4361 /// }
4362 /// ```
4363 pub fn list_locations(&self) -> super::builder::metadata_service::ListLocations {
4364 super::builder::metadata_service::ListLocations::new(self.inner.clone())
4365 }
4366
4367 /// Gets information about a location.
4368 ///
4369 /// # Example
4370 /// ```
4371 /// # use google_cloud_dataplex_v1::client::MetadataService;
4372 /// use google_cloud_dataplex_v1::Result;
4373 /// async fn sample(
4374 /// client: &MetadataService
4375 /// ) -> Result<()> {
4376 /// let response = client.get_location()
4377 /// /* set fields */
4378 /// .send().await?;
4379 /// println!("response {:?}", response);
4380 /// Ok(())
4381 /// }
4382 /// ```
4383 pub fn get_location(&self) -> super::builder::metadata_service::GetLocation {
4384 super::builder::metadata_service::GetLocation::new(self.inner.clone())
4385 }
4386
4387 /// Sets the access control policy on the specified resource. Replaces
4388 /// any existing policy.
4389 ///
4390 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
4391 /// errors.
4392 ///
4393 /// # Example
4394 /// ```
4395 /// # use google_cloud_dataplex_v1::client::MetadataService;
4396 /// use google_cloud_dataplex_v1::Result;
4397 /// async fn sample(
4398 /// client: &MetadataService
4399 /// ) -> Result<()> {
4400 /// let response = client.set_iam_policy()
4401 /// /* set fields */
4402 /// .send().await?;
4403 /// println!("response {:?}", response);
4404 /// Ok(())
4405 /// }
4406 /// ```
4407 pub fn set_iam_policy(&self) -> super::builder::metadata_service::SetIamPolicy {
4408 super::builder::metadata_service::SetIamPolicy::new(self.inner.clone())
4409 }
4410
4411 /// Gets the access control policy for a resource. Returns an empty policy
4412 /// if the resource exists and does not have a policy set.
4413 ///
4414 /// # Example
4415 /// ```
4416 /// # use google_cloud_dataplex_v1::client::MetadataService;
4417 /// use google_cloud_dataplex_v1::Result;
4418 /// async fn sample(
4419 /// client: &MetadataService
4420 /// ) -> Result<()> {
4421 /// let response = client.get_iam_policy()
4422 /// /* set fields */
4423 /// .send().await?;
4424 /// println!("response {:?}", response);
4425 /// Ok(())
4426 /// }
4427 /// ```
4428 pub fn get_iam_policy(&self) -> super::builder::metadata_service::GetIamPolicy {
4429 super::builder::metadata_service::GetIamPolicy::new(self.inner.clone())
4430 }
4431
4432 /// Returns permissions that a caller has on the specified resource. If the
4433 /// resource does not exist, this will return an empty set of
4434 /// permissions, not a `NOT_FOUND` error.
4435 ///
4436 /// Note: This operation is designed to be used for building
4437 /// permission-aware UIs and command-line tools, not for authorization
4438 /// checking. This operation may "fail open" without warning.
4439 ///
4440 /// # Example
4441 /// ```
4442 /// # use google_cloud_dataplex_v1::client::MetadataService;
4443 /// use google_cloud_dataplex_v1::Result;
4444 /// async fn sample(
4445 /// client: &MetadataService
4446 /// ) -> Result<()> {
4447 /// let response = client.test_iam_permissions()
4448 /// /* set fields */
4449 /// .send().await?;
4450 /// println!("response {:?}", response);
4451 /// Ok(())
4452 /// }
4453 /// ```
4454 pub fn test_iam_permissions(&self) -> super::builder::metadata_service::TestIamPermissions {
4455 super::builder::metadata_service::TestIamPermissions::new(self.inner.clone())
4456 }
4457
4458 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
4459 ///
4460 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
4461 ///
4462 /// # Example
4463 /// ```
4464 /// # use google_cloud_dataplex_v1::client::MetadataService;
4465 /// use google_cloud_gax::paginator::ItemPaginator as _;
4466 /// use google_cloud_dataplex_v1::Result;
4467 /// async fn sample(
4468 /// client: &MetadataService
4469 /// ) -> Result<()> {
4470 /// let mut list = client.list_operations()
4471 /// /* set fields */
4472 /// .by_item();
4473 /// while let Some(item) = list.next().await.transpose()? {
4474 /// println!("{:?}", item);
4475 /// }
4476 /// Ok(())
4477 /// }
4478 /// ```
4479 pub fn list_operations(&self) -> super::builder::metadata_service::ListOperations {
4480 super::builder::metadata_service::ListOperations::new(self.inner.clone())
4481 }
4482
4483 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
4484 ///
4485 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
4486 ///
4487 /// # Example
4488 /// ```
4489 /// # use google_cloud_dataplex_v1::client::MetadataService;
4490 /// use google_cloud_dataplex_v1::Result;
4491 /// async fn sample(
4492 /// client: &MetadataService
4493 /// ) -> Result<()> {
4494 /// let response = client.get_operation()
4495 /// /* set fields */
4496 /// .send().await?;
4497 /// println!("response {:?}", response);
4498 /// Ok(())
4499 /// }
4500 /// ```
4501 pub fn get_operation(&self) -> super::builder::metadata_service::GetOperation {
4502 super::builder::metadata_service::GetOperation::new(self.inner.clone())
4503 }
4504
4505 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
4506 ///
4507 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
4508 ///
4509 /// # Example
4510 /// ```
4511 /// # use google_cloud_dataplex_v1::client::MetadataService;
4512 /// use google_cloud_dataplex_v1::Result;
4513 /// async fn sample(
4514 /// client: &MetadataService
4515 /// ) -> Result<()> {
4516 /// client.delete_operation()
4517 /// /* set fields */
4518 /// .send().await?;
4519 /// Ok(())
4520 /// }
4521 /// ```
4522 pub fn delete_operation(&self) -> super::builder::metadata_service::DeleteOperation {
4523 super::builder::metadata_service::DeleteOperation::new(self.inner.clone())
4524 }
4525
4526 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
4527 ///
4528 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
4529 ///
4530 /// # Example
4531 /// ```
4532 /// # use google_cloud_dataplex_v1::client::MetadataService;
4533 /// use google_cloud_dataplex_v1::Result;
4534 /// async fn sample(
4535 /// client: &MetadataService
4536 /// ) -> Result<()> {
4537 /// client.cancel_operation()
4538 /// /* set fields */
4539 /// .send().await?;
4540 /// Ok(())
4541 /// }
4542 /// ```
4543 pub fn cancel_operation(&self) -> super::builder::metadata_service::CancelOperation {
4544 super::builder::metadata_service::CancelOperation::new(self.inner.clone())
4545 }
4546}
4547
4548/// Implements a client for the Cloud Dataplex API.
4549///
4550/// # Example
4551/// ```
4552/// # use google_cloud_dataplex_v1::client::DataplexService;
4553/// use google_cloud_gax::paginator::ItemPaginator as _;
4554/// # async fn sample() -> Result<(), Box<dyn std::error::Error>> {
4555/// let client = DataplexService::builder().build().await?;
4556/// let parent = "parent_value";
4557/// let mut list = client.list_lakes()
4558/// .set_parent(parent)
4559/// .by_item();
4560/// while let Some(item) = list.next().await.transpose()? {
4561/// println!("{:?}", item);
4562/// }
4563/// # Ok(()) }
4564/// ```
4565///
4566/// # Service Description
4567///
4568/// Dataplex service provides data lakes as a service. The primary resources
4569/// offered by this service are Lakes, Zones and Assets which collectively allow
4570/// a data administrator to organize, manage, secure and catalog data across
4571/// their organization located across cloud projects in a variety of storage
4572/// systems including Cloud Storage and BigQuery.
4573///
4574/// # Configuration
4575///
4576/// To configure `DataplexService` use the `with_*` methods in the type returned
4577/// by [builder()][DataplexService::builder]. The default configuration should
4578/// work for most applications. Common configuration changes include
4579///
4580/// * [with_endpoint()]: by default this client uses the global default endpoint
4581/// (`https://dataplex.googleapis.com`). Applications using regional
4582/// endpoints or running in restricted networks (e.g. a network configured
4583// with [Private Google Access with VPC Service Controls]) may want to
4584/// override this default.
4585/// * [with_credentials()]: by default this client uses
4586/// [Application Default Credentials]. Applications using custom
4587/// authentication may need to override this default.
4588///
4589/// [with_endpoint()]: super::builder::dataplex_service::ClientBuilder::with_endpoint
4590/// [with_credentials()]: super::builder::dataplex_service::ClientBuilder::with_credentials
4591/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
4592/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
4593///
4594/// # Pooling and Cloning
4595///
4596/// `DataplexService` holds a connection pool internally, it is advised to
4597/// create one and reuse it. You do not need to wrap `DataplexService` in
4598/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
4599/// already uses an `Arc` internally.
4600#[derive(Clone, Debug)]
4601pub struct DataplexService {
4602 inner: std::sync::Arc<dyn super::stub::dynamic::DataplexService>,
4603}
4604
4605impl DataplexService {
4606 /// Returns a builder for [DataplexService].
4607 ///
4608 /// ```
4609 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
4610 /// # use google_cloud_dataplex_v1::client::DataplexService;
4611 /// let client = DataplexService::builder().build().await?;
4612 /// # Ok(()) }
4613 /// ```
4614 pub fn builder() -> super::builder::dataplex_service::ClientBuilder {
4615 crate::new_client_builder(super::builder::dataplex_service::client::Factory)
4616 }
4617
4618 /// Creates a new client from the provided stub.
4619 ///
4620 /// The most common case for calling this function is in tests mocking the
4621 /// client's behavior.
4622 pub fn from_stub<T>(stub: T) -> Self
4623 where
4624 T: super::stub::DataplexService + 'static,
4625 {
4626 Self {
4627 inner: std::sync::Arc::new(stub),
4628 }
4629 }
4630
4631 pub(crate) async fn new(
4632 config: gaxi::options::ClientConfig,
4633 ) -> crate::ClientBuilderResult<Self> {
4634 let inner = Self::build_inner(config).await?;
4635 Ok(Self { inner })
4636 }
4637
4638 async fn build_inner(
4639 conf: gaxi::options::ClientConfig,
4640 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::DataplexService>> {
4641 if gaxi::options::tracing_enabled(&conf) {
4642 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
4643 }
4644 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
4645 }
4646
4647 async fn build_transport(
4648 conf: gaxi::options::ClientConfig,
4649 ) -> crate::ClientBuilderResult<impl super::stub::DataplexService> {
4650 super::transport::DataplexService::new(conf).await
4651 }
4652
4653 async fn build_with_tracing(
4654 conf: gaxi::options::ClientConfig,
4655 ) -> crate::ClientBuilderResult<impl super::stub::DataplexService> {
4656 Self::build_transport(conf)
4657 .await
4658 .map(super::tracing::DataplexService::new)
4659 }
4660
4661 /// Creates a lake resource.
4662 ///
4663 /// # Long running operations
4664 ///
4665 /// This method is used to start, and/or poll a [long-running Operation].
4666 /// The [Working with long-running operations] chapter in the [user guide]
4667 /// covers these operations in detail.
4668 ///
4669 /// [long-running operation]: https://google.aip.dev/151
4670 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
4671 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
4672 ///
4673 /// # Example
4674 /// ```
4675 /// # use google_cloud_dataplex_v1::client::DataplexService;
4676 /// use google_cloud_lro::Poller;
4677 /// use google_cloud_dataplex_v1::model::Lake;
4678 /// use google_cloud_dataplex_v1::Result;
4679 /// async fn sample(
4680 /// client: &DataplexService, parent: &str
4681 /// ) -> Result<()> {
4682 /// let response = client.create_lake()
4683 /// .set_parent(parent)
4684 /// .set_lake_id("lake_id_value")
4685 /// .set_lake(
4686 /// Lake::new()/* set fields */
4687 /// )
4688 /// .poller().until_done().await?;
4689 /// println!("response {:?}", response);
4690 /// Ok(())
4691 /// }
4692 /// ```
4693 pub fn create_lake(&self) -> super::builder::dataplex_service::CreateLake {
4694 super::builder::dataplex_service::CreateLake::new(self.inner.clone())
4695 }
4696
4697 /// Updates a lake resource.
4698 ///
4699 /// # Long running operations
4700 ///
4701 /// This method is used to start, and/or poll a [long-running Operation].
4702 /// The [Working with long-running operations] chapter in the [user guide]
4703 /// covers these operations in detail.
4704 ///
4705 /// [long-running operation]: https://google.aip.dev/151
4706 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
4707 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
4708 ///
4709 /// # Example
4710 /// ```
4711 /// # use google_cloud_dataplex_v1::client::DataplexService;
4712 /// use google_cloud_lro::Poller;
4713 /// # extern crate wkt as google_cloud_wkt;
4714 /// use google_cloud_wkt::FieldMask;
4715 /// use google_cloud_dataplex_v1::model::Lake;
4716 /// use google_cloud_dataplex_v1::Result;
4717 /// async fn sample(
4718 /// client: &DataplexService, name: &str
4719 /// ) -> Result<()> {
4720 /// let response = client.update_lake()
4721 /// .set_lake(
4722 /// Lake::new().set_name(name)/* set fields */
4723 /// )
4724 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
4725 /// .poller().until_done().await?;
4726 /// println!("response {:?}", response);
4727 /// Ok(())
4728 /// }
4729 /// ```
4730 pub fn update_lake(&self) -> super::builder::dataplex_service::UpdateLake {
4731 super::builder::dataplex_service::UpdateLake::new(self.inner.clone())
4732 }
4733
4734 /// Deletes a lake resource. All zones within the lake must be deleted before
4735 /// the lake can be deleted.
4736 ///
4737 /// # Long running operations
4738 ///
4739 /// This method is used to start, and/or poll a [long-running Operation].
4740 /// The [Working with long-running operations] chapter in the [user guide]
4741 /// covers these operations in detail.
4742 ///
4743 /// [long-running operation]: https://google.aip.dev/151
4744 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
4745 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
4746 ///
4747 /// # Example
4748 /// ```
4749 /// # use google_cloud_dataplex_v1::client::DataplexService;
4750 /// use google_cloud_lro::Poller;
4751 /// use google_cloud_dataplex_v1::Result;
4752 /// async fn sample(
4753 /// client: &DataplexService, name: &str
4754 /// ) -> Result<()> {
4755 /// client.delete_lake()
4756 /// .set_name(name)
4757 /// .poller().until_done().await?;
4758 /// Ok(())
4759 /// }
4760 /// ```
4761 pub fn delete_lake(&self) -> super::builder::dataplex_service::DeleteLake {
4762 super::builder::dataplex_service::DeleteLake::new(self.inner.clone())
4763 }
4764
4765 /// Lists lake resources in a project and location.
4766 ///
4767 /// # Example
4768 /// ```
4769 /// # use google_cloud_dataplex_v1::client::DataplexService;
4770 /// use google_cloud_gax::paginator::ItemPaginator as _;
4771 /// use google_cloud_dataplex_v1::Result;
4772 /// async fn sample(
4773 /// client: &DataplexService, parent: &str
4774 /// ) -> Result<()> {
4775 /// let mut list = client.list_lakes()
4776 /// .set_parent(parent)
4777 /// .by_item();
4778 /// while let Some(item) = list.next().await.transpose()? {
4779 /// println!("{:?}", item);
4780 /// }
4781 /// Ok(())
4782 /// }
4783 /// ```
4784 pub fn list_lakes(&self) -> super::builder::dataplex_service::ListLakes {
4785 super::builder::dataplex_service::ListLakes::new(self.inner.clone())
4786 }
4787
4788 /// Retrieves a lake resource.
4789 ///
4790 /// # Example
4791 /// ```
4792 /// # use google_cloud_dataplex_v1::client::DataplexService;
4793 /// use google_cloud_dataplex_v1::Result;
4794 /// async fn sample(
4795 /// client: &DataplexService, name: &str
4796 /// ) -> Result<()> {
4797 /// let response = client.get_lake()
4798 /// .set_name(name)
4799 /// .send().await?;
4800 /// println!("response {:?}", response);
4801 /// Ok(())
4802 /// }
4803 /// ```
4804 pub fn get_lake(&self) -> super::builder::dataplex_service::GetLake {
4805 super::builder::dataplex_service::GetLake::new(self.inner.clone())
4806 }
4807
4808 /// Lists action resources in a lake.
4809 ///
4810 /// # Example
4811 /// ```
4812 /// # use google_cloud_dataplex_v1::client::DataplexService;
4813 /// use google_cloud_gax::paginator::ItemPaginator as _;
4814 /// use google_cloud_dataplex_v1::Result;
4815 /// async fn sample(
4816 /// client: &DataplexService
4817 /// ) -> Result<()> {
4818 /// let mut list = client.list_lake_actions()
4819 /// /* set fields */
4820 /// .by_item();
4821 /// while let Some(item) = list.next().await.transpose()? {
4822 /// println!("{:?}", item);
4823 /// }
4824 /// Ok(())
4825 /// }
4826 /// ```
4827 pub fn list_lake_actions(&self) -> super::builder::dataplex_service::ListLakeActions {
4828 super::builder::dataplex_service::ListLakeActions::new(self.inner.clone())
4829 }
4830
4831 /// Creates a zone resource within a lake.
4832 ///
4833 /// # Long running operations
4834 ///
4835 /// This method is used to start, and/or poll a [long-running Operation].
4836 /// The [Working with long-running operations] chapter in the [user guide]
4837 /// covers these operations in detail.
4838 ///
4839 /// [long-running operation]: https://google.aip.dev/151
4840 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
4841 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
4842 ///
4843 /// # Example
4844 /// ```
4845 /// # use google_cloud_dataplex_v1::client::DataplexService;
4846 /// use google_cloud_lro::Poller;
4847 /// use google_cloud_dataplex_v1::model::Zone;
4848 /// use google_cloud_dataplex_v1::Result;
4849 /// async fn sample(
4850 /// client: &DataplexService, parent: &str
4851 /// ) -> Result<()> {
4852 /// let response = client.create_zone()
4853 /// .set_parent(parent)
4854 /// .set_zone_id("zone_id_value")
4855 /// .set_zone(
4856 /// Zone::new()/* set fields */
4857 /// )
4858 /// .poller().until_done().await?;
4859 /// println!("response {:?}", response);
4860 /// Ok(())
4861 /// }
4862 /// ```
4863 pub fn create_zone(&self) -> super::builder::dataplex_service::CreateZone {
4864 super::builder::dataplex_service::CreateZone::new(self.inner.clone())
4865 }
4866
4867 /// Updates a zone resource.
4868 ///
4869 /// # Long running operations
4870 ///
4871 /// This method is used to start, and/or poll a [long-running Operation].
4872 /// The [Working with long-running operations] chapter in the [user guide]
4873 /// covers these operations in detail.
4874 ///
4875 /// [long-running operation]: https://google.aip.dev/151
4876 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
4877 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
4878 ///
4879 /// # Example
4880 /// ```
4881 /// # use google_cloud_dataplex_v1::client::DataplexService;
4882 /// use google_cloud_lro::Poller;
4883 /// # extern crate wkt as google_cloud_wkt;
4884 /// use google_cloud_wkt::FieldMask;
4885 /// use google_cloud_dataplex_v1::model::Zone;
4886 /// use google_cloud_dataplex_v1::Result;
4887 /// async fn sample(
4888 /// client: &DataplexService, name: &str
4889 /// ) -> Result<()> {
4890 /// let response = client.update_zone()
4891 /// .set_zone(
4892 /// Zone::new().set_name(name)/* set fields */
4893 /// )
4894 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
4895 /// .poller().until_done().await?;
4896 /// println!("response {:?}", response);
4897 /// Ok(())
4898 /// }
4899 /// ```
4900 pub fn update_zone(&self) -> super::builder::dataplex_service::UpdateZone {
4901 super::builder::dataplex_service::UpdateZone::new(self.inner.clone())
4902 }
4903
4904 /// Deletes a zone resource. All assets within a zone must be deleted before
4905 /// the zone can be deleted.
4906 ///
4907 /// # Long running operations
4908 ///
4909 /// This method is used to start, and/or poll a [long-running Operation].
4910 /// The [Working with long-running operations] chapter in the [user guide]
4911 /// covers these operations in detail.
4912 ///
4913 /// [long-running operation]: https://google.aip.dev/151
4914 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
4915 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
4916 ///
4917 /// # Example
4918 /// ```
4919 /// # use google_cloud_dataplex_v1::client::DataplexService;
4920 /// use google_cloud_lro::Poller;
4921 /// use google_cloud_dataplex_v1::Result;
4922 /// async fn sample(
4923 /// client: &DataplexService, name: &str
4924 /// ) -> Result<()> {
4925 /// client.delete_zone()
4926 /// .set_name(name)
4927 /// .poller().until_done().await?;
4928 /// Ok(())
4929 /// }
4930 /// ```
4931 pub fn delete_zone(&self) -> super::builder::dataplex_service::DeleteZone {
4932 super::builder::dataplex_service::DeleteZone::new(self.inner.clone())
4933 }
4934
4935 /// Lists zone resources in a lake.
4936 ///
4937 /// # Example
4938 /// ```
4939 /// # use google_cloud_dataplex_v1::client::DataplexService;
4940 /// use google_cloud_gax::paginator::ItemPaginator as _;
4941 /// use google_cloud_dataplex_v1::Result;
4942 /// async fn sample(
4943 /// client: &DataplexService, parent: &str
4944 /// ) -> Result<()> {
4945 /// let mut list = client.list_zones()
4946 /// .set_parent(parent)
4947 /// .by_item();
4948 /// while let Some(item) = list.next().await.transpose()? {
4949 /// println!("{:?}", item);
4950 /// }
4951 /// Ok(())
4952 /// }
4953 /// ```
4954 pub fn list_zones(&self) -> super::builder::dataplex_service::ListZones {
4955 super::builder::dataplex_service::ListZones::new(self.inner.clone())
4956 }
4957
4958 /// Retrieves a zone resource.
4959 ///
4960 /// # Example
4961 /// ```
4962 /// # use google_cloud_dataplex_v1::client::DataplexService;
4963 /// use google_cloud_dataplex_v1::Result;
4964 /// async fn sample(
4965 /// client: &DataplexService, name: &str
4966 /// ) -> Result<()> {
4967 /// let response = client.get_zone()
4968 /// .set_name(name)
4969 /// .send().await?;
4970 /// println!("response {:?}", response);
4971 /// Ok(())
4972 /// }
4973 /// ```
4974 pub fn get_zone(&self) -> super::builder::dataplex_service::GetZone {
4975 super::builder::dataplex_service::GetZone::new(self.inner.clone())
4976 }
4977
4978 /// Lists action resources in a zone.
4979 ///
4980 /// # Example
4981 /// ```
4982 /// # use google_cloud_dataplex_v1::client::DataplexService;
4983 /// use google_cloud_gax::paginator::ItemPaginator as _;
4984 /// use google_cloud_dataplex_v1::Result;
4985 /// async fn sample(
4986 /// client: &DataplexService
4987 /// ) -> Result<()> {
4988 /// let mut list = client.list_zone_actions()
4989 /// /* set fields */
4990 /// .by_item();
4991 /// while let Some(item) = list.next().await.transpose()? {
4992 /// println!("{:?}", item);
4993 /// }
4994 /// Ok(())
4995 /// }
4996 /// ```
4997 pub fn list_zone_actions(&self) -> super::builder::dataplex_service::ListZoneActions {
4998 super::builder::dataplex_service::ListZoneActions::new(self.inner.clone())
4999 }
5000
5001 /// Creates an asset resource.
5002 ///
5003 /// # Long running operations
5004 ///
5005 /// This method is used to start, and/or poll a [long-running Operation].
5006 /// The [Working with long-running operations] chapter in the [user guide]
5007 /// covers these operations in detail.
5008 ///
5009 /// [long-running operation]: https://google.aip.dev/151
5010 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5011 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5012 ///
5013 /// # Example
5014 /// ```
5015 /// # use google_cloud_dataplex_v1::client::DataplexService;
5016 /// use google_cloud_lro::Poller;
5017 /// use google_cloud_dataplex_v1::model::Asset;
5018 /// use google_cloud_dataplex_v1::Result;
5019 /// async fn sample(
5020 /// client: &DataplexService, parent: &str
5021 /// ) -> Result<()> {
5022 /// let response = client.create_asset()
5023 /// .set_parent(parent)
5024 /// .set_asset_id("asset_id_value")
5025 /// .set_asset(
5026 /// Asset::new()/* set fields */
5027 /// )
5028 /// .poller().until_done().await?;
5029 /// println!("response {:?}", response);
5030 /// Ok(())
5031 /// }
5032 /// ```
5033 pub fn create_asset(&self) -> super::builder::dataplex_service::CreateAsset {
5034 super::builder::dataplex_service::CreateAsset::new(self.inner.clone())
5035 }
5036
5037 /// Updates an asset resource.
5038 ///
5039 /// # Long running operations
5040 ///
5041 /// This method is used to start, and/or poll a [long-running Operation].
5042 /// The [Working with long-running operations] chapter in the [user guide]
5043 /// covers these operations in detail.
5044 ///
5045 /// [long-running operation]: https://google.aip.dev/151
5046 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5047 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5048 ///
5049 /// # Example
5050 /// ```
5051 /// # use google_cloud_dataplex_v1::client::DataplexService;
5052 /// use google_cloud_lro::Poller;
5053 /// # extern crate wkt as google_cloud_wkt;
5054 /// use google_cloud_wkt::FieldMask;
5055 /// use google_cloud_dataplex_v1::model::Asset;
5056 /// use google_cloud_dataplex_v1::Result;
5057 /// async fn sample(
5058 /// client: &DataplexService, name: &str
5059 /// ) -> Result<()> {
5060 /// let response = client.update_asset()
5061 /// .set_asset(
5062 /// Asset::new().set_name(name)/* set fields */
5063 /// )
5064 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
5065 /// .poller().until_done().await?;
5066 /// println!("response {:?}", response);
5067 /// Ok(())
5068 /// }
5069 /// ```
5070 pub fn update_asset(&self) -> super::builder::dataplex_service::UpdateAsset {
5071 super::builder::dataplex_service::UpdateAsset::new(self.inner.clone())
5072 }
5073
5074 /// Deletes an asset resource. The referenced storage resource is detached
5075 /// (default) or deleted based on the associated Lifecycle policy.
5076 ///
5077 /// # Long running operations
5078 ///
5079 /// This method is used to start, and/or poll a [long-running Operation].
5080 /// The [Working with long-running operations] chapter in the [user guide]
5081 /// covers these operations in detail.
5082 ///
5083 /// [long-running operation]: https://google.aip.dev/151
5084 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5085 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5086 ///
5087 /// # Example
5088 /// ```
5089 /// # use google_cloud_dataplex_v1::client::DataplexService;
5090 /// use google_cloud_lro::Poller;
5091 /// use google_cloud_dataplex_v1::Result;
5092 /// async fn sample(
5093 /// client: &DataplexService, name: &str
5094 /// ) -> Result<()> {
5095 /// client.delete_asset()
5096 /// .set_name(name)
5097 /// .poller().until_done().await?;
5098 /// Ok(())
5099 /// }
5100 /// ```
5101 pub fn delete_asset(&self) -> super::builder::dataplex_service::DeleteAsset {
5102 super::builder::dataplex_service::DeleteAsset::new(self.inner.clone())
5103 }
5104
5105 /// Lists asset resources in a zone.
5106 ///
5107 /// # Example
5108 /// ```
5109 /// # use google_cloud_dataplex_v1::client::DataplexService;
5110 /// use google_cloud_gax::paginator::ItemPaginator as _;
5111 /// use google_cloud_dataplex_v1::Result;
5112 /// async fn sample(
5113 /// client: &DataplexService, parent: &str
5114 /// ) -> Result<()> {
5115 /// let mut list = client.list_assets()
5116 /// .set_parent(parent)
5117 /// .by_item();
5118 /// while let Some(item) = list.next().await.transpose()? {
5119 /// println!("{:?}", item);
5120 /// }
5121 /// Ok(())
5122 /// }
5123 /// ```
5124 pub fn list_assets(&self) -> super::builder::dataplex_service::ListAssets {
5125 super::builder::dataplex_service::ListAssets::new(self.inner.clone())
5126 }
5127
5128 /// Retrieves an asset resource.
5129 ///
5130 /// # Example
5131 /// ```
5132 /// # use google_cloud_dataplex_v1::client::DataplexService;
5133 /// use google_cloud_dataplex_v1::Result;
5134 /// async fn sample(
5135 /// client: &DataplexService, name: &str
5136 /// ) -> Result<()> {
5137 /// let response = client.get_asset()
5138 /// .set_name(name)
5139 /// .send().await?;
5140 /// println!("response {:?}", response);
5141 /// Ok(())
5142 /// }
5143 /// ```
5144 pub fn get_asset(&self) -> super::builder::dataplex_service::GetAsset {
5145 super::builder::dataplex_service::GetAsset::new(self.inner.clone())
5146 }
5147
5148 /// Lists action resources in an asset.
5149 ///
5150 /// # Example
5151 /// ```
5152 /// # use google_cloud_dataplex_v1::client::DataplexService;
5153 /// use google_cloud_gax::paginator::ItemPaginator as _;
5154 /// use google_cloud_dataplex_v1::Result;
5155 /// async fn sample(
5156 /// client: &DataplexService
5157 /// ) -> Result<()> {
5158 /// let mut list = client.list_asset_actions()
5159 /// /* set fields */
5160 /// .by_item();
5161 /// while let Some(item) = list.next().await.transpose()? {
5162 /// println!("{:?}", item);
5163 /// }
5164 /// Ok(())
5165 /// }
5166 /// ```
5167 pub fn list_asset_actions(&self) -> super::builder::dataplex_service::ListAssetActions {
5168 super::builder::dataplex_service::ListAssetActions::new(self.inner.clone())
5169 }
5170
5171 /// Creates a task resource within a lake.
5172 ///
5173 /// # Long running operations
5174 ///
5175 /// This method is used to start, and/or poll a [long-running Operation].
5176 /// The [Working with long-running operations] chapter in the [user guide]
5177 /// covers these operations in detail.
5178 ///
5179 /// [long-running operation]: https://google.aip.dev/151
5180 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5181 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5182 ///
5183 /// # Example
5184 /// ```
5185 /// # use google_cloud_dataplex_v1::client::DataplexService;
5186 /// use google_cloud_lro::Poller;
5187 /// use google_cloud_dataplex_v1::model::Task;
5188 /// use google_cloud_dataplex_v1::Result;
5189 /// async fn sample(
5190 /// client: &DataplexService, parent: &str
5191 /// ) -> Result<()> {
5192 /// let response = client.create_task()
5193 /// .set_parent(parent)
5194 /// .set_task_id("task_id_value")
5195 /// .set_task(
5196 /// Task::new()/* set fields */
5197 /// )
5198 /// .poller().until_done().await?;
5199 /// println!("response {:?}", response);
5200 /// Ok(())
5201 /// }
5202 /// ```
5203 pub fn create_task(&self) -> super::builder::dataplex_service::CreateTask {
5204 super::builder::dataplex_service::CreateTask::new(self.inner.clone())
5205 }
5206
5207 /// Update the task resource.
5208 ///
5209 /// # Long running operations
5210 ///
5211 /// This method is used to start, and/or poll a [long-running Operation].
5212 /// The [Working with long-running operations] chapter in the [user guide]
5213 /// covers these operations in detail.
5214 ///
5215 /// [long-running operation]: https://google.aip.dev/151
5216 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5217 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5218 ///
5219 /// # Example
5220 /// ```
5221 /// # use google_cloud_dataplex_v1::client::DataplexService;
5222 /// use google_cloud_lro::Poller;
5223 /// # extern crate wkt as google_cloud_wkt;
5224 /// use google_cloud_wkt::FieldMask;
5225 /// use google_cloud_dataplex_v1::model::Task;
5226 /// use google_cloud_dataplex_v1::Result;
5227 /// async fn sample(
5228 /// client: &DataplexService, name: &str
5229 /// ) -> Result<()> {
5230 /// let response = client.update_task()
5231 /// .set_task(
5232 /// Task::new().set_name(name)/* set fields */
5233 /// )
5234 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
5235 /// .poller().until_done().await?;
5236 /// println!("response {:?}", response);
5237 /// Ok(())
5238 /// }
5239 /// ```
5240 pub fn update_task(&self) -> super::builder::dataplex_service::UpdateTask {
5241 super::builder::dataplex_service::UpdateTask::new(self.inner.clone())
5242 }
5243
5244 /// Delete the task resource.
5245 ///
5246 /// # Long running operations
5247 ///
5248 /// This method is used to start, and/or poll a [long-running Operation].
5249 /// The [Working with long-running operations] chapter in the [user guide]
5250 /// covers these operations in detail.
5251 ///
5252 /// [long-running operation]: https://google.aip.dev/151
5253 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5254 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5255 ///
5256 /// # Example
5257 /// ```
5258 /// # use google_cloud_dataplex_v1::client::DataplexService;
5259 /// use google_cloud_lro::Poller;
5260 /// use google_cloud_dataplex_v1::Result;
5261 /// async fn sample(
5262 /// client: &DataplexService, name: &str
5263 /// ) -> Result<()> {
5264 /// client.delete_task()
5265 /// .set_name(name)
5266 /// .poller().until_done().await?;
5267 /// Ok(())
5268 /// }
5269 /// ```
5270 pub fn delete_task(&self) -> super::builder::dataplex_service::DeleteTask {
5271 super::builder::dataplex_service::DeleteTask::new(self.inner.clone())
5272 }
5273
5274 /// Lists tasks under the given lake.
5275 ///
5276 /// # Example
5277 /// ```
5278 /// # use google_cloud_dataplex_v1::client::DataplexService;
5279 /// use google_cloud_gax::paginator::ItemPaginator as _;
5280 /// use google_cloud_dataplex_v1::Result;
5281 /// async fn sample(
5282 /// client: &DataplexService, parent: &str
5283 /// ) -> Result<()> {
5284 /// let mut list = client.list_tasks()
5285 /// .set_parent(parent)
5286 /// .by_item();
5287 /// while let Some(item) = list.next().await.transpose()? {
5288 /// println!("{:?}", item);
5289 /// }
5290 /// Ok(())
5291 /// }
5292 /// ```
5293 pub fn list_tasks(&self) -> super::builder::dataplex_service::ListTasks {
5294 super::builder::dataplex_service::ListTasks::new(self.inner.clone())
5295 }
5296
5297 /// Get task resource.
5298 ///
5299 /// # Example
5300 /// ```
5301 /// # use google_cloud_dataplex_v1::client::DataplexService;
5302 /// use google_cloud_dataplex_v1::Result;
5303 /// async fn sample(
5304 /// client: &DataplexService, name: &str
5305 /// ) -> Result<()> {
5306 /// let response = client.get_task()
5307 /// .set_name(name)
5308 /// .send().await?;
5309 /// println!("response {:?}", response);
5310 /// Ok(())
5311 /// }
5312 /// ```
5313 pub fn get_task(&self) -> super::builder::dataplex_service::GetTask {
5314 super::builder::dataplex_service::GetTask::new(self.inner.clone())
5315 }
5316
5317 /// Lists Jobs under the given task.
5318 ///
5319 /// # Example
5320 /// ```
5321 /// # use google_cloud_dataplex_v1::client::DataplexService;
5322 /// use google_cloud_gax::paginator::ItemPaginator as _;
5323 /// use google_cloud_dataplex_v1::Result;
5324 /// async fn sample(
5325 /// client: &DataplexService, parent: &str
5326 /// ) -> Result<()> {
5327 /// let mut list = client.list_jobs()
5328 /// .set_parent(parent)
5329 /// .by_item();
5330 /// while let Some(item) = list.next().await.transpose()? {
5331 /// println!("{:?}", item);
5332 /// }
5333 /// Ok(())
5334 /// }
5335 /// ```
5336 pub fn list_jobs(&self) -> super::builder::dataplex_service::ListJobs {
5337 super::builder::dataplex_service::ListJobs::new(self.inner.clone())
5338 }
5339
5340 /// Run an on demand execution of a Task.
5341 ///
5342 /// # Example
5343 /// ```
5344 /// # use google_cloud_dataplex_v1::client::DataplexService;
5345 /// use google_cloud_dataplex_v1::Result;
5346 /// async fn sample(
5347 /// client: &DataplexService
5348 /// ) -> Result<()> {
5349 /// let response = client.run_task()
5350 /// /* set fields */
5351 /// .send().await?;
5352 /// println!("response {:?}", response);
5353 /// Ok(())
5354 /// }
5355 /// ```
5356 pub fn run_task(&self) -> super::builder::dataplex_service::RunTask {
5357 super::builder::dataplex_service::RunTask::new(self.inner.clone())
5358 }
5359
5360 /// Get job resource.
5361 ///
5362 /// # Example
5363 /// ```
5364 /// # use google_cloud_dataplex_v1::client::DataplexService;
5365 /// use google_cloud_dataplex_v1::Result;
5366 /// async fn sample(
5367 /// client: &DataplexService, name: &str
5368 /// ) -> Result<()> {
5369 /// let response = client.get_job()
5370 /// .set_name(name)
5371 /// .send().await?;
5372 /// println!("response {:?}", response);
5373 /// Ok(())
5374 /// }
5375 /// ```
5376 pub fn get_job(&self) -> super::builder::dataplex_service::GetJob {
5377 super::builder::dataplex_service::GetJob::new(self.inner.clone())
5378 }
5379
5380 /// Cancel jobs running for the task resource.
5381 ///
5382 /// # Example
5383 /// ```
5384 /// # use google_cloud_dataplex_v1::client::DataplexService;
5385 /// use google_cloud_dataplex_v1::Result;
5386 /// async fn sample(
5387 /// client: &DataplexService
5388 /// ) -> Result<()> {
5389 /// client.cancel_job()
5390 /// /* set fields */
5391 /// .send().await?;
5392 /// Ok(())
5393 /// }
5394 /// ```
5395 pub fn cancel_job(&self) -> super::builder::dataplex_service::CancelJob {
5396 super::builder::dataplex_service::CancelJob::new(self.inner.clone())
5397 }
5398
5399 /// Create an environment resource.
5400 ///
5401 /// # Long running operations
5402 ///
5403 /// This method is used to start, and/or poll a [long-running Operation].
5404 /// The [Working with long-running operations] chapter in the [user guide]
5405 /// covers these operations in detail.
5406 ///
5407 /// [long-running operation]: https://google.aip.dev/151
5408 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5409 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5410 ///
5411 /// # Example
5412 /// ```
5413 /// # use google_cloud_dataplex_v1::client::DataplexService;
5414 /// use google_cloud_lro::Poller;
5415 /// use google_cloud_dataplex_v1::model::Environment;
5416 /// use google_cloud_dataplex_v1::Result;
5417 /// async fn sample(
5418 /// client: &DataplexService, parent: &str
5419 /// ) -> Result<()> {
5420 /// let response = client.create_environment()
5421 /// .set_parent(parent)
5422 /// .set_environment_id("environment_id_value")
5423 /// .set_environment(
5424 /// Environment::new()/* set fields */
5425 /// )
5426 /// .poller().until_done().await?;
5427 /// println!("response {:?}", response);
5428 /// Ok(())
5429 /// }
5430 /// ```
5431 pub fn create_environment(&self) -> super::builder::dataplex_service::CreateEnvironment {
5432 super::builder::dataplex_service::CreateEnvironment::new(self.inner.clone())
5433 }
5434
5435 /// Update the environment resource.
5436 ///
5437 /// # Long running operations
5438 ///
5439 /// This method is used to start, and/or poll a [long-running Operation].
5440 /// The [Working with long-running operations] chapter in the [user guide]
5441 /// covers these operations in detail.
5442 ///
5443 /// [long-running operation]: https://google.aip.dev/151
5444 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5445 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5446 ///
5447 /// # Example
5448 /// ```
5449 /// # use google_cloud_dataplex_v1::client::DataplexService;
5450 /// use google_cloud_lro::Poller;
5451 /// # extern crate wkt as google_cloud_wkt;
5452 /// use google_cloud_wkt::FieldMask;
5453 /// use google_cloud_dataplex_v1::model::Environment;
5454 /// use google_cloud_dataplex_v1::Result;
5455 /// async fn sample(
5456 /// client: &DataplexService, name: &str
5457 /// ) -> Result<()> {
5458 /// let response = client.update_environment()
5459 /// .set_environment(
5460 /// Environment::new().set_name(name)/* set fields */
5461 /// )
5462 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
5463 /// .poller().until_done().await?;
5464 /// println!("response {:?}", response);
5465 /// Ok(())
5466 /// }
5467 /// ```
5468 pub fn update_environment(&self) -> super::builder::dataplex_service::UpdateEnvironment {
5469 super::builder::dataplex_service::UpdateEnvironment::new(self.inner.clone())
5470 }
5471
5472 /// Delete the environment resource. All the child resources must have been
5473 /// deleted before environment deletion can be initiated.
5474 ///
5475 /// # Long running operations
5476 ///
5477 /// This method is used to start, and/or poll a [long-running Operation].
5478 /// The [Working with long-running operations] chapter in the [user guide]
5479 /// covers these operations in detail.
5480 ///
5481 /// [long-running operation]: https://google.aip.dev/151
5482 /// [user guide]: https://googleapis.github.io/google-cloud-rust/
5483 /// [working with long-running operations]: https://googleapis.github.io/google-cloud-rust/working_with_long_running_operations.html
5484 ///
5485 /// # Example
5486 /// ```
5487 /// # use google_cloud_dataplex_v1::client::DataplexService;
5488 /// use google_cloud_lro::Poller;
5489 /// use google_cloud_dataplex_v1::Result;
5490 /// async fn sample(
5491 /// client: &DataplexService, name: &str
5492 /// ) -> Result<()> {
5493 /// client.delete_environment()
5494 /// .set_name(name)
5495 /// .poller().until_done().await?;
5496 /// Ok(())
5497 /// }
5498 /// ```
5499 pub fn delete_environment(&self) -> super::builder::dataplex_service::DeleteEnvironment {
5500 super::builder::dataplex_service::DeleteEnvironment::new(self.inner.clone())
5501 }
5502
5503 /// Lists environments under the given lake.
5504 ///
5505 /// # Example
5506 /// ```
5507 /// # use google_cloud_dataplex_v1::client::DataplexService;
5508 /// use google_cloud_gax::paginator::ItemPaginator as _;
5509 /// use google_cloud_dataplex_v1::Result;
5510 /// async fn sample(
5511 /// client: &DataplexService, parent: &str
5512 /// ) -> Result<()> {
5513 /// let mut list = client.list_environments()
5514 /// .set_parent(parent)
5515 /// .by_item();
5516 /// while let Some(item) = list.next().await.transpose()? {
5517 /// println!("{:?}", item);
5518 /// }
5519 /// Ok(())
5520 /// }
5521 /// ```
5522 pub fn list_environments(&self) -> super::builder::dataplex_service::ListEnvironments {
5523 super::builder::dataplex_service::ListEnvironments::new(self.inner.clone())
5524 }
5525
5526 /// Get environment resource.
5527 ///
5528 /// # Example
5529 /// ```
5530 /// # use google_cloud_dataplex_v1::client::DataplexService;
5531 /// use google_cloud_dataplex_v1::Result;
5532 /// async fn sample(
5533 /// client: &DataplexService, name: &str
5534 /// ) -> Result<()> {
5535 /// let response = client.get_environment()
5536 /// .set_name(name)
5537 /// .send().await?;
5538 /// println!("response {:?}", response);
5539 /// Ok(())
5540 /// }
5541 /// ```
5542 pub fn get_environment(&self) -> super::builder::dataplex_service::GetEnvironment {
5543 super::builder::dataplex_service::GetEnvironment::new(self.inner.clone())
5544 }
5545
5546 /// Lists session resources in an environment.
5547 ///
5548 /// # Example
5549 /// ```
5550 /// # use google_cloud_dataplex_v1::client::DataplexService;
5551 /// use google_cloud_gax::paginator::ItemPaginator as _;
5552 /// use google_cloud_dataplex_v1::Result;
5553 /// async fn sample(
5554 /// client: &DataplexService, parent: &str
5555 /// ) -> Result<()> {
5556 /// let mut list = client.list_sessions()
5557 /// .set_parent(parent)
5558 /// .by_item();
5559 /// while let Some(item) = list.next().await.transpose()? {
5560 /// println!("{:?}", item);
5561 /// }
5562 /// Ok(())
5563 /// }
5564 /// ```
5565 pub fn list_sessions(&self) -> super::builder::dataplex_service::ListSessions {
5566 super::builder::dataplex_service::ListSessions::new(self.inner.clone())
5567 }
5568
5569 /// Lists information about the supported locations for this service.
5570 ///
5571 /// # Example
5572 /// ```
5573 /// # use google_cloud_dataplex_v1::client::DataplexService;
5574 /// use google_cloud_gax::paginator::ItemPaginator as _;
5575 /// use google_cloud_dataplex_v1::Result;
5576 /// async fn sample(
5577 /// client: &DataplexService
5578 /// ) -> Result<()> {
5579 /// let mut list = client.list_locations()
5580 /// /* set fields */
5581 /// .by_item();
5582 /// while let Some(item) = list.next().await.transpose()? {
5583 /// println!("{:?}", item);
5584 /// }
5585 /// Ok(())
5586 /// }
5587 /// ```
5588 pub fn list_locations(&self) -> super::builder::dataplex_service::ListLocations {
5589 super::builder::dataplex_service::ListLocations::new(self.inner.clone())
5590 }
5591
5592 /// Gets information about a location.
5593 ///
5594 /// # Example
5595 /// ```
5596 /// # use google_cloud_dataplex_v1::client::DataplexService;
5597 /// use google_cloud_dataplex_v1::Result;
5598 /// async fn sample(
5599 /// client: &DataplexService
5600 /// ) -> Result<()> {
5601 /// let response = client.get_location()
5602 /// /* set fields */
5603 /// .send().await?;
5604 /// println!("response {:?}", response);
5605 /// Ok(())
5606 /// }
5607 /// ```
5608 pub fn get_location(&self) -> super::builder::dataplex_service::GetLocation {
5609 super::builder::dataplex_service::GetLocation::new(self.inner.clone())
5610 }
5611
5612 /// Sets the access control policy on the specified resource. Replaces
5613 /// any existing policy.
5614 ///
5615 /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
5616 /// errors.
5617 ///
5618 /// # Example
5619 /// ```
5620 /// # use google_cloud_dataplex_v1::client::DataplexService;
5621 /// use google_cloud_dataplex_v1::Result;
5622 /// async fn sample(
5623 /// client: &DataplexService
5624 /// ) -> Result<()> {
5625 /// let response = client.set_iam_policy()
5626 /// /* set fields */
5627 /// .send().await?;
5628 /// println!("response {:?}", response);
5629 /// Ok(())
5630 /// }
5631 /// ```
5632 pub fn set_iam_policy(&self) -> super::builder::dataplex_service::SetIamPolicy {
5633 super::builder::dataplex_service::SetIamPolicy::new(self.inner.clone())
5634 }
5635
5636 /// Gets the access control policy for a resource. Returns an empty policy
5637 /// if the resource exists and does not have a policy set.
5638 ///
5639 /// # Example
5640 /// ```
5641 /// # use google_cloud_dataplex_v1::client::DataplexService;
5642 /// use google_cloud_dataplex_v1::Result;
5643 /// async fn sample(
5644 /// client: &DataplexService
5645 /// ) -> Result<()> {
5646 /// let response = client.get_iam_policy()
5647 /// /* set fields */
5648 /// .send().await?;
5649 /// println!("response {:?}", response);
5650 /// Ok(())
5651 /// }
5652 /// ```
5653 pub fn get_iam_policy(&self) -> super::builder::dataplex_service::GetIamPolicy {
5654 super::builder::dataplex_service::GetIamPolicy::new(self.inner.clone())
5655 }
5656
5657 /// Returns permissions that a caller has on the specified resource. If the
5658 /// resource does not exist, this will return an empty set of
5659 /// permissions, not a `NOT_FOUND` error.
5660 ///
5661 /// Note: This operation is designed to be used for building
5662 /// permission-aware UIs and command-line tools, not for authorization
5663 /// checking. This operation may "fail open" without warning.
5664 ///
5665 /// # Example
5666 /// ```
5667 /// # use google_cloud_dataplex_v1::client::DataplexService;
5668 /// use google_cloud_dataplex_v1::Result;
5669 /// async fn sample(
5670 /// client: &DataplexService
5671 /// ) -> Result<()> {
5672 /// let response = client.test_iam_permissions()
5673 /// /* set fields */
5674 /// .send().await?;
5675 /// println!("response {:?}", response);
5676 /// Ok(())
5677 /// }
5678 /// ```
5679 pub fn test_iam_permissions(&self) -> super::builder::dataplex_service::TestIamPermissions {
5680 super::builder::dataplex_service::TestIamPermissions::new(self.inner.clone())
5681 }
5682
5683 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
5684 ///
5685 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
5686 ///
5687 /// # Example
5688 /// ```
5689 /// # use google_cloud_dataplex_v1::client::DataplexService;
5690 /// use google_cloud_gax::paginator::ItemPaginator as _;
5691 /// use google_cloud_dataplex_v1::Result;
5692 /// async fn sample(
5693 /// client: &DataplexService
5694 /// ) -> Result<()> {
5695 /// let mut list = client.list_operations()
5696 /// /* set fields */
5697 /// .by_item();
5698 /// while let Some(item) = list.next().await.transpose()? {
5699 /// println!("{:?}", item);
5700 /// }
5701 /// Ok(())
5702 /// }
5703 /// ```
5704 pub fn list_operations(&self) -> super::builder::dataplex_service::ListOperations {
5705 super::builder::dataplex_service::ListOperations::new(self.inner.clone())
5706 }
5707
5708 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
5709 ///
5710 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
5711 ///
5712 /// # Example
5713 /// ```
5714 /// # use google_cloud_dataplex_v1::client::DataplexService;
5715 /// use google_cloud_dataplex_v1::Result;
5716 /// async fn sample(
5717 /// client: &DataplexService
5718 /// ) -> Result<()> {
5719 /// let response = client.get_operation()
5720 /// /* set fields */
5721 /// .send().await?;
5722 /// println!("response {:?}", response);
5723 /// Ok(())
5724 /// }
5725 /// ```
5726 pub fn get_operation(&self) -> super::builder::dataplex_service::GetOperation {
5727 super::builder::dataplex_service::GetOperation::new(self.inner.clone())
5728 }
5729
5730 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
5731 ///
5732 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
5733 ///
5734 /// # Example
5735 /// ```
5736 /// # use google_cloud_dataplex_v1::client::DataplexService;
5737 /// use google_cloud_dataplex_v1::Result;
5738 /// async fn sample(
5739 /// client: &DataplexService
5740 /// ) -> Result<()> {
5741 /// client.delete_operation()
5742 /// /* set fields */
5743 /// .send().await?;
5744 /// Ok(())
5745 /// }
5746 /// ```
5747 pub fn delete_operation(&self) -> super::builder::dataplex_service::DeleteOperation {
5748 super::builder::dataplex_service::DeleteOperation::new(self.inner.clone())
5749 }
5750
5751 /// Provides the [Operations][google.longrunning.Operations] service functionality in this service.
5752 ///
5753 /// [google.longrunning.Operations]: google-cloud-longrunning::client::Operations
5754 ///
5755 /// # Example
5756 /// ```
5757 /// # use google_cloud_dataplex_v1::client::DataplexService;
5758 /// use google_cloud_dataplex_v1::Result;
5759 /// async fn sample(
5760 /// client: &DataplexService
5761 /// ) -> Result<()> {
5762 /// client.cancel_operation()
5763 /// /* set fields */
5764 /// .send().await?;
5765 /// Ok(())
5766 /// }
5767 /// ```
5768 pub fn cancel_operation(&self) -> super::builder::dataplex_service::CancelOperation {
5769 super::builder::dataplex_service::CancelOperation::new(self.inner.clone())
5770 }
5771}