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