google_cloud_parametermanager_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 Parameter Manager API.
20///
21/// # Example
22/// ```
23/// # use google_cloud_parametermanager_v1::client::ParameterManager;
24/// use google_cloud_gax::paginator::ItemPaginator as _;
25/// async fn sample(
26/// project_id: &str,
27/// location_id: &str,
28/// ) -> anyhow::Result<()> {
29/// let client = ParameterManager::builder().build().await?;
30/// let mut list = client.list_parameters()
31/// .set_parent(format!("projects/{project_id}/locations/{location_id}"))
32/// .by_item();
33/// while let Some(item) = list.next().await.transpose()? {
34/// println!("{:?}", item);
35/// }
36/// Ok(())
37/// }
38/// ```
39///
40/// # Service Description
41///
42/// Service describing handlers for resources
43///
44/// # Configuration
45///
46/// To configure `ParameterManager` use the `with_*` methods in the type returned
47/// by [builder()][ParameterManager::builder]. The default configuration should
48/// work for most applications. Common configuration changes include
49///
50/// * [with_endpoint()]: by default this client uses the global default endpoint
51/// (`https://parametermanager.googleapis.com`). Applications using regional
52/// endpoints or running in restricted networks (e.g. a network configured
53// with [Private Google Access with VPC Service Controls]) may want to
54/// override this default.
55/// * [with_credentials()]: by default this client uses
56/// [Application Default Credentials]. Applications using custom
57/// authentication may need to override this default.
58///
59/// [with_endpoint()]: super::builder::parameter_manager::ClientBuilder::with_endpoint
60/// [with_credentials()]: super::builder::parameter_manager::ClientBuilder::with_credentials
61/// [Private Google Access with VPC Service Controls]: https://cloud.google.com/vpc-service-controls/docs/private-connectivity
62/// [Application Default Credentials]: https://cloud.google.com/docs/authentication#adc
63///
64/// # Pooling and Cloning
65///
66/// `ParameterManager` holds a connection pool internally, it is advised to
67/// create one and reuse it. You do not need to wrap `ParameterManager` in
68/// an [Rc](std::rc::Rc) or [Arc](std::sync::Arc) to reuse it, because it
69/// already uses an `Arc` internally.
70#[derive(Clone, Debug)]
71pub struct ParameterManager {
72 inner: std::sync::Arc<dyn super::stub::dynamic::ParameterManager>,
73}
74
75impl ParameterManager {
76 /// Returns a builder for [ParameterManager].
77 ///
78 /// ```
79 /// # async fn sample() -> google_cloud_gax::client_builder::Result<()> {
80 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
81 /// let client = ParameterManager::builder().build().await?;
82 /// # Ok(()) }
83 /// ```
84 pub fn builder() -> super::builder::parameter_manager::ClientBuilder {
85 crate::new_client_builder(super::builder::parameter_manager::client::Factory)
86 }
87
88 /// Creates a new client from the provided stub.
89 ///
90 /// The most common case for calling this function is in tests mocking the
91 /// client's behavior.
92 pub fn from_stub<T>(stub: impl Into<std::sync::Arc<T>>) -> Self
93 where
94 T: super::stub::ParameterManager + 'static,
95 {
96 Self { inner: stub.into() }
97 }
98
99 pub(crate) async fn new(
100 config: gaxi::options::ClientConfig,
101 ) -> crate::ClientBuilderResult<Self> {
102 let inner = Self::build_inner(config).await?;
103 Ok(Self { inner })
104 }
105
106 async fn build_inner(
107 conf: gaxi::options::ClientConfig,
108 ) -> crate::ClientBuilderResult<std::sync::Arc<dyn super::stub::dynamic::ParameterManager>>
109 {
110 if gaxi::options::tracing_enabled(&conf) {
111 return Ok(std::sync::Arc::new(Self::build_with_tracing(conf).await?));
112 }
113 Ok(std::sync::Arc::new(Self::build_transport(conf).await?))
114 }
115
116 async fn build_transport(
117 conf: gaxi::options::ClientConfig,
118 ) -> crate::ClientBuilderResult<impl super::stub::ParameterManager> {
119 super::transport::ParameterManager::new(conf).await
120 }
121
122 async fn build_with_tracing(
123 conf: gaxi::options::ClientConfig,
124 ) -> crate::ClientBuilderResult<impl super::stub::ParameterManager> {
125 Self::build_transport(conf)
126 .await
127 .map(super::tracing::ParameterManager::new)
128 }
129
130 /// Lists Parameters in a given project and location.
131 ///
132 /// # Example
133 /// ```
134 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
135 /// use google_cloud_gax::paginator::ItemPaginator as _;
136 /// use google_cloud_parametermanager_v1::Result;
137 /// async fn sample(
138 /// client: &ParameterManager, project_id: &str, location_id: &str
139 /// ) -> Result<()> {
140 /// let mut list = client.list_parameters()
141 /// .set_parent(format!("projects/{project_id}/locations/{location_id}"))
142 /// .by_item();
143 /// while let Some(item) = list.next().await.transpose()? {
144 /// println!("{:?}", item);
145 /// }
146 /// Ok(())
147 /// }
148 /// ```
149 pub fn list_parameters(&self) -> super::builder::parameter_manager::ListParameters {
150 super::builder::parameter_manager::ListParameters::new(self.inner.clone())
151 }
152
153 /// Gets details of a single Parameter.
154 ///
155 /// # Example
156 /// ```
157 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
158 /// use google_cloud_parametermanager_v1::Result;
159 /// async fn sample(
160 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str
161 /// ) -> Result<()> {
162 /// let response = client.get_parameter()
163 /// .set_name(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}"))
164 /// .send().await?;
165 /// println!("response {:?}", response);
166 /// Ok(())
167 /// }
168 /// ```
169 pub fn get_parameter(&self) -> super::builder::parameter_manager::GetParameter {
170 super::builder::parameter_manager::GetParameter::new(self.inner.clone())
171 }
172
173 /// Creates a new Parameter in a given project and location.
174 ///
175 /// # Example
176 /// ```
177 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
178 /// use google_cloud_parametermanager_v1::model::Parameter;
179 /// use google_cloud_parametermanager_v1::Result;
180 /// async fn sample(
181 /// client: &ParameterManager, project_id: &str, location_id: &str
182 /// ) -> Result<()> {
183 /// let response = client.create_parameter()
184 /// .set_parent(format!("projects/{project_id}/locations/{location_id}"))
185 /// .set_parameter_id("parameter_id_value")
186 /// .set_parameter(
187 /// Parameter::new()/* set fields */
188 /// )
189 /// .send().await?;
190 /// println!("response {:?}", response);
191 /// Ok(())
192 /// }
193 /// ```
194 pub fn create_parameter(&self) -> super::builder::parameter_manager::CreateParameter {
195 super::builder::parameter_manager::CreateParameter::new(self.inner.clone())
196 }
197
198 /// Updates a single Parameter.
199 ///
200 /// # Example
201 /// ```
202 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
203 /// # extern crate wkt as google_cloud_wkt;
204 /// use google_cloud_wkt::FieldMask;
205 /// use google_cloud_parametermanager_v1::model::Parameter;
206 /// use google_cloud_parametermanager_v1::Result;
207 /// async fn sample(
208 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str
209 /// ) -> Result<()> {
210 /// let response = client.update_parameter()
211 /// .set_parameter(
212 /// Parameter::new().set_name(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}"))/* set fields */
213 /// )
214 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
215 /// .send().await?;
216 /// println!("response {:?}", response);
217 /// Ok(())
218 /// }
219 /// ```
220 pub fn update_parameter(&self) -> super::builder::parameter_manager::UpdateParameter {
221 super::builder::parameter_manager::UpdateParameter::new(self.inner.clone())
222 }
223
224 /// Deletes a single Parameter.
225 ///
226 /// # Example
227 /// ```
228 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
229 /// use google_cloud_parametermanager_v1::Result;
230 /// async fn sample(
231 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str
232 /// ) -> Result<()> {
233 /// client.delete_parameter()
234 /// .set_name(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}"))
235 /// .send().await?;
236 /// Ok(())
237 /// }
238 /// ```
239 pub fn delete_parameter(&self) -> super::builder::parameter_manager::DeleteParameter {
240 super::builder::parameter_manager::DeleteParameter::new(self.inner.clone())
241 }
242
243 /// Lists ParameterVersions in a given project, location, and parameter.
244 ///
245 /// # Example
246 /// ```
247 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
248 /// use google_cloud_gax::paginator::ItemPaginator as _;
249 /// use google_cloud_parametermanager_v1::Result;
250 /// async fn sample(
251 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str
252 /// ) -> Result<()> {
253 /// let mut list = client.list_parameter_versions()
254 /// .set_parent(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}"))
255 /// .by_item();
256 /// while let Some(item) = list.next().await.transpose()? {
257 /// println!("{:?}", item);
258 /// }
259 /// Ok(())
260 /// }
261 /// ```
262 pub fn list_parameter_versions(
263 &self,
264 ) -> super::builder::parameter_manager::ListParameterVersions {
265 super::builder::parameter_manager::ListParameterVersions::new(self.inner.clone())
266 }
267
268 /// Gets details of a single ParameterVersion.
269 ///
270 /// # Example
271 /// ```
272 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
273 /// use google_cloud_parametermanager_v1::Result;
274 /// async fn sample(
275 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str, parameter_version_id: &str
276 /// ) -> Result<()> {
277 /// let response = client.get_parameter_version()
278 /// .set_name(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}/versions/{parameter_version_id}"))
279 /// .send().await?;
280 /// println!("response {:?}", response);
281 /// Ok(())
282 /// }
283 /// ```
284 pub fn get_parameter_version(&self) -> super::builder::parameter_manager::GetParameterVersion {
285 super::builder::parameter_manager::GetParameterVersion::new(self.inner.clone())
286 }
287
288 /// Gets rendered version of a ParameterVersion.
289 ///
290 /// # Example
291 /// ```
292 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
293 /// use google_cloud_parametermanager_v1::Result;
294 /// async fn sample(
295 /// client: &ParameterManager
296 /// ) -> Result<()> {
297 /// let response = client.render_parameter_version()
298 /// /* set fields */
299 /// .send().await?;
300 /// println!("response {:?}", response);
301 /// Ok(())
302 /// }
303 /// ```
304 pub fn render_parameter_version(
305 &self,
306 ) -> super::builder::parameter_manager::RenderParameterVersion {
307 super::builder::parameter_manager::RenderParameterVersion::new(self.inner.clone())
308 }
309
310 /// Creates a new ParameterVersion in a given project, location, and parameter.
311 ///
312 /// # Example
313 /// ```
314 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
315 /// use google_cloud_parametermanager_v1::model::ParameterVersion;
316 /// use google_cloud_parametermanager_v1::Result;
317 /// async fn sample(
318 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str
319 /// ) -> Result<()> {
320 /// let response = client.create_parameter_version()
321 /// .set_parent(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}"))
322 /// .set_parameter_version(
323 /// ParameterVersion::new()/* set fields */
324 /// )
325 /// .send().await?;
326 /// println!("response {:?}", response);
327 /// Ok(())
328 /// }
329 /// ```
330 pub fn create_parameter_version(
331 &self,
332 ) -> super::builder::parameter_manager::CreateParameterVersion {
333 super::builder::parameter_manager::CreateParameterVersion::new(self.inner.clone())
334 }
335
336 /// Updates a single ParameterVersion.
337 ///
338 /// # Example
339 /// ```
340 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
341 /// # extern crate wkt as google_cloud_wkt;
342 /// use google_cloud_wkt::FieldMask;
343 /// use google_cloud_parametermanager_v1::model::ParameterVersion;
344 /// use google_cloud_parametermanager_v1::Result;
345 /// async fn sample(
346 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str, parameter_version_id: &str
347 /// ) -> Result<()> {
348 /// let response = client.update_parameter_version()
349 /// .set_parameter_version(
350 /// ParameterVersion::new().set_name(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}/versions/{parameter_version_id}"))/* set fields */
351 /// )
352 /// .set_update_mask(FieldMask::default().set_paths(["updated.field.path1", "updated.field.path2"]))
353 /// .send().await?;
354 /// println!("response {:?}", response);
355 /// Ok(())
356 /// }
357 /// ```
358 pub fn update_parameter_version(
359 &self,
360 ) -> super::builder::parameter_manager::UpdateParameterVersion {
361 super::builder::parameter_manager::UpdateParameterVersion::new(self.inner.clone())
362 }
363
364 /// Deletes a single ParameterVersion.
365 ///
366 /// # Example
367 /// ```
368 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
369 /// use google_cloud_parametermanager_v1::Result;
370 /// async fn sample(
371 /// client: &ParameterManager, project_id: &str, location_id: &str, parameter_id: &str, parameter_version_id: &str
372 /// ) -> Result<()> {
373 /// client.delete_parameter_version()
374 /// .set_name(format!("projects/{project_id}/locations/{location_id}/parameters/{parameter_id}/versions/{parameter_version_id}"))
375 /// .send().await?;
376 /// Ok(())
377 /// }
378 /// ```
379 pub fn delete_parameter_version(
380 &self,
381 ) -> super::builder::parameter_manager::DeleteParameterVersion {
382 super::builder::parameter_manager::DeleteParameterVersion::new(self.inner.clone())
383 }
384
385 /// Lists information about the supported locations for this service.
386 ///
387 /// # Example
388 /// ```
389 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
390 /// use google_cloud_gax::paginator::ItemPaginator as _;
391 /// use google_cloud_parametermanager_v1::Result;
392 /// async fn sample(
393 /// client: &ParameterManager
394 /// ) -> Result<()> {
395 /// let mut list = client.list_locations()
396 /// /* set fields */
397 /// .by_item();
398 /// while let Some(item) = list.next().await.transpose()? {
399 /// println!("{:?}", item);
400 /// }
401 /// Ok(())
402 /// }
403 /// ```
404 pub fn list_locations(&self) -> super::builder::parameter_manager::ListLocations {
405 super::builder::parameter_manager::ListLocations::new(self.inner.clone())
406 }
407
408 /// Gets information about a location.
409 ///
410 /// # Example
411 /// ```
412 /// # use google_cloud_parametermanager_v1::client::ParameterManager;
413 /// use google_cloud_parametermanager_v1::Result;
414 /// async fn sample(
415 /// client: &ParameterManager
416 /// ) -> Result<()> {
417 /// let response = client.get_location()
418 /// /* set fields */
419 /// .send().await?;
420 /// println!("response {:?}", response);
421 /// Ok(())
422 /// }
423 /// ```
424 pub fn get_location(&self) -> super::builder::parameter_manager::GetLocation {
425 super::builder::parameter_manager::GetLocation::new(self.inner.clone())
426 }
427}