google_cloud_gkemulticloud_v1/model.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
17#![allow(rustdoc::redundant_explicit_links)]
18#![allow(rustdoc::broken_intra_doc_links)]
19#![no_implicit_prelude]
20extern crate async_trait;
21extern crate bytes;
22extern crate gaxi;
23extern crate google_cloud_gax;
24extern crate google_cloud_longrunning;
25extern crate google_cloud_lro;
26extern crate google_cloud_type;
27extern crate lazy_static;
28extern crate serde;
29extern crate serde_json;
30extern crate serde_with;
31extern crate std;
32extern crate tracing;
33extern crate wkt;
34
35mod debug;
36mod deserialize;
37mod serialize;
38
39/// An Anthos cluster running on customer own infrastructure.
40#[derive(Clone, Default, PartialEq)]
41#[non_exhaustive]
42pub struct AttachedCluster {
43 /// The name of this resource.
44 ///
45 /// Cluster names are formatted as
46 /// `projects/<project-number>/locations/<region>/attachedClusters/<cluster-id>`.
47 ///
48 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
49 /// for more details on Google Cloud Platform resource names.
50 pub name: std::string::String,
51
52 /// Optional. A human readable description of this cluster.
53 /// Cannot be longer than 255 UTF-8 encoded bytes.
54 pub description: std::string::String,
55
56 /// Required. OpenID Connect (OIDC) configuration for the cluster.
57 pub oidc_config: std::option::Option<crate::model::AttachedOidcConfig>,
58
59 /// Required. The platform version for the cluster (e.g. `1.19.0-gke.1000`).
60 ///
61 /// You can list all supported versions on a given Google Cloud region by
62 /// calling
63 /// [GetAttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig].
64 ///
65 /// [google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig]: crate::client::AttachedClusters::get_attached_server_config
66 pub platform_version: std::string::String,
67
68 /// Required. The Kubernetes distribution of the underlying attached cluster.
69 ///
70 /// Supported values: ["eks", "aks", "generic"].
71 pub distribution: std::string::String,
72
73 /// Output only. The region where this cluster runs.
74 ///
75 /// For EKS clusters, this is a AWS region. For AKS clusters,
76 /// this is an Azure region.
77 pub cluster_region: std::string::String,
78
79 /// Required. Fleet configuration.
80 pub fleet: std::option::Option<crate::model::Fleet>,
81
82 /// Output only. The current state of the cluster.
83 pub state: crate::model::attached_cluster::State,
84
85 /// Output only. A globally unique identifier for the cluster.
86 pub uid: std::string::String,
87
88 /// Output only. If set, there are currently changes in flight to the cluster.
89 pub reconciling: bool,
90
91 /// Output only. The time at which this cluster was registered.
92 pub create_time: std::option::Option<wkt::Timestamp>,
93
94 /// Output only. The time at which this cluster was last updated.
95 pub update_time: std::option::Option<wkt::Timestamp>,
96
97 /// Allows clients to perform consistent read-modify-writes
98 /// through optimistic concurrency control.
99 ///
100 /// Can be sent on update and delete requests to ensure the
101 /// client has an up-to-date value before proceeding.
102 pub etag: std::string::String,
103
104 /// Output only. The Kubernetes version of the cluster.
105 pub kubernetes_version: std::string::String,
106
107 /// Optional. Annotations on the cluster.
108 ///
109 /// This field has the same restrictions as Kubernetes annotations.
110 /// The total size of all keys and values combined is limited to 256k.
111 /// Key can have 2 segments: prefix (optional) and name (required),
112 /// separated by a slash (/).
113 /// Prefix must be a DNS subdomain.
114 /// Name must be 63 characters or less, begin and end with alphanumerics,
115 /// with dashes (-), underscores (_), dots (.), and alphanumerics between.
116 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
117
118 /// Output only. Workload Identity settings.
119 pub workload_identity_config: std::option::Option<crate::model::WorkloadIdentityConfig>,
120
121 /// Optional. Logging configuration for this cluster.
122 pub logging_config: std::option::Option<crate::model::LoggingConfig>,
123
124 /// Output only. A set of errors found in the cluster.
125 pub errors: std::vec::Vec<crate::model::AttachedClusterError>,
126
127 /// Optional. Configuration related to the cluster RBAC settings.
128 pub authorization: std::option::Option<crate::model::AttachedClustersAuthorization>,
129
130 /// Optional. Monitoring configuration for this cluster.
131 pub monitoring_config: std::option::Option<crate::model::MonitoringConfig>,
132
133 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
134 pub proxy_config: std::option::Option<crate::model::AttachedProxyConfig>,
135
136 /// Optional. Binary Authorization configuration for this cluster.
137 pub binary_authorization: std::option::Option<crate::model::BinaryAuthorization>,
138
139 /// Optional. Security Posture configuration for this cluster.
140 pub security_posture_config: std::option::Option<crate::model::SecurityPostureConfig>,
141
142 /// Optional. Input only. Tag keys and values directly bound to this resource.
143 ///
144 /// The tag key must be specified in the format
145 /// `<tag namespace>/<tag key name>,`
146 /// where the tag namespace is the ID of the organization or name of the
147 /// project that the tag key is defined in. The short name of a tag key or
148 /// value can have a maximum length of 256 characters. The permitted character
149 /// set for the short name includes UTF-8 encoded Unicode characters except
150 /// single quotation marks (`'`), double quotation marks (`"`), backslashes
151 /// (`\`), and forward slashes (`/`).
152 ///
153 /// See
154 /// [Tags](https://cloud.google.com/resource-manager/docs/tags/tags-overview)
155 /// for more details on Google Cloud Platform tags.
156 pub tags: std::collections::HashMap<std::string::String, std::string::String>,
157
158 /// Optional. Kubernetes configurations for auto-installed components on the
159 /// cluster.
160 pub system_components_config: std::option::Option<crate::model::SystemComponentsConfig>,
161
162 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
163}
164
165impl AttachedCluster {
166 pub fn new() -> Self {
167 std::default::Default::default()
168 }
169
170 /// Sets the value of [name][crate::model::AttachedCluster::name].
171 ///
172 /// # Example
173 /// ```ignore,no_run
174 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
175 /// let x = AttachedCluster::new().set_name("example");
176 /// ```
177 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
178 self.name = v.into();
179 self
180 }
181
182 /// Sets the value of [description][crate::model::AttachedCluster::description].
183 ///
184 /// # Example
185 /// ```ignore,no_run
186 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
187 /// let x = AttachedCluster::new().set_description("example");
188 /// ```
189 pub fn set_description<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
190 self.description = v.into();
191 self
192 }
193
194 /// Sets the value of [oidc_config][crate::model::AttachedCluster::oidc_config].
195 ///
196 /// # Example
197 /// ```ignore,no_run
198 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
199 /// use google_cloud_gkemulticloud_v1::model::AttachedOidcConfig;
200 /// let x = AttachedCluster::new().set_oidc_config(AttachedOidcConfig::default()/* use setters */);
201 /// ```
202 pub fn set_oidc_config<T>(mut self, v: T) -> Self
203 where
204 T: std::convert::Into<crate::model::AttachedOidcConfig>,
205 {
206 self.oidc_config = std::option::Option::Some(v.into());
207 self
208 }
209
210 /// Sets or clears the value of [oidc_config][crate::model::AttachedCluster::oidc_config].
211 ///
212 /// # Example
213 /// ```ignore,no_run
214 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
215 /// use google_cloud_gkemulticloud_v1::model::AttachedOidcConfig;
216 /// let x = AttachedCluster::new().set_or_clear_oidc_config(Some(AttachedOidcConfig::default()/* use setters */));
217 /// let x = AttachedCluster::new().set_or_clear_oidc_config(None::<AttachedOidcConfig>);
218 /// ```
219 pub fn set_or_clear_oidc_config<T>(mut self, v: std::option::Option<T>) -> Self
220 where
221 T: std::convert::Into<crate::model::AttachedOidcConfig>,
222 {
223 self.oidc_config = v.map(|x| x.into());
224 self
225 }
226
227 /// Sets the value of [platform_version][crate::model::AttachedCluster::platform_version].
228 ///
229 /// # Example
230 /// ```ignore,no_run
231 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
232 /// let x = AttachedCluster::new().set_platform_version("example");
233 /// ```
234 pub fn set_platform_version<T: std::convert::Into<std::string::String>>(
235 mut self,
236 v: T,
237 ) -> Self {
238 self.platform_version = v.into();
239 self
240 }
241
242 /// Sets the value of [distribution][crate::model::AttachedCluster::distribution].
243 ///
244 /// # Example
245 /// ```ignore,no_run
246 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
247 /// let x = AttachedCluster::new().set_distribution("example");
248 /// ```
249 pub fn set_distribution<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
250 self.distribution = v.into();
251 self
252 }
253
254 /// Sets the value of [cluster_region][crate::model::AttachedCluster::cluster_region].
255 ///
256 /// # Example
257 /// ```ignore,no_run
258 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
259 /// let x = AttachedCluster::new().set_cluster_region("example");
260 /// ```
261 pub fn set_cluster_region<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
262 self.cluster_region = v.into();
263 self
264 }
265
266 /// Sets the value of [fleet][crate::model::AttachedCluster::fleet].
267 ///
268 /// # Example
269 /// ```ignore,no_run
270 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
271 /// use google_cloud_gkemulticloud_v1::model::Fleet;
272 /// let x = AttachedCluster::new().set_fleet(Fleet::default()/* use setters */);
273 /// ```
274 pub fn set_fleet<T>(mut self, v: T) -> Self
275 where
276 T: std::convert::Into<crate::model::Fleet>,
277 {
278 self.fleet = std::option::Option::Some(v.into());
279 self
280 }
281
282 /// Sets or clears the value of [fleet][crate::model::AttachedCluster::fleet].
283 ///
284 /// # Example
285 /// ```ignore,no_run
286 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
287 /// use google_cloud_gkemulticloud_v1::model::Fleet;
288 /// let x = AttachedCluster::new().set_or_clear_fleet(Some(Fleet::default()/* use setters */));
289 /// let x = AttachedCluster::new().set_or_clear_fleet(None::<Fleet>);
290 /// ```
291 pub fn set_or_clear_fleet<T>(mut self, v: std::option::Option<T>) -> Self
292 where
293 T: std::convert::Into<crate::model::Fleet>,
294 {
295 self.fleet = v.map(|x| x.into());
296 self
297 }
298
299 /// Sets the value of [state][crate::model::AttachedCluster::state].
300 ///
301 /// # Example
302 /// ```ignore,no_run
303 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
304 /// use google_cloud_gkemulticloud_v1::model::attached_cluster::State;
305 /// let x0 = AttachedCluster::new().set_state(State::Provisioning);
306 /// let x1 = AttachedCluster::new().set_state(State::Running);
307 /// let x2 = AttachedCluster::new().set_state(State::Reconciling);
308 /// ```
309 pub fn set_state<T: std::convert::Into<crate::model::attached_cluster::State>>(
310 mut self,
311 v: T,
312 ) -> Self {
313 self.state = v.into();
314 self
315 }
316
317 /// Sets the value of [uid][crate::model::AttachedCluster::uid].
318 ///
319 /// # Example
320 /// ```ignore,no_run
321 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
322 /// let x = AttachedCluster::new().set_uid("example");
323 /// ```
324 pub fn set_uid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
325 self.uid = v.into();
326 self
327 }
328
329 /// Sets the value of [reconciling][crate::model::AttachedCluster::reconciling].
330 ///
331 /// # Example
332 /// ```ignore,no_run
333 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
334 /// let x = AttachedCluster::new().set_reconciling(true);
335 /// ```
336 pub fn set_reconciling<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
337 self.reconciling = v.into();
338 self
339 }
340
341 /// Sets the value of [create_time][crate::model::AttachedCluster::create_time].
342 ///
343 /// # Example
344 /// ```ignore,no_run
345 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
346 /// use wkt::Timestamp;
347 /// let x = AttachedCluster::new().set_create_time(Timestamp::default()/* use setters */);
348 /// ```
349 pub fn set_create_time<T>(mut self, v: T) -> Self
350 where
351 T: std::convert::Into<wkt::Timestamp>,
352 {
353 self.create_time = std::option::Option::Some(v.into());
354 self
355 }
356
357 /// Sets or clears the value of [create_time][crate::model::AttachedCluster::create_time].
358 ///
359 /// # Example
360 /// ```ignore,no_run
361 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
362 /// use wkt::Timestamp;
363 /// let x = AttachedCluster::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
364 /// let x = AttachedCluster::new().set_or_clear_create_time(None::<Timestamp>);
365 /// ```
366 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
367 where
368 T: std::convert::Into<wkt::Timestamp>,
369 {
370 self.create_time = v.map(|x| x.into());
371 self
372 }
373
374 /// Sets the value of [update_time][crate::model::AttachedCluster::update_time].
375 ///
376 /// # Example
377 /// ```ignore,no_run
378 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
379 /// use wkt::Timestamp;
380 /// let x = AttachedCluster::new().set_update_time(Timestamp::default()/* use setters */);
381 /// ```
382 pub fn set_update_time<T>(mut self, v: T) -> Self
383 where
384 T: std::convert::Into<wkt::Timestamp>,
385 {
386 self.update_time = std::option::Option::Some(v.into());
387 self
388 }
389
390 /// Sets or clears the value of [update_time][crate::model::AttachedCluster::update_time].
391 ///
392 /// # Example
393 /// ```ignore,no_run
394 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
395 /// use wkt::Timestamp;
396 /// let x = AttachedCluster::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
397 /// let x = AttachedCluster::new().set_or_clear_update_time(None::<Timestamp>);
398 /// ```
399 pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
400 where
401 T: std::convert::Into<wkt::Timestamp>,
402 {
403 self.update_time = v.map(|x| x.into());
404 self
405 }
406
407 /// Sets the value of [etag][crate::model::AttachedCluster::etag].
408 ///
409 /// # Example
410 /// ```ignore,no_run
411 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
412 /// let x = AttachedCluster::new().set_etag("example");
413 /// ```
414 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
415 self.etag = v.into();
416 self
417 }
418
419 /// Sets the value of [kubernetes_version][crate::model::AttachedCluster::kubernetes_version].
420 ///
421 /// # Example
422 /// ```ignore,no_run
423 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
424 /// let x = AttachedCluster::new().set_kubernetes_version("example");
425 /// ```
426 pub fn set_kubernetes_version<T: std::convert::Into<std::string::String>>(
427 mut self,
428 v: T,
429 ) -> Self {
430 self.kubernetes_version = v.into();
431 self
432 }
433
434 /// Sets the value of [annotations][crate::model::AttachedCluster::annotations].
435 ///
436 /// # Example
437 /// ```ignore,no_run
438 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
439 /// let x = AttachedCluster::new().set_annotations([
440 /// ("key0", "abc"),
441 /// ("key1", "xyz"),
442 /// ]);
443 /// ```
444 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
445 where
446 T: std::iter::IntoIterator<Item = (K, V)>,
447 K: std::convert::Into<std::string::String>,
448 V: std::convert::Into<std::string::String>,
449 {
450 use std::iter::Iterator;
451 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
452 self
453 }
454
455 /// Sets the value of [workload_identity_config][crate::model::AttachedCluster::workload_identity_config].
456 ///
457 /// # Example
458 /// ```ignore,no_run
459 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
460 /// use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
461 /// let x = AttachedCluster::new().set_workload_identity_config(WorkloadIdentityConfig::default()/* use setters */);
462 /// ```
463 pub fn set_workload_identity_config<T>(mut self, v: T) -> Self
464 where
465 T: std::convert::Into<crate::model::WorkloadIdentityConfig>,
466 {
467 self.workload_identity_config = std::option::Option::Some(v.into());
468 self
469 }
470
471 /// Sets or clears the value of [workload_identity_config][crate::model::AttachedCluster::workload_identity_config].
472 ///
473 /// # Example
474 /// ```ignore,no_run
475 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
476 /// use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
477 /// let x = AttachedCluster::new().set_or_clear_workload_identity_config(Some(WorkloadIdentityConfig::default()/* use setters */));
478 /// let x = AttachedCluster::new().set_or_clear_workload_identity_config(None::<WorkloadIdentityConfig>);
479 /// ```
480 pub fn set_or_clear_workload_identity_config<T>(mut self, v: std::option::Option<T>) -> Self
481 where
482 T: std::convert::Into<crate::model::WorkloadIdentityConfig>,
483 {
484 self.workload_identity_config = v.map(|x| x.into());
485 self
486 }
487
488 /// Sets the value of [logging_config][crate::model::AttachedCluster::logging_config].
489 ///
490 /// # Example
491 /// ```ignore,no_run
492 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
493 /// use google_cloud_gkemulticloud_v1::model::LoggingConfig;
494 /// let x = AttachedCluster::new().set_logging_config(LoggingConfig::default()/* use setters */);
495 /// ```
496 pub fn set_logging_config<T>(mut self, v: T) -> Self
497 where
498 T: std::convert::Into<crate::model::LoggingConfig>,
499 {
500 self.logging_config = std::option::Option::Some(v.into());
501 self
502 }
503
504 /// Sets or clears the value of [logging_config][crate::model::AttachedCluster::logging_config].
505 ///
506 /// # Example
507 /// ```ignore,no_run
508 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
509 /// use google_cloud_gkemulticloud_v1::model::LoggingConfig;
510 /// let x = AttachedCluster::new().set_or_clear_logging_config(Some(LoggingConfig::default()/* use setters */));
511 /// let x = AttachedCluster::new().set_or_clear_logging_config(None::<LoggingConfig>);
512 /// ```
513 pub fn set_or_clear_logging_config<T>(mut self, v: std::option::Option<T>) -> Self
514 where
515 T: std::convert::Into<crate::model::LoggingConfig>,
516 {
517 self.logging_config = v.map(|x| x.into());
518 self
519 }
520
521 /// Sets the value of [errors][crate::model::AttachedCluster::errors].
522 ///
523 /// # Example
524 /// ```ignore,no_run
525 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
526 /// use google_cloud_gkemulticloud_v1::model::AttachedClusterError;
527 /// let x = AttachedCluster::new()
528 /// .set_errors([
529 /// AttachedClusterError::default()/* use setters */,
530 /// AttachedClusterError::default()/* use (different) setters */,
531 /// ]);
532 /// ```
533 pub fn set_errors<T, V>(mut self, v: T) -> Self
534 where
535 T: std::iter::IntoIterator<Item = V>,
536 V: std::convert::Into<crate::model::AttachedClusterError>,
537 {
538 use std::iter::Iterator;
539 self.errors = v.into_iter().map(|i| i.into()).collect();
540 self
541 }
542
543 /// Sets the value of [authorization][crate::model::AttachedCluster::authorization].
544 ///
545 /// # Example
546 /// ```ignore,no_run
547 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
548 /// use google_cloud_gkemulticloud_v1::model::AttachedClustersAuthorization;
549 /// let x = AttachedCluster::new().set_authorization(AttachedClustersAuthorization::default()/* use setters */);
550 /// ```
551 pub fn set_authorization<T>(mut self, v: T) -> Self
552 where
553 T: std::convert::Into<crate::model::AttachedClustersAuthorization>,
554 {
555 self.authorization = std::option::Option::Some(v.into());
556 self
557 }
558
559 /// Sets or clears the value of [authorization][crate::model::AttachedCluster::authorization].
560 ///
561 /// # Example
562 /// ```ignore,no_run
563 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
564 /// use google_cloud_gkemulticloud_v1::model::AttachedClustersAuthorization;
565 /// let x = AttachedCluster::new().set_or_clear_authorization(Some(AttachedClustersAuthorization::default()/* use setters */));
566 /// let x = AttachedCluster::new().set_or_clear_authorization(None::<AttachedClustersAuthorization>);
567 /// ```
568 pub fn set_or_clear_authorization<T>(mut self, v: std::option::Option<T>) -> Self
569 where
570 T: std::convert::Into<crate::model::AttachedClustersAuthorization>,
571 {
572 self.authorization = v.map(|x| x.into());
573 self
574 }
575
576 /// Sets the value of [monitoring_config][crate::model::AttachedCluster::monitoring_config].
577 ///
578 /// # Example
579 /// ```ignore,no_run
580 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
581 /// use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
582 /// let x = AttachedCluster::new().set_monitoring_config(MonitoringConfig::default()/* use setters */);
583 /// ```
584 pub fn set_monitoring_config<T>(mut self, v: T) -> Self
585 where
586 T: std::convert::Into<crate::model::MonitoringConfig>,
587 {
588 self.monitoring_config = std::option::Option::Some(v.into());
589 self
590 }
591
592 /// Sets or clears the value of [monitoring_config][crate::model::AttachedCluster::monitoring_config].
593 ///
594 /// # Example
595 /// ```ignore,no_run
596 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
597 /// use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
598 /// let x = AttachedCluster::new().set_or_clear_monitoring_config(Some(MonitoringConfig::default()/* use setters */));
599 /// let x = AttachedCluster::new().set_or_clear_monitoring_config(None::<MonitoringConfig>);
600 /// ```
601 pub fn set_or_clear_monitoring_config<T>(mut self, v: std::option::Option<T>) -> Self
602 where
603 T: std::convert::Into<crate::model::MonitoringConfig>,
604 {
605 self.monitoring_config = v.map(|x| x.into());
606 self
607 }
608
609 /// Sets the value of [proxy_config][crate::model::AttachedCluster::proxy_config].
610 ///
611 /// # Example
612 /// ```ignore,no_run
613 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
614 /// use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
615 /// let x = AttachedCluster::new().set_proxy_config(AttachedProxyConfig::default()/* use setters */);
616 /// ```
617 pub fn set_proxy_config<T>(mut self, v: T) -> Self
618 where
619 T: std::convert::Into<crate::model::AttachedProxyConfig>,
620 {
621 self.proxy_config = std::option::Option::Some(v.into());
622 self
623 }
624
625 /// Sets or clears the value of [proxy_config][crate::model::AttachedCluster::proxy_config].
626 ///
627 /// # Example
628 /// ```ignore,no_run
629 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
630 /// use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
631 /// let x = AttachedCluster::new().set_or_clear_proxy_config(Some(AttachedProxyConfig::default()/* use setters */));
632 /// let x = AttachedCluster::new().set_or_clear_proxy_config(None::<AttachedProxyConfig>);
633 /// ```
634 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
635 where
636 T: std::convert::Into<crate::model::AttachedProxyConfig>,
637 {
638 self.proxy_config = v.map(|x| x.into());
639 self
640 }
641
642 /// Sets the value of [binary_authorization][crate::model::AttachedCluster::binary_authorization].
643 ///
644 /// # Example
645 /// ```ignore,no_run
646 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
647 /// use google_cloud_gkemulticloud_v1::model::BinaryAuthorization;
648 /// let x = AttachedCluster::new().set_binary_authorization(BinaryAuthorization::default()/* use setters */);
649 /// ```
650 pub fn set_binary_authorization<T>(mut self, v: T) -> Self
651 where
652 T: std::convert::Into<crate::model::BinaryAuthorization>,
653 {
654 self.binary_authorization = std::option::Option::Some(v.into());
655 self
656 }
657
658 /// Sets or clears the value of [binary_authorization][crate::model::AttachedCluster::binary_authorization].
659 ///
660 /// # Example
661 /// ```ignore,no_run
662 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
663 /// use google_cloud_gkemulticloud_v1::model::BinaryAuthorization;
664 /// let x = AttachedCluster::new().set_or_clear_binary_authorization(Some(BinaryAuthorization::default()/* use setters */));
665 /// let x = AttachedCluster::new().set_or_clear_binary_authorization(None::<BinaryAuthorization>);
666 /// ```
667 pub fn set_or_clear_binary_authorization<T>(mut self, v: std::option::Option<T>) -> Self
668 where
669 T: std::convert::Into<crate::model::BinaryAuthorization>,
670 {
671 self.binary_authorization = v.map(|x| x.into());
672 self
673 }
674
675 /// Sets the value of [security_posture_config][crate::model::AttachedCluster::security_posture_config].
676 ///
677 /// # Example
678 /// ```ignore,no_run
679 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
680 /// use google_cloud_gkemulticloud_v1::model::SecurityPostureConfig;
681 /// let x = AttachedCluster::new().set_security_posture_config(SecurityPostureConfig::default()/* use setters */);
682 /// ```
683 pub fn set_security_posture_config<T>(mut self, v: T) -> Self
684 where
685 T: std::convert::Into<crate::model::SecurityPostureConfig>,
686 {
687 self.security_posture_config = std::option::Option::Some(v.into());
688 self
689 }
690
691 /// Sets or clears the value of [security_posture_config][crate::model::AttachedCluster::security_posture_config].
692 ///
693 /// # Example
694 /// ```ignore,no_run
695 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
696 /// use google_cloud_gkemulticloud_v1::model::SecurityPostureConfig;
697 /// let x = AttachedCluster::new().set_or_clear_security_posture_config(Some(SecurityPostureConfig::default()/* use setters */));
698 /// let x = AttachedCluster::new().set_or_clear_security_posture_config(None::<SecurityPostureConfig>);
699 /// ```
700 pub fn set_or_clear_security_posture_config<T>(mut self, v: std::option::Option<T>) -> Self
701 where
702 T: std::convert::Into<crate::model::SecurityPostureConfig>,
703 {
704 self.security_posture_config = v.map(|x| x.into());
705 self
706 }
707
708 /// Sets the value of [tags][crate::model::AttachedCluster::tags].
709 ///
710 /// # Example
711 /// ```ignore,no_run
712 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
713 /// let x = AttachedCluster::new().set_tags([
714 /// ("key0", "abc"),
715 /// ("key1", "xyz"),
716 /// ]);
717 /// ```
718 pub fn set_tags<T, K, V>(mut self, v: T) -> Self
719 where
720 T: std::iter::IntoIterator<Item = (K, V)>,
721 K: std::convert::Into<std::string::String>,
722 V: std::convert::Into<std::string::String>,
723 {
724 use std::iter::Iterator;
725 self.tags = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
726 self
727 }
728
729 /// Sets the value of [system_components_config][crate::model::AttachedCluster::system_components_config].
730 ///
731 /// # Example
732 /// ```ignore,no_run
733 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
734 /// use google_cloud_gkemulticloud_v1::model::SystemComponentsConfig;
735 /// let x = AttachedCluster::new().set_system_components_config(SystemComponentsConfig::default()/* use setters */);
736 /// ```
737 pub fn set_system_components_config<T>(mut self, v: T) -> Self
738 where
739 T: std::convert::Into<crate::model::SystemComponentsConfig>,
740 {
741 self.system_components_config = std::option::Option::Some(v.into());
742 self
743 }
744
745 /// Sets or clears the value of [system_components_config][crate::model::AttachedCluster::system_components_config].
746 ///
747 /// # Example
748 /// ```ignore,no_run
749 /// # use google_cloud_gkemulticloud_v1::model::AttachedCluster;
750 /// use google_cloud_gkemulticloud_v1::model::SystemComponentsConfig;
751 /// let x = AttachedCluster::new().set_or_clear_system_components_config(Some(SystemComponentsConfig::default()/* use setters */));
752 /// let x = AttachedCluster::new().set_or_clear_system_components_config(None::<SystemComponentsConfig>);
753 /// ```
754 pub fn set_or_clear_system_components_config<T>(mut self, v: std::option::Option<T>) -> Self
755 where
756 T: std::convert::Into<crate::model::SystemComponentsConfig>,
757 {
758 self.system_components_config = v.map(|x| x.into());
759 self
760 }
761}
762
763impl wkt::message::Message for AttachedCluster {
764 fn typename() -> &'static str {
765 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedCluster"
766 }
767}
768
769/// Defines additional types related to [AttachedCluster].
770pub mod attached_cluster {
771 #[allow(unused_imports)]
772 use super::*;
773
774 /// The lifecycle state of the cluster.
775 ///
776 /// # Working with unknown values
777 ///
778 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
779 /// additional enum variants at any time. Adding new variants is not considered
780 /// a breaking change. Applications should write their code in anticipation of:
781 ///
782 /// - New values appearing in future releases of the client library, **and**
783 /// - New values received dynamically, without application changes.
784 ///
785 /// Please consult the [Working with enums] section in the user guide for some
786 /// guidelines.
787 ///
788 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
789 #[derive(Clone, Debug, PartialEq)]
790 #[non_exhaustive]
791 pub enum State {
792 /// Not set.
793 Unspecified,
794 /// The PROVISIONING state indicates the cluster is being registered.
795 Provisioning,
796 /// The RUNNING state indicates the cluster has been register and is fully
797 /// usable.
798 Running,
799 /// The RECONCILING state indicates that some work is actively being done on
800 /// the cluster, such as upgrading software components.
801 Reconciling,
802 /// The STOPPING state indicates the cluster is being de-registered.
803 Stopping,
804 /// The ERROR state indicates the cluster is in a broken unrecoverable
805 /// state.
806 Error,
807 /// The DEGRADED state indicates the cluster requires user action to
808 /// restore full functionality.
809 Degraded,
810 /// If set, the enum was initialized with an unknown value.
811 ///
812 /// Applications can examine the value using [State::value] or
813 /// [State::name].
814 UnknownValue(state::UnknownValue),
815 }
816
817 #[doc(hidden)]
818 pub mod state {
819 #[allow(unused_imports)]
820 use super::*;
821 #[derive(Clone, Debug, PartialEq)]
822 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
823 }
824
825 impl State {
826 /// Gets the enum value.
827 ///
828 /// Returns `None` if the enum contains an unknown value deserialized from
829 /// the string representation of enums.
830 pub fn value(&self) -> std::option::Option<i32> {
831 match self {
832 Self::Unspecified => std::option::Option::Some(0),
833 Self::Provisioning => std::option::Option::Some(1),
834 Self::Running => std::option::Option::Some(2),
835 Self::Reconciling => std::option::Option::Some(3),
836 Self::Stopping => std::option::Option::Some(4),
837 Self::Error => std::option::Option::Some(5),
838 Self::Degraded => std::option::Option::Some(6),
839 Self::UnknownValue(u) => u.0.value(),
840 }
841 }
842
843 /// Gets the enum value as a string.
844 ///
845 /// Returns `None` if the enum contains an unknown value deserialized from
846 /// the integer representation of enums.
847 pub fn name(&self) -> std::option::Option<&str> {
848 match self {
849 Self::Unspecified => std::option::Option::Some("STATE_UNSPECIFIED"),
850 Self::Provisioning => std::option::Option::Some("PROVISIONING"),
851 Self::Running => std::option::Option::Some("RUNNING"),
852 Self::Reconciling => std::option::Option::Some("RECONCILING"),
853 Self::Stopping => std::option::Option::Some("STOPPING"),
854 Self::Error => std::option::Option::Some("ERROR"),
855 Self::Degraded => std::option::Option::Some("DEGRADED"),
856 Self::UnknownValue(u) => u.0.name(),
857 }
858 }
859 }
860
861 impl std::default::Default for State {
862 fn default() -> Self {
863 use std::convert::From;
864 Self::from(0)
865 }
866 }
867
868 impl std::fmt::Display for State {
869 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
870 wkt::internal::display_enum(f, self.name(), self.value())
871 }
872 }
873
874 impl std::convert::From<i32> for State {
875 fn from(value: i32) -> Self {
876 match value {
877 0 => Self::Unspecified,
878 1 => Self::Provisioning,
879 2 => Self::Running,
880 3 => Self::Reconciling,
881 4 => Self::Stopping,
882 5 => Self::Error,
883 6 => Self::Degraded,
884 _ => Self::UnknownValue(state::UnknownValue(
885 wkt::internal::UnknownEnumValue::Integer(value),
886 )),
887 }
888 }
889 }
890
891 impl std::convert::From<&str> for State {
892 fn from(value: &str) -> Self {
893 use std::string::ToString;
894 match value {
895 "STATE_UNSPECIFIED" => Self::Unspecified,
896 "PROVISIONING" => Self::Provisioning,
897 "RUNNING" => Self::Running,
898 "RECONCILING" => Self::Reconciling,
899 "STOPPING" => Self::Stopping,
900 "ERROR" => Self::Error,
901 "DEGRADED" => Self::Degraded,
902 _ => Self::UnknownValue(state::UnknownValue(
903 wkt::internal::UnknownEnumValue::String(value.to_string()),
904 )),
905 }
906 }
907 }
908
909 impl serde::ser::Serialize for State {
910 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
911 where
912 S: serde::Serializer,
913 {
914 match self {
915 Self::Unspecified => serializer.serialize_i32(0),
916 Self::Provisioning => serializer.serialize_i32(1),
917 Self::Running => serializer.serialize_i32(2),
918 Self::Reconciling => serializer.serialize_i32(3),
919 Self::Stopping => serializer.serialize_i32(4),
920 Self::Error => serializer.serialize_i32(5),
921 Self::Degraded => serializer.serialize_i32(6),
922 Self::UnknownValue(u) => u.0.serialize(serializer),
923 }
924 }
925 }
926
927 impl<'de> serde::de::Deserialize<'de> for State {
928 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
929 where
930 D: serde::Deserializer<'de>,
931 {
932 deserializer.deserialize_any(wkt::internal::EnumVisitor::<State>::new(
933 ".google.cloud.gkemulticloud.v1.AttachedCluster.State",
934 ))
935 }
936 }
937}
938
939/// Configuration related to the cluster RBAC settings.
940#[derive(Clone, Default, PartialEq)]
941#[non_exhaustive]
942pub struct AttachedClustersAuthorization {
943 /// Optional. Users that can perform operations as a cluster admin. A managed
944 /// ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole
945 /// to the users. Up to ten admin users can be provided.
946 ///
947 /// For more info on RBAC, see
948 /// <https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles>
949 pub admin_users: std::vec::Vec<crate::model::AttachedClusterUser>,
950
951 /// Optional. Groups of users that can perform operations as a cluster admin. A
952 /// managed ClusterRoleBinding will be created to grant the `cluster-admin`
953 /// ClusterRole to the groups. Up to ten admin groups can be provided.
954 ///
955 /// For more info on RBAC, see
956 /// <https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles>
957 pub admin_groups: std::vec::Vec<crate::model::AttachedClusterGroup>,
958
959 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
960}
961
962impl AttachedClustersAuthorization {
963 pub fn new() -> Self {
964 std::default::Default::default()
965 }
966
967 /// Sets the value of [admin_users][crate::model::AttachedClustersAuthorization::admin_users].
968 ///
969 /// # Example
970 /// ```ignore,no_run
971 /// # use google_cloud_gkemulticloud_v1::model::AttachedClustersAuthorization;
972 /// use google_cloud_gkemulticloud_v1::model::AttachedClusterUser;
973 /// let x = AttachedClustersAuthorization::new()
974 /// .set_admin_users([
975 /// AttachedClusterUser::default()/* use setters */,
976 /// AttachedClusterUser::default()/* use (different) setters */,
977 /// ]);
978 /// ```
979 pub fn set_admin_users<T, V>(mut self, v: T) -> Self
980 where
981 T: std::iter::IntoIterator<Item = V>,
982 V: std::convert::Into<crate::model::AttachedClusterUser>,
983 {
984 use std::iter::Iterator;
985 self.admin_users = v.into_iter().map(|i| i.into()).collect();
986 self
987 }
988
989 /// Sets the value of [admin_groups][crate::model::AttachedClustersAuthorization::admin_groups].
990 ///
991 /// # Example
992 /// ```ignore,no_run
993 /// # use google_cloud_gkemulticloud_v1::model::AttachedClustersAuthorization;
994 /// use google_cloud_gkemulticloud_v1::model::AttachedClusterGroup;
995 /// let x = AttachedClustersAuthorization::new()
996 /// .set_admin_groups([
997 /// AttachedClusterGroup::default()/* use setters */,
998 /// AttachedClusterGroup::default()/* use (different) setters */,
999 /// ]);
1000 /// ```
1001 pub fn set_admin_groups<T, V>(mut self, v: T) -> Self
1002 where
1003 T: std::iter::IntoIterator<Item = V>,
1004 V: std::convert::Into<crate::model::AttachedClusterGroup>,
1005 {
1006 use std::iter::Iterator;
1007 self.admin_groups = v.into_iter().map(|i| i.into()).collect();
1008 self
1009 }
1010}
1011
1012impl wkt::message::Message for AttachedClustersAuthorization {
1013 fn typename() -> &'static str {
1014 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedClustersAuthorization"
1015 }
1016}
1017
1018/// Identities of a user-type subject for Attached clusters.
1019#[derive(Clone, Default, PartialEq)]
1020#[non_exhaustive]
1021pub struct AttachedClusterUser {
1022 /// Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
1023 pub username: std::string::String,
1024
1025 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1026}
1027
1028impl AttachedClusterUser {
1029 pub fn new() -> Self {
1030 std::default::Default::default()
1031 }
1032
1033 /// Sets the value of [username][crate::model::AttachedClusterUser::username].
1034 ///
1035 /// # Example
1036 /// ```ignore,no_run
1037 /// # use google_cloud_gkemulticloud_v1::model::AttachedClusterUser;
1038 /// let x = AttachedClusterUser::new().set_username("example");
1039 /// ```
1040 pub fn set_username<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1041 self.username = v.into();
1042 self
1043 }
1044}
1045
1046impl wkt::message::Message for AttachedClusterUser {
1047 fn typename() -> &'static str {
1048 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedClusterUser"
1049 }
1050}
1051
1052/// Identities of a group-type subject for Attached clusters.
1053#[derive(Clone, Default, PartialEq)]
1054#[non_exhaustive]
1055pub struct AttachedClusterGroup {
1056 /// Required. The name of the group, e.g. `my-group@domain.com`.
1057 pub group: std::string::String,
1058
1059 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1060}
1061
1062impl AttachedClusterGroup {
1063 pub fn new() -> Self {
1064 std::default::Default::default()
1065 }
1066
1067 /// Sets the value of [group][crate::model::AttachedClusterGroup::group].
1068 ///
1069 /// # Example
1070 /// ```ignore,no_run
1071 /// # use google_cloud_gkemulticloud_v1::model::AttachedClusterGroup;
1072 /// let x = AttachedClusterGroup::new().set_group("example");
1073 /// ```
1074 pub fn set_group<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1075 self.group = v.into();
1076 self
1077 }
1078}
1079
1080impl wkt::message::Message for AttachedClusterGroup {
1081 fn typename() -> &'static str {
1082 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedClusterGroup"
1083 }
1084}
1085
1086/// OIDC discovery information of the target cluster.
1087///
1088/// Kubernetes Service Account (KSA) tokens are JWT tokens signed by the cluster
1089/// API server. This fields indicates how Google Cloud Platform services
1090/// validate KSA tokens in order to allow system workloads (such as GKE Connect
1091/// and telemetry agents) to authenticate back to Google Cloud Platform.
1092///
1093/// Both clusters with public and private issuer URLs are supported.
1094/// Clusters with public issuers only need to specify the `issuer_url` field
1095/// while clusters with private issuers need to provide both
1096/// `issuer_url` and `oidc_jwks`.
1097#[derive(Clone, Default, PartialEq)]
1098#[non_exhaustive]
1099pub struct AttachedOidcConfig {
1100 /// A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://`.
1101 pub issuer_url: std::string::String,
1102
1103 /// Optional. OIDC verification keys in JWKS format (RFC 7517).
1104 /// It contains a list of OIDC verification keys that can be used to verify
1105 /// OIDC JWTs.
1106 ///
1107 /// This field is required for cluster that doesn't have a publicly available
1108 /// discovery endpoint. When provided, it will be directly used
1109 /// to verify the OIDC JWT asserted by the IDP.
1110 pub jwks: ::bytes::Bytes,
1111
1112 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1113}
1114
1115impl AttachedOidcConfig {
1116 pub fn new() -> Self {
1117 std::default::Default::default()
1118 }
1119
1120 /// Sets the value of [issuer_url][crate::model::AttachedOidcConfig::issuer_url].
1121 ///
1122 /// # Example
1123 /// ```ignore,no_run
1124 /// # use google_cloud_gkemulticloud_v1::model::AttachedOidcConfig;
1125 /// let x = AttachedOidcConfig::new().set_issuer_url("example");
1126 /// ```
1127 pub fn set_issuer_url<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1128 self.issuer_url = v.into();
1129 self
1130 }
1131
1132 /// Sets the value of [jwks][crate::model::AttachedOidcConfig::jwks].
1133 ///
1134 /// # Example
1135 /// ```ignore,no_run
1136 /// # use google_cloud_gkemulticloud_v1::model::AttachedOidcConfig;
1137 /// let x = AttachedOidcConfig::new().set_jwks(bytes::Bytes::from_static(b"example"));
1138 /// ```
1139 pub fn set_jwks<T: std::convert::Into<::bytes::Bytes>>(mut self, v: T) -> Self {
1140 self.jwks = v.into();
1141 self
1142 }
1143}
1144
1145impl wkt::message::Message for AttachedOidcConfig {
1146 fn typename() -> &'static str {
1147 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedOidcConfig"
1148 }
1149}
1150
1151/// AttachedServerConfig provides information about supported
1152/// Kubernetes versions
1153#[derive(Clone, Default, PartialEq)]
1154#[non_exhaustive]
1155pub struct AttachedServerConfig {
1156 /// The resource name of the config.
1157 pub name: std::string::String,
1158
1159 /// List of valid platform versions.
1160 pub valid_versions: std::vec::Vec<crate::model::AttachedPlatformVersionInfo>,
1161
1162 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1163}
1164
1165impl AttachedServerConfig {
1166 pub fn new() -> Self {
1167 std::default::Default::default()
1168 }
1169
1170 /// Sets the value of [name][crate::model::AttachedServerConfig::name].
1171 ///
1172 /// # Example
1173 /// ```ignore,no_run
1174 /// # use google_cloud_gkemulticloud_v1::model::AttachedServerConfig;
1175 /// let x = AttachedServerConfig::new().set_name("example");
1176 /// ```
1177 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1178 self.name = v.into();
1179 self
1180 }
1181
1182 /// Sets the value of [valid_versions][crate::model::AttachedServerConfig::valid_versions].
1183 ///
1184 /// # Example
1185 /// ```ignore,no_run
1186 /// # use google_cloud_gkemulticloud_v1::model::AttachedServerConfig;
1187 /// use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1188 /// let x = AttachedServerConfig::new()
1189 /// .set_valid_versions([
1190 /// AttachedPlatformVersionInfo::default()/* use setters */,
1191 /// AttachedPlatformVersionInfo::default()/* use (different) setters */,
1192 /// ]);
1193 /// ```
1194 pub fn set_valid_versions<T, V>(mut self, v: T) -> Self
1195 where
1196 T: std::iter::IntoIterator<Item = V>,
1197 V: std::convert::Into<crate::model::AttachedPlatformVersionInfo>,
1198 {
1199 use std::iter::Iterator;
1200 self.valid_versions = v.into_iter().map(|i| i.into()).collect();
1201 self
1202 }
1203}
1204
1205impl wkt::message::Message for AttachedServerConfig {
1206 fn typename() -> &'static str {
1207 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedServerConfig"
1208 }
1209}
1210
1211/// Information about a supported Attached Clusters platform version.
1212#[derive(Clone, Default, PartialEq)]
1213#[non_exhaustive]
1214pub struct AttachedPlatformVersionInfo {
1215 /// Platform version name.
1216 pub version: std::string::String,
1217
1218 /// Optional. True if the version is available for attachedcluster creation. If
1219 /// a version is enabled, it can be used to attach new clusters.
1220 pub enabled: bool,
1221
1222 /// Optional. True if this cluster version belongs to a minor version that has
1223 /// reached its end of life and is no longer in scope to receive security and
1224 /// bug fixes.
1225 pub end_of_life: bool,
1226
1227 /// Optional. The estimated date (in Pacific Time) when this cluster version
1228 /// will reach its end of life. Or if this version is no longer supported (the
1229 /// `end_of_life` field is true), this is the actual date (in Pacific time)
1230 /// when the version reached its end of life.
1231 pub end_of_life_date: std::option::Option<google_cloud_type::model::Date>,
1232
1233 /// Optional. The date (in Pacific Time) when the cluster version was released.
1234 pub release_date: std::option::Option<google_cloud_type::model::Date>,
1235
1236 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1237}
1238
1239impl AttachedPlatformVersionInfo {
1240 pub fn new() -> Self {
1241 std::default::Default::default()
1242 }
1243
1244 /// Sets the value of [version][crate::model::AttachedPlatformVersionInfo::version].
1245 ///
1246 /// # Example
1247 /// ```ignore,no_run
1248 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1249 /// let x = AttachedPlatformVersionInfo::new().set_version("example");
1250 /// ```
1251 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1252 self.version = v.into();
1253 self
1254 }
1255
1256 /// Sets the value of [enabled][crate::model::AttachedPlatformVersionInfo::enabled].
1257 ///
1258 /// # Example
1259 /// ```ignore,no_run
1260 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1261 /// let x = AttachedPlatformVersionInfo::new().set_enabled(true);
1262 /// ```
1263 pub fn set_enabled<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
1264 self.enabled = v.into();
1265 self
1266 }
1267
1268 /// Sets the value of [end_of_life][crate::model::AttachedPlatformVersionInfo::end_of_life].
1269 ///
1270 /// # Example
1271 /// ```ignore,no_run
1272 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1273 /// let x = AttachedPlatformVersionInfo::new().set_end_of_life(true);
1274 /// ```
1275 pub fn set_end_of_life<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
1276 self.end_of_life = v.into();
1277 self
1278 }
1279
1280 /// Sets the value of [end_of_life_date][crate::model::AttachedPlatformVersionInfo::end_of_life_date].
1281 ///
1282 /// # Example
1283 /// ```ignore,no_run
1284 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1285 /// use google_cloud_type::model::Date;
1286 /// let x = AttachedPlatformVersionInfo::new().set_end_of_life_date(Date::default()/* use setters */);
1287 /// ```
1288 pub fn set_end_of_life_date<T>(mut self, v: T) -> Self
1289 where
1290 T: std::convert::Into<google_cloud_type::model::Date>,
1291 {
1292 self.end_of_life_date = std::option::Option::Some(v.into());
1293 self
1294 }
1295
1296 /// Sets or clears the value of [end_of_life_date][crate::model::AttachedPlatformVersionInfo::end_of_life_date].
1297 ///
1298 /// # Example
1299 /// ```ignore,no_run
1300 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1301 /// use google_cloud_type::model::Date;
1302 /// let x = AttachedPlatformVersionInfo::new().set_or_clear_end_of_life_date(Some(Date::default()/* use setters */));
1303 /// let x = AttachedPlatformVersionInfo::new().set_or_clear_end_of_life_date(None::<Date>);
1304 /// ```
1305 pub fn set_or_clear_end_of_life_date<T>(mut self, v: std::option::Option<T>) -> Self
1306 where
1307 T: std::convert::Into<google_cloud_type::model::Date>,
1308 {
1309 self.end_of_life_date = v.map(|x| x.into());
1310 self
1311 }
1312
1313 /// Sets the value of [release_date][crate::model::AttachedPlatformVersionInfo::release_date].
1314 ///
1315 /// # Example
1316 /// ```ignore,no_run
1317 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1318 /// use google_cloud_type::model::Date;
1319 /// let x = AttachedPlatformVersionInfo::new().set_release_date(Date::default()/* use setters */);
1320 /// ```
1321 pub fn set_release_date<T>(mut self, v: T) -> Self
1322 where
1323 T: std::convert::Into<google_cloud_type::model::Date>,
1324 {
1325 self.release_date = std::option::Option::Some(v.into());
1326 self
1327 }
1328
1329 /// Sets or clears the value of [release_date][crate::model::AttachedPlatformVersionInfo::release_date].
1330 ///
1331 /// # Example
1332 /// ```ignore,no_run
1333 /// # use google_cloud_gkemulticloud_v1::model::AttachedPlatformVersionInfo;
1334 /// use google_cloud_type::model::Date;
1335 /// let x = AttachedPlatformVersionInfo::new().set_or_clear_release_date(Some(Date::default()/* use setters */));
1336 /// let x = AttachedPlatformVersionInfo::new().set_or_clear_release_date(None::<Date>);
1337 /// ```
1338 pub fn set_or_clear_release_date<T>(mut self, v: std::option::Option<T>) -> Self
1339 where
1340 T: std::convert::Into<google_cloud_type::model::Date>,
1341 {
1342 self.release_date = v.map(|x| x.into());
1343 self
1344 }
1345}
1346
1347impl wkt::message::Message for AttachedPlatformVersionInfo {
1348 fn typename() -> &'static str {
1349 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedPlatformVersionInfo"
1350 }
1351}
1352
1353/// AttachedClusterError describes errors found on attached clusters.
1354#[derive(Clone, Default, PartialEq)]
1355#[non_exhaustive]
1356pub struct AttachedClusterError {
1357 /// Human-friendly description of the error.
1358 pub message: std::string::String,
1359
1360 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1361}
1362
1363impl AttachedClusterError {
1364 pub fn new() -> Self {
1365 std::default::Default::default()
1366 }
1367
1368 /// Sets the value of [message][crate::model::AttachedClusterError::message].
1369 ///
1370 /// # Example
1371 /// ```ignore,no_run
1372 /// # use google_cloud_gkemulticloud_v1::model::AttachedClusterError;
1373 /// let x = AttachedClusterError::new().set_message("example");
1374 /// ```
1375 pub fn set_message<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1376 self.message = v.into();
1377 self
1378 }
1379}
1380
1381impl wkt::message::Message for AttachedClusterError {
1382 fn typename() -> &'static str {
1383 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedClusterError"
1384 }
1385}
1386
1387/// Details of a proxy config.
1388#[derive(Clone, Default, PartialEq)]
1389#[non_exhaustive]
1390pub struct AttachedProxyConfig {
1391 /// The Kubernetes Secret resource that contains the HTTP(S) proxy
1392 /// configuration. The secret must be a JSON encoded proxy configuration
1393 /// as described in
1394 /// <https://cloud.google.com/kubernetes-engine/multi-cloud/docs/attached/eks/how-to/use-a-proxy#configure-proxy-support>
1395 /// for EKS clusters and
1396 /// <https://cloud.google.com/kubernetes-engine/multi-cloud/docs/attached/aks/how-to/use-a-proxy#configure-proxy-support>
1397 /// for AKS clusters.
1398 pub kubernetes_secret: std::option::Option<crate::model::KubernetesSecret>,
1399
1400 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1401}
1402
1403impl AttachedProxyConfig {
1404 pub fn new() -> Self {
1405 std::default::Default::default()
1406 }
1407
1408 /// Sets the value of [kubernetes_secret][crate::model::AttachedProxyConfig::kubernetes_secret].
1409 ///
1410 /// # Example
1411 /// ```ignore,no_run
1412 /// # use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
1413 /// use google_cloud_gkemulticloud_v1::model::KubernetesSecret;
1414 /// let x = AttachedProxyConfig::new().set_kubernetes_secret(KubernetesSecret::default()/* use setters */);
1415 /// ```
1416 pub fn set_kubernetes_secret<T>(mut self, v: T) -> Self
1417 where
1418 T: std::convert::Into<crate::model::KubernetesSecret>,
1419 {
1420 self.kubernetes_secret = std::option::Option::Some(v.into());
1421 self
1422 }
1423
1424 /// Sets or clears the value of [kubernetes_secret][crate::model::AttachedProxyConfig::kubernetes_secret].
1425 ///
1426 /// # Example
1427 /// ```ignore,no_run
1428 /// # use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
1429 /// use google_cloud_gkemulticloud_v1::model::KubernetesSecret;
1430 /// let x = AttachedProxyConfig::new().set_or_clear_kubernetes_secret(Some(KubernetesSecret::default()/* use setters */));
1431 /// let x = AttachedProxyConfig::new().set_or_clear_kubernetes_secret(None::<KubernetesSecret>);
1432 /// ```
1433 pub fn set_or_clear_kubernetes_secret<T>(mut self, v: std::option::Option<T>) -> Self
1434 where
1435 T: std::convert::Into<crate::model::KubernetesSecret>,
1436 {
1437 self.kubernetes_secret = v.map(|x| x.into());
1438 self
1439 }
1440}
1441
1442impl wkt::message::Message for AttachedProxyConfig {
1443 fn typename() -> &'static str {
1444 "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedProxyConfig"
1445 }
1446}
1447
1448/// Information about a Kubernetes Secret
1449#[derive(Clone, Default, PartialEq)]
1450#[non_exhaustive]
1451pub struct KubernetesSecret {
1452 /// Name of the kubernetes secret.
1453 pub name: std::string::String,
1454
1455 /// Namespace in which the kubernetes secret is stored.
1456 pub namespace: std::string::String,
1457
1458 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1459}
1460
1461impl KubernetesSecret {
1462 pub fn new() -> Self {
1463 std::default::Default::default()
1464 }
1465
1466 /// Sets the value of [name][crate::model::KubernetesSecret::name].
1467 ///
1468 /// # Example
1469 /// ```ignore,no_run
1470 /// # use google_cloud_gkemulticloud_v1::model::KubernetesSecret;
1471 /// let x = KubernetesSecret::new().set_name("example");
1472 /// ```
1473 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1474 self.name = v.into();
1475 self
1476 }
1477
1478 /// Sets the value of [namespace][crate::model::KubernetesSecret::namespace].
1479 ///
1480 /// # Example
1481 /// ```ignore,no_run
1482 /// # use google_cloud_gkemulticloud_v1::model::KubernetesSecret;
1483 /// let x = KubernetesSecret::new().set_namespace("example");
1484 /// ```
1485 pub fn set_namespace<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1486 self.namespace = v.into();
1487 self
1488 }
1489}
1490
1491impl wkt::message::Message for KubernetesSecret {
1492 fn typename() -> &'static str {
1493 "type.googleapis.com/google.cloud.gkemulticloud.v1.KubernetesSecret"
1494 }
1495}
1496
1497/// SystemComponentsConfig defines the fields for customizing configurations for
1498/// auto-installed components.
1499#[derive(Clone, Default, PartialEq)]
1500#[non_exhaustive]
1501pub struct SystemComponentsConfig {
1502 /// Sets custom tolerations for pods created by auto-installed components.
1503 pub tolerations: std::vec::Vec<crate::model::Toleration>,
1504
1505 /// Sets custom labels for pods created by auto-installed components.
1506 pub labels: std::vec::Vec<crate::model::Label>,
1507
1508 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1509}
1510
1511impl SystemComponentsConfig {
1512 pub fn new() -> Self {
1513 std::default::Default::default()
1514 }
1515
1516 /// Sets the value of [tolerations][crate::model::SystemComponentsConfig::tolerations].
1517 ///
1518 /// # Example
1519 /// ```ignore,no_run
1520 /// # use google_cloud_gkemulticloud_v1::model::SystemComponentsConfig;
1521 /// use google_cloud_gkemulticloud_v1::model::Toleration;
1522 /// let x = SystemComponentsConfig::new()
1523 /// .set_tolerations([
1524 /// Toleration::default()/* use setters */,
1525 /// Toleration::default()/* use (different) setters */,
1526 /// ]);
1527 /// ```
1528 pub fn set_tolerations<T, V>(mut self, v: T) -> Self
1529 where
1530 T: std::iter::IntoIterator<Item = V>,
1531 V: std::convert::Into<crate::model::Toleration>,
1532 {
1533 use std::iter::Iterator;
1534 self.tolerations = v.into_iter().map(|i| i.into()).collect();
1535 self
1536 }
1537
1538 /// Sets the value of [labels][crate::model::SystemComponentsConfig::labels].
1539 ///
1540 /// # Example
1541 /// ```ignore,no_run
1542 /// # use google_cloud_gkemulticloud_v1::model::SystemComponentsConfig;
1543 /// use google_cloud_gkemulticloud_v1::model::Label;
1544 /// let x = SystemComponentsConfig::new()
1545 /// .set_labels([
1546 /// Label::default()/* use setters */,
1547 /// Label::default()/* use (different) setters */,
1548 /// ]);
1549 /// ```
1550 pub fn set_labels<T, V>(mut self, v: T) -> Self
1551 where
1552 T: std::iter::IntoIterator<Item = V>,
1553 V: std::convert::Into<crate::model::Label>,
1554 {
1555 use std::iter::Iterator;
1556 self.labels = v.into_iter().map(|i| i.into()).collect();
1557 self
1558 }
1559}
1560
1561impl wkt::message::Message for SystemComponentsConfig {
1562 fn typename() -> &'static str {
1563 "type.googleapis.com/google.cloud.gkemulticloud.v1.SystemComponentsConfig"
1564 }
1565}
1566
1567/// Toleration defines the fields for tolerations for pods created by
1568/// auto-installed components.
1569#[derive(Clone, Default, PartialEq)]
1570#[non_exhaustive]
1571pub struct Toleration {
1572 /// Key is the taint key that the toleration applies to.
1573 pub key: std::string::String,
1574
1575 /// Value is the taint value that the toleration applies to.
1576 pub value: std::string::String,
1577
1578 /// KeyOperator represents a key's relationship to the value e.g. 'Exist'.
1579 pub key_operator: crate::model::toleration::KeyOperator,
1580
1581 /// Effect indicates the taint effect to match e.g. 'NoSchedule'
1582 pub effect: crate::model::toleration::Effect,
1583
1584 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1585}
1586
1587impl Toleration {
1588 pub fn new() -> Self {
1589 std::default::Default::default()
1590 }
1591
1592 /// Sets the value of [key][crate::model::Toleration::key].
1593 ///
1594 /// # Example
1595 /// ```ignore,no_run
1596 /// # use google_cloud_gkemulticloud_v1::model::Toleration;
1597 /// let x = Toleration::new().set_key("example");
1598 /// ```
1599 pub fn set_key<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1600 self.key = v.into();
1601 self
1602 }
1603
1604 /// Sets the value of [value][crate::model::Toleration::value].
1605 ///
1606 /// # Example
1607 /// ```ignore,no_run
1608 /// # use google_cloud_gkemulticloud_v1::model::Toleration;
1609 /// let x = Toleration::new().set_value("example");
1610 /// ```
1611 pub fn set_value<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1612 self.value = v.into();
1613 self
1614 }
1615
1616 /// Sets the value of [key_operator][crate::model::Toleration::key_operator].
1617 ///
1618 /// # Example
1619 /// ```ignore,no_run
1620 /// # use google_cloud_gkemulticloud_v1::model::Toleration;
1621 /// use google_cloud_gkemulticloud_v1::model::toleration::KeyOperator;
1622 /// let x0 = Toleration::new().set_key_operator(KeyOperator::Equal);
1623 /// let x1 = Toleration::new().set_key_operator(KeyOperator::Exists);
1624 /// ```
1625 pub fn set_key_operator<T: std::convert::Into<crate::model::toleration::KeyOperator>>(
1626 mut self,
1627 v: T,
1628 ) -> Self {
1629 self.key_operator = v.into();
1630 self
1631 }
1632
1633 /// Sets the value of [effect][crate::model::Toleration::effect].
1634 ///
1635 /// # Example
1636 /// ```ignore,no_run
1637 /// # use google_cloud_gkemulticloud_v1::model::Toleration;
1638 /// use google_cloud_gkemulticloud_v1::model::toleration::Effect;
1639 /// let x0 = Toleration::new().set_effect(Effect::NoSchedule);
1640 /// let x1 = Toleration::new().set_effect(Effect::PreferNoSchedule);
1641 /// let x2 = Toleration::new().set_effect(Effect::NoExecute);
1642 /// ```
1643 pub fn set_effect<T: std::convert::Into<crate::model::toleration::Effect>>(
1644 mut self,
1645 v: T,
1646 ) -> Self {
1647 self.effect = v.into();
1648 self
1649 }
1650}
1651
1652impl wkt::message::Message for Toleration {
1653 fn typename() -> &'static str {
1654 "type.googleapis.com/google.cloud.gkemulticloud.v1.Toleration"
1655 }
1656}
1657
1658/// Defines additional types related to [Toleration].
1659pub mod toleration {
1660 #[allow(unused_imports)]
1661 use super::*;
1662
1663 /// KeyOperator represents a key's relationship to the value e.g. 'Equal'.
1664 ///
1665 /// # Working with unknown values
1666 ///
1667 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
1668 /// additional enum variants at any time. Adding new variants is not considered
1669 /// a breaking change. Applications should write their code in anticipation of:
1670 ///
1671 /// - New values appearing in future releases of the client library, **and**
1672 /// - New values received dynamically, without application changes.
1673 ///
1674 /// Please consult the [Working with enums] section in the user guide for some
1675 /// guidelines.
1676 ///
1677 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
1678 #[derive(Clone, Debug, PartialEq)]
1679 #[non_exhaustive]
1680 pub enum KeyOperator {
1681 /// Operator is not specified.
1682 Unspecified,
1683 /// Operator maps to 'Equal'.
1684 Equal,
1685 /// Operator maps to 'Exists'.
1686 Exists,
1687 /// If set, the enum was initialized with an unknown value.
1688 ///
1689 /// Applications can examine the value using [KeyOperator::value] or
1690 /// [KeyOperator::name].
1691 UnknownValue(key_operator::UnknownValue),
1692 }
1693
1694 #[doc(hidden)]
1695 pub mod key_operator {
1696 #[allow(unused_imports)]
1697 use super::*;
1698 #[derive(Clone, Debug, PartialEq)]
1699 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
1700 }
1701
1702 impl KeyOperator {
1703 /// Gets the enum value.
1704 ///
1705 /// Returns `None` if the enum contains an unknown value deserialized from
1706 /// the string representation of enums.
1707 pub fn value(&self) -> std::option::Option<i32> {
1708 match self {
1709 Self::Unspecified => std::option::Option::Some(0),
1710 Self::Equal => std::option::Option::Some(1),
1711 Self::Exists => std::option::Option::Some(2),
1712 Self::UnknownValue(u) => u.0.value(),
1713 }
1714 }
1715
1716 /// Gets the enum value as a string.
1717 ///
1718 /// Returns `None` if the enum contains an unknown value deserialized from
1719 /// the integer representation of enums.
1720 pub fn name(&self) -> std::option::Option<&str> {
1721 match self {
1722 Self::Unspecified => std::option::Option::Some("KEY_OPERATOR_UNSPECIFIED"),
1723 Self::Equal => std::option::Option::Some("KEY_OPERATOR_EQUAL"),
1724 Self::Exists => std::option::Option::Some("KEY_OPERATOR_EXISTS"),
1725 Self::UnknownValue(u) => u.0.name(),
1726 }
1727 }
1728 }
1729
1730 impl std::default::Default for KeyOperator {
1731 fn default() -> Self {
1732 use std::convert::From;
1733 Self::from(0)
1734 }
1735 }
1736
1737 impl std::fmt::Display for KeyOperator {
1738 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
1739 wkt::internal::display_enum(f, self.name(), self.value())
1740 }
1741 }
1742
1743 impl std::convert::From<i32> for KeyOperator {
1744 fn from(value: i32) -> Self {
1745 match value {
1746 0 => Self::Unspecified,
1747 1 => Self::Equal,
1748 2 => Self::Exists,
1749 _ => Self::UnknownValue(key_operator::UnknownValue(
1750 wkt::internal::UnknownEnumValue::Integer(value),
1751 )),
1752 }
1753 }
1754 }
1755
1756 impl std::convert::From<&str> for KeyOperator {
1757 fn from(value: &str) -> Self {
1758 use std::string::ToString;
1759 match value {
1760 "KEY_OPERATOR_UNSPECIFIED" => Self::Unspecified,
1761 "KEY_OPERATOR_EQUAL" => Self::Equal,
1762 "KEY_OPERATOR_EXISTS" => Self::Exists,
1763 _ => Self::UnknownValue(key_operator::UnknownValue(
1764 wkt::internal::UnknownEnumValue::String(value.to_string()),
1765 )),
1766 }
1767 }
1768 }
1769
1770 impl serde::ser::Serialize for KeyOperator {
1771 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1772 where
1773 S: serde::Serializer,
1774 {
1775 match self {
1776 Self::Unspecified => serializer.serialize_i32(0),
1777 Self::Equal => serializer.serialize_i32(1),
1778 Self::Exists => serializer.serialize_i32(2),
1779 Self::UnknownValue(u) => u.0.serialize(serializer),
1780 }
1781 }
1782 }
1783
1784 impl<'de> serde::de::Deserialize<'de> for KeyOperator {
1785 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1786 where
1787 D: serde::Deserializer<'de>,
1788 {
1789 deserializer.deserialize_any(wkt::internal::EnumVisitor::<KeyOperator>::new(
1790 ".google.cloud.gkemulticloud.v1.Toleration.KeyOperator",
1791 ))
1792 }
1793 }
1794
1795 /// Effect indicates the taint effect to match e.g. 'NoSchedule'.
1796 ///
1797 /// # Working with unknown values
1798 ///
1799 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
1800 /// additional enum variants at any time. Adding new variants is not considered
1801 /// a breaking change. Applications should write their code in anticipation of:
1802 ///
1803 /// - New values appearing in future releases of the client library, **and**
1804 /// - New values received dynamically, without application changes.
1805 ///
1806 /// Please consult the [Working with enums] section in the user guide for some
1807 /// guidelines.
1808 ///
1809 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
1810 #[derive(Clone, Debug, PartialEq)]
1811 #[non_exhaustive]
1812 pub enum Effect {
1813 /// Effect is not specified.
1814 Unspecified,
1815 /// Effect maps to 'NoSchedule'.
1816 NoSchedule,
1817 /// Effect maps to 'PreferNoSchedule'.
1818 PreferNoSchedule,
1819 /// Effect maps to 'NoExecute'.
1820 NoExecute,
1821 /// If set, the enum was initialized with an unknown value.
1822 ///
1823 /// Applications can examine the value using [Effect::value] or
1824 /// [Effect::name].
1825 UnknownValue(effect::UnknownValue),
1826 }
1827
1828 #[doc(hidden)]
1829 pub mod effect {
1830 #[allow(unused_imports)]
1831 use super::*;
1832 #[derive(Clone, Debug, PartialEq)]
1833 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
1834 }
1835
1836 impl Effect {
1837 /// Gets the enum value.
1838 ///
1839 /// Returns `None` if the enum contains an unknown value deserialized from
1840 /// the string representation of enums.
1841 pub fn value(&self) -> std::option::Option<i32> {
1842 match self {
1843 Self::Unspecified => std::option::Option::Some(0),
1844 Self::NoSchedule => std::option::Option::Some(1),
1845 Self::PreferNoSchedule => std::option::Option::Some(2),
1846 Self::NoExecute => std::option::Option::Some(3),
1847 Self::UnknownValue(u) => u.0.value(),
1848 }
1849 }
1850
1851 /// Gets the enum value as a string.
1852 ///
1853 /// Returns `None` if the enum contains an unknown value deserialized from
1854 /// the integer representation of enums.
1855 pub fn name(&self) -> std::option::Option<&str> {
1856 match self {
1857 Self::Unspecified => std::option::Option::Some("EFFECT_UNSPECIFIED"),
1858 Self::NoSchedule => std::option::Option::Some("EFFECT_NO_SCHEDULE"),
1859 Self::PreferNoSchedule => std::option::Option::Some("EFFECT_PREFER_NO_SCHEDULE"),
1860 Self::NoExecute => std::option::Option::Some("EFFECT_NO_EXECUTE"),
1861 Self::UnknownValue(u) => u.0.name(),
1862 }
1863 }
1864 }
1865
1866 impl std::default::Default for Effect {
1867 fn default() -> Self {
1868 use std::convert::From;
1869 Self::from(0)
1870 }
1871 }
1872
1873 impl std::fmt::Display for Effect {
1874 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
1875 wkt::internal::display_enum(f, self.name(), self.value())
1876 }
1877 }
1878
1879 impl std::convert::From<i32> for Effect {
1880 fn from(value: i32) -> Self {
1881 match value {
1882 0 => Self::Unspecified,
1883 1 => Self::NoSchedule,
1884 2 => Self::PreferNoSchedule,
1885 3 => Self::NoExecute,
1886 _ => Self::UnknownValue(effect::UnknownValue(
1887 wkt::internal::UnknownEnumValue::Integer(value),
1888 )),
1889 }
1890 }
1891 }
1892
1893 impl std::convert::From<&str> for Effect {
1894 fn from(value: &str) -> Self {
1895 use std::string::ToString;
1896 match value {
1897 "EFFECT_UNSPECIFIED" => Self::Unspecified,
1898 "EFFECT_NO_SCHEDULE" => Self::NoSchedule,
1899 "EFFECT_PREFER_NO_SCHEDULE" => Self::PreferNoSchedule,
1900 "EFFECT_NO_EXECUTE" => Self::NoExecute,
1901 _ => Self::UnknownValue(effect::UnknownValue(
1902 wkt::internal::UnknownEnumValue::String(value.to_string()),
1903 )),
1904 }
1905 }
1906 }
1907
1908 impl serde::ser::Serialize for Effect {
1909 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1910 where
1911 S: serde::Serializer,
1912 {
1913 match self {
1914 Self::Unspecified => serializer.serialize_i32(0),
1915 Self::NoSchedule => serializer.serialize_i32(1),
1916 Self::PreferNoSchedule => serializer.serialize_i32(2),
1917 Self::NoExecute => serializer.serialize_i32(3),
1918 Self::UnknownValue(u) => u.0.serialize(serializer),
1919 }
1920 }
1921 }
1922
1923 impl<'de> serde::de::Deserialize<'de> for Effect {
1924 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1925 where
1926 D: serde::Deserializer<'de>,
1927 {
1928 deserializer.deserialize_any(wkt::internal::EnumVisitor::<Effect>::new(
1929 ".google.cloud.gkemulticloud.v1.Toleration.Effect",
1930 ))
1931 }
1932 }
1933}
1934
1935/// Label defines the additional fields for labels for pods created by
1936/// auto-installed components.
1937#[derive(Clone, Default, PartialEq)]
1938#[non_exhaustive]
1939pub struct Label {
1940 /// This is the key of the label.
1941 pub key: std::string::String,
1942
1943 /// This is the value of the label.
1944 pub value: std::string::String,
1945
1946 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
1947}
1948
1949impl Label {
1950 pub fn new() -> Self {
1951 std::default::Default::default()
1952 }
1953
1954 /// Sets the value of [key][crate::model::Label::key].
1955 ///
1956 /// # Example
1957 /// ```ignore,no_run
1958 /// # use google_cloud_gkemulticloud_v1::model::Label;
1959 /// let x = Label::new().set_key("example");
1960 /// ```
1961 pub fn set_key<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1962 self.key = v.into();
1963 self
1964 }
1965
1966 /// Sets the value of [value][crate::model::Label::value].
1967 ///
1968 /// # Example
1969 /// ```ignore,no_run
1970 /// # use google_cloud_gkemulticloud_v1::model::Label;
1971 /// let x = Label::new().set_value("example");
1972 /// ```
1973 pub fn set_value<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
1974 self.value = v.into();
1975 self
1976 }
1977}
1978
1979impl wkt::message::Message for Label {
1980 fn typename() -> &'static str {
1981 "type.googleapis.com/google.cloud.gkemulticloud.v1.Label"
1982 }
1983}
1984
1985/// Request message for `AttachedClusters.GenerateAttachedClusterInstallManifest`
1986/// method.
1987#[derive(Clone, Default, PartialEq)]
1988#[non_exhaustive]
1989pub struct GenerateAttachedClusterInstallManifestRequest {
1990 /// Required. The parent location where this
1991 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
1992 /// will be created.
1993 ///
1994 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
1995 ///
1996 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
1997 /// for more details on Google Cloud resource names.
1998 ///
1999 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2000 pub parent: std::string::String,
2001
2002 /// Required. A client provided ID of the resource. Must be unique within the
2003 /// parent resource.
2004 ///
2005 /// The provided ID will be part of the
2006 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2007 /// name formatted as
2008 /// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`.
2009 ///
2010 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
2011 ///
2012 /// When generating an install manifest for importing an existing Membership
2013 /// resource, the attached_cluster_id field must be the Membership id.
2014 ///
2015 /// Membership names are formatted as
2016 /// `projects/<project-id>/locations/<region>/memberships/<membership-id>`.
2017 ///
2018 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2019 pub attached_cluster_id: std::string::String,
2020
2021 /// Required. The platform version for the cluster (e.g. `1.19.0-gke.1000`).
2022 ///
2023 /// You can list all supported versions on a given Google Cloud region by
2024 /// calling
2025 /// [GetAttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig].
2026 ///
2027 /// [google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig]: crate::client::AttachedClusters::get_attached_server_config
2028 pub platform_version: std::string::String,
2029
2030 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
2031 pub proxy_config: std::option::Option<crate::model::AttachedProxyConfig>,
2032
2033 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2034}
2035
2036impl GenerateAttachedClusterInstallManifestRequest {
2037 pub fn new() -> Self {
2038 std::default::Default::default()
2039 }
2040
2041 /// Sets the value of [parent][crate::model::GenerateAttachedClusterInstallManifestRequest::parent].
2042 ///
2043 /// # Example
2044 /// ```ignore,no_run
2045 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterInstallManifestRequest;
2046 /// let x = GenerateAttachedClusterInstallManifestRequest::new().set_parent("example");
2047 /// ```
2048 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2049 self.parent = v.into();
2050 self
2051 }
2052
2053 /// Sets the value of [attached_cluster_id][crate::model::GenerateAttachedClusterInstallManifestRequest::attached_cluster_id].
2054 ///
2055 /// # Example
2056 /// ```ignore,no_run
2057 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterInstallManifestRequest;
2058 /// let x = GenerateAttachedClusterInstallManifestRequest::new().set_attached_cluster_id("example");
2059 /// ```
2060 pub fn set_attached_cluster_id<T: std::convert::Into<std::string::String>>(
2061 mut self,
2062 v: T,
2063 ) -> Self {
2064 self.attached_cluster_id = v.into();
2065 self
2066 }
2067
2068 /// Sets the value of [platform_version][crate::model::GenerateAttachedClusterInstallManifestRequest::platform_version].
2069 ///
2070 /// # Example
2071 /// ```ignore,no_run
2072 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterInstallManifestRequest;
2073 /// let x = GenerateAttachedClusterInstallManifestRequest::new().set_platform_version("example");
2074 /// ```
2075 pub fn set_platform_version<T: std::convert::Into<std::string::String>>(
2076 mut self,
2077 v: T,
2078 ) -> Self {
2079 self.platform_version = v.into();
2080 self
2081 }
2082
2083 /// Sets the value of [proxy_config][crate::model::GenerateAttachedClusterInstallManifestRequest::proxy_config].
2084 ///
2085 /// # Example
2086 /// ```ignore,no_run
2087 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterInstallManifestRequest;
2088 /// use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
2089 /// let x = GenerateAttachedClusterInstallManifestRequest::new().set_proxy_config(AttachedProxyConfig::default()/* use setters */);
2090 /// ```
2091 pub fn set_proxy_config<T>(mut self, v: T) -> Self
2092 where
2093 T: std::convert::Into<crate::model::AttachedProxyConfig>,
2094 {
2095 self.proxy_config = std::option::Option::Some(v.into());
2096 self
2097 }
2098
2099 /// Sets or clears the value of [proxy_config][crate::model::GenerateAttachedClusterInstallManifestRequest::proxy_config].
2100 ///
2101 /// # Example
2102 /// ```ignore,no_run
2103 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterInstallManifestRequest;
2104 /// use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
2105 /// let x = GenerateAttachedClusterInstallManifestRequest::new().set_or_clear_proxy_config(Some(AttachedProxyConfig::default()/* use setters */));
2106 /// let x = GenerateAttachedClusterInstallManifestRequest::new().set_or_clear_proxy_config(None::<AttachedProxyConfig>);
2107 /// ```
2108 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
2109 where
2110 T: std::convert::Into<crate::model::AttachedProxyConfig>,
2111 {
2112 self.proxy_config = v.map(|x| x.into());
2113 self
2114 }
2115}
2116
2117impl wkt::message::Message for GenerateAttachedClusterInstallManifestRequest {
2118 fn typename() -> &'static str {
2119 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAttachedClusterInstallManifestRequest"
2120 }
2121}
2122
2123/// Response message for
2124/// `AttachedClusters.GenerateAttachedClusterInstallManifest` method.
2125#[derive(Clone, Default, PartialEq)]
2126#[non_exhaustive]
2127pub struct GenerateAttachedClusterInstallManifestResponse {
2128 /// A set of Kubernetes resources (in YAML format) to be applied
2129 /// to the cluster to be attached.
2130 pub manifest: std::string::String,
2131
2132 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2133}
2134
2135impl GenerateAttachedClusterInstallManifestResponse {
2136 pub fn new() -> Self {
2137 std::default::Default::default()
2138 }
2139
2140 /// Sets the value of [manifest][crate::model::GenerateAttachedClusterInstallManifestResponse::manifest].
2141 ///
2142 /// # Example
2143 /// ```ignore,no_run
2144 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterInstallManifestResponse;
2145 /// let x = GenerateAttachedClusterInstallManifestResponse::new().set_manifest("example");
2146 /// ```
2147 pub fn set_manifest<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2148 self.manifest = v.into();
2149 self
2150 }
2151}
2152
2153impl wkt::message::Message for GenerateAttachedClusterInstallManifestResponse {
2154 fn typename() -> &'static str {
2155 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAttachedClusterInstallManifestResponse"
2156 }
2157}
2158
2159/// Request message for `AttachedClusters.CreateAttachedCluster` method.
2160#[derive(Clone, Default, PartialEq)]
2161#[non_exhaustive]
2162pub struct CreateAttachedClusterRequest {
2163 /// Required. The parent location where this
2164 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2165 /// will be created.
2166 ///
2167 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
2168 ///
2169 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
2170 /// for more details on Google Cloud resource names.
2171 ///
2172 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2173 pub parent: std::string::String,
2174
2175 /// Required. The specification of the
2176 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] to create.
2177 ///
2178 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2179 pub attached_cluster: std::option::Option<crate::model::AttachedCluster>,
2180
2181 /// Required. A client provided ID the resource. Must be unique within the
2182 /// parent resource.
2183 ///
2184 /// The provided ID will be part of the
2185 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2186 /// name formatted as
2187 /// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`.
2188 ///
2189 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
2190 ///
2191 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2192 pub attached_cluster_id: std::string::String,
2193
2194 /// If set, only validate the request, but do not actually create the cluster.
2195 pub validate_only: bool,
2196
2197 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2198}
2199
2200impl CreateAttachedClusterRequest {
2201 pub fn new() -> Self {
2202 std::default::Default::default()
2203 }
2204
2205 /// Sets the value of [parent][crate::model::CreateAttachedClusterRequest::parent].
2206 ///
2207 /// # Example
2208 /// ```ignore,no_run
2209 /// # use google_cloud_gkemulticloud_v1::model::CreateAttachedClusterRequest;
2210 /// let x = CreateAttachedClusterRequest::new().set_parent("example");
2211 /// ```
2212 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2213 self.parent = v.into();
2214 self
2215 }
2216
2217 /// Sets the value of [attached_cluster][crate::model::CreateAttachedClusterRequest::attached_cluster].
2218 ///
2219 /// # Example
2220 /// ```ignore,no_run
2221 /// # use google_cloud_gkemulticloud_v1::model::CreateAttachedClusterRequest;
2222 /// use google_cloud_gkemulticloud_v1::model::AttachedCluster;
2223 /// let x = CreateAttachedClusterRequest::new().set_attached_cluster(AttachedCluster::default()/* use setters */);
2224 /// ```
2225 pub fn set_attached_cluster<T>(mut self, v: T) -> Self
2226 where
2227 T: std::convert::Into<crate::model::AttachedCluster>,
2228 {
2229 self.attached_cluster = std::option::Option::Some(v.into());
2230 self
2231 }
2232
2233 /// Sets or clears the value of [attached_cluster][crate::model::CreateAttachedClusterRequest::attached_cluster].
2234 ///
2235 /// # Example
2236 /// ```ignore,no_run
2237 /// # use google_cloud_gkemulticloud_v1::model::CreateAttachedClusterRequest;
2238 /// use google_cloud_gkemulticloud_v1::model::AttachedCluster;
2239 /// let x = CreateAttachedClusterRequest::new().set_or_clear_attached_cluster(Some(AttachedCluster::default()/* use setters */));
2240 /// let x = CreateAttachedClusterRequest::new().set_or_clear_attached_cluster(None::<AttachedCluster>);
2241 /// ```
2242 pub fn set_or_clear_attached_cluster<T>(mut self, v: std::option::Option<T>) -> Self
2243 where
2244 T: std::convert::Into<crate::model::AttachedCluster>,
2245 {
2246 self.attached_cluster = v.map(|x| x.into());
2247 self
2248 }
2249
2250 /// Sets the value of [attached_cluster_id][crate::model::CreateAttachedClusterRequest::attached_cluster_id].
2251 ///
2252 /// # Example
2253 /// ```ignore,no_run
2254 /// # use google_cloud_gkemulticloud_v1::model::CreateAttachedClusterRequest;
2255 /// let x = CreateAttachedClusterRequest::new().set_attached_cluster_id("example");
2256 /// ```
2257 pub fn set_attached_cluster_id<T: std::convert::Into<std::string::String>>(
2258 mut self,
2259 v: T,
2260 ) -> Self {
2261 self.attached_cluster_id = v.into();
2262 self
2263 }
2264
2265 /// Sets the value of [validate_only][crate::model::CreateAttachedClusterRequest::validate_only].
2266 ///
2267 /// # Example
2268 /// ```ignore,no_run
2269 /// # use google_cloud_gkemulticloud_v1::model::CreateAttachedClusterRequest;
2270 /// let x = CreateAttachedClusterRequest::new().set_validate_only(true);
2271 /// ```
2272 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
2273 self.validate_only = v.into();
2274 self
2275 }
2276}
2277
2278impl wkt::message::Message for CreateAttachedClusterRequest {
2279 fn typename() -> &'static str {
2280 "type.googleapis.com/google.cloud.gkemulticloud.v1.CreateAttachedClusterRequest"
2281 }
2282}
2283
2284/// Request message for `AttachedClusters.ImportAttachedCluster` method.
2285#[derive(Clone, Default, PartialEq)]
2286#[non_exhaustive]
2287pub struct ImportAttachedClusterRequest {
2288 /// Required. The parent location where this
2289 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2290 /// will be created.
2291 ///
2292 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
2293 ///
2294 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
2295 /// for more details on Google Cloud resource names.
2296 ///
2297 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2298 pub parent: std::string::String,
2299
2300 /// If set, only validate the request, but do not actually import the cluster.
2301 pub validate_only: bool,
2302
2303 /// Required. The name of the fleet membership resource to import.
2304 pub fleet_membership: std::string::String,
2305
2306 /// Required. The platform version for the cluster (e.g. `1.19.0-gke.1000`).
2307 ///
2308 /// You can list all supported versions on a given Google Cloud region by
2309 /// calling
2310 /// [GetAttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig].
2311 ///
2312 /// [google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig]: crate::client::AttachedClusters::get_attached_server_config
2313 pub platform_version: std::string::String,
2314
2315 /// Required. The Kubernetes distribution of the underlying attached cluster.
2316 ///
2317 /// Supported values: ["eks", "aks", "generic"].
2318 pub distribution: std::string::String,
2319
2320 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
2321 pub proxy_config: std::option::Option<crate::model::AttachedProxyConfig>,
2322
2323 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2324}
2325
2326impl ImportAttachedClusterRequest {
2327 pub fn new() -> Self {
2328 std::default::Default::default()
2329 }
2330
2331 /// Sets the value of [parent][crate::model::ImportAttachedClusterRequest::parent].
2332 ///
2333 /// # Example
2334 /// ```ignore,no_run
2335 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2336 /// let x = ImportAttachedClusterRequest::new().set_parent("example");
2337 /// ```
2338 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2339 self.parent = v.into();
2340 self
2341 }
2342
2343 /// Sets the value of [validate_only][crate::model::ImportAttachedClusterRequest::validate_only].
2344 ///
2345 /// # Example
2346 /// ```ignore,no_run
2347 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2348 /// let x = ImportAttachedClusterRequest::new().set_validate_only(true);
2349 /// ```
2350 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
2351 self.validate_only = v.into();
2352 self
2353 }
2354
2355 /// Sets the value of [fleet_membership][crate::model::ImportAttachedClusterRequest::fleet_membership].
2356 ///
2357 /// # Example
2358 /// ```ignore,no_run
2359 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2360 /// let x = ImportAttachedClusterRequest::new().set_fleet_membership("example");
2361 /// ```
2362 pub fn set_fleet_membership<T: std::convert::Into<std::string::String>>(
2363 mut self,
2364 v: T,
2365 ) -> Self {
2366 self.fleet_membership = v.into();
2367 self
2368 }
2369
2370 /// Sets the value of [platform_version][crate::model::ImportAttachedClusterRequest::platform_version].
2371 ///
2372 /// # Example
2373 /// ```ignore,no_run
2374 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2375 /// let x = ImportAttachedClusterRequest::new().set_platform_version("example");
2376 /// ```
2377 pub fn set_platform_version<T: std::convert::Into<std::string::String>>(
2378 mut self,
2379 v: T,
2380 ) -> Self {
2381 self.platform_version = v.into();
2382 self
2383 }
2384
2385 /// Sets the value of [distribution][crate::model::ImportAttachedClusterRequest::distribution].
2386 ///
2387 /// # Example
2388 /// ```ignore,no_run
2389 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2390 /// let x = ImportAttachedClusterRequest::new().set_distribution("example");
2391 /// ```
2392 pub fn set_distribution<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2393 self.distribution = v.into();
2394 self
2395 }
2396
2397 /// Sets the value of [proxy_config][crate::model::ImportAttachedClusterRequest::proxy_config].
2398 ///
2399 /// # Example
2400 /// ```ignore,no_run
2401 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2402 /// use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
2403 /// let x = ImportAttachedClusterRequest::new().set_proxy_config(AttachedProxyConfig::default()/* use setters */);
2404 /// ```
2405 pub fn set_proxy_config<T>(mut self, v: T) -> Self
2406 where
2407 T: std::convert::Into<crate::model::AttachedProxyConfig>,
2408 {
2409 self.proxy_config = std::option::Option::Some(v.into());
2410 self
2411 }
2412
2413 /// Sets or clears the value of [proxy_config][crate::model::ImportAttachedClusterRequest::proxy_config].
2414 ///
2415 /// # Example
2416 /// ```ignore,no_run
2417 /// # use google_cloud_gkemulticloud_v1::model::ImportAttachedClusterRequest;
2418 /// use google_cloud_gkemulticloud_v1::model::AttachedProxyConfig;
2419 /// let x = ImportAttachedClusterRequest::new().set_or_clear_proxy_config(Some(AttachedProxyConfig::default()/* use setters */));
2420 /// let x = ImportAttachedClusterRequest::new().set_or_clear_proxy_config(None::<AttachedProxyConfig>);
2421 /// ```
2422 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
2423 where
2424 T: std::convert::Into<crate::model::AttachedProxyConfig>,
2425 {
2426 self.proxy_config = v.map(|x| x.into());
2427 self
2428 }
2429}
2430
2431impl wkt::message::Message for ImportAttachedClusterRequest {
2432 fn typename() -> &'static str {
2433 "type.googleapis.com/google.cloud.gkemulticloud.v1.ImportAttachedClusterRequest"
2434 }
2435}
2436
2437/// Request message for `AttachedClusters.UpdateAttachedCluster` method.
2438#[derive(Clone, Default, PartialEq)]
2439#[non_exhaustive]
2440pub struct UpdateAttachedClusterRequest {
2441 /// Required. The
2442 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2443 /// to update.
2444 ///
2445 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2446 pub attached_cluster: std::option::Option<crate::model::AttachedCluster>,
2447
2448 /// If set, only validate the request, but do not actually update the cluster.
2449 pub validate_only: bool,
2450
2451 /// Required. Mask of fields to update. At least one path must be supplied in
2452 /// this field. The elements of the repeated paths field can only include these
2453 /// fields from
2454 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster]:
2455 ///
2456 /// * `annotations`.
2457 /// * `authorization.admin_groups`.
2458 /// * `authorization.admin_users`.
2459 /// * `binary_authorization.evaluation_mode`.
2460 /// * `description`.
2461 /// * `logging_config.component_config.enable_components`.
2462 /// * `monitoring_config.managed_prometheus_config.enabled`.
2463 /// * `platform_version`.
2464 /// * `proxy_config.kubernetes_secret.name`.
2465 /// * `proxy_config.kubernetes_secret.namespace`.
2466 /// * `security_posture_config.vulnerability_mode`
2467 /// * `monitoring_config.cloud_monitoring_config.enabled`
2468 ///
2469 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2470 pub update_mask: std::option::Option<wkt::FieldMask>,
2471
2472 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2473}
2474
2475impl UpdateAttachedClusterRequest {
2476 pub fn new() -> Self {
2477 std::default::Default::default()
2478 }
2479
2480 /// Sets the value of [attached_cluster][crate::model::UpdateAttachedClusterRequest::attached_cluster].
2481 ///
2482 /// # Example
2483 /// ```ignore,no_run
2484 /// # use google_cloud_gkemulticloud_v1::model::UpdateAttachedClusterRequest;
2485 /// use google_cloud_gkemulticloud_v1::model::AttachedCluster;
2486 /// let x = UpdateAttachedClusterRequest::new().set_attached_cluster(AttachedCluster::default()/* use setters */);
2487 /// ```
2488 pub fn set_attached_cluster<T>(mut self, v: T) -> Self
2489 where
2490 T: std::convert::Into<crate::model::AttachedCluster>,
2491 {
2492 self.attached_cluster = std::option::Option::Some(v.into());
2493 self
2494 }
2495
2496 /// Sets or clears the value of [attached_cluster][crate::model::UpdateAttachedClusterRequest::attached_cluster].
2497 ///
2498 /// # Example
2499 /// ```ignore,no_run
2500 /// # use google_cloud_gkemulticloud_v1::model::UpdateAttachedClusterRequest;
2501 /// use google_cloud_gkemulticloud_v1::model::AttachedCluster;
2502 /// let x = UpdateAttachedClusterRequest::new().set_or_clear_attached_cluster(Some(AttachedCluster::default()/* use setters */));
2503 /// let x = UpdateAttachedClusterRequest::new().set_or_clear_attached_cluster(None::<AttachedCluster>);
2504 /// ```
2505 pub fn set_or_clear_attached_cluster<T>(mut self, v: std::option::Option<T>) -> Self
2506 where
2507 T: std::convert::Into<crate::model::AttachedCluster>,
2508 {
2509 self.attached_cluster = v.map(|x| x.into());
2510 self
2511 }
2512
2513 /// Sets the value of [validate_only][crate::model::UpdateAttachedClusterRequest::validate_only].
2514 ///
2515 /// # Example
2516 /// ```ignore,no_run
2517 /// # use google_cloud_gkemulticloud_v1::model::UpdateAttachedClusterRequest;
2518 /// let x = UpdateAttachedClusterRequest::new().set_validate_only(true);
2519 /// ```
2520 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
2521 self.validate_only = v.into();
2522 self
2523 }
2524
2525 /// Sets the value of [update_mask][crate::model::UpdateAttachedClusterRequest::update_mask].
2526 ///
2527 /// # Example
2528 /// ```ignore,no_run
2529 /// # use google_cloud_gkemulticloud_v1::model::UpdateAttachedClusterRequest;
2530 /// use wkt::FieldMask;
2531 /// let x = UpdateAttachedClusterRequest::new().set_update_mask(FieldMask::default()/* use setters */);
2532 /// ```
2533 pub fn set_update_mask<T>(mut self, v: T) -> Self
2534 where
2535 T: std::convert::Into<wkt::FieldMask>,
2536 {
2537 self.update_mask = std::option::Option::Some(v.into());
2538 self
2539 }
2540
2541 /// Sets or clears the value of [update_mask][crate::model::UpdateAttachedClusterRequest::update_mask].
2542 ///
2543 /// # Example
2544 /// ```ignore,no_run
2545 /// # use google_cloud_gkemulticloud_v1::model::UpdateAttachedClusterRequest;
2546 /// use wkt::FieldMask;
2547 /// let x = UpdateAttachedClusterRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
2548 /// let x = UpdateAttachedClusterRequest::new().set_or_clear_update_mask(None::<FieldMask>);
2549 /// ```
2550 pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
2551 where
2552 T: std::convert::Into<wkt::FieldMask>,
2553 {
2554 self.update_mask = v.map(|x| x.into());
2555 self
2556 }
2557}
2558
2559impl wkt::message::Message for UpdateAttachedClusterRequest {
2560 fn typename() -> &'static str {
2561 "type.googleapis.com/google.cloud.gkemulticloud.v1.UpdateAttachedClusterRequest"
2562 }
2563}
2564
2565/// Request message for `AttachedClusters.GetAttachedCluster` method.
2566#[derive(Clone, Default, PartialEq)]
2567#[non_exhaustive]
2568pub struct GetAttachedClusterRequest {
2569 /// Required. The name of the
2570 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2571 /// to describe.
2572 ///
2573 /// `AttachedCluster` names are formatted as
2574 /// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`.
2575 ///
2576 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
2577 /// for more details on Google Cloud Platform resource names.
2578 ///
2579 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2580 pub name: std::string::String,
2581
2582 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2583}
2584
2585impl GetAttachedClusterRequest {
2586 pub fn new() -> Self {
2587 std::default::Default::default()
2588 }
2589
2590 /// Sets the value of [name][crate::model::GetAttachedClusterRequest::name].
2591 ///
2592 /// # Example
2593 /// ```ignore,no_run
2594 /// # use google_cloud_gkemulticloud_v1::model::GetAttachedClusterRequest;
2595 /// let x = GetAttachedClusterRequest::new().set_name("example");
2596 /// ```
2597 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2598 self.name = v.into();
2599 self
2600 }
2601}
2602
2603impl wkt::message::Message for GetAttachedClusterRequest {
2604 fn typename() -> &'static str {
2605 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAttachedClusterRequest"
2606 }
2607}
2608
2609/// Request message for `AttachedClusters.ListAttachedClusters` method.
2610#[derive(Clone, Default, PartialEq)]
2611#[non_exhaustive]
2612pub struct ListAttachedClustersRequest {
2613 /// Required. The parent location which owns this collection of
2614 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resources.
2615 ///
2616 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
2617 ///
2618 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
2619 /// for more details on Google Cloud Platform resource names.
2620 ///
2621 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2622 pub parent: std::string::String,
2623
2624 /// The maximum number of items to return.
2625 ///
2626 /// If not specified, a default value of 50 will be used by the service.
2627 /// Regardless of the pageSize value, the response can include a partial list
2628 /// and a caller should only rely on response's
2629 /// [nextPageToken][google.cloud.gkemulticloud.v1.ListAttachedClustersResponse.next_page_token]
2630 /// to determine if there are more instances left to be queried.
2631 ///
2632 /// [google.cloud.gkemulticloud.v1.ListAttachedClustersResponse.next_page_token]: crate::model::ListAttachedClustersResponse::next_page_token
2633 pub page_size: i32,
2634
2635 /// The `nextPageToken` value returned from a previous
2636 /// [attachedClusters.list][google.cloud.gkemulticloud.v1.AttachedClusters.ListAttachedClusters]
2637 /// request, if any.
2638 ///
2639 /// [google.cloud.gkemulticloud.v1.AttachedClusters.ListAttachedClusters]: crate::client::AttachedClusters::list_attached_clusters
2640 pub page_token: std::string::String,
2641
2642 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2643}
2644
2645impl ListAttachedClustersRequest {
2646 pub fn new() -> Self {
2647 std::default::Default::default()
2648 }
2649
2650 /// Sets the value of [parent][crate::model::ListAttachedClustersRequest::parent].
2651 ///
2652 /// # Example
2653 /// ```ignore,no_run
2654 /// # use google_cloud_gkemulticloud_v1::model::ListAttachedClustersRequest;
2655 /// let x = ListAttachedClustersRequest::new().set_parent("example");
2656 /// ```
2657 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2658 self.parent = v.into();
2659 self
2660 }
2661
2662 /// Sets the value of [page_size][crate::model::ListAttachedClustersRequest::page_size].
2663 ///
2664 /// # Example
2665 /// ```ignore,no_run
2666 /// # use google_cloud_gkemulticloud_v1::model::ListAttachedClustersRequest;
2667 /// let x = ListAttachedClustersRequest::new().set_page_size(42);
2668 /// ```
2669 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
2670 self.page_size = v.into();
2671 self
2672 }
2673
2674 /// Sets the value of [page_token][crate::model::ListAttachedClustersRequest::page_token].
2675 ///
2676 /// # Example
2677 /// ```ignore,no_run
2678 /// # use google_cloud_gkemulticloud_v1::model::ListAttachedClustersRequest;
2679 /// let x = ListAttachedClustersRequest::new().set_page_token("example");
2680 /// ```
2681 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2682 self.page_token = v.into();
2683 self
2684 }
2685}
2686
2687impl wkt::message::Message for ListAttachedClustersRequest {
2688 fn typename() -> &'static str {
2689 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAttachedClustersRequest"
2690 }
2691}
2692
2693/// Response message for `AttachedClusters.ListAttachedClusters` method.
2694#[derive(Clone, Default, PartialEq)]
2695#[non_exhaustive]
2696pub struct ListAttachedClustersResponse {
2697 /// A list of [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster]
2698 /// resources in the specified Google Cloud Platform project and region region.
2699 ///
2700 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2701 pub attached_clusters: std::vec::Vec<crate::model::AttachedCluster>,
2702
2703 /// Token to retrieve the next page of results, or empty if there are no more
2704 /// results in the list.
2705 pub next_page_token: std::string::String,
2706
2707 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2708}
2709
2710impl ListAttachedClustersResponse {
2711 pub fn new() -> Self {
2712 std::default::Default::default()
2713 }
2714
2715 /// Sets the value of [attached_clusters][crate::model::ListAttachedClustersResponse::attached_clusters].
2716 ///
2717 /// # Example
2718 /// ```ignore,no_run
2719 /// # use google_cloud_gkemulticloud_v1::model::ListAttachedClustersResponse;
2720 /// use google_cloud_gkemulticloud_v1::model::AttachedCluster;
2721 /// let x = ListAttachedClustersResponse::new()
2722 /// .set_attached_clusters([
2723 /// AttachedCluster::default()/* use setters */,
2724 /// AttachedCluster::default()/* use (different) setters */,
2725 /// ]);
2726 /// ```
2727 pub fn set_attached_clusters<T, V>(mut self, v: T) -> Self
2728 where
2729 T: std::iter::IntoIterator<Item = V>,
2730 V: std::convert::Into<crate::model::AttachedCluster>,
2731 {
2732 use std::iter::Iterator;
2733 self.attached_clusters = v.into_iter().map(|i| i.into()).collect();
2734 self
2735 }
2736
2737 /// Sets the value of [next_page_token][crate::model::ListAttachedClustersResponse::next_page_token].
2738 ///
2739 /// # Example
2740 /// ```ignore,no_run
2741 /// # use google_cloud_gkemulticloud_v1::model::ListAttachedClustersResponse;
2742 /// let x = ListAttachedClustersResponse::new().set_next_page_token("example");
2743 /// ```
2744 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2745 self.next_page_token = v.into();
2746 self
2747 }
2748}
2749
2750impl wkt::message::Message for ListAttachedClustersResponse {
2751 fn typename() -> &'static str {
2752 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAttachedClustersResponse"
2753 }
2754}
2755
2756#[doc(hidden)]
2757impl google_cloud_gax::paginator::internal::PageableResponse for ListAttachedClustersResponse {
2758 type PageItem = crate::model::AttachedCluster;
2759
2760 fn items(self) -> std::vec::Vec<Self::PageItem> {
2761 self.attached_clusters
2762 }
2763
2764 fn next_page_token(&self) -> std::string::String {
2765 use std::clone::Clone;
2766 self.next_page_token.clone()
2767 }
2768}
2769
2770/// Request message for `AttachedClusters.DeleteAttachedCluster` method.
2771#[derive(Clone, Default, PartialEq)]
2772#[non_exhaustive]
2773pub struct DeleteAttachedClusterRequest {
2774 /// Required. The resource name the
2775 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] to delete.
2776 ///
2777 /// `AttachedCluster` names are formatted as
2778 /// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`.
2779 ///
2780 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
2781 /// for more details on Google Cloud Platform resource names.
2782 ///
2783 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2784 pub name: std::string::String,
2785
2786 /// If set, only validate the request, but do not actually delete the resource.
2787 pub validate_only: bool,
2788
2789 /// If set to true, and the
2790 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2791 /// is not found, the request will succeed but no action will be taken on the
2792 /// server and a completed [Operation][google.longrunning.Operation] will be
2793 /// returned.
2794 ///
2795 /// Useful for idempotent deletion.
2796 ///
2797 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2798 /// [google.longrunning.Operation]: google_cloud_longrunning::model::Operation
2799 pub allow_missing: bool,
2800
2801 /// If set to true, the deletion of
2802 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource
2803 /// will succeed even if errors occur during deleting in cluster resources.
2804 /// Using this parameter may result in orphaned resources in the cluster.
2805 ///
2806 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2807 pub ignore_errors: bool,
2808
2809 /// The current etag of the
2810 /// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster].
2811 ///
2812 /// Allows clients to perform deletions through optimistic concurrency control.
2813 ///
2814 /// If the provided etag does not match the current etag of the cluster,
2815 /// the request will fail and an ABORTED error will be returned.
2816 ///
2817 /// [google.cloud.gkemulticloud.v1.AttachedCluster]: crate::model::AttachedCluster
2818 pub etag: std::string::String,
2819
2820 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2821}
2822
2823impl DeleteAttachedClusterRequest {
2824 pub fn new() -> Self {
2825 std::default::Default::default()
2826 }
2827
2828 /// Sets the value of [name][crate::model::DeleteAttachedClusterRequest::name].
2829 ///
2830 /// # Example
2831 /// ```ignore,no_run
2832 /// # use google_cloud_gkemulticloud_v1::model::DeleteAttachedClusterRequest;
2833 /// let x = DeleteAttachedClusterRequest::new().set_name("example");
2834 /// ```
2835 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2836 self.name = v.into();
2837 self
2838 }
2839
2840 /// Sets the value of [validate_only][crate::model::DeleteAttachedClusterRequest::validate_only].
2841 ///
2842 /// # Example
2843 /// ```ignore,no_run
2844 /// # use google_cloud_gkemulticloud_v1::model::DeleteAttachedClusterRequest;
2845 /// let x = DeleteAttachedClusterRequest::new().set_validate_only(true);
2846 /// ```
2847 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
2848 self.validate_only = v.into();
2849 self
2850 }
2851
2852 /// Sets the value of [allow_missing][crate::model::DeleteAttachedClusterRequest::allow_missing].
2853 ///
2854 /// # Example
2855 /// ```ignore,no_run
2856 /// # use google_cloud_gkemulticloud_v1::model::DeleteAttachedClusterRequest;
2857 /// let x = DeleteAttachedClusterRequest::new().set_allow_missing(true);
2858 /// ```
2859 pub fn set_allow_missing<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
2860 self.allow_missing = v.into();
2861 self
2862 }
2863
2864 /// Sets the value of [ignore_errors][crate::model::DeleteAttachedClusterRequest::ignore_errors].
2865 ///
2866 /// # Example
2867 /// ```ignore,no_run
2868 /// # use google_cloud_gkemulticloud_v1::model::DeleteAttachedClusterRequest;
2869 /// let x = DeleteAttachedClusterRequest::new().set_ignore_errors(true);
2870 /// ```
2871 pub fn set_ignore_errors<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
2872 self.ignore_errors = v.into();
2873 self
2874 }
2875
2876 /// Sets the value of [etag][crate::model::DeleteAttachedClusterRequest::etag].
2877 ///
2878 /// # Example
2879 /// ```ignore,no_run
2880 /// # use google_cloud_gkemulticloud_v1::model::DeleteAttachedClusterRequest;
2881 /// let x = DeleteAttachedClusterRequest::new().set_etag("example");
2882 /// ```
2883 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2884 self.etag = v.into();
2885 self
2886 }
2887}
2888
2889impl wkt::message::Message for DeleteAttachedClusterRequest {
2890 fn typename() -> &'static str {
2891 "type.googleapis.com/google.cloud.gkemulticloud.v1.DeleteAttachedClusterRequest"
2892 }
2893}
2894
2895/// GetAttachedServerConfigRequest gets the server config for attached
2896/// clusters.
2897#[derive(Clone, Default, PartialEq)]
2898#[non_exhaustive]
2899pub struct GetAttachedServerConfigRequest {
2900 /// Required. The name of the
2901 /// [AttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedServerConfig]
2902 /// resource to describe.
2903 ///
2904 /// `AttachedServerConfig` names are formatted as
2905 /// `projects/<project-id>/locations/<region>/attachedServerConfig`.
2906 ///
2907 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
2908 /// for more details on Google Cloud resource names.
2909 ///
2910 /// [google.cloud.gkemulticloud.v1.AttachedServerConfig]: crate::model::AttachedServerConfig
2911 pub name: std::string::String,
2912
2913 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2914}
2915
2916impl GetAttachedServerConfigRequest {
2917 pub fn new() -> Self {
2918 std::default::Default::default()
2919 }
2920
2921 /// Sets the value of [name][crate::model::GetAttachedServerConfigRequest::name].
2922 ///
2923 /// # Example
2924 /// ```ignore,no_run
2925 /// # use google_cloud_gkemulticloud_v1::model::GetAttachedServerConfigRequest;
2926 /// let x = GetAttachedServerConfigRequest::new().set_name("example");
2927 /// ```
2928 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
2929 self.name = v.into();
2930 self
2931 }
2932}
2933
2934impl wkt::message::Message for GetAttachedServerConfigRequest {
2935 fn typename() -> &'static str {
2936 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAttachedServerConfigRequest"
2937 }
2938}
2939
2940#[derive(Clone, Default, PartialEq)]
2941#[non_exhaustive]
2942pub struct GenerateAttachedClusterAgentTokenRequest {
2943 /// Required.
2944 pub attached_cluster: std::string::String,
2945
2946 /// Required.
2947 pub subject_token: std::string::String,
2948
2949 /// Required.
2950 pub subject_token_type: std::string::String,
2951
2952 /// Required.
2953 pub version: std::string::String,
2954
2955 /// Optional.
2956 pub grant_type: std::string::String,
2957
2958 /// Optional.
2959 pub audience: std::string::String,
2960
2961 /// Optional.
2962 pub scope: std::string::String,
2963
2964 /// Optional.
2965 pub requested_token_type: std::string::String,
2966
2967 /// Optional.
2968 pub options: std::string::String,
2969
2970 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
2971}
2972
2973impl GenerateAttachedClusterAgentTokenRequest {
2974 pub fn new() -> Self {
2975 std::default::Default::default()
2976 }
2977
2978 /// Sets the value of [attached_cluster][crate::model::GenerateAttachedClusterAgentTokenRequest::attached_cluster].
2979 ///
2980 /// # Example
2981 /// ```ignore,no_run
2982 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
2983 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_attached_cluster("example");
2984 /// ```
2985 pub fn set_attached_cluster<T: std::convert::Into<std::string::String>>(
2986 mut self,
2987 v: T,
2988 ) -> Self {
2989 self.attached_cluster = v.into();
2990 self
2991 }
2992
2993 /// Sets the value of [subject_token][crate::model::GenerateAttachedClusterAgentTokenRequest::subject_token].
2994 ///
2995 /// # Example
2996 /// ```ignore,no_run
2997 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
2998 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_subject_token("example");
2999 /// ```
3000 pub fn set_subject_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3001 self.subject_token = v.into();
3002 self
3003 }
3004
3005 /// Sets the value of [subject_token_type][crate::model::GenerateAttachedClusterAgentTokenRequest::subject_token_type].
3006 ///
3007 /// # Example
3008 /// ```ignore,no_run
3009 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3010 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_subject_token_type("example");
3011 /// ```
3012 pub fn set_subject_token_type<T: std::convert::Into<std::string::String>>(
3013 mut self,
3014 v: T,
3015 ) -> Self {
3016 self.subject_token_type = v.into();
3017 self
3018 }
3019
3020 /// Sets the value of [version][crate::model::GenerateAttachedClusterAgentTokenRequest::version].
3021 ///
3022 /// # Example
3023 /// ```ignore,no_run
3024 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3025 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_version("example");
3026 /// ```
3027 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3028 self.version = v.into();
3029 self
3030 }
3031
3032 /// Sets the value of [grant_type][crate::model::GenerateAttachedClusterAgentTokenRequest::grant_type].
3033 ///
3034 /// # Example
3035 /// ```ignore,no_run
3036 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3037 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_grant_type("example");
3038 /// ```
3039 pub fn set_grant_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3040 self.grant_type = v.into();
3041 self
3042 }
3043
3044 /// Sets the value of [audience][crate::model::GenerateAttachedClusterAgentTokenRequest::audience].
3045 ///
3046 /// # Example
3047 /// ```ignore,no_run
3048 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3049 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_audience("example");
3050 /// ```
3051 pub fn set_audience<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3052 self.audience = v.into();
3053 self
3054 }
3055
3056 /// Sets the value of [scope][crate::model::GenerateAttachedClusterAgentTokenRequest::scope].
3057 ///
3058 /// # Example
3059 /// ```ignore,no_run
3060 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3061 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_scope("example");
3062 /// ```
3063 pub fn set_scope<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3064 self.scope = v.into();
3065 self
3066 }
3067
3068 /// Sets the value of [requested_token_type][crate::model::GenerateAttachedClusterAgentTokenRequest::requested_token_type].
3069 ///
3070 /// # Example
3071 /// ```ignore,no_run
3072 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3073 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_requested_token_type("example");
3074 /// ```
3075 pub fn set_requested_token_type<T: std::convert::Into<std::string::String>>(
3076 mut self,
3077 v: T,
3078 ) -> Self {
3079 self.requested_token_type = v.into();
3080 self
3081 }
3082
3083 /// Sets the value of [options][crate::model::GenerateAttachedClusterAgentTokenRequest::options].
3084 ///
3085 /// # Example
3086 /// ```ignore,no_run
3087 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenRequest;
3088 /// let x = GenerateAttachedClusterAgentTokenRequest::new().set_options("example");
3089 /// ```
3090 pub fn set_options<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3091 self.options = v.into();
3092 self
3093 }
3094}
3095
3096impl wkt::message::Message for GenerateAttachedClusterAgentTokenRequest {
3097 fn typename() -> &'static str {
3098 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAttachedClusterAgentTokenRequest"
3099 }
3100}
3101
3102#[derive(Clone, Default, PartialEq)]
3103#[non_exhaustive]
3104pub struct GenerateAttachedClusterAgentTokenResponse {
3105 pub access_token: std::string::String,
3106
3107 pub expires_in: i32,
3108
3109 pub token_type: std::string::String,
3110
3111 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3112}
3113
3114impl GenerateAttachedClusterAgentTokenResponse {
3115 pub fn new() -> Self {
3116 std::default::Default::default()
3117 }
3118
3119 /// Sets the value of [access_token][crate::model::GenerateAttachedClusterAgentTokenResponse::access_token].
3120 ///
3121 /// # Example
3122 /// ```ignore,no_run
3123 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenResponse;
3124 /// let x = GenerateAttachedClusterAgentTokenResponse::new().set_access_token("example");
3125 /// ```
3126 pub fn set_access_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3127 self.access_token = v.into();
3128 self
3129 }
3130
3131 /// Sets the value of [expires_in][crate::model::GenerateAttachedClusterAgentTokenResponse::expires_in].
3132 ///
3133 /// # Example
3134 /// ```ignore,no_run
3135 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenResponse;
3136 /// let x = GenerateAttachedClusterAgentTokenResponse::new().set_expires_in(42);
3137 /// ```
3138 pub fn set_expires_in<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
3139 self.expires_in = v.into();
3140 self
3141 }
3142
3143 /// Sets the value of [token_type][crate::model::GenerateAttachedClusterAgentTokenResponse::token_type].
3144 ///
3145 /// # Example
3146 /// ```ignore,no_run
3147 /// # use google_cloud_gkemulticloud_v1::model::GenerateAttachedClusterAgentTokenResponse;
3148 /// let x = GenerateAttachedClusterAgentTokenResponse::new().set_token_type("example");
3149 /// ```
3150 pub fn set_token_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3151 self.token_type = v.into();
3152 self
3153 }
3154}
3155
3156impl wkt::message::Message for GenerateAttachedClusterAgentTokenResponse {
3157 fn typename() -> &'static str {
3158 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAttachedClusterAgentTokenResponse"
3159 }
3160}
3161
3162/// An Anthos cluster running on AWS.
3163#[derive(Clone, Default, PartialEq)]
3164#[non_exhaustive]
3165#[deprecated]
3166pub struct AwsCluster {
3167 /// The name of this resource.
3168 ///
3169 /// Cluster names are formatted as
3170 /// `projects/<project-number>/locations/<region>/awsClusters/<cluster-id>`.
3171 ///
3172 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
3173 /// for more details on Google Cloud Platform resource names.
3174 pub name: std::string::String,
3175
3176 /// Optional. A human readable description of this cluster.
3177 /// Cannot be longer than 255 UTF-8 encoded bytes.
3178 pub description: std::string::String,
3179
3180 /// Required. Cluster-wide networking configuration.
3181 pub networking: std::option::Option<crate::model::AwsClusterNetworking>,
3182
3183 /// Required. The AWS region where the cluster runs.
3184 ///
3185 /// Each Google Cloud region supports a subset of nearby AWS regions.
3186 /// You can call
3187 /// [GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig]
3188 /// to list all supported AWS regions within a given Google Cloud region.
3189 ///
3190 /// [google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig]: crate::client::AwsClusters::get_aws_server_config
3191 pub aws_region: std::string::String,
3192
3193 /// Required. Configuration related to the cluster control plane.
3194 pub control_plane: std::option::Option<crate::model::AwsControlPlane>,
3195
3196 /// Required. Configuration related to the cluster RBAC settings.
3197 pub authorization: std::option::Option<crate::model::AwsAuthorization>,
3198
3199 /// Output only. The current state of the cluster.
3200 pub state: crate::model::aws_cluster::State,
3201
3202 /// Output only. The endpoint of the cluster's API server.
3203 pub endpoint: std::string::String,
3204
3205 /// Output only. A globally unique identifier for the cluster.
3206 pub uid: std::string::String,
3207
3208 /// Output only. If set, there are currently changes in flight to the cluster.
3209 pub reconciling: bool,
3210
3211 /// Output only. The time at which this cluster was created.
3212 pub create_time: std::option::Option<wkt::Timestamp>,
3213
3214 /// Output only. The time at which this cluster was last updated.
3215 pub update_time: std::option::Option<wkt::Timestamp>,
3216
3217 /// Allows clients to perform consistent read-modify-writes
3218 /// through optimistic concurrency control.
3219 ///
3220 /// Can be sent on update and delete requests to ensure the
3221 /// client has an up-to-date value before proceeding.
3222 pub etag: std::string::String,
3223
3224 /// Optional. Annotations on the cluster.
3225 ///
3226 /// This field has the same restrictions as Kubernetes annotations.
3227 /// The total size of all keys and values combined is limited to 256k.
3228 /// Key can have 2 segments: prefix (optional) and name (required),
3229 /// separated by a slash (/).
3230 /// Prefix must be a DNS subdomain.
3231 /// Name must be 63 characters or less, begin and end with alphanumerics,
3232 /// with dashes (-), underscores (_), dots (.), and alphanumerics between.
3233 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
3234
3235 /// Output only. Workload Identity settings.
3236 pub workload_identity_config: std::option::Option<crate::model::WorkloadIdentityConfig>,
3237
3238 /// Output only. PEM encoded x509 certificate of the cluster root of trust.
3239 pub cluster_ca_certificate: std::string::String,
3240
3241 /// Required. Fleet configuration.
3242 pub fleet: std::option::Option<crate::model::Fleet>,
3243
3244 /// Optional. Logging configuration for this cluster.
3245 pub logging_config: std::option::Option<crate::model::LoggingConfig>,
3246
3247 /// Output only. A set of errors found in the cluster.
3248 pub errors: std::vec::Vec<crate::model::AwsClusterError>,
3249
3250 /// Optional. Monitoring configuration for this cluster.
3251 pub monitoring_config: std::option::Option<crate::model::MonitoringConfig>,
3252
3253 /// Optional. Binary Authorization configuration for this cluster.
3254 pub binary_authorization: std::option::Option<crate::model::BinaryAuthorization>,
3255
3256 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
3257}
3258
3259impl AwsCluster {
3260 pub fn new() -> Self {
3261 std::default::Default::default()
3262 }
3263
3264 /// Sets the value of [name][crate::model::AwsCluster::name].
3265 ///
3266 /// # Example
3267 /// ```ignore,no_run
3268 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3269 /// let x = AwsCluster::new().set_name("example");
3270 /// ```
3271 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3272 self.name = v.into();
3273 self
3274 }
3275
3276 /// Sets the value of [description][crate::model::AwsCluster::description].
3277 ///
3278 /// # Example
3279 /// ```ignore,no_run
3280 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3281 /// let x = AwsCluster::new().set_description("example");
3282 /// ```
3283 pub fn set_description<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3284 self.description = v.into();
3285 self
3286 }
3287
3288 /// Sets the value of [networking][crate::model::AwsCluster::networking].
3289 ///
3290 /// # Example
3291 /// ```ignore,no_run
3292 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3293 /// use google_cloud_gkemulticloud_v1::model::AwsClusterNetworking;
3294 /// let x = AwsCluster::new().set_networking(AwsClusterNetworking::default()/* use setters */);
3295 /// ```
3296 pub fn set_networking<T>(mut self, v: T) -> Self
3297 where
3298 T: std::convert::Into<crate::model::AwsClusterNetworking>,
3299 {
3300 self.networking = std::option::Option::Some(v.into());
3301 self
3302 }
3303
3304 /// Sets or clears the value of [networking][crate::model::AwsCluster::networking].
3305 ///
3306 /// # Example
3307 /// ```ignore,no_run
3308 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3309 /// use google_cloud_gkemulticloud_v1::model::AwsClusterNetworking;
3310 /// let x = AwsCluster::new().set_or_clear_networking(Some(AwsClusterNetworking::default()/* use setters */));
3311 /// let x = AwsCluster::new().set_or_clear_networking(None::<AwsClusterNetworking>);
3312 /// ```
3313 pub fn set_or_clear_networking<T>(mut self, v: std::option::Option<T>) -> Self
3314 where
3315 T: std::convert::Into<crate::model::AwsClusterNetworking>,
3316 {
3317 self.networking = v.map(|x| x.into());
3318 self
3319 }
3320
3321 /// Sets the value of [aws_region][crate::model::AwsCluster::aws_region].
3322 ///
3323 /// # Example
3324 /// ```ignore,no_run
3325 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3326 /// let x = AwsCluster::new().set_aws_region("example");
3327 /// ```
3328 pub fn set_aws_region<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3329 self.aws_region = v.into();
3330 self
3331 }
3332
3333 /// Sets the value of [control_plane][crate::model::AwsCluster::control_plane].
3334 ///
3335 /// # Example
3336 /// ```ignore,no_run
3337 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3338 /// use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
3339 /// let x = AwsCluster::new().set_control_plane(AwsControlPlane::default()/* use setters */);
3340 /// ```
3341 pub fn set_control_plane<T>(mut self, v: T) -> Self
3342 where
3343 T: std::convert::Into<crate::model::AwsControlPlane>,
3344 {
3345 self.control_plane = std::option::Option::Some(v.into());
3346 self
3347 }
3348
3349 /// Sets or clears the value of [control_plane][crate::model::AwsCluster::control_plane].
3350 ///
3351 /// # Example
3352 /// ```ignore,no_run
3353 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3354 /// use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
3355 /// let x = AwsCluster::new().set_or_clear_control_plane(Some(AwsControlPlane::default()/* use setters */));
3356 /// let x = AwsCluster::new().set_or_clear_control_plane(None::<AwsControlPlane>);
3357 /// ```
3358 pub fn set_or_clear_control_plane<T>(mut self, v: std::option::Option<T>) -> Self
3359 where
3360 T: std::convert::Into<crate::model::AwsControlPlane>,
3361 {
3362 self.control_plane = v.map(|x| x.into());
3363 self
3364 }
3365
3366 /// Sets the value of [authorization][crate::model::AwsCluster::authorization].
3367 ///
3368 /// # Example
3369 /// ```ignore,no_run
3370 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3371 /// use google_cloud_gkemulticloud_v1::model::AwsAuthorization;
3372 /// let x = AwsCluster::new().set_authorization(AwsAuthorization::default()/* use setters */);
3373 /// ```
3374 pub fn set_authorization<T>(mut self, v: T) -> Self
3375 where
3376 T: std::convert::Into<crate::model::AwsAuthorization>,
3377 {
3378 self.authorization = std::option::Option::Some(v.into());
3379 self
3380 }
3381
3382 /// Sets or clears the value of [authorization][crate::model::AwsCluster::authorization].
3383 ///
3384 /// # Example
3385 /// ```ignore,no_run
3386 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3387 /// use google_cloud_gkemulticloud_v1::model::AwsAuthorization;
3388 /// let x = AwsCluster::new().set_or_clear_authorization(Some(AwsAuthorization::default()/* use setters */));
3389 /// let x = AwsCluster::new().set_or_clear_authorization(None::<AwsAuthorization>);
3390 /// ```
3391 pub fn set_or_clear_authorization<T>(mut self, v: std::option::Option<T>) -> Self
3392 where
3393 T: std::convert::Into<crate::model::AwsAuthorization>,
3394 {
3395 self.authorization = v.map(|x| x.into());
3396 self
3397 }
3398
3399 /// Sets the value of [state][crate::model::AwsCluster::state].
3400 ///
3401 /// # Example
3402 /// ```ignore,no_run
3403 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3404 /// use google_cloud_gkemulticloud_v1::model::aws_cluster::State;
3405 /// let x0 = AwsCluster::new().set_state(State::Provisioning);
3406 /// let x1 = AwsCluster::new().set_state(State::Running);
3407 /// let x2 = AwsCluster::new().set_state(State::Reconciling);
3408 /// ```
3409 pub fn set_state<T: std::convert::Into<crate::model::aws_cluster::State>>(
3410 mut self,
3411 v: T,
3412 ) -> Self {
3413 self.state = v.into();
3414 self
3415 }
3416
3417 /// Sets the value of [endpoint][crate::model::AwsCluster::endpoint].
3418 ///
3419 /// # Example
3420 /// ```ignore,no_run
3421 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3422 /// let x = AwsCluster::new().set_endpoint("example");
3423 /// ```
3424 pub fn set_endpoint<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3425 self.endpoint = v.into();
3426 self
3427 }
3428
3429 /// Sets the value of [uid][crate::model::AwsCluster::uid].
3430 ///
3431 /// # Example
3432 /// ```ignore,no_run
3433 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3434 /// let x = AwsCluster::new().set_uid("example");
3435 /// ```
3436 pub fn set_uid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3437 self.uid = v.into();
3438 self
3439 }
3440
3441 /// Sets the value of [reconciling][crate::model::AwsCluster::reconciling].
3442 ///
3443 /// # Example
3444 /// ```ignore,no_run
3445 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3446 /// let x = AwsCluster::new().set_reconciling(true);
3447 /// ```
3448 pub fn set_reconciling<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
3449 self.reconciling = v.into();
3450 self
3451 }
3452
3453 /// Sets the value of [create_time][crate::model::AwsCluster::create_time].
3454 ///
3455 /// # Example
3456 /// ```ignore,no_run
3457 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3458 /// use wkt::Timestamp;
3459 /// let x = AwsCluster::new().set_create_time(Timestamp::default()/* use setters */);
3460 /// ```
3461 pub fn set_create_time<T>(mut self, v: T) -> Self
3462 where
3463 T: std::convert::Into<wkt::Timestamp>,
3464 {
3465 self.create_time = std::option::Option::Some(v.into());
3466 self
3467 }
3468
3469 /// Sets or clears the value of [create_time][crate::model::AwsCluster::create_time].
3470 ///
3471 /// # Example
3472 /// ```ignore,no_run
3473 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3474 /// use wkt::Timestamp;
3475 /// let x = AwsCluster::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
3476 /// let x = AwsCluster::new().set_or_clear_create_time(None::<Timestamp>);
3477 /// ```
3478 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
3479 where
3480 T: std::convert::Into<wkt::Timestamp>,
3481 {
3482 self.create_time = v.map(|x| x.into());
3483 self
3484 }
3485
3486 /// Sets the value of [update_time][crate::model::AwsCluster::update_time].
3487 ///
3488 /// # Example
3489 /// ```ignore,no_run
3490 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3491 /// use wkt::Timestamp;
3492 /// let x = AwsCluster::new().set_update_time(Timestamp::default()/* use setters */);
3493 /// ```
3494 pub fn set_update_time<T>(mut self, v: T) -> Self
3495 where
3496 T: std::convert::Into<wkt::Timestamp>,
3497 {
3498 self.update_time = std::option::Option::Some(v.into());
3499 self
3500 }
3501
3502 /// Sets or clears the value of [update_time][crate::model::AwsCluster::update_time].
3503 ///
3504 /// # Example
3505 /// ```ignore,no_run
3506 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3507 /// use wkt::Timestamp;
3508 /// let x = AwsCluster::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
3509 /// let x = AwsCluster::new().set_or_clear_update_time(None::<Timestamp>);
3510 /// ```
3511 pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
3512 where
3513 T: std::convert::Into<wkt::Timestamp>,
3514 {
3515 self.update_time = v.map(|x| x.into());
3516 self
3517 }
3518
3519 /// Sets the value of [etag][crate::model::AwsCluster::etag].
3520 ///
3521 /// # Example
3522 /// ```ignore,no_run
3523 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3524 /// let x = AwsCluster::new().set_etag("example");
3525 /// ```
3526 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
3527 self.etag = v.into();
3528 self
3529 }
3530
3531 /// Sets the value of [annotations][crate::model::AwsCluster::annotations].
3532 ///
3533 /// # Example
3534 /// ```ignore,no_run
3535 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3536 /// let x = AwsCluster::new().set_annotations([
3537 /// ("key0", "abc"),
3538 /// ("key1", "xyz"),
3539 /// ]);
3540 /// ```
3541 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
3542 where
3543 T: std::iter::IntoIterator<Item = (K, V)>,
3544 K: std::convert::Into<std::string::String>,
3545 V: std::convert::Into<std::string::String>,
3546 {
3547 use std::iter::Iterator;
3548 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
3549 self
3550 }
3551
3552 /// Sets the value of [workload_identity_config][crate::model::AwsCluster::workload_identity_config].
3553 ///
3554 /// # Example
3555 /// ```ignore,no_run
3556 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3557 /// use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
3558 /// let x = AwsCluster::new().set_workload_identity_config(WorkloadIdentityConfig::default()/* use setters */);
3559 /// ```
3560 pub fn set_workload_identity_config<T>(mut self, v: T) -> Self
3561 where
3562 T: std::convert::Into<crate::model::WorkloadIdentityConfig>,
3563 {
3564 self.workload_identity_config = std::option::Option::Some(v.into());
3565 self
3566 }
3567
3568 /// Sets or clears the value of [workload_identity_config][crate::model::AwsCluster::workload_identity_config].
3569 ///
3570 /// # Example
3571 /// ```ignore,no_run
3572 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3573 /// use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
3574 /// let x = AwsCluster::new().set_or_clear_workload_identity_config(Some(WorkloadIdentityConfig::default()/* use setters */));
3575 /// let x = AwsCluster::new().set_or_clear_workload_identity_config(None::<WorkloadIdentityConfig>);
3576 /// ```
3577 pub fn set_or_clear_workload_identity_config<T>(mut self, v: std::option::Option<T>) -> Self
3578 where
3579 T: std::convert::Into<crate::model::WorkloadIdentityConfig>,
3580 {
3581 self.workload_identity_config = v.map(|x| x.into());
3582 self
3583 }
3584
3585 /// Sets the value of [cluster_ca_certificate][crate::model::AwsCluster::cluster_ca_certificate].
3586 ///
3587 /// # Example
3588 /// ```ignore,no_run
3589 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3590 /// let x = AwsCluster::new().set_cluster_ca_certificate("example");
3591 /// ```
3592 pub fn set_cluster_ca_certificate<T: std::convert::Into<std::string::String>>(
3593 mut self,
3594 v: T,
3595 ) -> Self {
3596 self.cluster_ca_certificate = v.into();
3597 self
3598 }
3599
3600 /// Sets the value of [fleet][crate::model::AwsCluster::fleet].
3601 ///
3602 /// # Example
3603 /// ```ignore,no_run
3604 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3605 /// use google_cloud_gkemulticloud_v1::model::Fleet;
3606 /// let x = AwsCluster::new().set_fleet(Fleet::default()/* use setters */);
3607 /// ```
3608 pub fn set_fleet<T>(mut self, v: T) -> Self
3609 where
3610 T: std::convert::Into<crate::model::Fleet>,
3611 {
3612 self.fleet = std::option::Option::Some(v.into());
3613 self
3614 }
3615
3616 /// Sets or clears the value of [fleet][crate::model::AwsCluster::fleet].
3617 ///
3618 /// # Example
3619 /// ```ignore,no_run
3620 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3621 /// use google_cloud_gkemulticloud_v1::model::Fleet;
3622 /// let x = AwsCluster::new().set_or_clear_fleet(Some(Fleet::default()/* use setters */));
3623 /// let x = AwsCluster::new().set_or_clear_fleet(None::<Fleet>);
3624 /// ```
3625 pub fn set_or_clear_fleet<T>(mut self, v: std::option::Option<T>) -> Self
3626 where
3627 T: std::convert::Into<crate::model::Fleet>,
3628 {
3629 self.fleet = v.map(|x| x.into());
3630 self
3631 }
3632
3633 /// Sets the value of [logging_config][crate::model::AwsCluster::logging_config].
3634 ///
3635 /// # Example
3636 /// ```ignore,no_run
3637 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3638 /// use google_cloud_gkemulticloud_v1::model::LoggingConfig;
3639 /// let x = AwsCluster::new().set_logging_config(LoggingConfig::default()/* use setters */);
3640 /// ```
3641 pub fn set_logging_config<T>(mut self, v: T) -> Self
3642 where
3643 T: std::convert::Into<crate::model::LoggingConfig>,
3644 {
3645 self.logging_config = std::option::Option::Some(v.into());
3646 self
3647 }
3648
3649 /// Sets or clears the value of [logging_config][crate::model::AwsCluster::logging_config].
3650 ///
3651 /// # Example
3652 /// ```ignore,no_run
3653 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3654 /// use google_cloud_gkemulticloud_v1::model::LoggingConfig;
3655 /// let x = AwsCluster::new().set_or_clear_logging_config(Some(LoggingConfig::default()/* use setters */));
3656 /// let x = AwsCluster::new().set_or_clear_logging_config(None::<LoggingConfig>);
3657 /// ```
3658 pub fn set_or_clear_logging_config<T>(mut self, v: std::option::Option<T>) -> Self
3659 where
3660 T: std::convert::Into<crate::model::LoggingConfig>,
3661 {
3662 self.logging_config = v.map(|x| x.into());
3663 self
3664 }
3665
3666 /// Sets the value of [errors][crate::model::AwsCluster::errors].
3667 ///
3668 /// # Example
3669 /// ```ignore,no_run
3670 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3671 /// use google_cloud_gkemulticloud_v1::model::AwsClusterError;
3672 /// let x = AwsCluster::new()
3673 /// .set_errors([
3674 /// AwsClusterError::default()/* use setters */,
3675 /// AwsClusterError::default()/* use (different) setters */,
3676 /// ]);
3677 /// ```
3678 pub fn set_errors<T, V>(mut self, v: T) -> Self
3679 where
3680 T: std::iter::IntoIterator<Item = V>,
3681 V: std::convert::Into<crate::model::AwsClusterError>,
3682 {
3683 use std::iter::Iterator;
3684 self.errors = v.into_iter().map(|i| i.into()).collect();
3685 self
3686 }
3687
3688 /// Sets the value of [monitoring_config][crate::model::AwsCluster::monitoring_config].
3689 ///
3690 /// # Example
3691 /// ```ignore,no_run
3692 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3693 /// use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
3694 /// let x = AwsCluster::new().set_monitoring_config(MonitoringConfig::default()/* use setters */);
3695 /// ```
3696 pub fn set_monitoring_config<T>(mut self, v: T) -> Self
3697 where
3698 T: std::convert::Into<crate::model::MonitoringConfig>,
3699 {
3700 self.monitoring_config = std::option::Option::Some(v.into());
3701 self
3702 }
3703
3704 /// Sets or clears the value of [monitoring_config][crate::model::AwsCluster::monitoring_config].
3705 ///
3706 /// # Example
3707 /// ```ignore,no_run
3708 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3709 /// use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
3710 /// let x = AwsCluster::new().set_or_clear_monitoring_config(Some(MonitoringConfig::default()/* use setters */));
3711 /// let x = AwsCluster::new().set_or_clear_monitoring_config(None::<MonitoringConfig>);
3712 /// ```
3713 pub fn set_or_clear_monitoring_config<T>(mut self, v: std::option::Option<T>) -> Self
3714 where
3715 T: std::convert::Into<crate::model::MonitoringConfig>,
3716 {
3717 self.monitoring_config = v.map(|x| x.into());
3718 self
3719 }
3720
3721 /// Sets the value of [binary_authorization][crate::model::AwsCluster::binary_authorization].
3722 ///
3723 /// # Example
3724 /// ```ignore,no_run
3725 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3726 /// use google_cloud_gkemulticloud_v1::model::BinaryAuthorization;
3727 /// let x = AwsCluster::new().set_binary_authorization(BinaryAuthorization::default()/* use setters */);
3728 /// ```
3729 pub fn set_binary_authorization<T>(mut self, v: T) -> Self
3730 where
3731 T: std::convert::Into<crate::model::BinaryAuthorization>,
3732 {
3733 self.binary_authorization = std::option::Option::Some(v.into());
3734 self
3735 }
3736
3737 /// Sets or clears the value of [binary_authorization][crate::model::AwsCluster::binary_authorization].
3738 ///
3739 /// # Example
3740 /// ```ignore,no_run
3741 /// # use google_cloud_gkemulticloud_v1::model::AwsCluster;
3742 /// use google_cloud_gkemulticloud_v1::model::BinaryAuthorization;
3743 /// let x = AwsCluster::new().set_or_clear_binary_authorization(Some(BinaryAuthorization::default()/* use setters */));
3744 /// let x = AwsCluster::new().set_or_clear_binary_authorization(None::<BinaryAuthorization>);
3745 /// ```
3746 pub fn set_or_clear_binary_authorization<T>(mut self, v: std::option::Option<T>) -> Self
3747 where
3748 T: std::convert::Into<crate::model::BinaryAuthorization>,
3749 {
3750 self.binary_authorization = v.map(|x| x.into());
3751 self
3752 }
3753}
3754
3755impl wkt::message::Message for AwsCluster {
3756 fn typename() -> &'static str {
3757 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsCluster"
3758 }
3759}
3760
3761/// Defines additional types related to [AwsCluster].
3762pub mod aws_cluster {
3763 #[allow(unused_imports)]
3764 use super::*;
3765
3766 /// The lifecycle state of the cluster.
3767 ///
3768 /// # Working with unknown values
3769 ///
3770 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
3771 /// additional enum variants at any time. Adding new variants is not considered
3772 /// a breaking change. Applications should write their code in anticipation of:
3773 ///
3774 /// - New values appearing in future releases of the client library, **and**
3775 /// - New values received dynamically, without application changes.
3776 ///
3777 /// Please consult the [Working with enums] section in the user guide for some
3778 /// guidelines.
3779 ///
3780 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
3781 #[derive(Clone, Debug, PartialEq)]
3782 #[non_exhaustive]
3783 pub enum State {
3784 /// Not set.
3785 Unspecified,
3786 /// The PROVISIONING state indicates the cluster is being created.
3787 Provisioning,
3788 /// The RUNNING state indicates the cluster has been created and is fully
3789 /// usable.
3790 Running,
3791 /// The RECONCILING state indicates that some work is actively being done on
3792 /// the cluster, such as upgrading the control plane replicas.
3793 Reconciling,
3794 /// The STOPPING state indicates the cluster is being deleted.
3795 Stopping,
3796 /// The ERROR state indicates the cluster is in a broken unrecoverable
3797 /// state.
3798 Error,
3799 /// The DEGRADED state indicates the cluster requires user action to
3800 /// restore full functionality.
3801 Degraded,
3802 /// If set, the enum was initialized with an unknown value.
3803 ///
3804 /// Applications can examine the value using [State::value] or
3805 /// [State::name].
3806 UnknownValue(state::UnknownValue),
3807 }
3808
3809 #[doc(hidden)]
3810 pub mod state {
3811 #[allow(unused_imports)]
3812 use super::*;
3813 #[derive(Clone, Debug, PartialEq)]
3814 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
3815 }
3816
3817 impl State {
3818 /// Gets the enum value.
3819 ///
3820 /// Returns `None` if the enum contains an unknown value deserialized from
3821 /// the string representation of enums.
3822 pub fn value(&self) -> std::option::Option<i32> {
3823 match self {
3824 Self::Unspecified => std::option::Option::Some(0),
3825 Self::Provisioning => std::option::Option::Some(1),
3826 Self::Running => std::option::Option::Some(2),
3827 Self::Reconciling => std::option::Option::Some(3),
3828 Self::Stopping => std::option::Option::Some(4),
3829 Self::Error => std::option::Option::Some(5),
3830 Self::Degraded => std::option::Option::Some(6),
3831 Self::UnknownValue(u) => u.0.value(),
3832 }
3833 }
3834
3835 /// Gets the enum value as a string.
3836 ///
3837 /// Returns `None` if the enum contains an unknown value deserialized from
3838 /// the integer representation of enums.
3839 pub fn name(&self) -> std::option::Option<&str> {
3840 match self {
3841 Self::Unspecified => std::option::Option::Some("STATE_UNSPECIFIED"),
3842 Self::Provisioning => std::option::Option::Some("PROVISIONING"),
3843 Self::Running => std::option::Option::Some("RUNNING"),
3844 Self::Reconciling => std::option::Option::Some("RECONCILING"),
3845 Self::Stopping => std::option::Option::Some("STOPPING"),
3846 Self::Error => std::option::Option::Some("ERROR"),
3847 Self::Degraded => std::option::Option::Some("DEGRADED"),
3848 Self::UnknownValue(u) => u.0.name(),
3849 }
3850 }
3851 }
3852
3853 impl std::default::Default for State {
3854 fn default() -> Self {
3855 use std::convert::From;
3856 Self::from(0)
3857 }
3858 }
3859
3860 impl std::fmt::Display for State {
3861 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
3862 wkt::internal::display_enum(f, self.name(), self.value())
3863 }
3864 }
3865
3866 impl std::convert::From<i32> for State {
3867 fn from(value: i32) -> Self {
3868 match value {
3869 0 => Self::Unspecified,
3870 1 => Self::Provisioning,
3871 2 => Self::Running,
3872 3 => Self::Reconciling,
3873 4 => Self::Stopping,
3874 5 => Self::Error,
3875 6 => Self::Degraded,
3876 _ => Self::UnknownValue(state::UnknownValue(
3877 wkt::internal::UnknownEnumValue::Integer(value),
3878 )),
3879 }
3880 }
3881 }
3882
3883 impl std::convert::From<&str> for State {
3884 fn from(value: &str) -> Self {
3885 use std::string::ToString;
3886 match value {
3887 "STATE_UNSPECIFIED" => Self::Unspecified,
3888 "PROVISIONING" => Self::Provisioning,
3889 "RUNNING" => Self::Running,
3890 "RECONCILING" => Self::Reconciling,
3891 "STOPPING" => Self::Stopping,
3892 "ERROR" => Self::Error,
3893 "DEGRADED" => Self::Degraded,
3894 _ => Self::UnknownValue(state::UnknownValue(
3895 wkt::internal::UnknownEnumValue::String(value.to_string()),
3896 )),
3897 }
3898 }
3899 }
3900
3901 impl serde::ser::Serialize for State {
3902 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3903 where
3904 S: serde::Serializer,
3905 {
3906 match self {
3907 Self::Unspecified => serializer.serialize_i32(0),
3908 Self::Provisioning => serializer.serialize_i32(1),
3909 Self::Running => serializer.serialize_i32(2),
3910 Self::Reconciling => serializer.serialize_i32(3),
3911 Self::Stopping => serializer.serialize_i32(4),
3912 Self::Error => serializer.serialize_i32(5),
3913 Self::Degraded => serializer.serialize_i32(6),
3914 Self::UnknownValue(u) => u.0.serialize(serializer),
3915 }
3916 }
3917 }
3918
3919 impl<'de> serde::de::Deserialize<'de> for State {
3920 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3921 where
3922 D: serde::Deserializer<'de>,
3923 {
3924 deserializer.deserialize_any(wkt::internal::EnumVisitor::<State>::new(
3925 ".google.cloud.gkemulticloud.v1.AwsCluster.State",
3926 ))
3927 }
3928 }
3929}
3930
3931/// ControlPlane defines common parameters between control plane nodes.
3932#[derive(Clone, Default, PartialEq)]
3933#[non_exhaustive]
3934#[deprecated]
3935pub struct AwsControlPlane {
3936 /// Required. The Kubernetes version to run on control plane replicas
3937 /// (e.g. `1.19.10-gke.1000`).
3938 ///
3939 /// You can list all supported versions on a given Google Cloud region by
3940 /// calling
3941 /// [GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig].
3942 ///
3943 /// [google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig]: crate::client::AwsClusters::get_aws_server_config
3944 pub version: std::string::String,
3945
3946 /// Optional. The AWS instance type.
3947 ///
3948 /// When unspecified, it uses a default based on the cluster's version.
3949 pub instance_type: std::string::String,
3950
3951 /// Optional. SSH configuration for how to access the underlying control plane
3952 /// machines.
3953 pub ssh_config: std::option::Option<crate::model::AwsSshConfig>,
3954
3955 /// Required. The list of subnets where control plane replicas will run.
3956 /// A replica will be provisioned on each subnet and up to three values
3957 /// can be provided.
3958 /// Each subnet must be in a different AWS Availability Zone (AZ).
3959 pub subnet_ids: std::vec::Vec<std::string::String>,
3960
3961 /// Optional. The IDs of additional security groups to add to control plane
3962 /// replicas. The Anthos Multi-Cloud API will automatically create and manage
3963 /// security groups with the minimum rules needed for a functioning cluster.
3964 pub security_group_ids: std::vec::Vec<std::string::String>,
3965
3966 /// Required. The name or ARN of the AWS IAM instance profile to assign to each
3967 /// control plane replica.
3968 pub iam_instance_profile: std::string::String,
3969
3970 /// Optional. Configuration related to the root volume provisioned for each
3971 /// control plane replica.
3972 ///
3973 /// Volumes will be provisioned in the availability zone associated
3974 /// with the corresponding subnet.
3975 ///
3976 /// When unspecified, it defaults to 32 GiB with the GP2 volume type.
3977 pub root_volume: std::option::Option<crate::model::AwsVolumeTemplate>,
3978
3979 /// Optional. Configuration related to the main volume provisioned for each
3980 /// control plane replica.
3981 /// The main volume is in charge of storing all of the cluster's etcd state.
3982 ///
3983 /// Volumes will be provisioned in the availability zone associated
3984 /// with the corresponding subnet.
3985 ///
3986 /// When unspecified, it defaults to 8 GiB with the GP2 volume type.
3987 pub main_volume: std::option::Option<crate::model::AwsVolumeTemplate>,
3988
3989 /// Required. The ARN of the AWS KMS key used to encrypt cluster secrets.
3990 pub database_encryption: std::option::Option<crate::model::AwsDatabaseEncryption>,
3991
3992 /// Optional. A set of AWS resource tags to propagate to all underlying managed
3993 /// AWS resources.
3994 ///
3995 /// Specify at most 50 pairs containing alphanumerics, spaces, and symbols
3996 /// (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to
3997 /// 255 Unicode characters.
3998 pub tags: std::collections::HashMap<std::string::String, std::string::String>,
3999
4000 /// Required. Authentication configuration for management of AWS resources.
4001 pub aws_services_authentication: std::option::Option<crate::model::AwsServicesAuthentication>,
4002
4003 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
4004 pub proxy_config: std::option::Option<crate::model::AwsProxyConfig>,
4005
4006 /// Required. Config encryption for user data.
4007 pub config_encryption: std::option::Option<crate::model::AwsConfigEncryption>,
4008
4009 /// Optional. The placement to use on control plane instances.
4010 /// When unspecified, the VPC's default tenancy will be used.
4011 pub instance_placement: std::option::Option<crate::model::AwsInstancePlacement>,
4012
4013 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4014}
4015
4016impl AwsControlPlane {
4017 pub fn new() -> Self {
4018 std::default::Default::default()
4019 }
4020
4021 /// Sets the value of [version][crate::model::AwsControlPlane::version].
4022 ///
4023 /// # Example
4024 /// ```ignore,no_run
4025 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4026 /// let x = AwsControlPlane::new().set_version("example");
4027 /// ```
4028 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4029 self.version = v.into();
4030 self
4031 }
4032
4033 /// Sets the value of [instance_type][crate::model::AwsControlPlane::instance_type].
4034 ///
4035 /// # Example
4036 /// ```ignore,no_run
4037 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4038 /// let x = AwsControlPlane::new().set_instance_type("example");
4039 /// ```
4040 pub fn set_instance_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4041 self.instance_type = v.into();
4042 self
4043 }
4044
4045 /// Sets the value of [ssh_config][crate::model::AwsControlPlane::ssh_config].
4046 ///
4047 /// # Example
4048 /// ```ignore,no_run
4049 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4050 /// use google_cloud_gkemulticloud_v1::model::AwsSshConfig;
4051 /// let x = AwsControlPlane::new().set_ssh_config(AwsSshConfig::default()/* use setters */);
4052 /// ```
4053 pub fn set_ssh_config<T>(mut self, v: T) -> Self
4054 where
4055 T: std::convert::Into<crate::model::AwsSshConfig>,
4056 {
4057 self.ssh_config = std::option::Option::Some(v.into());
4058 self
4059 }
4060
4061 /// Sets or clears the value of [ssh_config][crate::model::AwsControlPlane::ssh_config].
4062 ///
4063 /// # Example
4064 /// ```ignore,no_run
4065 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4066 /// use google_cloud_gkemulticloud_v1::model::AwsSshConfig;
4067 /// let x = AwsControlPlane::new().set_or_clear_ssh_config(Some(AwsSshConfig::default()/* use setters */));
4068 /// let x = AwsControlPlane::new().set_or_clear_ssh_config(None::<AwsSshConfig>);
4069 /// ```
4070 pub fn set_or_clear_ssh_config<T>(mut self, v: std::option::Option<T>) -> Self
4071 where
4072 T: std::convert::Into<crate::model::AwsSshConfig>,
4073 {
4074 self.ssh_config = v.map(|x| x.into());
4075 self
4076 }
4077
4078 /// Sets the value of [subnet_ids][crate::model::AwsControlPlane::subnet_ids].
4079 ///
4080 /// # Example
4081 /// ```ignore,no_run
4082 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4083 /// let x = AwsControlPlane::new().set_subnet_ids(["a", "b", "c"]);
4084 /// ```
4085 pub fn set_subnet_ids<T, V>(mut self, v: T) -> Self
4086 where
4087 T: std::iter::IntoIterator<Item = V>,
4088 V: std::convert::Into<std::string::String>,
4089 {
4090 use std::iter::Iterator;
4091 self.subnet_ids = v.into_iter().map(|i| i.into()).collect();
4092 self
4093 }
4094
4095 /// Sets the value of [security_group_ids][crate::model::AwsControlPlane::security_group_ids].
4096 ///
4097 /// # Example
4098 /// ```ignore,no_run
4099 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4100 /// let x = AwsControlPlane::new().set_security_group_ids(["a", "b", "c"]);
4101 /// ```
4102 pub fn set_security_group_ids<T, V>(mut self, v: T) -> Self
4103 where
4104 T: std::iter::IntoIterator<Item = V>,
4105 V: std::convert::Into<std::string::String>,
4106 {
4107 use std::iter::Iterator;
4108 self.security_group_ids = v.into_iter().map(|i| i.into()).collect();
4109 self
4110 }
4111
4112 /// Sets the value of [iam_instance_profile][crate::model::AwsControlPlane::iam_instance_profile].
4113 ///
4114 /// # Example
4115 /// ```ignore,no_run
4116 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4117 /// let x = AwsControlPlane::new().set_iam_instance_profile("example");
4118 /// ```
4119 pub fn set_iam_instance_profile<T: std::convert::Into<std::string::String>>(
4120 mut self,
4121 v: T,
4122 ) -> Self {
4123 self.iam_instance_profile = v.into();
4124 self
4125 }
4126
4127 /// Sets the value of [root_volume][crate::model::AwsControlPlane::root_volume].
4128 ///
4129 /// # Example
4130 /// ```ignore,no_run
4131 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4132 /// use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4133 /// let x = AwsControlPlane::new().set_root_volume(AwsVolumeTemplate::default()/* use setters */);
4134 /// ```
4135 pub fn set_root_volume<T>(mut self, v: T) -> Self
4136 where
4137 T: std::convert::Into<crate::model::AwsVolumeTemplate>,
4138 {
4139 self.root_volume = std::option::Option::Some(v.into());
4140 self
4141 }
4142
4143 /// Sets or clears the value of [root_volume][crate::model::AwsControlPlane::root_volume].
4144 ///
4145 /// # Example
4146 /// ```ignore,no_run
4147 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4148 /// use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4149 /// let x = AwsControlPlane::new().set_or_clear_root_volume(Some(AwsVolumeTemplate::default()/* use setters */));
4150 /// let x = AwsControlPlane::new().set_or_clear_root_volume(None::<AwsVolumeTemplate>);
4151 /// ```
4152 pub fn set_or_clear_root_volume<T>(mut self, v: std::option::Option<T>) -> Self
4153 where
4154 T: std::convert::Into<crate::model::AwsVolumeTemplate>,
4155 {
4156 self.root_volume = v.map(|x| x.into());
4157 self
4158 }
4159
4160 /// Sets the value of [main_volume][crate::model::AwsControlPlane::main_volume].
4161 ///
4162 /// # Example
4163 /// ```ignore,no_run
4164 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4165 /// use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4166 /// let x = AwsControlPlane::new().set_main_volume(AwsVolumeTemplate::default()/* use setters */);
4167 /// ```
4168 pub fn set_main_volume<T>(mut self, v: T) -> Self
4169 where
4170 T: std::convert::Into<crate::model::AwsVolumeTemplate>,
4171 {
4172 self.main_volume = std::option::Option::Some(v.into());
4173 self
4174 }
4175
4176 /// Sets or clears the value of [main_volume][crate::model::AwsControlPlane::main_volume].
4177 ///
4178 /// # Example
4179 /// ```ignore,no_run
4180 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4181 /// use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4182 /// let x = AwsControlPlane::new().set_or_clear_main_volume(Some(AwsVolumeTemplate::default()/* use setters */));
4183 /// let x = AwsControlPlane::new().set_or_clear_main_volume(None::<AwsVolumeTemplate>);
4184 /// ```
4185 pub fn set_or_clear_main_volume<T>(mut self, v: std::option::Option<T>) -> Self
4186 where
4187 T: std::convert::Into<crate::model::AwsVolumeTemplate>,
4188 {
4189 self.main_volume = v.map(|x| x.into());
4190 self
4191 }
4192
4193 /// Sets the value of [database_encryption][crate::model::AwsControlPlane::database_encryption].
4194 ///
4195 /// # Example
4196 /// ```ignore,no_run
4197 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4198 /// use google_cloud_gkemulticloud_v1::model::AwsDatabaseEncryption;
4199 /// let x = AwsControlPlane::new().set_database_encryption(AwsDatabaseEncryption::default()/* use setters */);
4200 /// ```
4201 pub fn set_database_encryption<T>(mut self, v: T) -> Self
4202 where
4203 T: std::convert::Into<crate::model::AwsDatabaseEncryption>,
4204 {
4205 self.database_encryption = std::option::Option::Some(v.into());
4206 self
4207 }
4208
4209 /// Sets or clears the value of [database_encryption][crate::model::AwsControlPlane::database_encryption].
4210 ///
4211 /// # Example
4212 /// ```ignore,no_run
4213 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4214 /// use google_cloud_gkemulticloud_v1::model::AwsDatabaseEncryption;
4215 /// let x = AwsControlPlane::new().set_or_clear_database_encryption(Some(AwsDatabaseEncryption::default()/* use setters */));
4216 /// let x = AwsControlPlane::new().set_or_clear_database_encryption(None::<AwsDatabaseEncryption>);
4217 /// ```
4218 pub fn set_or_clear_database_encryption<T>(mut self, v: std::option::Option<T>) -> Self
4219 where
4220 T: std::convert::Into<crate::model::AwsDatabaseEncryption>,
4221 {
4222 self.database_encryption = v.map(|x| x.into());
4223 self
4224 }
4225
4226 /// Sets the value of [tags][crate::model::AwsControlPlane::tags].
4227 ///
4228 /// # Example
4229 /// ```ignore,no_run
4230 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4231 /// let x = AwsControlPlane::new().set_tags([
4232 /// ("key0", "abc"),
4233 /// ("key1", "xyz"),
4234 /// ]);
4235 /// ```
4236 pub fn set_tags<T, K, V>(mut self, v: T) -> Self
4237 where
4238 T: std::iter::IntoIterator<Item = (K, V)>,
4239 K: std::convert::Into<std::string::String>,
4240 V: std::convert::Into<std::string::String>,
4241 {
4242 use std::iter::Iterator;
4243 self.tags = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
4244 self
4245 }
4246
4247 /// Sets the value of [aws_services_authentication][crate::model::AwsControlPlane::aws_services_authentication].
4248 ///
4249 /// # Example
4250 /// ```ignore,no_run
4251 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4252 /// use google_cloud_gkemulticloud_v1::model::AwsServicesAuthentication;
4253 /// let x = AwsControlPlane::new().set_aws_services_authentication(AwsServicesAuthentication::default()/* use setters */);
4254 /// ```
4255 pub fn set_aws_services_authentication<T>(mut self, v: T) -> Self
4256 where
4257 T: std::convert::Into<crate::model::AwsServicesAuthentication>,
4258 {
4259 self.aws_services_authentication = std::option::Option::Some(v.into());
4260 self
4261 }
4262
4263 /// Sets or clears the value of [aws_services_authentication][crate::model::AwsControlPlane::aws_services_authentication].
4264 ///
4265 /// # Example
4266 /// ```ignore,no_run
4267 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4268 /// use google_cloud_gkemulticloud_v1::model::AwsServicesAuthentication;
4269 /// let x = AwsControlPlane::new().set_or_clear_aws_services_authentication(Some(AwsServicesAuthentication::default()/* use setters */));
4270 /// let x = AwsControlPlane::new().set_or_clear_aws_services_authentication(None::<AwsServicesAuthentication>);
4271 /// ```
4272 pub fn set_or_clear_aws_services_authentication<T>(mut self, v: std::option::Option<T>) -> Self
4273 where
4274 T: std::convert::Into<crate::model::AwsServicesAuthentication>,
4275 {
4276 self.aws_services_authentication = v.map(|x| x.into());
4277 self
4278 }
4279
4280 /// Sets the value of [proxy_config][crate::model::AwsControlPlane::proxy_config].
4281 ///
4282 /// # Example
4283 /// ```ignore,no_run
4284 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4285 /// use google_cloud_gkemulticloud_v1::model::AwsProxyConfig;
4286 /// let x = AwsControlPlane::new().set_proxy_config(AwsProxyConfig::default()/* use setters */);
4287 /// ```
4288 pub fn set_proxy_config<T>(mut self, v: T) -> Self
4289 where
4290 T: std::convert::Into<crate::model::AwsProxyConfig>,
4291 {
4292 self.proxy_config = std::option::Option::Some(v.into());
4293 self
4294 }
4295
4296 /// Sets or clears the value of [proxy_config][crate::model::AwsControlPlane::proxy_config].
4297 ///
4298 /// # Example
4299 /// ```ignore,no_run
4300 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4301 /// use google_cloud_gkemulticloud_v1::model::AwsProxyConfig;
4302 /// let x = AwsControlPlane::new().set_or_clear_proxy_config(Some(AwsProxyConfig::default()/* use setters */));
4303 /// let x = AwsControlPlane::new().set_or_clear_proxy_config(None::<AwsProxyConfig>);
4304 /// ```
4305 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
4306 where
4307 T: std::convert::Into<crate::model::AwsProxyConfig>,
4308 {
4309 self.proxy_config = v.map(|x| x.into());
4310 self
4311 }
4312
4313 /// Sets the value of [config_encryption][crate::model::AwsControlPlane::config_encryption].
4314 ///
4315 /// # Example
4316 /// ```ignore,no_run
4317 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4318 /// use google_cloud_gkemulticloud_v1::model::AwsConfigEncryption;
4319 /// let x = AwsControlPlane::new().set_config_encryption(AwsConfigEncryption::default()/* use setters */);
4320 /// ```
4321 pub fn set_config_encryption<T>(mut self, v: T) -> Self
4322 where
4323 T: std::convert::Into<crate::model::AwsConfigEncryption>,
4324 {
4325 self.config_encryption = std::option::Option::Some(v.into());
4326 self
4327 }
4328
4329 /// Sets or clears the value of [config_encryption][crate::model::AwsControlPlane::config_encryption].
4330 ///
4331 /// # Example
4332 /// ```ignore,no_run
4333 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4334 /// use google_cloud_gkemulticloud_v1::model::AwsConfigEncryption;
4335 /// let x = AwsControlPlane::new().set_or_clear_config_encryption(Some(AwsConfigEncryption::default()/* use setters */));
4336 /// let x = AwsControlPlane::new().set_or_clear_config_encryption(None::<AwsConfigEncryption>);
4337 /// ```
4338 pub fn set_or_clear_config_encryption<T>(mut self, v: std::option::Option<T>) -> Self
4339 where
4340 T: std::convert::Into<crate::model::AwsConfigEncryption>,
4341 {
4342 self.config_encryption = v.map(|x| x.into());
4343 self
4344 }
4345
4346 /// Sets the value of [instance_placement][crate::model::AwsControlPlane::instance_placement].
4347 ///
4348 /// # Example
4349 /// ```ignore,no_run
4350 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4351 /// use google_cloud_gkemulticloud_v1::model::AwsInstancePlacement;
4352 /// let x = AwsControlPlane::new().set_instance_placement(AwsInstancePlacement::default()/* use setters */);
4353 /// ```
4354 pub fn set_instance_placement<T>(mut self, v: T) -> Self
4355 where
4356 T: std::convert::Into<crate::model::AwsInstancePlacement>,
4357 {
4358 self.instance_placement = std::option::Option::Some(v.into());
4359 self
4360 }
4361
4362 /// Sets or clears the value of [instance_placement][crate::model::AwsControlPlane::instance_placement].
4363 ///
4364 /// # Example
4365 /// ```ignore,no_run
4366 /// # use google_cloud_gkemulticloud_v1::model::AwsControlPlane;
4367 /// use google_cloud_gkemulticloud_v1::model::AwsInstancePlacement;
4368 /// let x = AwsControlPlane::new().set_or_clear_instance_placement(Some(AwsInstancePlacement::default()/* use setters */));
4369 /// let x = AwsControlPlane::new().set_or_clear_instance_placement(None::<AwsInstancePlacement>);
4370 /// ```
4371 pub fn set_or_clear_instance_placement<T>(mut self, v: std::option::Option<T>) -> Self
4372 where
4373 T: std::convert::Into<crate::model::AwsInstancePlacement>,
4374 {
4375 self.instance_placement = v.map(|x| x.into());
4376 self
4377 }
4378}
4379
4380impl wkt::message::Message for AwsControlPlane {
4381 fn typename() -> &'static str {
4382 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsControlPlane"
4383 }
4384}
4385
4386/// Authentication configuration for the management of AWS resources.
4387#[derive(Clone, Default, PartialEq)]
4388#[non_exhaustive]
4389#[deprecated]
4390pub struct AwsServicesAuthentication {
4391 /// Required. The Amazon Resource Name (ARN) of the role that the Anthos
4392 /// Multi-Cloud API will assume when managing AWS resources on your account.
4393 pub role_arn: std::string::String,
4394
4395 /// Optional. An identifier for the assumed role session.
4396 ///
4397 /// When unspecified, it defaults to `multicloud-service-agent`.
4398 pub role_session_name: std::string::String,
4399
4400 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4401}
4402
4403impl AwsServicesAuthentication {
4404 pub fn new() -> Self {
4405 std::default::Default::default()
4406 }
4407
4408 /// Sets the value of [role_arn][crate::model::AwsServicesAuthentication::role_arn].
4409 ///
4410 /// # Example
4411 /// ```ignore,no_run
4412 /// # use google_cloud_gkemulticloud_v1::model::AwsServicesAuthentication;
4413 /// let x = AwsServicesAuthentication::new().set_role_arn("example");
4414 /// ```
4415 pub fn set_role_arn<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4416 self.role_arn = v.into();
4417 self
4418 }
4419
4420 /// Sets the value of [role_session_name][crate::model::AwsServicesAuthentication::role_session_name].
4421 ///
4422 /// # Example
4423 /// ```ignore,no_run
4424 /// # use google_cloud_gkemulticloud_v1::model::AwsServicesAuthentication;
4425 /// let x = AwsServicesAuthentication::new().set_role_session_name("example");
4426 /// ```
4427 pub fn set_role_session_name<T: std::convert::Into<std::string::String>>(
4428 mut self,
4429 v: T,
4430 ) -> Self {
4431 self.role_session_name = v.into();
4432 self
4433 }
4434}
4435
4436impl wkt::message::Message for AwsServicesAuthentication {
4437 fn typename() -> &'static str {
4438 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsServicesAuthentication"
4439 }
4440}
4441
4442/// Configuration related to the cluster RBAC settings.
4443#[derive(Clone, Default, PartialEq)]
4444#[non_exhaustive]
4445#[deprecated]
4446pub struct AwsAuthorization {
4447 /// Optional. Users that can perform operations as a cluster admin. A managed
4448 /// ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole
4449 /// to the users. Up to ten admin users can be provided.
4450 ///
4451 /// For more info on RBAC, see
4452 /// <https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles>
4453 pub admin_users: std::vec::Vec<crate::model::AwsClusterUser>,
4454
4455 /// Optional. Groups of users that can perform operations as a cluster admin. A
4456 /// managed ClusterRoleBinding will be created to grant the `cluster-admin`
4457 /// ClusterRole to the groups. Up to ten admin groups can be provided.
4458 ///
4459 /// For more info on RBAC, see
4460 /// <https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles>
4461 pub admin_groups: std::vec::Vec<crate::model::AwsClusterGroup>,
4462
4463 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4464}
4465
4466impl AwsAuthorization {
4467 pub fn new() -> Self {
4468 std::default::Default::default()
4469 }
4470
4471 /// Sets the value of [admin_users][crate::model::AwsAuthorization::admin_users].
4472 ///
4473 /// # Example
4474 /// ```ignore,no_run
4475 /// # use google_cloud_gkemulticloud_v1::model::AwsAuthorization;
4476 /// use google_cloud_gkemulticloud_v1::model::AwsClusterUser;
4477 /// let x = AwsAuthorization::new()
4478 /// .set_admin_users([
4479 /// AwsClusterUser::default()/* use setters */,
4480 /// AwsClusterUser::default()/* use (different) setters */,
4481 /// ]);
4482 /// ```
4483 pub fn set_admin_users<T, V>(mut self, v: T) -> Self
4484 where
4485 T: std::iter::IntoIterator<Item = V>,
4486 V: std::convert::Into<crate::model::AwsClusterUser>,
4487 {
4488 use std::iter::Iterator;
4489 self.admin_users = v.into_iter().map(|i| i.into()).collect();
4490 self
4491 }
4492
4493 /// Sets the value of [admin_groups][crate::model::AwsAuthorization::admin_groups].
4494 ///
4495 /// # Example
4496 /// ```ignore,no_run
4497 /// # use google_cloud_gkemulticloud_v1::model::AwsAuthorization;
4498 /// use google_cloud_gkemulticloud_v1::model::AwsClusterGroup;
4499 /// let x = AwsAuthorization::new()
4500 /// .set_admin_groups([
4501 /// AwsClusterGroup::default()/* use setters */,
4502 /// AwsClusterGroup::default()/* use (different) setters */,
4503 /// ]);
4504 /// ```
4505 pub fn set_admin_groups<T, V>(mut self, v: T) -> Self
4506 where
4507 T: std::iter::IntoIterator<Item = V>,
4508 V: std::convert::Into<crate::model::AwsClusterGroup>,
4509 {
4510 use std::iter::Iterator;
4511 self.admin_groups = v.into_iter().map(|i| i.into()).collect();
4512 self
4513 }
4514}
4515
4516impl wkt::message::Message for AwsAuthorization {
4517 fn typename() -> &'static str {
4518 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsAuthorization"
4519 }
4520}
4521
4522/// Identities of a user-type subject for AWS clusters.
4523#[derive(Clone, Default, PartialEq)]
4524#[non_exhaustive]
4525#[deprecated]
4526pub struct AwsClusterUser {
4527 /// Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
4528 pub username: std::string::String,
4529
4530 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4531}
4532
4533impl AwsClusterUser {
4534 pub fn new() -> Self {
4535 std::default::Default::default()
4536 }
4537
4538 /// Sets the value of [username][crate::model::AwsClusterUser::username].
4539 ///
4540 /// # Example
4541 /// ```ignore,no_run
4542 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterUser;
4543 /// let x = AwsClusterUser::new().set_username("example");
4544 /// ```
4545 pub fn set_username<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4546 self.username = v.into();
4547 self
4548 }
4549}
4550
4551impl wkt::message::Message for AwsClusterUser {
4552 fn typename() -> &'static str {
4553 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsClusterUser"
4554 }
4555}
4556
4557/// Identities of a group-type subject for AWS clusters.
4558#[derive(Clone, Default, PartialEq)]
4559#[non_exhaustive]
4560#[deprecated]
4561pub struct AwsClusterGroup {
4562 /// Required. The name of the group, e.g. `my-group@domain.com`.
4563 pub group: std::string::String,
4564
4565 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4566}
4567
4568impl AwsClusterGroup {
4569 pub fn new() -> Self {
4570 std::default::Default::default()
4571 }
4572
4573 /// Sets the value of [group][crate::model::AwsClusterGroup::group].
4574 ///
4575 /// # Example
4576 /// ```ignore,no_run
4577 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterGroup;
4578 /// let x = AwsClusterGroup::new().set_group("example");
4579 /// ```
4580 pub fn set_group<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4581 self.group = v.into();
4582 self
4583 }
4584}
4585
4586impl wkt::message::Message for AwsClusterGroup {
4587 fn typename() -> &'static str {
4588 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsClusterGroup"
4589 }
4590}
4591
4592/// Configuration related to application-layer secrets encryption.
4593#[derive(Clone, Default, PartialEq)]
4594#[non_exhaustive]
4595#[deprecated]
4596pub struct AwsDatabaseEncryption {
4597 /// Required. The ARN of the AWS KMS key used to encrypt cluster secrets.
4598 pub kms_key_arn: std::string::String,
4599
4600 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4601}
4602
4603impl AwsDatabaseEncryption {
4604 pub fn new() -> Self {
4605 std::default::Default::default()
4606 }
4607
4608 /// Sets the value of [kms_key_arn][crate::model::AwsDatabaseEncryption::kms_key_arn].
4609 ///
4610 /// # Example
4611 /// ```ignore,no_run
4612 /// # use google_cloud_gkemulticloud_v1::model::AwsDatabaseEncryption;
4613 /// let x = AwsDatabaseEncryption::new().set_kms_key_arn("example");
4614 /// ```
4615 pub fn set_kms_key_arn<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4616 self.kms_key_arn = v.into();
4617 self
4618 }
4619}
4620
4621impl wkt::message::Message for AwsDatabaseEncryption {
4622 fn typename() -> &'static str {
4623 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsDatabaseEncryption"
4624 }
4625}
4626
4627/// Configuration template for AWS EBS volumes.
4628#[derive(Clone, Default, PartialEq)]
4629#[non_exhaustive]
4630#[deprecated]
4631pub struct AwsVolumeTemplate {
4632 /// Optional. The size of the volume, in GiBs.
4633 ///
4634 /// When unspecified, a default value is provided. See the specific reference
4635 /// in the parent resource.
4636 pub size_gib: i32,
4637
4638 /// Optional. Type of the EBS volume.
4639 ///
4640 /// When unspecified, it defaults to GP2 volume.
4641 pub volume_type: crate::model::aws_volume_template::VolumeType,
4642
4643 /// Optional. The number of I/O operations per second (IOPS) to provision for
4644 /// GP3 volume.
4645 pub iops: i32,
4646
4647 /// Optional. The throughput that the volume supports, in MiB/s. Only valid if
4648 /// volume_type is GP3.
4649 ///
4650 /// If the volume_type is GP3 and this is not specified, it defaults to 125.
4651 pub throughput: i32,
4652
4653 /// Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK)
4654 /// used to encrypt AWS EBS volumes.
4655 ///
4656 /// If not specified, the default Amazon managed key associated to
4657 /// the AWS region where this cluster runs will be used.
4658 pub kms_key_arn: std::string::String,
4659
4660 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4661}
4662
4663impl AwsVolumeTemplate {
4664 pub fn new() -> Self {
4665 std::default::Default::default()
4666 }
4667
4668 /// Sets the value of [size_gib][crate::model::AwsVolumeTemplate::size_gib].
4669 ///
4670 /// # Example
4671 /// ```ignore,no_run
4672 /// # use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4673 /// let x = AwsVolumeTemplate::new().set_size_gib(42);
4674 /// ```
4675 pub fn set_size_gib<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
4676 self.size_gib = v.into();
4677 self
4678 }
4679
4680 /// Sets the value of [volume_type][crate::model::AwsVolumeTemplate::volume_type].
4681 ///
4682 /// # Example
4683 /// ```ignore,no_run
4684 /// # use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4685 /// use google_cloud_gkemulticloud_v1::model::aws_volume_template::VolumeType;
4686 /// let x0 = AwsVolumeTemplate::new().set_volume_type(VolumeType::Gp2);
4687 /// let x1 = AwsVolumeTemplate::new().set_volume_type(VolumeType::Gp3);
4688 /// ```
4689 pub fn set_volume_type<T: std::convert::Into<crate::model::aws_volume_template::VolumeType>>(
4690 mut self,
4691 v: T,
4692 ) -> Self {
4693 self.volume_type = v.into();
4694 self
4695 }
4696
4697 /// Sets the value of [iops][crate::model::AwsVolumeTemplate::iops].
4698 ///
4699 /// # Example
4700 /// ```ignore,no_run
4701 /// # use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4702 /// let x = AwsVolumeTemplate::new().set_iops(42);
4703 /// ```
4704 pub fn set_iops<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
4705 self.iops = v.into();
4706 self
4707 }
4708
4709 /// Sets the value of [throughput][crate::model::AwsVolumeTemplate::throughput].
4710 ///
4711 /// # Example
4712 /// ```ignore,no_run
4713 /// # use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4714 /// let x = AwsVolumeTemplate::new().set_throughput(42);
4715 /// ```
4716 pub fn set_throughput<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
4717 self.throughput = v.into();
4718 self
4719 }
4720
4721 /// Sets the value of [kms_key_arn][crate::model::AwsVolumeTemplate::kms_key_arn].
4722 ///
4723 /// # Example
4724 /// ```ignore,no_run
4725 /// # use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
4726 /// let x = AwsVolumeTemplate::new().set_kms_key_arn("example");
4727 /// ```
4728 pub fn set_kms_key_arn<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4729 self.kms_key_arn = v.into();
4730 self
4731 }
4732}
4733
4734impl wkt::message::Message for AwsVolumeTemplate {
4735 fn typename() -> &'static str {
4736 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsVolumeTemplate"
4737 }
4738}
4739
4740/// Defines additional types related to [AwsVolumeTemplate].
4741pub mod aws_volume_template {
4742 #[allow(unused_imports)]
4743 use super::*;
4744
4745 /// Types of supported EBS volumes. We currently only support GP2 or GP3
4746 /// volumes.
4747 /// See <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html>
4748 /// for more information.
4749 ///
4750 /// # Working with unknown values
4751 ///
4752 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
4753 /// additional enum variants at any time. Adding new variants is not considered
4754 /// a breaking change. Applications should write their code in anticipation of:
4755 ///
4756 /// - New values appearing in future releases of the client library, **and**
4757 /// - New values received dynamically, without application changes.
4758 ///
4759 /// Please consult the [Working with enums] section in the user guide for some
4760 /// guidelines.
4761 ///
4762 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
4763 #[derive(Clone, Debug, PartialEq)]
4764 #[non_exhaustive]
4765 pub enum VolumeType {
4766 /// Not set.
4767 Unspecified,
4768 /// GP2 (General Purpose SSD volume type).
4769 Gp2,
4770 /// GP3 (General Purpose SSD volume type).
4771 Gp3,
4772 /// If set, the enum was initialized with an unknown value.
4773 ///
4774 /// Applications can examine the value using [VolumeType::value] or
4775 /// [VolumeType::name].
4776 UnknownValue(volume_type::UnknownValue),
4777 }
4778
4779 #[doc(hidden)]
4780 pub mod volume_type {
4781 #[allow(unused_imports)]
4782 use super::*;
4783 #[derive(Clone, Debug, PartialEq)]
4784 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
4785 }
4786
4787 impl VolumeType {
4788 /// Gets the enum value.
4789 ///
4790 /// Returns `None` if the enum contains an unknown value deserialized from
4791 /// the string representation of enums.
4792 pub fn value(&self) -> std::option::Option<i32> {
4793 match self {
4794 Self::Unspecified => std::option::Option::Some(0),
4795 Self::Gp2 => std::option::Option::Some(1),
4796 Self::Gp3 => std::option::Option::Some(2),
4797 Self::UnknownValue(u) => u.0.value(),
4798 }
4799 }
4800
4801 /// Gets the enum value as a string.
4802 ///
4803 /// Returns `None` if the enum contains an unknown value deserialized from
4804 /// the integer representation of enums.
4805 pub fn name(&self) -> std::option::Option<&str> {
4806 match self {
4807 Self::Unspecified => std::option::Option::Some("VOLUME_TYPE_UNSPECIFIED"),
4808 Self::Gp2 => std::option::Option::Some("GP2"),
4809 Self::Gp3 => std::option::Option::Some("GP3"),
4810 Self::UnknownValue(u) => u.0.name(),
4811 }
4812 }
4813 }
4814
4815 impl std::default::Default for VolumeType {
4816 fn default() -> Self {
4817 use std::convert::From;
4818 Self::from(0)
4819 }
4820 }
4821
4822 impl std::fmt::Display for VolumeType {
4823 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
4824 wkt::internal::display_enum(f, self.name(), self.value())
4825 }
4826 }
4827
4828 impl std::convert::From<i32> for VolumeType {
4829 fn from(value: i32) -> Self {
4830 match value {
4831 0 => Self::Unspecified,
4832 1 => Self::Gp2,
4833 2 => Self::Gp3,
4834 _ => Self::UnknownValue(volume_type::UnknownValue(
4835 wkt::internal::UnknownEnumValue::Integer(value),
4836 )),
4837 }
4838 }
4839 }
4840
4841 impl std::convert::From<&str> for VolumeType {
4842 fn from(value: &str) -> Self {
4843 use std::string::ToString;
4844 match value {
4845 "VOLUME_TYPE_UNSPECIFIED" => Self::Unspecified,
4846 "GP2" => Self::Gp2,
4847 "GP3" => Self::Gp3,
4848 _ => Self::UnknownValue(volume_type::UnknownValue(
4849 wkt::internal::UnknownEnumValue::String(value.to_string()),
4850 )),
4851 }
4852 }
4853 }
4854
4855 impl serde::ser::Serialize for VolumeType {
4856 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4857 where
4858 S: serde::Serializer,
4859 {
4860 match self {
4861 Self::Unspecified => serializer.serialize_i32(0),
4862 Self::Gp2 => serializer.serialize_i32(1),
4863 Self::Gp3 => serializer.serialize_i32(2),
4864 Self::UnknownValue(u) => u.0.serialize(serializer),
4865 }
4866 }
4867 }
4868
4869 impl<'de> serde::de::Deserialize<'de> for VolumeType {
4870 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4871 where
4872 D: serde::Deserializer<'de>,
4873 {
4874 deserializer.deserialize_any(wkt::internal::EnumVisitor::<VolumeType>::new(
4875 ".google.cloud.gkemulticloud.v1.AwsVolumeTemplate.VolumeType",
4876 ))
4877 }
4878 }
4879}
4880
4881/// ClusterNetworking defines cluster-wide networking configuration.
4882///
4883/// Anthos clusters on AWS run on a single VPC. This includes control
4884/// plane replicas and node pool nodes.
4885#[derive(Clone, Default, PartialEq)]
4886#[non_exhaustive]
4887#[deprecated]
4888pub struct AwsClusterNetworking {
4889 /// Required. The VPC associated with the cluster. All component clusters
4890 /// (i.e. control plane and node pools) run on a single VPC.
4891 ///
4892 /// This field cannot be changed after creation.
4893 pub vpc_id: std::string::String,
4894
4895 /// Required. All pods in the cluster are assigned an IPv4 address from these
4896 /// ranges. Only a single range is supported. This field cannot be changed
4897 /// after creation.
4898 pub pod_address_cidr_blocks: std::vec::Vec<std::string::String>,
4899
4900 /// Required. All services in the cluster are assigned an IPv4 address from
4901 /// these ranges. Only a single range is supported. This field cannot be
4902 /// changed after creation.
4903 pub service_address_cidr_blocks: std::vec::Vec<std::string::String>,
4904
4905 /// Optional. Disable the per node pool subnet security group rules on the
4906 /// control plane security group. When set to true, you must also provide one
4907 /// or more security groups that ensure node pools are able to send requests to
4908 /// the control plane on TCP/443 and TCP/8132. Failure to do so may result in
4909 /// unavailable node pools.
4910 pub per_node_pool_sg_rules_disabled: bool,
4911
4912 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
4913}
4914
4915impl AwsClusterNetworking {
4916 pub fn new() -> Self {
4917 std::default::Default::default()
4918 }
4919
4920 /// Sets the value of [vpc_id][crate::model::AwsClusterNetworking::vpc_id].
4921 ///
4922 /// # Example
4923 /// ```ignore,no_run
4924 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterNetworking;
4925 /// let x = AwsClusterNetworking::new().set_vpc_id("example");
4926 /// ```
4927 pub fn set_vpc_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
4928 self.vpc_id = v.into();
4929 self
4930 }
4931
4932 /// Sets the value of [pod_address_cidr_blocks][crate::model::AwsClusterNetworking::pod_address_cidr_blocks].
4933 ///
4934 /// # Example
4935 /// ```ignore,no_run
4936 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterNetworking;
4937 /// let x = AwsClusterNetworking::new().set_pod_address_cidr_blocks(["a", "b", "c"]);
4938 /// ```
4939 pub fn set_pod_address_cidr_blocks<T, V>(mut self, v: T) -> Self
4940 where
4941 T: std::iter::IntoIterator<Item = V>,
4942 V: std::convert::Into<std::string::String>,
4943 {
4944 use std::iter::Iterator;
4945 self.pod_address_cidr_blocks = v.into_iter().map(|i| i.into()).collect();
4946 self
4947 }
4948
4949 /// Sets the value of [service_address_cidr_blocks][crate::model::AwsClusterNetworking::service_address_cidr_blocks].
4950 ///
4951 /// # Example
4952 /// ```ignore,no_run
4953 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterNetworking;
4954 /// let x = AwsClusterNetworking::new().set_service_address_cidr_blocks(["a", "b", "c"]);
4955 /// ```
4956 pub fn set_service_address_cidr_blocks<T, V>(mut self, v: T) -> Self
4957 where
4958 T: std::iter::IntoIterator<Item = V>,
4959 V: std::convert::Into<std::string::String>,
4960 {
4961 use std::iter::Iterator;
4962 self.service_address_cidr_blocks = v.into_iter().map(|i| i.into()).collect();
4963 self
4964 }
4965
4966 /// Sets the value of [per_node_pool_sg_rules_disabled][crate::model::AwsClusterNetworking::per_node_pool_sg_rules_disabled].
4967 ///
4968 /// # Example
4969 /// ```ignore,no_run
4970 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterNetworking;
4971 /// let x = AwsClusterNetworking::new().set_per_node_pool_sg_rules_disabled(true);
4972 /// ```
4973 pub fn set_per_node_pool_sg_rules_disabled<T: std::convert::Into<bool>>(
4974 mut self,
4975 v: T,
4976 ) -> Self {
4977 self.per_node_pool_sg_rules_disabled = v.into();
4978 self
4979 }
4980}
4981
4982impl wkt::message::Message for AwsClusterNetworking {
4983 fn typename() -> &'static str {
4984 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsClusterNetworking"
4985 }
4986}
4987
4988/// An Anthos node pool running on AWS.
4989#[derive(Clone, Default, PartialEq)]
4990#[non_exhaustive]
4991#[deprecated]
4992pub struct AwsNodePool {
4993 /// The name of this resource.
4994 ///
4995 /// Node pool names are formatted as
4996 /// `projects/<project-number>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
4997 ///
4998 /// For more details on Google Cloud resource names,
4999 /// see [Resource Names](https://cloud.google.com/apis/design/resource_names)
5000 pub name: std::string::String,
5001
5002 /// Required. The Kubernetes version to run on this node pool (e.g.
5003 /// `1.19.10-gke.1000`).
5004 ///
5005 /// You can list all supported versions on a given Google Cloud region by
5006 /// calling
5007 /// [GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig].
5008 ///
5009 /// [google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig]: crate::client::AwsClusters::get_aws_server_config
5010 pub version: std::string::String,
5011
5012 /// Required. The configuration of the node pool.
5013 pub config: std::option::Option<crate::model::AwsNodeConfig>,
5014
5015 /// Required. Autoscaler configuration for this node pool.
5016 pub autoscaling: std::option::Option<crate::model::AwsNodePoolAutoscaling>,
5017
5018 /// Required. The subnet where the node pool node run.
5019 pub subnet_id: std::string::String,
5020
5021 /// Output only. The lifecycle state of the node pool.
5022 pub state: crate::model::aws_node_pool::State,
5023
5024 /// Output only. A globally unique identifier for the node pool.
5025 pub uid: std::string::String,
5026
5027 /// Output only. If set, there are currently changes in flight to the node
5028 /// pool.
5029 pub reconciling: bool,
5030
5031 /// Output only. The time at which this node pool was created.
5032 pub create_time: std::option::Option<wkt::Timestamp>,
5033
5034 /// Output only. The time at which this node pool was last updated.
5035 pub update_time: std::option::Option<wkt::Timestamp>,
5036
5037 /// Allows clients to perform consistent read-modify-writes
5038 /// through optimistic concurrency control.
5039 ///
5040 /// Can be sent on update and delete requests to ensure the
5041 /// client has an up-to-date value before proceeding.
5042 pub etag: std::string::String,
5043
5044 /// Optional. Annotations on the node pool.
5045 ///
5046 /// This field has the same restrictions as Kubernetes annotations.
5047 /// The total size of all keys and values combined is limited to 256k.
5048 /// Key can have 2 segments: prefix (optional) and name (required),
5049 /// separated by a slash (/).
5050 /// Prefix must be a DNS subdomain.
5051 /// Name must be 63 characters or less, begin and end with alphanumerics,
5052 /// with dashes (-), underscores (_), dots (.), and alphanumerics between.
5053 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
5054
5055 /// Required. The constraint on the maximum number of pods that can be run
5056 /// simultaneously on a node in the node pool.
5057 pub max_pods_constraint: std::option::Option<crate::model::MaxPodsConstraint>,
5058
5059 /// Output only. A set of errors found in the node pool.
5060 pub errors: std::vec::Vec<crate::model::AwsNodePoolError>,
5061
5062 /// Optional. The Management configuration for this node pool.
5063 pub management: std::option::Option<crate::model::AwsNodeManagement>,
5064
5065 /// Optional. Node kubelet configs.
5066 pub kubelet_config: std::option::Option<crate::model::NodeKubeletConfig>,
5067
5068 /// Optional. Update settings control the speed and disruption of the update.
5069 pub update_settings: std::option::Option<crate::model::UpdateSettings>,
5070
5071 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
5072}
5073
5074impl AwsNodePool {
5075 pub fn new() -> Self {
5076 std::default::Default::default()
5077 }
5078
5079 /// Sets the value of [name][crate::model::AwsNodePool::name].
5080 ///
5081 /// # Example
5082 /// ```ignore,no_run
5083 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5084 /// let x = AwsNodePool::new().set_name("example");
5085 /// ```
5086 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
5087 self.name = v.into();
5088 self
5089 }
5090
5091 /// Sets the value of [version][crate::model::AwsNodePool::version].
5092 ///
5093 /// # Example
5094 /// ```ignore,no_run
5095 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5096 /// let x = AwsNodePool::new().set_version("example");
5097 /// ```
5098 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
5099 self.version = v.into();
5100 self
5101 }
5102
5103 /// Sets the value of [config][crate::model::AwsNodePool::config].
5104 ///
5105 /// # Example
5106 /// ```ignore,no_run
5107 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5108 /// use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5109 /// let x = AwsNodePool::new().set_config(AwsNodeConfig::default()/* use setters */);
5110 /// ```
5111 pub fn set_config<T>(mut self, v: T) -> Self
5112 where
5113 T: std::convert::Into<crate::model::AwsNodeConfig>,
5114 {
5115 self.config = std::option::Option::Some(v.into());
5116 self
5117 }
5118
5119 /// Sets or clears the value of [config][crate::model::AwsNodePool::config].
5120 ///
5121 /// # Example
5122 /// ```ignore,no_run
5123 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5124 /// use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5125 /// let x = AwsNodePool::new().set_or_clear_config(Some(AwsNodeConfig::default()/* use setters */));
5126 /// let x = AwsNodePool::new().set_or_clear_config(None::<AwsNodeConfig>);
5127 /// ```
5128 pub fn set_or_clear_config<T>(mut self, v: std::option::Option<T>) -> Self
5129 where
5130 T: std::convert::Into<crate::model::AwsNodeConfig>,
5131 {
5132 self.config = v.map(|x| x.into());
5133 self
5134 }
5135
5136 /// Sets the value of [autoscaling][crate::model::AwsNodePool::autoscaling].
5137 ///
5138 /// # Example
5139 /// ```ignore,no_run
5140 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5141 /// use google_cloud_gkemulticloud_v1::model::AwsNodePoolAutoscaling;
5142 /// let x = AwsNodePool::new().set_autoscaling(AwsNodePoolAutoscaling::default()/* use setters */);
5143 /// ```
5144 pub fn set_autoscaling<T>(mut self, v: T) -> Self
5145 where
5146 T: std::convert::Into<crate::model::AwsNodePoolAutoscaling>,
5147 {
5148 self.autoscaling = std::option::Option::Some(v.into());
5149 self
5150 }
5151
5152 /// Sets or clears the value of [autoscaling][crate::model::AwsNodePool::autoscaling].
5153 ///
5154 /// # Example
5155 /// ```ignore,no_run
5156 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5157 /// use google_cloud_gkemulticloud_v1::model::AwsNodePoolAutoscaling;
5158 /// let x = AwsNodePool::new().set_or_clear_autoscaling(Some(AwsNodePoolAutoscaling::default()/* use setters */));
5159 /// let x = AwsNodePool::new().set_or_clear_autoscaling(None::<AwsNodePoolAutoscaling>);
5160 /// ```
5161 pub fn set_or_clear_autoscaling<T>(mut self, v: std::option::Option<T>) -> Self
5162 where
5163 T: std::convert::Into<crate::model::AwsNodePoolAutoscaling>,
5164 {
5165 self.autoscaling = v.map(|x| x.into());
5166 self
5167 }
5168
5169 /// Sets the value of [subnet_id][crate::model::AwsNodePool::subnet_id].
5170 ///
5171 /// # Example
5172 /// ```ignore,no_run
5173 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5174 /// let x = AwsNodePool::new().set_subnet_id("example");
5175 /// ```
5176 pub fn set_subnet_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
5177 self.subnet_id = v.into();
5178 self
5179 }
5180
5181 /// Sets the value of [state][crate::model::AwsNodePool::state].
5182 ///
5183 /// # Example
5184 /// ```ignore,no_run
5185 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5186 /// use google_cloud_gkemulticloud_v1::model::aws_node_pool::State;
5187 /// let x0 = AwsNodePool::new().set_state(State::Provisioning);
5188 /// let x1 = AwsNodePool::new().set_state(State::Running);
5189 /// let x2 = AwsNodePool::new().set_state(State::Reconciling);
5190 /// ```
5191 pub fn set_state<T: std::convert::Into<crate::model::aws_node_pool::State>>(
5192 mut self,
5193 v: T,
5194 ) -> Self {
5195 self.state = v.into();
5196 self
5197 }
5198
5199 /// Sets the value of [uid][crate::model::AwsNodePool::uid].
5200 ///
5201 /// # Example
5202 /// ```ignore,no_run
5203 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5204 /// let x = AwsNodePool::new().set_uid("example");
5205 /// ```
5206 pub fn set_uid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
5207 self.uid = v.into();
5208 self
5209 }
5210
5211 /// Sets the value of [reconciling][crate::model::AwsNodePool::reconciling].
5212 ///
5213 /// # Example
5214 /// ```ignore,no_run
5215 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5216 /// let x = AwsNodePool::new().set_reconciling(true);
5217 /// ```
5218 pub fn set_reconciling<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
5219 self.reconciling = v.into();
5220 self
5221 }
5222
5223 /// Sets the value of [create_time][crate::model::AwsNodePool::create_time].
5224 ///
5225 /// # Example
5226 /// ```ignore,no_run
5227 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5228 /// use wkt::Timestamp;
5229 /// let x = AwsNodePool::new().set_create_time(Timestamp::default()/* use setters */);
5230 /// ```
5231 pub fn set_create_time<T>(mut self, v: T) -> Self
5232 where
5233 T: std::convert::Into<wkt::Timestamp>,
5234 {
5235 self.create_time = std::option::Option::Some(v.into());
5236 self
5237 }
5238
5239 /// Sets or clears the value of [create_time][crate::model::AwsNodePool::create_time].
5240 ///
5241 /// # Example
5242 /// ```ignore,no_run
5243 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5244 /// use wkt::Timestamp;
5245 /// let x = AwsNodePool::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
5246 /// let x = AwsNodePool::new().set_or_clear_create_time(None::<Timestamp>);
5247 /// ```
5248 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
5249 where
5250 T: std::convert::Into<wkt::Timestamp>,
5251 {
5252 self.create_time = v.map(|x| x.into());
5253 self
5254 }
5255
5256 /// Sets the value of [update_time][crate::model::AwsNodePool::update_time].
5257 ///
5258 /// # Example
5259 /// ```ignore,no_run
5260 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5261 /// use wkt::Timestamp;
5262 /// let x = AwsNodePool::new().set_update_time(Timestamp::default()/* use setters */);
5263 /// ```
5264 pub fn set_update_time<T>(mut self, v: T) -> Self
5265 where
5266 T: std::convert::Into<wkt::Timestamp>,
5267 {
5268 self.update_time = std::option::Option::Some(v.into());
5269 self
5270 }
5271
5272 /// Sets or clears the value of [update_time][crate::model::AwsNodePool::update_time].
5273 ///
5274 /// # Example
5275 /// ```ignore,no_run
5276 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5277 /// use wkt::Timestamp;
5278 /// let x = AwsNodePool::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
5279 /// let x = AwsNodePool::new().set_or_clear_update_time(None::<Timestamp>);
5280 /// ```
5281 pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
5282 where
5283 T: std::convert::Into<wkt::Timestamp>,
5284 {
5285 self.update_time = v.map(|x| x.into());
5286 self
5287 }
5288
5289 /// Sets the value of [etag][crate::model::AwsNodePool::etag].
5290 ///
5291 /// # Example
5292 /// ```ignore,no_run
5293 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5294 /// let x = AwsNodePool::new().set_etag("example");
5295 /// ```
5296 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
5297 self.etag = v.into();
5298 self
5299 }
5300
5301 /// Sets the value of [annotations][crate::model::AwsNodePool::annotations].
5302 ///
5303 /// # Example
5304 /// ```ignore,no_run
5305 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5306 /// let x = AwsNodePool::new().set_annotations([
5307 /// ("key0", "abc"),
5308 /// ("key1", "xyz"),
5309 /// ]);
5310 /// ```
5311 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
5312 where
5313 T: std::iter::IntoIterator<Item = (K, V)>,
5314 K: std::convert::Into<std::string::String>,
5315 V: std::convert::Into<std::string::String>,
5316 {
5317 use std::iter::Iterator;
5318 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
5319 self
5320 }
5321
5322 /// Sets the value of [max_pods_constraint][crate::model::AwsNodePool::max_pods_constraint].
5323 ///
5324 /// # Example
5325 /// ```ignore,no_run
5326 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5327 /// use google_cloud_gkemulticloud_v1::model::MaxPodsConstraint;
5328 /// let x = AwsNodePool::new().set_max_pods_constraint(MaxPodsConstraint::default()/* use setters */);
5329 /// ```
5330 pub fn set_max_pods_constraint<T>(mut self, v: T) -> Self
5331 where
5332 T: std::convert::Into<crate::model::MaxPodsConstraint>,
5333 {
5334 self.max_pods_constraint = std::option::Option::Some(v.into());
5335 self
5336 }
5337
5338 /// Sets or clears the value of [max_pods_constraint][crate::model::AwsNodePool::max_pods_constraint].
5339 ///
5340 /// # Example
5341 /// ```ignore,no_run
5342 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5343 /// use google_cloud_gkemulticloud_v1::model::MaxPodsConstraint;
5344 /// let x = AwsNodePool::new().set_or_clear_max_pods_constraint(Some(MaxPodsConstraint::default()/* use setters */));
5345 /// let x = AwsNodePool::new().set_or_clear_max_pods_constraint(None::<MaxPodsConstraint>);
5346 /// ```
5347 pub fn set_or_clear_max_pods_constraint<T>(mut self, v: std::option::Option<T>) -> Self
5348 where
5349 T: std::convert::Into<crate::model::MaxPodsConstraint>,
5350 {
5351 self.max_pods_constraint = v.map(|x| x.into());
5352 self
5353 }
5354
5355 /// Sets the value of [errors][crate::model::AwsNodePool::errors].
5356 ///
5357 /// # Example
5358 /// ```ignore,no_run
5359 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5360 /// use google_cloud_gkemulticloud_v1::model::AwsNodePoolError;
5361 /// let x = AwsNodePool::new()
5362 /// .set_errors([
5363 /// AwsNodePoolError::default()/* use setters */,
5364 /// AwsNodePoolError::default()/* use (different) setters */,
5365 /// ]);
5366 /// ```
5367 pub fn set_errors<T, V>(mut self, v: T) -> Self
5368 where
5369 T: std::iter::IntoIterator<Item = V>,
5370 V: std::convert::Into<crate::model::AwsNodePoolError>,
5371 {
5372 use std::iter::Iterator;
5373 self.errors = v.into_iter().map(|i| i.into()).collect();
5374 self
5375 }
5376
5377 /// Sets the value of [management][crate::model::AwsNodePool::management].
5378 ///
5379 /// # Example
5380 /// ```ignore,no_run
5381 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5382 /// use google_cloud_gkemulticloud_v1::model::AwsNodeManagement;
5383 /// let x = AwsNodePool::new().set_management(AwsNodeManagement::default()/* use setters */);
5384 /// ```
5385 pub fn set_management<T>(mut self, v: T) -> Self
5386 where
5387 T: std::convert::Into<crate::model::AwsNodeManagement>,
5388 {
5389 self.management = std::option::Option::Some(v.into());
5390 self
5391 }
5392
5393 /// Sets or clears the value of [management][crate::model::AwsNodePool::management].
5394 ///
5395 /// # Example
5396 /// ```ignore,no_run
5397 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5398 /// use google_cloud_gkemulticloud_v1::model::AwsNodeManagement;
5399 /// let x = AwsNodePool::new().set_or_clear_management(Some(AwsNodeManagement::default()/* use setters */));
5400 /// let x = AwsNodePool::new().set_or_clear_management(None::<AwsNodeManagement>);
5401 /// ```
5402 pub fn set_or_clear_management<T>(mut self, v: std::option::Option<T>) -> Self
5403 where
5404 T: std::convert::Into<crate::model::AwsNodeManagement>,
5405 {
5406 self.management = v.map(|x| x.into());
5407 self
5408 }
5409
5410 /// Sets the value of [kubelet_config][crate::model::AwsNodePool::kubelet_config].
5411 ///
5412 /// # Example
5413 /// ```ignore,no_run
5414 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5415 /// use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
5416 /// let x = AwsNodePool::new().set_kubelet_config(NodeKubeletConfig::default()/* use setters */);
5417 /// ```
5418 pub fn set_kubelet_config<T>(mut self, v: T) -> Self
5419 where
5420 T: std::convert::Into<crate::model::NodeKubeletConfig>,
5421 {
5422 self.kubelet_config = std::option::Option::Some(v.into());
5423 self
5424 }
5425
5426 /// Sets or clears the value of [kubelet_config][crate::model::AwsNodePool::kubelet_config].
5427 ///
5428 /// # Example
5429 /// ```ignore,no_run
5430 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5431 /// use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
5432 /// let x = AwsNodePool::new().set_or_clear_kubelet_config(Some(NodeKubeletConfig::default()/* use setters */));
5433 /// let x = AwsNodePool::new().set_or_clear_kubelet_config(None::<NodeKubeletConfig>);
5434 /// ```
5435 pub fn set_or_clear_kubelet_config<T>(mut self, v: std::option::Option<T>) -> Self
5436 where
5437 T: std::convert::Into<crate::model::NodeKubeletConfig>,
5438 {
5439 self.kubelet_config = v.map(|x| x.into());
5440 self
5441 }
5442
5443 /// Sets the value of [update_settings][crate::model::AwsNodePool::update_settings].
5444 ///
5445 /// # Example
5446 /// ```ignore,no_run
5447 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5448 /// use google_cloud_gkemulticloud_v1::model::UpdateSettings;
5449 /// let x = AwsNodePool::new().set_update_settings(UpdateSettings::default()/* use setters */);
5450 /// ```
5451 pub fn set_update_settings<T>(mut self, v: T) -> Self
5452 where
5453 T: std::convert::Into<crate::model::UpdateSettings>,
5454 {
5455 self.update_settings = std::option::Option::Some(v.into());
5456 self
5457 }
5458
5459 /// Sets or clears the value of [update_settings][crate::model::AwsNodePool::update_settings].
5460 ///
5461 /// # Example
5462 /// ```ignore,no_run
5463 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePool;
5464 /// use google_cloud_gkemulticloud_v1::model::UpdateSettings;
5465 /// let x = AwsNodePool::new().set_or_clear_update_settings(Some(UpdateSettings::default()/* use setters */));
5466 /// let x = AwsNodePool::new().set_or_clear_update_settings(None::<UpdateSettings>);
5467 /// ```
5468 pub fn set_or_clear_update_settings<T>(mut self, v: std::option::Option<T>) -> Self
5469 where
5470 T: std::convert::Into<crate::model::UpdateSettings>,
5471 {
5472 self.update_settings = v.map(|x| x.into());
5473 self
5474 }
5475}
5476
5477impl wkt::message::Message for AwsNodePool {
5478 fn typename() -> &'static str {
5479 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsNodePool"
5480 }
5481}
5482
5483/// Defines additional types related to [AwsNodePool].
5484pub mod aws_node_pool {
5485 #[allow(unused_imports)]
5486 use super::*;
5487
5488 /// The lifecycle state of the node pool.
5489 ///
5490 /// # Working with unknown values
5491 ///
5492 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
5493 /// additional enum variants at any time. Adding new variants is not considered
5494 /// a breaking change. Applications should write their code in anticipation of:
5495 ///
5496 /// - New values appearing in future releases of the client library, **and**
5497 /// - New values received dynamically, without application changes.
5498 ///
5499 /// Please consult the [Working with enums] section in the user guide for some
5500 /// guidelines.
5501 ///
5502 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
5503 #[derive(Clone, Debug, PartialEq)]
5504 #[non_exhaustive]
5505 pub enum State {
5506 /// Not set.
5507 Unspecified,
5508 /// The PROVISIONING state indicates the node pool is being created.
5509 Provisioning,
5510 /// The RUNNING state indicates the node pool has been created
5511 /// and is fully usable.
5512 Running,
5513 /// The RECONCILING state indicates that the node pool is being reconciled.
5514 Reconciling,
5515 /// The STOPPING state indicates the node pool is being deleted.
5516 Stopping,
5517 /// The ERROR state indicates the node pool is in a broken unrecoverable
5518 /// state.
5519 Error,
5520 /// The DEGRADED state indicates the node pool requires user action to
5521 /// restore full functionality.
5522 Degraded,
5523 /// If set, the enum was initialized with an unknown value.
5524 ///
5525 /// Applications can examine the value using [State::value] or
5526 /// [State::name].
5527 UnknownValue(state::UnknownValue),
5528 }
5529
5530 #[doc(hidden)]
5531 pub mod state {
5532 #[allow(unused_imports)]
5533 use super::*;
5534 #[derive(Clone, Debug, PartialEq)]
5535 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
5536 }
5537
5538 impl State {
5539 /// Gets the enum value.
5540 ///
5541 /// Returns `None` if the enum contains an unknown value deserialized from
5542 /// the string representation of enums.
5543 pub fn value(&self) -> std::option::Option<i32> {
5544 match self {
5545 Self::Unspecified => std::option::Option::Some(0),
5546 Self::Provisioning => std::option::Option::Some(1),
5547 Self::Running => std::option::Option::Some(2),
5548 Self::Reconciling => std::option::Option::Some(3),
5549 Self::Stopping => std::option::Option::Some(4),
5550 Self::Error => std::option::Option::Some(5),
5551 Self::Degraded => std::option::Option::Some(6),
5552 Self::UnknownValue(u) => u.0.value(),
5553 }
5554 }
5555
5556 /// Gets the enum value as a string.
5557 ///
5558 /// Returns `None` if the enum contains an unknown value deserialized from
5559 /// the integer representation of enums.
5560 pub fn name(&self) -> std::option::Option<&str> {
5561 match self {
5562 Self::Unspecified => std::option::Option::Some("STATE_UNSPECIFIED"),
5563 Self::Provisioning => std::option::Option::Some("PROVISIONING"),
5564 Self::Running => std::option::Option::Some("RUNNING"),
5565 Self::Reconciling => std::option::Option::Some("RECONCILING"),
5566 Self::Stopping => std::option::Option::Some("STOPPING"),
5567 Self::Error => std::option::Option::Some("ERROR"),
5568 Self::Degraded => std::option::Option::Some("DEGRADED"),
5569 Self::UnknownValue(u) => u.0.name(),
5570 }
5571 }
5572 }
5573
5574 impl std::default::Default for State {
5575 fn default() -> Self {
5576 use std::convert::From;
5577 Self::from(0)
5578 }
5579 }
5580
5581 impl std::fmt::Display for State {
5582 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
5583 wkt::internal::display_enum(f, self.name(), self.value())
5584 }
5585 }
5586
5587 impl std::convert::From<i32> for State {
5588 fn from(value: i32) -> Self {
5589 match value {
5590 0 => Self::Unspecified,
5591 1 => Self::Provisioning,
5592 2 => Self::Running,
5593 3 => Self::Reconciling,
5594 4 => Self::Stopping,
5595 5 => Self::Error,
5596 6 => Self::Degraded,
5597 _ => Self::UnknownValue(state::UnknownValue(
5598 wkt::internal::UnknownEnumValue::Integer(value),
5599 )),
5600 }
5601 }
5602 }
5603
5604 impl std::convert::From<&str> for State {
5605 fn from(value: &str) -> Self {
5606 use std::string::ToString;
5607 match value {
5608 "STATE_UNSPECIFIED" => Self::Unspecified,
5609 "PROVISIONING" => Self::Provisioning,
5610 "RUNNING" => Self::Running,
5611 "RECONCILING" => Self::Reconciling,
5612 "STOPPING" => Self::Stopping,
5613 "ERROR" => Self::Error,
5614 "DEGRADED" => Self::Degraded,
5615 _ => Self::UnknownValue(state::UnknownValue(
5616 wkt::internal::UnknownEnumValue::String(value.to_string()),
5617 )),
5618 }
5619 }
5620 }
5621
5622 impl serde::ser::Serialize for State {
5623 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5624 where
5625 S: serde::Serializer,
5626 {
5627 match self {
5628 Self::Unspecified => serializer.serialize_i32(0),
5629 Self::Provisioning => serializer.serialize_i32(1),
5630 Self::Running => serializer.serialize_i32(2),
5631 Self::Reconciling => serializer.serialize_i32(3),
5632 Self::Stopping => serializer.serialize_i32(4),
5633 Self::Error => serializer.serialize_i32(5),
5634 Self::Degraded => serializer.serialize_i32(6),
5635 Self::UnknownValue(u) => u.0.serialize(serializer),
5636 }
5637 }
5638 }
5639
5640 impl<'de> serde::de::Deserialize<'de> for State {
5641 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5642 where
5643 D: serde::Deserializer<'de>,
5644 {
5645 deserializer.deserialize_any(wkt::internal::EnumVisitor::<State>::new(
5646 ".google.cloud.gkemulticloud.v1.AwsNodePool.State",
5647 ))
5648 }
5649 }
5650}
5651
5652/// UpdateSettings control the level of parallelism and the level of
5653/// disruption caused during the update of a node pool.
5654///
5655/// These settings are applicable when the node pool update requires replacing
5656/// the existing node pool nodes with the updated ones.
5657///
5658/// UpdateSettings are optional. When UpdateSettings are not specified during the
5659/// node pool creation, a default is chosen based on the parent cluster's
5660/// version. For clusters with minor version 1.27 and later, a default
5661/// surge_settings configuration with max_surge = 1 and max_unavailable = 0 is
5662/// used. For clusters with older versions, node pool updates use the traditional
5663/// rolling update mechanism of updating one node at a time in a
5664/// "terminate before create" fashion and update_settings is not applicable.
5665///
5666/// Set the surge_settings parameter to use the Surge Update mechanism for
5667/// the rolling update of node pool nodes.
5668///
5669/// 1. max_surge controls the number of additional nodes that can be created
5670/// beyond the current size of the node pool temporarily for the time of the
5671/// update to increase the number of available nodes.
5672/// 1. max_unavailable controls the number of nodes that can be simultaneously
5673/// unavailable during the update.
5674/// 1. (max_surge + max_unavailable) determines the level of parallelism (i.e.,
5675/// the number of nodes being updated at the same time).
5676#[derive(Clone, Default, PartialEq)]
5677#[non_exhaustive]
5678#[deprecated]
5679pub struct UpdateSettings {
5680 /// Optional. Settings for surge update.
5681 pub surge_settings: std::option::Option<crate::model::SurgeSettings>,
5682
5683 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
5684}
5685
5686impl UpdateSettings {
5687 pub fn new() -> Self {
5688 std::default::Default::default()
5689 }
5690
5691 /// Sets the value of [surge_settings][crate::model::UpdateSettings::surge_settings].
5692 ///
5693 /// # Example
5694 /// ```ignore,no_run
5695 /// # use google_cloud_gkemulticloud_v1::model::UpdateSettings;
5696 /// use google_cloud_gkemulticloud_v1::model::SurgeSettings;
5697 /// let x = UpdateSettings::new().set_surge_settings(SurgeSettings::default()/* use setters */);
5698 /// ```
5699 pub fn set_surge_settings<T>(mut self, v: T) -> Self
5700 where
5701 T: std::convert::Into<crate::model::SurgeSettings>,
5702 {
5703 self.surge_settings = std::option::Option::Some(v.into());
5704 self
5705 }
5706
5707 /// Sets or clears the value of [surge_settings][crate::model::UpdateSettings::surge_settings].
5708 ///
5709 /// # Example
5710 /// ```ignore,no_run
5711 /// # use google_cloud_gkemulticloud_v1::model::UpdateSettings;
5712 /// use google_cloud_gkemulticloud_v1::model::SurgeSettings;
5713 /// let x = UpdateSettings::new().set_or_clear_surge_settings(Some(SurgeSettings::default()/* use setters */));
5714 /// let x = UpdateSettings::new().set_or_clear_surge_settings(None::<SurgeSettings>);
5715 /// ```
5716 pub fn set_or_clear_surge_settings<T>(mut self, v: std::option::Option<T>) -> Self
5717 where
5718 T: std::convert::Into<crate::model::SurgeSettings>,
5719 {
5720 self.surge_settings = v.map(|x| x.into());
5721 self
5722 }
5723}
5724
5725impl wkt::message::Message for UpdateSettings {
5726 fn typename() -> &'static str {
5727 "type.googleapis.com/google.cloud.gkemulticloud.v1.UpdateSettings"
5728 }
5729}
5730
5731/// SurgeSettings contains the parameters for Surge update.
5732#[derive(Clone, Default, PartialEq)]
5733#[non_exhaustive]
5734#[deprecated]
5735pub struct SurgeSettings {
5736 /// Optional. The maximum number of nodes that can be created beyond the
5737 /// current size of the node pool during the update process.
5738 pub max_surge: i32,
5739
5740 /// Optional. The maximum number of nodes that can be simultaneously
5741 /// unavailable during the update process. A node is considered unavailable if
5742 /// its status is not Ready.
5743 pub max_unavailable: i32,
5744
5745 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
5746}
5747
5748impl SurgeSettings {
5749 pub fn new() -> Self {
5750 std::default::Default::default()
5751 }
5752
5753 /// Sets the value of [max_surge][crate::model::SurgeSettings::max_surge].
5754 ///
5755 /// # Example
5756 /// ```ignore,no_run
5757 /// # use google_cloud_gkemulticloud_v1::model::SurgeSettings;
5758 /// let x = SurgeSettings::new().set_max_surge(42);
5759 /// ```
5760 pub fn set_max_surge<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
5761 self.max_surge = v.into();
5762 self
5763 }
5764
5765 /// Sets the value of [max_unavailable][crate::model::SurgeSettings::max_unavailable].
5766 ///
5767 /// # Example
5768 /// ```ignore,no_run
5769 /// # use google_cloud_gkemulticloud_v1::model::SurgeSettings;
5770 /// let x = SurgeSettings::new().set_max_unavailable(42);
5771 /// ```
5772 pub fn set_max_unavailable<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
5773 self.max_unavailable = v.into();
5774 self
5775 }
5776}
5777
5778impl wkt::message::Message for SurgeSettings {
5779 fn typename() -> &'static str {
5780 "type.googleapis.com/google.cloud.gkemulticloud.v1.SurgeSettings"
5781 }
5782}
5783
5784/// AwsNodeManagement defines the set of node management features turned on for
5785/// an AWS node pool.
5786#[derive(Clone, Default, PartialEq)]
5787#[non_exhaustive]
5788#[deprecated]
5789pub struct AwsNodeManagement {
5790 /// Optional. Whether or not the nodes will be automatically repaired. When set
5791 /// to true, the nodes in this node pool will be monitored and if they fail
5792 /// health checks consistently over a period of time, an automatic repair
5793 /// action will be triggered to replace them with new nodes.
5794 pub auto_repair: bool,
5795
5796 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
5797}
5798
5799impl AwsNodeManagement {
5800 pub fn new() -> Self {
5801 std::default::Default::default()
5802 }
5803
5804 /// Sets the value of [auto_repair][crate::model::AwsNodeManagement::auto_repair].
5805 ///
5806 /// # Example
5807 /// ```ignore,no_run
5808 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeManagement;
5809 /// let x = AwsNodeManagement::new().set_auto_repair(true);
5810 /// ```
5811 pub fn set_auto_repair<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
5812 self.auto_repair = v.into();
5813 self
5814 }
5815}
5816
5817impl wkt::message::Message for AwsNodeManagement {
5818 fn typename() -> &'static str {
5819 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsNodeManagement"
5820 }
5821}
5822
5823/// Parameters that describe the nodes in a cluster.
5824#[derive(Clone, Default, PartialEq)]
5825#[non_exhaustive]
5826#[deprecated]
5827pub struct AwsNodeConfig {
5828 /// Optional. The EC2 instance type when creating on-Demand instances.
5829 ///
5830 /// If unspecified during node pool creation, a default will be chosen based on
5831 /// the node pool version, and assigned to this field.
5832 pub instance_type: std::string::String,
5833
5834 /// Optional. Template for the root volume provisioned for node pool nodes.
5835 /// Volumes will be provisioned in the availability zone assigned
5836 /// to the node pool subnet.
5837 ///
5838 /// When unspecified, it defaults to 32 GiB with the GP2 volume type.
5839 pub root_volume: std::option::Option<crate::model::AwsVolumeTemplate>,
5840
5841 /// Optional. The initial taints assigned to nodes of this node pool.
5842 pub taints: std::vec::Vec<crate::model::NodeTaint>,
5843
5844 /// Optional. The initial labels assigned to nodes of this node pool. An object
5845 /// containing a list of "key": value pairs. Example: { "name": "wrench",
5846 /// "mass": "1.3kg", "count": "3" }.
5847 pub labels: std::collections::HashMap<std::string::String, std::string::String>,
5848
5849 /// Optional. Key/value metadata to assign to each underlying AWS resource.
5850 /// Specify at most 50 pairs containing alphanumerics, spaces, and symbols
5851 /// (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to
5852 /// 255 Unicode characters.
5853 pub tags: std::collections::HashMap<std::string::String, std::string::String>,
5854
5855 /// Required. The name or ARN of the AWS IAM instance profile to assign to
5856 /// nodes in the pool.
5857 pub iam_instance_profile: std::string::String,
5858
5859 /// Optional. The OS image type to use on node pool instances.
5860 /// Can be unspecified, or have a value of `ubuntu`.
5861 ///
5862 /// When unspecified, it defaults to `ubuntu`.
5863 pub image_type: std::string::String,
5864
5865 /// Optional. The SSH configuration.
5866 pub ssh_config: std::option::Option<crate::model::AwsSshConfig>,
5867
5868 /// Optional. The IDs of additional security groups to add to nodes in this
5869 /// pool. The manager will automatically create security groups with minimum
5870 /// rules needed for a functioning cluster.
5871 pub security_group_ids: std::vec::Vec<std::string::String>,
5872
5873 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
5874 pub proxy_config: std::option::Option<crate::model::AwsProxyConfig>,
5875
5876 /// Required. Config encryption for user data.
5877 pub config_encryption: std::option::Option<crate::model::AwsConfigEncryption>,
5878
5879 /// Optional. Placement related info for this node.
5880 /// When unspecified, the VPC's default tenancy will be used.
5881 pub instance_placement: std::option::Option<crate::model::AwsInstancePlacement>,
5882
5883 /// Optional. Configuration related to CloudWatch metrics collection on the
5884 /// Auto Scaling group of the node pool.
5885 ///
5886 /// When unspecified, metrics collection is disabled.
5887 pub autoscaling_metrics_collection:
5888 std::option::Option<crate::model::AwsAutoscalingGroupMetricsCollection>,
5889
5890 /// Optional. Configuration for provisioning EC2 Spot instances
5891 ///
5892 /// When specified, the node pool will provision Spot instances from the set
5893 /// of spot_config.instance_types.
5894 /// This field is mutually exclusive with `instance_type`.
5895 pub spot_config: std::option::Option<crate::model::SpotConfig>,
5896
5897 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
5898}
5899
5900impl AwsNodeConfig {
5901 pub fn new() -> Self {
5902 std::default::Default::default()
5903 }
5904
5905 /// Sets the value of [instance_type][crate::model::AwsNodeConfig::instance_type].
5906 ///
5907 /// # Example
5908 /// ```ignore,no_run
5909 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5910 /// let x = AwsNodeConfig::new().set_instance_type("example");
5911 /// ```
5912 pub fn set_instance_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
5913 self.instance_type = v.into();
5914 self
5915 }
5916
5917 /// Sets the value of [root_volume][crate::model::AwsNodeConfig::root_volume].
5918 ///
5919 /// # Example
5920 /// ```ignore,no_run
5921 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5922 /// use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
5923 /// let x = AwsNodeConfig::new().set_root_volume(AwsVolumeTemplate::default()/* use setters */);
5924 /// ```
5925 pub fn set_root_volume<T>(mut self, v: T) -> Self
5926 where
5927 T: std::convert::Into<crate::model::AwsVolumeTemplate>,
5928 {
5929 self.root_volume = std::option::Option::Some(v.into());
5930 self
5931 }
5932
5933 /// Sets or clears the value of [root_volume][crate::model::AwsNodeConfig::root_volume].
5934 ///
5935 /// # Example
5936 /// ```ignore,no_run
5937 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5938 /// use google_cloud_gkemulticloud_v1::model::AwsVolumeTemplate;
5939 /// let x = AwsNodeConfig::new().set_or_clear_root_volume(Some(AwsVolumeTemplate::default()/* use setters */));
5940 /// let x = AwsNodeConfig::new().set_or_clear_root_volume(None::<AwsVolumeTemplate>);
5941 /// ```
5942 pub fn set_or_clear_root_volume<T>(mut self, v: std::option::Option<T>) -> Self
5943 where
5944 T: std::convert::Into<crate::model::AwsVolumeTemplate>,
5945 {
5946 self.root_volume = v.map(|x| x.into());
5947 self
5948 }
5949
5950 /// Sets the value of [taints][crate::model::AwsNodeConfig::taints].
5951 ///
5952 /// # Example
5953 /// ```ignore,no_run
5954 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5955 /// use google_cloud_gkemulticloud_v1::model::NodeTaint;
5956 /// let x = AwsNodeConfig::new()
5957 /// .set_taints([
5958 /// NodeTaint::default()/* use setters */,
5959 /// NodeTaint::default()/* use (different) setters */,
5960 /// ]);
5961 /// ```
5962 pub fn set_taints<T, V>(mut self, v: T) -> Self
5963 where
5964 T: std::iter::IntoIterator<Item = V>,
5965 V: std::convert::Into<crate::model::NodeTaint>,
5966 {
5967 use std::iter::Iterator;
5968 self.taints = v.into_iter().map(|i| i.into()).collect();
5969 self
5970 }
5971
5972 /// Sets the value of [labels][crate::model::AwsNodeConfig::labels].
5973 ///
5974 /// # Example
5975 /// ```ignore,no_run
5976 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5977 /// let x = AwsNodeConfig::new().set_labels([
5978 /// ("key0", "abc"),
5979 /// ("key1", "xyz"),
5980 /// ]);
5981 /// ```
5982 pub fn set_labels<T, K, V>(mut self, v: T) -> Self
5983 where
5984 T: std::iter::IntoIterator<Item = (K, V)>,
5985 K: std::convert::Into<std::string::String>,
5986 V: std::convert::Into<std::string::String>,
5987 {
5988 use std::iter::Iterator;
5989 self.labels = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
5990 self
5991 }
5992
5993 /// Sets the value of [tags][crate::model::AwsNodeConfig::tags].
5994 ///
5995 /// # Example
5996 /// ```ignore,no_run
5997 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
5998 /// let x = AwsNodeConfig::new().set_tags([
5999 /// ("key0", "abc"),
6000 /// ("key1", "xyz"),
6001 /// ]);
6002 /// ```
6003 pub fn set_tags<T, K, V>(mut self, v: T) -> Self
6004 where
6005 T: std::iter::IntoIterator<Item = (K, V)>,
6006 K: std::convert::Into<std::string::String>,
6007 V: std::convert::Into<std::string::String>,
6008 {
6009 use std::iter::Iterator;
6010 self.tags = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
6011 self
6012 }
6013
6014 /// Sets the value of [iam_instance_profile][crate::model::AwsNodeConfig::iam_instance_profile].
6015 ///
6016 /// # Example
6017 /// ```ignore,no_run
6018 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6019 /// let x = AwsNodeConfig::new().set_iam_instance_profile("example");
6020 /// ```
6021 pub fn set_iam_instance_profile<T: std::convert::Into<std::string::String>>(
6022 mut self,
6023 v: T,
6024 ) -> Self {
6025 self.iam_instance_profile = v.into();
6026 self
6027 }
6028
6029 /// Sets the value of [image_type][crate::model::AwsNodeConfig::image_type].
6030 ///
6031 /// # Example
6032 /// ```ignore,no_run
6033 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6034 /// let x = AwsNodeConfig::new().set_image_type("example");
6035 /// ```
6036 pub fn set_image_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6037 self.image_type = v.into();
6038 self
6039 }
6040
6041 /// Sets the value of [ssh_config][crate::model::AwsNodeConfig::ssh_config].
6042 ///
6043 /// # Example
6044 /// ```ignore,no_run
6045 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6046 /// use google_cloud_gkemulticloud_v1::model::AwsSshConfig;
6047 /// let x = AwsNodeConfig::new().set_ssh_config(AwsSshConfig::default()/* use setters */);
6048 /// ```
6049 pub fn set_ssh_config<T>(mut self, v: T) -> Self
6050 where
6051 T: std::convert::Into<crate::model::AwsSshConfig>,
6052 {
6053 self.ssh_config = std::option::Option::Some(v.into());
6054 self
6055 }
6056
6057 /// Sets or clears the value of [ssh_config][crate::model::AwsNodeConfig::ssh_config].
6058 ///
6059 /// # Example
6060 /// ```ignore,no_run
6061 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6062 /// use google_cloud_gkemulticloud_v1::model::AwsSshConfig;
6063 /// let x = AwsNodeConfig::new().set_or_clear_ssh_config(Some(AwsSshConfig::default()/* use setters */));
6064 /// let x = AwsNodeConfig::new().set_or_clear_ssh_config(None::<AwsSshConfig>);
6065 /// ```
6066 pub fn set_or_clear_ssh_config<T>(mut self, v: std::option::Option<T>) -> Self
6067 where
6068 T: std::convert::Into<crate::model::AwsSshConfig>,
6069 {
6070 self.ssh_config = v.map(|x| x.into());
6071 self
6072 }
6073
6074 /// Sets the value of [security_group_ids][crate::model::AwsNodeConfig::security_group_ids].
6075 ///
6076 /// # Example
6077 /// ```ignore,no_run
6078 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6079 /// let x = AwsNodeConfig::new().set_security_group_ids(["a", "b", "c"]);
6080 /// ```
6081 pub fn set_security_group_ids<T, V>(mut self, v: T) -> Self
6082 where
6083 T: std::iter::IntoIterator<Item = V>,
6084 V: std::convert::Into<std::string::String>,
6085 {
6086 use std::iter::Iterator;
6087 self.security_group_ids = v.into_iter().map(|i| i.into()).collect();
6088 self
6089 }
6090
6091 /// Sets the value of [proxy_config][crate::model::AwsNodeConfig::proxy_config].
6092 ///
6093 /// # Example
6094 /// ```ignore,no_run
6095 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6096 /// use google_cloud_gkemulticloud_v1::model::AwsProxyConfig;
6097 /// let x = AwsNodeConfig::new().set_proxy_config(AwsProxyConfig::default()/* use setters */);
6098 /// ```
6099 pub fn set_proxy_config<T>(mut self, v: T) -> Self
6100 where
6101 T: std::convert::Into<crate::model::AwsProxyConfig>,
6102 {
6103 self.proxy_config = std::option::Option::Some(v.into());
6104 self
6105 }
6106
6107 /// Sets or clears the value of [proxy_config][crate::model::AwsNodeConfig::proxy_config].
6108 ///
6109 /// # Example
6110 /// ```ignore,no_run
6111 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6112 /// use google_cloud_gkemulticloud_v1::model::AwsProxyConfig;
6113 /// let x = AwsNodeConfig::new().set_or_clear_proxy_config(Some(AwsProxyConfig::default()/* use setters */));
6114 /// let x = AwsNodeConfig::new().set_or_clear_proxy_config(None::<AwsProxyConfig>);
6115 /// ```
6116 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
6117 where
6118 T: std::convert::Into<crate::model::AwsProxyConfig>,
6119 {
6120 self.proxy_config = v.map(|x| x.into());
6121 self
6122 }
6123
6124 /// Sets the value of [config_encryption][crate::model::AwsNodeConfig::config_encryption].
6125 ///
6126 /// # Example
6127 /// ```ignore,no_run
6128 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6129 /// use google_cloud_gkemulticloud_v1::model::AwsConfigEncryption;
6130 /// let x = AwsNodeConfig::new().set_config_encryption(AwsConfigEncryption::default()/* use setters */);
6131 /// ```
6132 pub fn set_config_encryption<T>(mut self, v: T) -> Self
6133 where
6134 T: std::convert::Into<crate::model::AwsConfigEncryption>,
6135 {
6136 self.config_encryption = std::option::Option::Some(v.into());
6137 self
6138 }
6139
6140 /// Sets or clears the value of [config_encryption][crate::model::AwsNodeConfig::config_encryption].
6141 ///
6142 /// # Example
6143 /// ```ignore,no_run
6144 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6145 /// use google_cloud_gkemulticloud_v1::model::AwsConfigEncryption;
6146 /// let x = AwsNodeConfig::new().set_or_clear_config_encryption(Some(AwsConfigEncryption::default()/* use setters */));
6147 /// let x = AwsNodeConfig::new().set_or_clear_config_encryption(None::<AwsConfigEncryption>);
6148 /// ```
6149 pub fn set_or_clear_config_encryption<T>(mut self, v: std::option::Option<T>) -> Self
6150 where
6151 T: std::convert::Into<crate::model::AwsConfigEncryption>,
6152 {
6153 self.config_encryption = v.map(|x| x.into());
6154 self
6155 }
6156
6157 /// Sets the value of [instance_placement][crate::model::AwsNodeConfig::instance_placement].
6158 ///
6159 /// # Example
6160 /// ```ignore,no_run
6161 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6162 /// use google_cloud_gkemulticloud_v1::model::AwsInstancePlacement;
6163 /// let x = AwsNodeConfig::new().set_instance_placement(AwsInstancePlacement::default()/* use setters */);
6164 /// ```
6165 pub fn set_instance_placement<T>(mut self, v: T) -> Self
6166 where
6167 T: std::convert::Into<crate::model::AwsInstancePlacement>,
6168 {
6169 self.instance_placement = std::option::Option::Some(v.into());
6170 self
6171 }
6172
6173 /// Sets or clears the value of [instance_placement][crate::model::AwsNodeConfig::instance_placement].
6174 ///
6175 /// # Example
6176 /// ```ignore,no_run
6177 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6178 /// use google_cloud_gkemulticloud_v1::model::AwsInstancePlacement;
6179 /// let x = AwsNodeConfig::new().set_or_clear_instance_placement(Some(AwsInstancePlacement::default()/* use setters */));
6180 /// let x = AwsNodeConfig::new().set_or_clear_instance_placement(None::<AwsInstancePlacement>);
6181 /// ```
6182 pub fn set_or_clear_instance_placement<T>(mut self, v: std::option::Option<T>) -> Self
6183 where
6184 T: std::convert::Into<crate::model::AwsInstancePlacement>,
6185 {
6186 self.instance_placement = v.map(|x| x.into());
6187 self
6188 }
6189
6190 /// Sets the value of [autoscaling_metrics_collection][crate::model::AwsNodeConfig::autoscaling_metrics_collection].
6191 ///
6192 /// # Example
6193 /// ```ignore,no_run
6194 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6195 /// use google_cloud_gkemulticloud_v1::model::AwsAutoscalingGroupMetricsCollection;
6196 /// let x = AwsNodeConfig::new().set_autoscaling_metrics_collection(AwsAutoscalingGroupMetricsCollection::default()/* use setters */);
6197 /// ```
6198 pub fn set_autoscaling_metrics_collection<T>(mut self, v: T) -> Self
6199 where
6200 T: std::convert::Into<crate::model::AwsAutoscalingGroupMetricsCollection>,
6201 {
6202 self.autoscaling_metrics_collection = std::option::Option::Some(v.into());
6203 self
6204 }
6205
6206 /// Sets or clears the value of [autoscaling_metrics_collection][crate::model::AwsNodeConfig::autoscaling_metrics_collection].
6207 ///
6208 /// # Example
6209 /// ```ignore,no_run
6210 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6211 /// use google_cloud_gkemulticloud_v1::model::AwsAutoscalingGroupMetricsCollection;
6212 /// let x = AwsNodeConfig::new().set_or_clear_autoscaling_metrics_collection(Some(AwsAutoscalingGroupMetricsCollection::default()/* use setters */));
6213 /// let x = AwsNodeConfig::new().set_or_clear_autoscaling_metrics_collection(None::<AwsAutoscalingGroupMetricsCollection>);
6214 /// ```
6215 pub fn set_or_clear_autoscaling_metrics_collection<T>(
6216 mut self,
6217 v: std::option::Option<T>,
6218 ) -> Self
6219 where
6220 T: std::convert::Into<crate::model::AwsAutoscalingGroupMetricsCollection>,
6221 {
6222 self.autoscaling_metrics_collection = v.map(|x| x.into());
6223 self
6224 }
6225
6226 /// Sets the value of [spot_config][crate::model::AwsNodeConfig::spot_config].
6227 ///
6228 /// # Example
6229 /// ```ignore,no_run
6230 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6231 /// use google_cloud_gkemulticloud_v1::model::SpotConfig;
6232 /// let x = AwsNodeConfig::new().set_spot_config(SpotConfig::default()/* use setters */);
6233 /// ```
6234 pub fn set_spot_config<T>(mut self, v: T) -> Self
6235 where
6236 T: std::convert::Into<crate::model::SpotConfig>,
6237 {
6238 self.spot_config = std::option::Option::Some(v.into());
6239 self
6240 }
6241
6242 /// Sets or clears the value of [spot_config][crate::model::AwsNodeConfig::spot_config].
6243 ///
6244 /// # Example
6245 /// ```ignore,no_run
6246 /// # use google_cloud_gkemulticloud_v1::model::AwsNodeConfig;
6247 /// use google_cloud_gkemulticloud_v1::model::SpotConfig;
6248 /// let x = AwsNodeConfig::new().set_or_clear_spot_config(Some(SpotConfig::default()/* use setters */));
6249 /// let x = AwsNodeConfig::new().set_or_clear_spot_config(None::<SpotConfig>);
6250 /// ```
6251 pub fn set_or_clear_spot_config<T>(mut self, v: std::option::Option<T>) -> Self
6252 where
6253 T: std::convert::Into<crate::model::SpotConfig>,
6254 {
6255 self.spot_config = v.map(|x| x.into());
6256 self
6257 }
6258}
6259
6260impl wkt::message::Message for AwsNodeConfig {
6261 fn typename() -> &'static str {
6262 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsNodeConfig"
6263 }
6264}
6265
6266/// AwsNodePoolAutoscaling contains information required by cluster autoscaler
6267/// to adjust the size of the node pool to the current cluster usage.
6268#[derive(Clone, Default, PartialEq)]
6269#[non_exhaustive]
6270#[deprecated]
6271pub struct AwsNodePoolAutoscaling {
6272 /// Required. Minimum number of nodes in the node pool. Must be greater than or
6273 /// equal to 1 and less than or equal to max_node_count.
6274 pub min_node_count: i32,
6275
6276 /// Required. Maximum number of nodes in the node pool. Must be greater than or
6277 /// equal to min_node_count and less than or equal to 50.
6278 pub max_node_count: i32,
6279
6280 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6281}
6282
6283impl AwsNodePoolAutoscaling {
6284 pub fn new() -> Self {
6285 std::default::Default::default()
6286 }
6287
6288 /// Sets the value of [min_node_count][crate::model::AwsNodePoolAutoscaling::min_node_count].
6289 ///
6290 /// # Example
6291 /// ```ignore,no_run
6292 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePoolAutoscaling;
6293 /// let x = AwsNodePoolAutoscaling::new().set_min_node_count(42);
6294 /// ```
6295 pub fn set_min_node_count<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
6296 self.min_node_count = v.into();
6297 self
6298 }
6299
6300 /// Sets the value of [max_node_count][crate::model::AwsNodePoolAutoscaling::max_node_count].
6301 ///
6302 /// # Example
6303 /// ```ignore,no_run
6304 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePoolAutoscaling;
6305 /// let x = AwsNodePoolAutoscaling::new().set_max_node_count(42);
6306 /// ```
6307 pub fn set_max_node_count<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
6308 self.max_node_count = v.into();
6309 self
6310 }
6311}
6312
6313impl wkt::message::Message for AwsNodePoolAutoscaling {
6314 fn typename() -> &'static str {
6315 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsNodePoolAutoscaling"
6316 }
6317}
6318
6319/// AwsOpenIdConfig is an OIDC discovery document for the cluster.
6320/// See the OpenID Connect Discovery 1.0 specification for details.
6321#[derive(Clone, Default, PartialEq)]
6322#[non_exhaustive]
6323#[deprecated]
6324pub struct AwsOpenIdConfig {
6325 /// OIDC Issuer.
6326 pub issuer: std::string::String,
6327
6328 /// JSON Web Key uri.
6329 pub jwks_uri: std::string::String,
6330
6331 /// Supported response types.
6332 pub response_types_supported: std::vec::Vec<std::string::String>,
6333
6334 /// Supported subject types.
6335 pub subject_types_supported: std::vec::Vec<std::string::String>,
6336
6337 /// supported ID Token signing Algorithms.
6338 pub id_token_signing_alg_values_supported: std::vec::Vec<std::string::String>,
6339
6340 /// Supported claims.
6341 pub claims_supported: std::vec::Vec<std::string::String>,
6342
6343 /// Supported grant types.
6344 pub grant_types: std::vec::Vec<std::string::String>,
6345
6346 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6347}
6348
6349impl AwsOpenIdConfig {
6350 pub fn new() -> Self {
6351 std::default::Default::default()
6352 }
6353
6354 /// Sets the value of [issuer][crate::model::AwsOpenIdConfig::issuer].
6355 ///
6356 /// # Example
6357 /// ```ignore,no_run
6358 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6359 /// let x = AwsOpenIdConfig::new().set_issuer("example");
6360 /// ```
6361 pub fn set_issuer<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6362 self.issuer = v.into();
6363 self
6364 }
6365
6366 /// Sets the value of [jwks_uri][crate::model::AwsOpenIdConfig::jwks_uri].
6367 ///
6368 /// # Example
6369 /// ```ignore,no_run
6370 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6371 /// let x = AwsOpenIdConfig::new().set_jwks_uri("example");
6372 /// ```
6373 pub fn set_jwks_uri<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6374 self.jwks_uri = v.into();
6375 self
6376 }
6377
6378 /// Sets the value of [response_types_supported][crate::model::AwsOpenIdConfig::response_types_supported].
6379 ///
6380 /// # Example
6381 /// ```ignore,no_run
6382 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6383 /// let x = AwsOpenIdConfig::new().set_response_types_supported(["a", "b", "c"]);
6384 /// ```
6385 pub fn set_response_types_supported<T, V>(mut self, v: T) -> Self
6386 where
6387 T: std::iter::IntoIterator<Item = V>,
6388 V: std::convert::Into<std::string::String>,
6389 {
6390 use std::iter::Iterator;
6391 self.response_types_supported = v.into_iter().map(|i| i.into()).collect();
6392 self
6393 }
6394
6395 /// Sets the value of [subject_types_supported][crate::model::AwsOpenIdConfig::subject_types_supported].
6396 ///
6397 /// # Example
6398 /// ```ignore,no_run
6399 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6400 /// let x = AwsOpenIdConfig::new().set_subject_types_supported(["a", "b", "c"]);
6401 /// ```
6402 pub fn set_subject_types_supported<T, V>(mut self, v: T) -> Self
6403 where
6404 T: std::iter::IntoIterator<Item = V>,
6405 V: std::convert::Into<std::string::String>,
6406 {
6407 use std::iter::Iterator;
6408 self.subject_types_supported = v.into_iter().map(|i| i.into()).collect();
6409 self
6410 }
6411
6412 /// Sets the value of [id_token_signing_alg_values_supported][crate::model::AwsOpenIdConfig::id_token_signing_alg_values_supported].
6413 ///
6414 /// # Example
6415 /// ```ignore,no_run
6416 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6417 /// let x = AwsOpenIdConfig::new().set_id_token_signing_alg_values_supported(["a", "b", "c"]);
6418 /// ```
6419 pub fn set_id_token_signing_alg_values_supported<T, V>(mut self, v: T) -> Self
6420 where
6421 T: std::iter::IntoIterator<Item = V>,
6422 V: std::convert::Into<std::string::String>,
6423 {
6424 use std::iter::Iterator;
6425 self.id_token_signing_alg_values_supported = v.into_iter().map(|i| i.into()).collect();
6426 self
6427 }
6428
6429 /// Sets the value of [claims_supported][crate::model::AwsOpenIdConfig::claims_supported].
6430 ///
6431 /// # Example
6432 /// ```ignore,no_run
6433 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6434 /// let x = AwsOpenIdConfig::new().set_claims_supported(["a", "b", "c"]);
6435 /// ```
6436 pub fn set_claims_supported<T, V>(mut self, v: T) -> Self
6437 where
6438 T: std::iter::IntoIterator<Item = V>,
6439 V: std::convert::Into<std::string::String>,
6440 {
6441 use std::iter::Iterator;
6442 self.claims_supported = v.into_iter().map(|i| i.into()).collect();
6443 self
6444 }
6445
6446 /// Sets the value of [grant_types][crate::model::AwsOpenIdConfig::grant_types].
6447 ///
6448 /// # Example
6449 /// ```ignore,no_run
6450 /// # use google_cloud_gkemulticloud_v1::model::AwsOpenIdConfig;
6451 /// let x = AwsOpenIdConfig::new().set_grant_types(["a", "b", "c"]);
6452 /// ```
6453 pub fn set_grant_types<T, V>(mut self, v: T) -> Self
6454 where
6455 T: std::iter::IntoIterator<Item = V>,
6456 V: std::convert::Into<std::string::String>,
6457 {
6458 use std::iter::Iterator;
6459 self.grant_types = v.into_iter().map(|i| i.into()).collect();
6460 self
6461 }
6462}
6463
6464impl wkt::message::Message for AwsOpenIdConfig {
6465 fn typename() -> &'static str {
6466 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsOpenIdConfig"
6467 }
6468}
6469
6470/// AwsJsonWebKeys is a valid JSON Web Key Set as specififed in RFC 7517.
6471#[derive(Clone, Default, PartialEq)]
6472#[non_exhaustive]
6473#[deprecated]
6474pub struct AwsJsonWebKeys {
6475 /// The public component of the keys used by the cluster to sign token
6476 /// requests.
6477 pub keys: std::vec::Vec<crate::model::Jwk>,
6478
6479 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6480}
6481
6482impl AwsJsonWebKeys {
6483 pub fn new() -> Self {
6484 std::default::Default::default()
6485 }
6486
6487 /// Sets the value of [keys][crate::model::AwsJsonWebKeys::keys].
6488 ///
6489 /// # Example
6490 /// ```ignore,no_run
6491 /// # use google_cloud_gkemulticloud_v1::model::AwsJsonWebKeys;
6492 /// use google_cloud_gkemulticloud_v1::model::Jwk;
6493 /// let x = AwsJsonWebKeys::new()
6494 /// .set_keys([
6495 /// Jwk::default()/* use setters */,
6496 /// Jwk::default()/* use (different) setters */,
6497 /// ]);
6498 /// ```
6499 pub fn set_keys<T, V>(mut self, v: T) -> Self
6500 where
6501 T: std::iter::IntoIterator<Item = V>,
6502 V: std::convert::Into<crate::model::Jwk>,
6503 {
6504 use std::iter::Iterator;
6505 self.keys = v.into_iter().map(|i| i.into()).collect();
6506 self
6507 }
6508}
6509
6510impl wkt::message::Message for AwsJsonWebKeys {
6511 fn typename() -> &'static str {
6512 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsJsonWebKeys"
6513 }
6514}
6515
6516/// AwsServerConfig is the configuration of GKE cluster on AWS.
6517#[derive(Clone, Default, PartialEq)]
6518#[non_exhaustive]
6519#[deprecated]
6520pub struct AwsServerConfig {
6521 /// The resource name of the config.
6522 pub name: std::string::String,
6523
6524 /// List of all released Kubernetes versions, including ones which are end of
6525 /// life and can no longer be used. Filter by the `enabled`
6526 /// property to limit to currently available versions.
6527 /// Valid versions supported for both create and update operations
6528 pub valid_versions: std::vec::Vec<crate::model::AwsK8sVersionInfo>,
6529
6530 /// The list of supported AWS regions.
6531 pub supported_aws_regions: std::vec::Vec<std::string::String>,
6532
6533 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6534}
6535
6536impl AwsServerConfig {
6537 pub fn new() -> Self {
6538 std::default::Default::default()
6539 }
6540
6541 /// Sets the value of [name][crate::model::AwsServerConfig::name].
6542 ///
6543 /// # Example
6544 /// ```ignore,no_run
6545 /// # use google_cloud_gkemulticloud_v1::model::AwsServerConfig;
6546 /// let x = AwsServerConfig::new().set_name("example");
6547 /// ```
6548 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6549 self.name = v.into();
6550 self
6551 }
6552
6553 /// Sets the value of [valid_versions][crate::model::AwsServerConfig::valid_versions].
6554 ///
6555 /// # Example
6556 /// ```ignore,no_run
6557 /// # use google_cloud_gkemulticloud_v1::model::AwsServerConfig;
6558 /// use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6559 /// let x = AwsServerConfig::new()
6560 /// .set_valid_versions([
6561 /// AwsK8sVersionInfo::default()/* use setters */,
6562 /// AwsK8sVersionInfo::default()/* use (different) setters */,
6563 /// ]);
6564 /// ```
6565 pub fn set_valid_versions<T, V>(mut self, v: T) -> Self
6566 where
6567 T: std::iter::IntoIterator<Item = V>,
6568 V: std::convert::Into<crate::model::AwsK8sVersionInfo>,
6569 {
6570 use std::iter::Iterator;
6571 self.valid_versions = v.into_iter().map(|i| i.into()).collect();
6572 self
6573 }
6574
6575 /// Sets the value of [supported_aws_regions][crate::model::AwsServerConfig::supported_aws_regions].
6576 ///
6577 /// # Example
6578 /// ```ignore,no_run
6579 /// # use google_cloud_gkemulticloud_v1::model::AwsServerConfig;
6580 /// let x = AwsServerConfig::new().set_supported_aws_regions(["a", "b", "c"]);
6581 /// ```
6582 pub fn set_supported_aws_regions<T, V>(mut self, v: T) -> Self
6583 where
6584 T: std::iter::IntoIterator<Item = V>,
6585 V: std::convert::Into<std::string::String>,
6586 {
6587 use std::iter::Iterator;
6588 self.supported_aws_regions = v.into_iter().map(|i| i.into()).collect();
6589 self
6590 }
6591}
6592
6593impl wkt::message::Message for AwsServerConfig {
6594 fn typename() -> &'static str {
6595 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsServerConfig"
6596 }
6597}
6598
6599/// Kubernetes version information of GKE cluster on AWS.
6600#[derive(Clone, Default, PartialEq)]
6601#[non_exhaustive]
6602#[deprecated]
6603pub struct AwsK8sVersionInfo {
6604 /// Kubernetes version name.
6605 pub version: std::string::String,
6606
6607 /// Optional. True if the version is available for cluster creation. If a
6608 /// version is enabled for creation, it can be used to create new clusters.
6609 /// Otherwise, cluster creation will fail. However, cluster upgrade operations
6610 /// may succeed, even if the version is not enabled.
6611 pub enabled: bool,
6612
6613 /// Optional. True if this cluster version belongs to a minor version that has
6614 /// reached its end of life and is no longer in scope to receive security and
6615 /// bug fixes.
6616 pub end_of_life: bool,
6617
6618 /// Optional. The estimated date (in Pacific Time) when this cluster version
6619 /// will reach its end of life. Or if this version is no longer supported (the
6620 /// `end_of_life` field is true), this is the actual date (in Pacific time)
6621 /// when the version reached its end of life.
6622 pub end_of_life_date: std::option::Option<google_cloud_type::model::Date>,
6623
6624 /// Optional. The date (in Pacific Time) when the cluster version was released.
6625 pub release_date: std::option::Option<google_cloud_type::model::Date>,
6626
6627 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6628}
6629
6630impl AwsK8sVersionInfo {
6631 pub fn new() -> Self {
6632 std::default::Default::default()
6633 }
6634
6635 /// Sets the value of [version][crate::model::AwsK8sVersionInfo::version].
6636 ///
6637 /// # Example
6638 /// ```ignore,no_run
6639 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6640 /// let x = AwsK8sVersionInfo::new().set_version("example");
6641 /// ```
6642 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6643 self.version = v.into();
6644 self
6645 }
6646
6647 /// Sets the value of [enabled][crate::model::AwsK8sVersionInfo::enabled].
6648 ///
6649 /// # Example
6650 /// ```ignore,no_run
6651 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6652 /// let x = AwsK8sVersionInfo::new().set_enabled(true);
6653 /// ```
6654 pub fn set_enabled<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
6655 self.enabled = v.into();
6656 self
6657 }
6658
6659 /// Sets the value of [end_of_life][crate::model::AwsK8sVersionInfo::end_of_life].
6660 ///
6661 /// # Example
6662 /// ```ignore,no_run
6663 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6664 /// let x = AwsK8sVersionInfo::new().set_end_of_life(true);
6665 /// ```
6666 pub fn set_end_of_life<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
6667 self.end_of_life = v.into();
6668 self
6669 }
6670
6671 /// Sets the value of [end_of_life_date][crate::model::AwsK8sVersionInfo::end_of_life_date].
6672 ///
6673 /// # Example
6674 /// ```ignore,no_run
6675 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6676 /// use google_cloud_type::model::Date;
6677 /// let x = AwsK8sVersionInfo::new().set_end_of_life_date(Date::default()/* use setters */);
6678 /// ```
6679 pub fn set_end_of_life_date<T>(mut self, v: T) -> Self
6680 where
6681 T: std::convert::Into<google_cloud_type::model::Date>,
6682 {
6683 self.end_of_life_date = std::option::Option::Some(v.into());
6684 self
6685 }
6686
6687 /// Sets or clears the value of [end_of_life_date][crate::model::AwsK8sVersionInfo::end_of_life_date].
6688 ///
6689 /// # Example
6690 /// ```ignore,no_run
6691 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6692 /// use google_cloud_type::model::Date;
6693 /// let x = AwsK8sVersionInfo::new().set_or_clear_end_of_life_date(Some(Date::default()/* use setters */));
6694 /// let x = AwsK8sVersionInfo::new().set_or_clear_end_of_life_date(None::<Date>);
6695 /// ```
6696 pub fn set_or_clear_end_of_life_date<T>(mut self, v: std::option::Option<T>) -> Self
6697 where
6698 T: std::convert::Into<google_cloud_type::model::Date>,
6699 {
6700 self.end_of_life_date = v.map(|x| x.into());
6701 self
6702 }
6703
6704 /// Sets the value of [release_date][crate::model::AwsK8sVersionInfo::release_date].
6705 ///
6706 /// # Example
6707 /// ```ignore,no_run
6708 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6709 /// use google_cloud_type::model::Date;
6710 /// let x = AwsK8sVersionInfo::new().set_release_date(Date::default()/* use setters */);
6711 /// ```
6712 pub fn set_release_date<T>(mut self, v: T) -> Self
6713 where
6714 T: std::convert::Into<google_cloud_type::model::Date>,
6715 {
6716 self.release_date = std::option::Option::Some(v.into());
6717 self
6718 }
6719
6720 /// Sets or clears the value of [release_date][crate::model::AwsK8sVersionInfo::release_date].
6721 ///
6722 /// # Example
6723 /// ```ignore,no_run
6724 /// # use google_cloud_gkemulticloud_v1::model::AwsK8sVersionInfo;
6725 /// use google_cloud_type::model::Date;
6726 /// let x = AwsK8sVersionInfo::new().set_or_clear_release_date(Some(Date::default()/* use setters */));
6727 /// let x = AwsK8sVersionInfo::new().set_or_clear_release_date(None::<Date>);
6728 /// ```
6729 pub fn set_or_clear_release_date<T>(mut self, v: std::option::Option<T>) -> Self
6730 where
6731 T: std::convert::Into<google_cloud_type::model::Date>,
6732 {
6733 self.release_date = v.map(|x| x.into());
6734 self
6735 }
6736}
6737
6738impl wkt::message::Message for AwsK8sVersionInfo {
6739 fn typename() -> &'static str {
6740 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsK8sVersionInfo"
6741 }
6742}
6743
6744/// SSH configuration for AWS resources.
6745#[derive(Clone, Default, PartialEq)]
6746#[non_exhaustive]
6747#[deprecated]
6748pub struct AwsSshConfig {
6749 /// Required. The name of the EC2 key pair used to login into cluster machines.
6750 pub ec2_key_pair: std::string::String,
6751
6752 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6753}
6754
6755impl AwsSshConfig {
6756 pub fn new() -> Self {
6757 std::default::Default::default()
6758 }
6759
6760 /// Sets the value of [ec2_key_pair][crate::model::AwsSshConfig::ec2_key_pair].
6761 ///
6762 /// # Example
6763 /// ```ignore,no_run
6764 /// # use google_cloud_gkemulticloud_v1::model::AwsSshConfig;
6765 /// let x = AwsSshConfig::new().set_ec2_key_pair("example");
6766 /// ```
6767 pub fn set_ec2_key_pair<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6768 self.ec2_key_pair = v.into();
6769 self
6770 }
6771}
6772
6773impl wkt::message::Message for AwsSshConfig {
6774 fn typename() -> &'static str {
6775 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsSshConfig"
6776 }
6777}
6778
6779/// Details of a proxy config stored in AWS Secret Manager.
6780#[derive(Clone, Default, PartialEq)]
6781#[non_exhaustive]
6782#[deprecated]
6783pub struct AwsProxyConfig {
6784 /// The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy
6785 /// configuration.
6786 ///
6787 /// The secret must be a JSON encoded proxy configuration
6788 /// as described in
6789 /// <https://cloud.google.com/kubernetes-engine/multi-cloud/docs/aws/how-to/use-a-proxy#create_a_proxy_configuration_file>
6790 pub secret_arn: std::string::String,
6791
6792 /// The version string of the AWS Secret Manager secret that contains the
6793 /// HTTP(S) proxy configuration.
6794 pub secret_version: std::string::String,
6795
6796 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6797}
6798
6799impl AwsProxyConfig {
6800 pub fn new() -> Self {
6801 std::default::Default::default()
6802 }
6803
6804 /// Sets the value of [secret_arn][crate::model::AwsProxyConfig::secret_arn].
6805 ///
6806 /// # Example
6807 /// ```ignore,no_run
6808 /// # use google_cloud_gkemulticloud_v1::model::AwsProxyConfig;
6809 /// let x = AwsProxyConfig::new().set_secret_arn("example");
6810 /// ```
6811 pub fn set_secret_arn<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6812 self.secret_arn = v.into();
6813 self
6814 }
6815
6816 /// Sets the value of [secret_version][crate::model::AwsProxyConfig::secret_version].
6817 ///
6818 /// # Example
6819 /// ```ignore,no_run
6820 /// # use google_cloud_gkemulticloud_v1::model::AwsProxyConfig;
6821 /// let x = AwsProxyConfig::new().set_secret_version("example");
6822 /// ```
6823 pub fn set_secret_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6824 self.secret_version = v.into();
6825 self
6826 }
6827}
6828
6829impl wkt::message::Message for AwsProxyConfig {
6830 fn typename() -> &'static str {
6831 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsProxyConfig"
6832 }
6833}
6834
6835/// Config encryption for user data.
6836#[derive(Clone, Default, PartialEq)]
6837#[non_exhaustive]
6838#[deprecated]
6839pub struct AwsConfigEncryption {
6840 /// Required. The ARN of the AWS KMS key used to encrypt user data.
6841 pub kms_key_arn: std::string::String,
6842
6843 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6844}
6845
6846impl AwsConfigEncryption {
6847 pub fn new() -> Self {
6848 std::default::Default::default()
6849 }
6850
6851 /// Sets the value of [kms_key_arn][crate::model::AwsConfigEncryption::kms_key_arn].
6852 ///
6853 /// # Example
6854 /// ```ignore,no_run
6855 /// # use google_cloud_gkemulticloud_v1::model::AwsConfigEncryption;
6856 /// let x = AwsConfigEncryption::new().set_kms_key_arn("example");
6857 /// ```
6858 pub fn set_kms_key_arn<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
6859 self.kms_key_arn = v.into();
6860 self
6861 }
6862}
6863
6864impl wkt::message::Message for AwsConfigEncryption {
6865 fn typename() -> &'static str {
6866 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsConfigEncryption"
6867 }
6868}
6869
6870/// Details of placement information for an instance.
6871/// Limitations for using the `host` tenancy:
6872///
6873/// * T3 instances that use the unlimited CPU credit option don't support host
6874/// tenancy.
6875#[derive(Clone, Default, PartialEq)]
6876#[non_exhaustive]
6877#[deprecated]
6878pub struct AwsInstancePlacement {
6879 /// Required. The tenancy for instance.
6880 pub tenancy: crate::model::aws_instance_placement::Tenancy,
6881
6882 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
6883}
6884
6885impl AwsInstancePlacement {
6886 pub fn new() -> Self {
6887 std::default::Default::default()
6888 }
6889
6890 /// Sets the value of [tenancy][crate::model::AwsInstancePlacement::tenancy].
6891 ///
6892 /// # Example
6893 /// ```ignore,no_run
6894 /// # use google_cloud_gkemulticloud_v1::model::AwsInstancePlacement;
6895 /// use google_cloud_gkemulticloud_v1::model::aws_instance_placement::Tenancy;
6896 /// let x0 = AwsInstancePlacement::new().set_tenancy(Tenancy::Default);
6897 /// let x1 = AwsInstancePlacement::new().set_tenancy(Tenancy::Dedicated);
6898 /// let x2 = AwsInstancePlacement::new().set_tenancy(Tenancy::Host);
6899 /// ```
6900 pub fn set_tenancy<T: std::convert::Into<crate::model::aws_instance_placement::Tenancy>>(
6901 mut self,
6902 v: T,
6903 ) -> Self {
6904 self.tenancy = v.into();
6905 self
6906 }
6907}
6908
6909impl wkt::message::Message for AwsInstancePlacement {
6910 fn typename() -> &'static str {
6911 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsInstancePlacement"
6912 }
6913}
6914
6915/// Defines additional types related to [AwsInstancePlacement].
6916pub mod aws_instance_placement {
6917 #[allow(unused_imports)]
6918 use super::*;
6919
6920 /// Tenancy defines how EC2 instances are distributed across physical hardware.
6921 ///
6922 /// # Working with unknown values
6923 ///
6924 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
6925 /// additional enum variants at any time. Adding new variants is not considered
6926 /// a breaking change. Applications should write their code in anticipation of:
6927 ///
6928 /// - New values appearing in future releases of the client library, **and**
6929 /// - New values received dynamically, without application changes.
6930 ///
6931 /// Please consult the [Working with enums] section in the user guide for some
6932 /// guidelines.
6933 ///
6934 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
6935 #[derive(Clone, Debug, PartialEq)]
6936 #[non_exhaustive]
6937 pub enum Tenancy {
6938 /// Not set.
6939 Unspecified,
6940 /// Use default VPC tenancy.
6941 Default,
6942 /// Run a dedicated instance.
6943 Dedicated,
6944 /// Launch this instance to a dedicated host.
6945 Host,
6946 /// If set, the enum was initialized with an unknown value.
6947 ///
6948 /// Applications can examine the value using [Tenancy::value] or
6949 /// [Tenancy::name].
6950 UnknownValue(tenancy::UnknownValue),
6951 }
6952
6953 #[doc(hidden)]
6954 pub mod tenancy {
6955 #[allow(unused_imports)]
6956 use super::*;
6957 #[derive(Clone, Debug, PartialEq)]
6958 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
6959 }
6960
6961 impl Tenancy {
6962 /// Gets the enum value.
6963 ///
6964 /// Returns `None` if the enum contains an unknown value deserialized from
6965 /// the string representation of enums.
6966 pub fn value(&self) -> std::option::Option<i32> {
6967 match self {
6968 Self::Unspecified => std::option::Option::Some(0),
6969 Self::Default => std::option::Option::Some(1),
6970 Self::Dedicated => std::option::Option::Some(2),
6971 Self::Host => std::option::Option::Some(3),
6972 Self::UnknownValue(u) => u.0.value(),
6973 }
6974 }
6975
6976 /// Gets the enum value as a string.
6977 ///
6978 /// Returns `None` if the enum contains an unknown value deserialized from
6979 /// the integer representation of enums.
6980 pub fn name(&self) -> std::option::Option<&str> {
6981 match self {
6982 Self::Unspecified => std::option::Option::Some("TENANCY_UNSPECIFIED"),
6983 Self::Default => std::option::Option::Some("DEFAULT"),
6984 Self::Dedicated => std::option::Option::Some("DEDICATED"),
6985 Self::Host => std::option::Option::Some("HOST"),
6986 Self::UnknownValue(u) => u.0.name(),
6987 }
6988 }
6989 }
6990
6991 impl std::default::Default for Tenancy {
6992 fn default() -> Self {
6993 use std::convert::From;
6994 Self::from(0)
6995 }
6996 }
6997
6998 impl std::fmt::Display for Tenancy {
6999 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
7000 wkt::internal::display_enum(f, self.name(), self.value())
7001 }
7002 }
7003
7004 impl std::convert::From<i32> for Tenancy {
7005 fn from(value: i32) -> Self {
7006 match value {
7007 0 => Self::Unspecified,
7008 1 => Self::Default,
7009 2 => Self::Dedicated,
7010 3 => Self::Host,
7011 _ => Self::UnknownValue(tenancy::UnknownValue(
7012 wkt::internal::UnknownEnumValue::Integer(value),
7013 )),
7014 }
7015 }
7016 }
7017
7018 impl std::convert::From<&str> for Tenancy {
7019 fn from(value: &str) -> Self {
7020 use std::string::ToString;
7021 match value {
7022 "TENANCY_UNSPECIFIED" => Self::Unspecified,
7023 "DEFAULT" => Self::Default,
7024 "DEDICATED" => Self::Dedicated,
7025 "HOST" => Self::Host,
7026 _ => Self::UnknownValue(tenancy::UnknownValue(
7027 wkt::internal::UnknownEnumValue::String(value.to_string()),
7028 )),
7029 }
7030 }
7031 }
7032
7033 impl serde::ser::Serialize for Tenancy {
7034 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7035 where
7036 S: serde::Serializer,
7037 {
7038 match self {
7039 Self::Unspecified => serializer.serialize_i32(0),
7040 Self::Default => serializer.serialize_i32(1),
7041 Self::Dedicated => serializer.serialize_i32(2),
7042 Self::Host => serializer.serialize_i32(3),
7043 Self::UnknownValue(u) => u.0.serialize(serializer),
7044 }
7045 }
7046 }
7047
7048 impl<'de> serde::de::Deserialize<'de> for Tenancy {
7049 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7050 where
7051 D: serde::Deserializer<'de>,
7052 {
7053 deserializer.deserialize_any(wkt::internal::EnumVisitor::<Tenancy>::new(
7054 ".google.cloud.gkemulticloud.v1.AwsInstancePlacement.Tenancy",
7055 ))
7056 }
7057 }
7058}
7059
7060/// Configuration related to CloudWatch metrics collection in an AWS
7061/// Auto Scaling group.
7062#[derive(Clone, Default, PartialEq)]
7063#[non_exhaustive]
7064#[deprecated]
7065pub struct AwsAutoscalingGroupMetricsCollection {
7066 /// Required. The frequency at which EC2 Auto Scaling sends aggregated data to
7067 /// AWS CloudWatch. The only valid value is "1Minute".
7068 pub granularity: std::string::String,
7069
7070 /// Optional. The metrics to enable. For a list of valid metrics, see
7071 /// <https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html>.
7072 /// If you specify Granularity and don't specify any metrics, all metrics are
7073 /// enabled.
7074 pub metrics: std::vec::Vec<std::string::String>,
7075
7076 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7077}
7078
7079impl AwsAutoscalingGroupMetricsCollection {
7080 pub fn new() -> Self {
7081 std::default::Default::default()
7082 }
7083
7084 /// Sets the value of [granularity][crate::model::AwsAutoscalingGroupMetricsCollection::granularity].
7085 ///
7086 /// # Example
7087 /// ```ignore,no_run
7088 /// # use google_cloud_gkemulticloud_v1::model::AwsAutoscalingGroupMetricsCollection;
7089 /// let x = AwsAutoscalingGroupMetricsCollection::new().set_granularity("example");
7090 /// ```
7091 pub fn set_granularity<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7092 self.granularity = v.into();
7093 self
7094 }
7095
7096 /// Sets the value of [metrics][crate::model::AwsAutoscalingGroupMetricsCollection::metrics].
7097 ///
7098 /// # Example
7099 /// ```ignore,no_run
7100 /// # use google_cloud_gkemulticloud_v1::model::AwsAutoscalingGroupMetricsCollection;
7101 /// let x = AwsAutoscalingGroupMetricsCollection::new().set_metrics(["a", "b", "c"]);
7102 /// ```
7103 pub fn set_metrics<T, V>(mut self, v: T) -> Self
7104 where
7105 T: std::iter::IntoIterator<Item = V>,
7106 V: std::convert::Into<std::string::String>,
7107 {
7108 use std::iter::Iterator;
7109 self.metrics = v.into_iter().map(|i| i.into()).collect();
7110 self
7111 }
7112}
7113
7114impl wkt::message::Message for AwsAutoscalingGroupMetricsCollection {
7115 fn typename() -> &'static str {
7116 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsAutoscalingGroupMetricsCollection"
7117 }
7118}
7119
7120/// SpotConfig has configuration info for Spot node.
7121#[derive(Clone, Default, PartialEq)]
7122#[non_exhaustive]
7123#[deprecated]
7124pub struct SpotConfig {
7125 /// Required. A list of instance types for creating spot node pool.
7126 pub instance_types: std::vec::Vec<std::string::String>,
7127
7128 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7129}
7130
7131impl SpotConfig {
7132 pub fn new() -> Self {
7133 std::default::Default::default()
7134 }
7135
7136 /// Sets the value of [instance_types][crate::model::SpotConfig::instance_types].
7137 ///
7138 /// # Example
7139 /// ```ignore,no_run
7140 /// # use google_cloud_gkemulticloud_v1::model::SpotConfig;
7141 /// let x = SpotConfig::new().set_instance_types(["a", "b", "c"]);
7142 /// ```
7143 pub fn set_instance_types<T, V>(mut self, v: T) -> Self
7144 where
7145 T: std::iter::IntoIterator<Item = V>,
7146 V: std::convert::Into<std::string::String>,
7147 {
7148 use std::iter::Iterator;
7149 self.instance_types = v.into_iter().map(|i| i.into()).collect();
7150 self
7151 }
7152}
7153
7154impl wkt::message::Message for SpotConfig {
7155 fn typename() -> &'static str {
7156 "type.googleapis.com/google.cloud.gkemulticloud.v1.SpotConfig"
7157 }
7158}
7159
7160/// AwsClusterError describes errors found on AWS clusters.
7161#[derive(Clone, Default, PartialEq)]
7162#[non_exhaustive]
7163#[deprecated]
7164pub struct AwsClusterError {
7165 /// Human-friendly description of the error.
7166 pub message: std::string::String,
7167
7168 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7169}
7170
7171impl AwsClusterError {
7172 pub fn new() -> Self {
7173 std::default::Default::default()
7174 }
7175
7176 /// Sets the value of [message][crate::model::AwsClusterError::message].
7177 ///
7178 /// # Example
7179 /// ```ignore,no_run
7180 /// # use google_cloud_gkemulticloud_v1::model::AwsClusterError;
7181 /// let x = AwsClusterError::new().set_message("example");
7182 /// ```
7183 pub fn set_message<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7184 self.message = v.into();
7185 self
7186 }
7187}
7188
7189impl wkt::message::Message for AwsClusterError {
7190 fn typename() -> &'static str {
7191 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsClusterError"
7192 }
7193}
7194
7195/// AwsNodePoolError describes errors found on AWS node pools.
7196#[derive(Clone, Default, PartialEq)]
7197#[non_exhaustive]
7198#[deprecated]
7199pub struct AwsNodePoolError {
7200 /// Human-friendly description of the error.
7201 pub message: std::string::String,
7202
7203 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7204}
7205
7206impl AwsNodePoolError {
7207 pub fn new() -> Self {
7208 std::default::Default::default()
7209 }
7210
7211 /// Sets the value of [message][crate::model::AwsNodePoolError::message].
7212 ///
7213 /// # Example
7214 /// ```ignore,no_run
7215 /// # use google_cloud_gkemulticloud_v1::model::AwsNodePoolError;
7216 /// let x = AwsNodePoolError::new().set_message("example");
7217 /// ```
7218 pub fn set_message<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7219 self.message = v.into();
7220 self
7221 }
7222}
7223
7224impl wkt::message::Message for AwsNodePoolError {
7225 fn typename() -> &'static str {
7226 "type.googleapis.com/google.cloud.gkemulticloud.v1.AwsNodePoolError"
7227 }
7228}
7229
7230/// Request message for `AwsClusters.CreateAwsCluster` method.
7231#[derive(Clone, Default, PartialEq)]
7232#[non_exhaustive]
7233#[deprecated]
7234pub struct CreateAwsClusterRequest {
7235 /// Required. The parent location where this
7236 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource will be
7237 /// created.
7238 ///
7239 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
7240 ///
7241 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
7242 /// for more details on Google Cloud resource names.
7243 ///
7244 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7245 pub parent: std::string::String,
7246
7247 /// Required. The specification of the
7248 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] to create.
7249 ///
7250 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7251 pub aws_cluster: std::option::Option<crate::model::AwsCluster>,
7252
7253 /// Required. A client provided ID the resource. Must be unique within the
7254 /// parent resource.
7255 ///
7256 /// The provided ID will be part of the
7257 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource name
7258 /// formatted as
7259 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
7260 ///
7261 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
7262 ///
7263 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7264 pub aws_cluster_id: std::string::String,
7265
7266 /// If set, only validate the request, but do not actually create the cluster.
7267 pub validate_only: bool,
7268
7269 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7270}
7271
7272impl CreateAwsClusterRequest {
7273 pub fn new() -> Self {
7274 std::default::Default::default()
7275 }
7276
7277 /// Sets the value of [parent][crate::model::CreateAwsClusterRequest::parent].
7278 ///
7279 /// # Example
7280 /// ```ignore,no_run
7281 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsClusterRequest;
7282 /// let x = CreateAwsClusterRequest::new().set_parent("example");
7283 /// ```
7284 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7285 self.parent = v.into();
7286 self
7287 }
7288
7289 /// Sets the value of [aws_cluster][crate::model::CreateAwsClusterRequest::aws_cluster].
7290 ///
7291 /// # Example
7292 /// ```ignore,no_run
7293 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsClusterRequest;
7294 /// use google_cloud_gkemulticloud_v1::model::AwsCluster;
7295 /// let x = CreateAwsClusterRequest::new().set_aws_cluster(AwsCluster::default()/* use setters */);
7296 /// ```
7297 pub fn set_aws_cluster<T>(mut self, v: T) -> Self
7298 where
7299 T: std::convert::Into<crate::model::AwsCluster>,
7300 {
7301 self.aws_cluster = std::option::Option::Some(v.into());
7302 self
7303 }
7304
7305 /// Sets or clears the value of [aws_cluster][crate::model::CreateAwsClusterRequest::aws_cluster].
7306 ///
7307 /// # Example
7308 /// ```ignore,no_run
7309 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsClusterRequest;
7310 /// use google_cloud_gkemulticloud_v1::model::AwsCluster;
7311 /// let x = CreateAwsClusterRequest::new().set_or_clear_aws_cluster(Some(AwsCluster::default()/* use setters */));
7312 /// let x = CreateAwsClusterRequest::new().set_or_clear_aws_cluster(None::<AwsCluster>);
7313 /// ```
7314 pub fn set_or_clear_aws_cluster<T>(mut self, v: std::option::Option<T>) -> Self
7315 where
7316 T: std::convert::Into<crate::model::AwsCluster>,
7317 {
7318 self.aws_cluster = v.map(|x| x.into());
7319 self
7320 }
7321
7322 /// Sets the value of [aws_cluster_id][crate::model::CreateAwsClusterRequest::aws_cluster_id].
7323 ///
7324 /// # Example
7325 /// ```ignore,no_run
7326 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsClusterRequest;
7327 /// let x = CreateAwsClusterRequest::new().set_aws_cluster_id("example");
7328 /// ```
7329 pub fn set_aws_cluster_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7330 self.aws_cluster_id = v.into();
7331 self
7332 }
7333
7334 /// Sets the value of [validate_only][crate::model::CreateAwsClusterRequest::validate_only].
7335 ///
7336 /// # Example
7337 /// ```ignore,no_run
7338 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsClusterRequest;
7339 /// let x = CreateAwsClusterRequest::new().set_validate_only(true);
7340 /// ```
7341 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
7342 self.validate_only = v.into();
7343 self
7344 }
7345}
7346
7347impl wkt::message::Message for CreateAwsClusterRequest {
7348 fn typename() -> &'static str {
7349 "type.googleapis.com/google.cloud.gkemulticloud.v1.CreateAwsClusterRequest"
7350 }
7351}
7352
7353/// Request message for `AwsClusters.UpdateAwsCluster` method.
7354#[derive(Clone, Default, PartialEq)]
7355#[non_exhaustive]
7356#[deprecated]
7357pub struct UpdateAwsClusterRequest {
7358 /// Required. The [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]
7359 /// resource to update.
7360 ///
7361 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7362 pub aws_cluster: std::option::Option<crate::model::AwsCluster>,
7363
7364 /// If set, only validate the request, but do not actually update the cluster.
7365 pub validate_only: bool,
7366
7367 /// Required. Mask of fields to update. At least one path must be supplied in
7368 /// this field. The elements of the repeated paths field can only include these
7369 /// fields from [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]:
7370 ///
7371 /// * `description`.
7372 /// * `annotations`.
7373 /// * `control_plane.version`.
7374 /// * `authorization.admin_users`.
7375 /// * `authorization.admin_groups`.
7376 /// * `binary_authorization.evaluation_mode`.
7377 /// * `control_plane.aws_services_authentication.role_arn`.
7378 /// * `control_plane.aws_services_authentication.role_session_name`.
7379 /// * `control_plane.config_encryption.kms_key_arn`.
7380 /// * `control_plane.instance_type`.
7381 /// * `control_plane.security_group_ids`.
7382 /// * `control_plane.proxy_config`.
7383 /// * `control_plane.proxy_config.secret_arn`.
7384 /// * `control_plane.proxy_config.secret_version`.
7385 /// * `control_plane.root_volume.size_gib`.
7386 /// * `control_plane.root_volume.volume_type`.
7387 /// * `control_plane.root_volume.iops`.
7388 /// * `control_plane.root_volume.throughput`.
7389 /// * `control_plane.root_volume.kms_key_arn`.
7390 /// * `control_plane.ssh_config`.
7391 /// * `control_plane.ssh_config.ec2_key_pair`.
7392 /// * `control_plane.instance_placement.tenancy`.
7393 /// * `control_plane.iam_instance_profile`.
7394 /// * `logging_config.component_config.enable_components`.
7395 /// * `control_plane.tags`.
7396 /// * `monitoring_config.managed_prometheus_config.enabled`.
7397 /// * `networking.per_node_pool_sg_rules_disabled`.
7398 ///
7399 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7400 pub update_mask: std::option::Option<wkt::FieldMask>,
7401
7402 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7403}
7404
7405impl UpdateAwsClusterRequest {
7406 pub fn new() -> Self {
7407 std::default::Default::default()
7408 }
7409
7410 /// Sets the value of [aws_cluster][crate::model::UpdateAwsClusterRequest::aws_cluster].
7411 ///
7412 /// # Example
7413 /// ```ignore,no_run
7414 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsClusterRequest;
7415 /// use google_cloud_gkemulticloud_v1::model::AwsCluster;
7416 /// let x = UpdateAwsClusterRequest::new().set_aws_cluster(AwsCluster::default()/* use setters */);
7417 /// ```
7418 pub fn set_aws_cluster<T>(mut self, v: T) -> Self
7419 where
7420 T: std::convert::Into<crate::model::AwsCluster>,
7421 {
7422 self.aws_cluster = std::option::Option::Some(v.into());
7423 self
7424 }
7425
7426 /// Sets or clears the value of [aws_cluster][crate::model::UpdateAwsClusterRequest::aws_cluster].
7427 ///
7428 /// # Example
7429 /// ```ignore,no_run
7430 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsClusterRequest;
7431 /// use google_cloud_gkemulticloud_v1::model::AwsCluster;
7432 /// let x = UpdateAwsClusterRequest::new().set_or_clear_aws_cluster(Some(AwsCluster::default()/* use setters */));
7433 /// let x = UpdateAwsClusterRequest::new().set_or_clear_aws_cluster(None::<AwsCluster>);
7434 /// ```
7435 pub fn set_or_clear_aws_cluster<T>(mut self, v: std::option::Option<T>) -> Self
7436 where
7437 T: std::convert::Into<crate::model::AwsCluster>,
7438 {
7439 self.aws_cluster = v.map(|x| x.into());
7440 self
7441 }
7442
7443 /// Sets the value of [validate_only][crate::model::UpdateAwsClusterRequest::validate_only].
7444 ///
7445 /// # Example
7446 /// ```ignore,no_run
7447 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsClusterRequest;
7448 /// let x = UpdateAwsClusterRequest::new().set_validate_only(true);
7449 /// ```
7450 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
7451 self.validate_only = v.into();
7452 self
7453 }
7454
7455 /// Sets the value of [update_mask][crate::model::UpdateAwsClusterRequest::update_mask].
7456 ///
7457 /// # Example
7458 /// ```ignore,no_run
7459 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsClusterRequest;
7460 /// use wkt::FieldMask;
7461 /// let x = UpdateAwsClusterRequest::new().set_update_mask(FieldMask::default()/* use setters */);
7462 /// ```
7463 pub fn set_update_mask<T>(mut self, v: T) -> Self
7464 where
7465 T: std::convert::Into<wkt::FieldMask>,
7466 {
7467 self.update_mask = std::option::Option::Some(v.into());
7468 self
7469 }
7470
7471 /// Sets or clears the value of [update_mask][crate::model::UpdateAwsClusterRequest::update_mask].
7472 ///
7473 /// # Example
7474 /// ```ignore,no_run
7475 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsClusterRequest;
7476 /// use wkt::FieldMask;
7477 /// let x = UpdateAwsClusterRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
7478 /// let x = UpdateAwsClusterRequest::new().set_or_clear_update_mask(None::<FieldMask>);
7479 /// ```
7480 pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
7481 where
7482 T: std::convert::Into<wkt::FieldMask>,
7483 {
7484 self.update_mask = v.map(|x| x.into());
7485 self
7486 }
7487}
7488
7489impl wkt::message::Message for UpdateAwsClusterRequest {
7490 fn typename() -> &'static str {
7491 "type.googleapis.com/google.cloud.gkemulticloud.v1.UpdateAwsClusterRequest"
7492 }
7493}
7494
7495/// Request message for `AwsClusters.GetAwsCluster` method.
7496#[derive(Clone, Default, PartialEq)]
7497#[non_exhaustive]
7498#[deprecated]
7499pub struct GetAwsClusterRequest {
7500 /// Required. The name of the
7501 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to
7502 /// describe.
7503 ///
7504 /// `AwsCluster` names are formatted as
7505 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
7506 ///
7507 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
7508 /// for more details on Google Cloud Platform resource names.
7509 ///
7510 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7511 pub name: std::string::String,
7512
7513 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7514}
7515
7516impl GetAwsClusterRequest {
7517 pub fn new() -> Self {
7518 std::default::Default::default()
7519 }
7520
7521 /// Sets the value of [name][crate::model::GetAwsClusterRequest::name].
7522 ///
7523 /// # Example
7524 /// ```ignore,no_run
7525 /// # use google_cloud_gkemulticloud_v1::model::GetAwsClusterRequest;
7526 /// let x = GetAwsClusterRequest::new().set_name("example");
7527 /// ```
7528 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7529 self.name = v.into();
7530 self
7531 }
7532}
7533
7534impl wkt::message::Message for GetAwsClusterRequest {
7535 fn typename() -> &'static str {
7536 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAwsClusterRequest"
7537 }
7538}
7539
7540/// Request message for `AwsClusters.ListAwsClusters` method.
7541#[derive(Clone, Default, PartialEq)]
7542#[non_exhaustive]
7543#[deprecated]
7544pub struct ListAwsClustersRequest {
7545 /// Required. The parent location which owns this collection of
7546 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources.
7547 ///
7548 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
7549 ///
7550 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
7551 /// for more details on Google Cloud Platform resource names.
7552 ///
7553 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7554 pub parent: std::string::String,
7555
7556 /// The maximum number of items to return.
7557 ///
7558 /// If not specified, a default value of 50 will be used by the service.
7559 /// Regardless of the pageSize value, the response can include a partial list
7560 /// and a caller should only rely on response's
7561 /// [nextPageToken][google.cloud.gkemulticloud.v1.ListAwsClustersResponse.next_page_token]
7562 /// to determine if there are more instances left to be queried.
7563 ///
7564 /// [google.cloud.gkemulticloud.v1.ListAwsClustersResponse.next_page_token]: crate::model::ListAwsClustersResponse::next_page_token
7565 pub page_size: i32,
7566
7567 /// The `nextPageToken` value returned from a previous
7568 /// [awsClusters.list][google.cloud.gkemulticloud.v1.AwsClusters.ListAwsClusters]
7569 /// request, if any.
7570 ///
7571 /// [google.cloud.gkemulticloud.v1.AwsClusters.ListAwsClusters]: crate::client::AwsClusters::list_aws_clusters
7572 pub page_token: std::string::String,
7573
7574 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7575}
7576
7577impl ListAwsClustersRequest {
7578 pub fn new() -> Self {
7579 std::default::Default::default()
7580 }
7581
7582 /// Sets the value of [parent][crate::model::ListAwsClustersRequest::parent].
7583 ///
7584 /// # Example
7585 /// ```ignore,no_run
7586 /// # use google_cloud_gkemulticloud_v1::model::ListAwsClustersRequest;
7587 /// let x = ListAwsClustersRequest::new().set_parent("example");
7588 /// ```
7589 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7590 self.parent = v.into();
7591 self
7592 }
7593
7594 /// Sets the value of [page_size][crate::model::ListAwsClustersRequest::page_size].
7595 ///
7596 /// # Example
7597 /// ```ignore,no_run
7598 /// # use google_cloud_gkemulticloud_v1::model::ListAwsClustersRequest;
7599 /// let x = ListAwsClustersRequest::new().set_page_size(42);
7600 /// ```
7601 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
7602 self.page_size = v.into();
7603 self
7604 }
7605
7606 /// Sets the value of [page_token][crate::model::ListAwsClustersRequest::page_token].
7607 ///
7608 /// # Example
7609 /// ```ignore,no_run
7610 /// # use google_cloud_gkemulticloud_v1::model::ListAwsClustersRequest;
7611 /// let x = ListAwsClustersRequest::new().set_page_token("example");
7612 /// ```
7613 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7614 self.page_token = v.into();
7615 self
7616 }
7617}
7618
7619impl wkt::message::Message for ListAwsClustersRequest {
7620 fn typename() -> &'static str {
7621 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAwsClustersRequest"
7622 }
7623}
7624
7625/// Response message for `AwsClusters.ListAwsClusters` method.
7626#[derive(Clone, Default, PartialEq)]
7627#[non_exhaustive]
7628#[deprecated]
7629pub struct ListAwsClustersResponse {
7630 /// A list of [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources
7631 /// in the specified Google Cloud Platform project and region region.
7632 ///
7633 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7634 pub aws_clusters: std::vec::Vec<crate::model::AwsCluster>,
7635
7636 /// Token to retrieve the next page of results, or empty if there are no more
7637 /// results in the list.
7638 pub next_page_token: std::string::String,
7639
7640 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7641}
7642
7643impl ListAwsClustersResponse {
7644 pub fn new() -> Self {
7645 std::default::Default::default()
7646 }
7647
7648 /// Sets the value of [aws_clusters][crate::model::ListAwsClustersResponse::aws_clusters].
7649 ///
7650 /// # Example
7651 /// ```ignore,no_run
7652 /// # use google_cloud_gkemulticloud_v1::model::ListAwsClustersResponse;
7653 /// use google_cloud_gkemulticloud_v1::model::AwsCluster;
7654 /// let x = ListAwsClustersResponse::new()
7655 /// .set_aws_clusters([
7656 /// AwsCluster::default()/* use setters */,
7657 /// AwsCluster::default()/* use (different) setters */,
7658 /// ]);
7659 /// ```
7660 pub fn set_aws_clusters<T, V>(mut self, v: T) -> Self
7661 where
7662 T: std::iter::IntoIterator<Item = V>,
7663 V: std::convert::Into<crate::model::AwsCluster>,
7664 {
7665 use std::iter::Iterator;
7666 self.aws_clusters = v.into_iter().map(|i| i.into()).collect();
7667 self
7668 }
7669
7670 /// Sets the value of [next_page_token][crate::model::ListAwsClustersResponse::next_page_token].
7671 ///
7672 /// # Example
7673 /// ```ignore,no_run
7674 /// # use google_cloud_gkemulticloud_v1::model::ListAwsClustersResponse;
7675 /// let x = ListAwsClustersResponse::new().set_next_page_token("example");
7676 /// ```
7677 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7678 self.next_page_token = v.into();
7679 self
7680 }
7681}
7682
7683impl wkt::message::Message for ListAwsClustersResponse {
7684 fn typename() -> &'static str {
7685 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAwsClustersResponse"
7686 }
7687}
7688
7689#[doc(hidden)]
7690impl google_cloud_gax::paginator::internal::PageableResponse for ListAwsClustersResponse {
7691 type PageItem = crate::model::AwsCluster;
7692
7693 fn items(self) -> std::vec::Vec<Self::PageItem> {
7694 self.aws_clusters
7695 }
7696
7697 fn next_page_token(&self) -> std::string::String {
7698 use std::clone::Clone;
7699 self.next_page_token.clone()
7700 }
7701}
7702
7703/// Request message for `AwsClusters.DeleteAwsCluster` method.
7704#[derive(Clone, Default, PartialEq)]
7705#[non_exhaustive]
7706#[deprecated]
7707pub struct DeleteAwsClusterRequest {
7708 /// Required. The resource name the
7709 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] to delete.
7710 ///
7711 /// `AwsCluster` names are formatted as
7712 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
7713 ///
7714 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
7715 /// for more details on Google Cloud Platform resource names.
7716 ///
7717 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7718 pub name: std::string::String,
7719
7720 /// If set, only validate the request, but do not actually delete the resource.
7721 pub validate_only: bool,
7722
7723 /// If set to true, and the
7724 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource is not
7725 /// found, the request will succeed but no action will be taken on the server
7726 /// and a completed [Operation][google.longrunning.Operation] will be returned.
7727 ///
7728 /// Useful for idempotent deletion.
7729 ///
7730 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7731 /// [google.longrunning.Operation]: google_cloud_longrunning::model::Operation
7732 pub allow_missing: bool,
7733
7734 /// Optional. If set to true, the deletion of
7735 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource will
7736 /// succeed even if errors occur during deleting in cluster resources. Using
7737 /// this parameter may result in orphaned resources in the cluster.
7738 ///
7739 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7740 pub ignore_errors: bool,
7741
7742 /// The current etag of the
7743 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
7744 ///
7745 /// Allows clients to perform deletions through optimistic concurrency control.
7746 ///
7747 /// If the provided etag does not match the current etag of the cluster,
7748 /// the request will fail and an ABORTED error will be returned.
7749 ///
7750 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7751 pub etag: std::string::String,
7752
7753 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7754}
7755
7756impl DeleteAwsClusterRequest {
7757 pub fn new() -> Self {
7758 std::default::Default::default()
7759 }
7760
7761 /// Sets the value of [name][crate::model::DeleteAwsClusterRequest::name].
7762 ///
7763 /// # Example
7764 /// ```ignore,no_run
7765 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsClusterRequest;
7766 /// let x = DeleteAwsClusterRequest::new().set_name("example");
7767 /// ```
7768 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7769 self.name = v.into();
7770 self
7771 }
7772
7773 /// Sets the value of [validate_only][crate::model::DeleteAwsClusterRequest::validate_only].
7774 ///
7775 /// # Example
7776 /// ```ignore,no_run
7777 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsClusterRequest;
7778 /// let x = DeleteAwsClusterRequest::new().set_validate_only(true);
7779 /// ```
7780 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
7781 self.validate_only = v.into();
7782 self
7783 }
7784
7785 /// Sets the value of [allow_missing][crate::model::DeleteAwsClusterRequest::allow_missing].
7786 ///
7787 /// # Example
7788 /// ```ignore,no_run
7789 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsClusterRequest;
7790 /// let x = DeleteAwsClusterRequest::new().set_allow_missing(true);
7791 /// ```
7792 pub fn set_allow_missing<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
7793 self.allow_missing = v.into();
7794 self
7795 }
7796
7797 /// Sets the value of [ignore_errors][crate::model::DeleteAwsClusterRequest::ignore_errors].
7798 ///
7799 /// # Example
7800 /// ```ignore,no_run
7801 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsClusterRequest;
7802 /// let x = DeleteAwsClusterRequest::new().set_ignore_errors(true);
7803 /// ```
7804 pub fn set_ignore_errors<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
7805 self.ignore_errors = v.into();
7806 self
7807 }
7808
7809 /// Sets the value of [etag][crate::model::DeleteAwsClusterRequest::etag].
7810 ///
7811 /// # Example
7812 /// ```ignore,no_run
7813 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsClusterRequest;
7814 /// let x = DeleteAwsClusterRequest::new().set_etag("example");
7815 /// ```
7816 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7817 self.etag = v.into();
7818 self
7819 }
7820}
7821
7822impl wkt::message::Message for DeleteAwsClusterRequest {
7823 fn typename() -> &'static str {
7824 "type.googleapis.com/google.cloud.gkemulticloud.v1.DeleteAwsClusterRequest"
7825 }
7826}
7827
7828/// Response message for `AwsClusters.CreateAwsNodePool` method.
7829#[derive(Clone, Default, PartialEq)]
7830#[non_exhaustive]
7831#[deprecated]
7832pub struct CreateAwsNodePoolRequest {
7833 /// Required. The [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]
7834 /// resource where this node pool will be created.
7835 ///
7836 /// `AwsCluster` names are formatted as
7837 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
7838 ///
7839 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
7840 /// for more details on Google Cloud resource names.
7841 ///
7842 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
7843 pub parent: std::string::String,
7844
7845 /// Required. The specification of the
7846 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] to create.
7847 ///
7848 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
7849 pub aws_node_pool: std::option::Option<crate::model::AwsNodePool>,
7850
7851 /// Required. A client provided ID the resource. Must be unique within the
7852 /// parent resource.
7853 ///
7854 /// The provided ID will be part of the
7855 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource name
7856 /// formatted as
7857 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
7858 ///
7859 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
7860 ///
7861 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
7862 pub aws_node_pool_id: std::string::String,
7863
7864 /// If set, only validate the request, but do not actually create the node
7865 /// pool.
7866 pub validate_only: bool,
7867
7868 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
7869}
7870
7871impl CreateAwsNodePoolRequest {
7872 pub fn new() -> Self {
7873 std::default::Default::default()
7874 }
7875
7876 /// Sets the value of [parent][crate::model::CreateAwsNodePoolRequest::parent].
7877 ///
7878 /// # Example
7879 /// ```ignore,no_run
7880 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsNodePoolRequest;
7881 /// let x = CreateAwsNodePoolRequest::new().set_parent("example");
7882 /// ```
7883 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
7884 self.parent = v.into();
7885 self
7886 }
7887
7888 /// Sets the value of [aws_node_pool][crate::model::CreateAwsNodePoolRequest::aws_node_pool].
7889 ///
7890 /// # Example
7891 /// ```ignore,no_run
7892 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsNodePoolRequest;
7893 /// use google_cloud_gkemulticloud_v1::model::AwsNodePool;
7894 /// let x = CreateAwsNodePoolRequest::new().set_aws_node_pool(AwsNodePool::default()/* use setters */);
7895 /// ```
7896 pub fn set_aws_node_pool<T>(mut self, v: T) -> Self
7897 where
7898 T: std::convert::Into<crate::model::AwsNodePool>,
7899 {
7900 self.aws_node_pool = std::option::Option::Some(v.into());
7901 self
7902 }
7903
7904 /// Sets or clears the value of [aws_node_pool][crate::model::CreateAwsNodePoolRequest::aws_node_pool].
7905 ///
7906 /// # Example
7907 /// ```ignore,no_run
7908 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsNodePoolRequest;
7909 /// use google_cloud_gkemulticloud_v1::model::AwsNodePool;
7910 /// let x = CreateAwsNodePoolRequest::new().set_or_clear_aws_node_pool(Some(AwsNodePool::default()/* use setters */));
7911 /// let x = CreateAwsNodePoolRequest::new().set_or_clear_aws_node_pool(None::<AwsNodePool>);
7912 /// ```
7913 pub fn set_or_clear_aws_node_pool<T>(mut self, v: std::option::Option<T>) -> Self
7914 where
7915 T: std::convert::Into<crate::model::AwsNodePool>,
7916 {
7917 self.aws_node_pool = v.map(|x| x.into());
7918 self
7919 }
7920
7921 /// Sets the value of [aws_node_pool_id][crate::model::CreateAwsNodePoolRequest::aws_node_pool_id].
7922 ///
7923 /// # Example
7924 /// ```ignore,no_run
7925 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsNodePoolRequest;
7926 /// let x = CreateAwsNodePoolRequest::new().set_aws_node_pool_id("example");
7927 /// ```
7928 pub fn set_aws_node_pool_id<T: std::convert::Into<std::string::String>>(
7929 mut self,
7930 v: T,
7931 ) -> Self {
7932 self.aws_node_pool_id = v.into();
7933 self
7934 }
7935
7936 /// Sets the value of [validate_only][crate::model::CreateAwsNodePoolRequest::validate_only].
7937 ///
7938 /// # Example
7939 /// ```ignore,no_run
7940 /// # use google_cloud_gkemulticloud_v1::model::CreateAwsNodePoolRequest;
7941 /// let x = CreateAwsNodePoolRequest::new().set_validate_only(true);
7942 /// ```
7943 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
7944 self.validate_only = v.into();
7945 self
7946 }
7947}
7948
7949impl wkt::message::Message for CreateAwsNodePoolRequest {
7950 fn typename() -> &'static str {
7951 "type.googleapis.com/google.cloud.gkemulticloud.v1.CreateAwsNodePoolRequest"
7952 }
7953}
7954
7955/// Request message for `AwsClusters.UpdateAwsNodePool` method.
7956#[derive(Clone, Default, PartialEq)]
7957#[non_exhaustive]
7958#[deprecated]
7959pub struct UpdateAwsNodePoolRequest {
7960 /// Required. The [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]
7961 /// resource to update.
7962 ///
7963 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
7964 pub aws_node_pool: std::option::Option<crate::model::AwsNodePool>,
7965
7966 /// If set, only validate the request, but don't actually update the node pool.
7967 pub validate_only: bool,
7968
7969 /// Required. Mask of fields to update. At least one path must be supplied in
7970 /// this field. The elements of the repeated paths field can only include these
7971 /// fields from [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]:
7972 ///
7973 /// * `annotations`.
7974 /// * `version`.
7975 /// * `autoscaling.min_node_count`.
7976 /// * `autoscaling.max_node_count`.
7977 /// * `config.config_encryption.kms_key_arn`.
7978 /// * `config.security_group_ids`.
7979 /// * `config.root_volume.iops`.
7980 /// * `config.root_volume.throughput`.
7981 /// * `config.root_volume.kms_key_arn`.
7982 /// * `config.root_volume.volume_type`.
7983 /// * `config.root_volume.size_gib`.
7984 /// * `config.proxy_config`.
7985 /// * `config.proxy_config.secret_arn`.
7986 /// * `config.proxy_config.secret_version`.
7987 /// * `config.ssh_config`.
7988 /// * `config.ssh_config.ec2_key_pair`.
7989 /// * `config.instance_placement.tenancy`.
7990 /// * `config.iam_instance_profile`.
7991 /// * `config.labels`.
7992 /// * `config.tags`.
7993 /// * `config.autoscaling_metrics_collection`.
7994 /// * `config.autoscaling_metrics_collection.granularity`.
7995 /// * `config.autoscaling_metrics_collection.metrics`.
7996 /// * `config.instance_type`.
7997 /// * `management.auto_repair`.
7998 /// * `management`.
7999 /// * `update_settings`.
8000 /// * `update_settings.surge_settings`.
8001 /// * `update_settings.surge_settings.max_surge`.
8002 /// * `update_settings.surge_settings.max_unavailable`.
8003 ///
8004 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8005 pub update_mask: std::option::Option<wkt::FieldMask>,
8006
8007 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8008}
8009
8010impl UpdateAwsNodePoolRequest {
8011 pub fn new() -> Self {
8012 std::default::Default::default()
8013 }
8014
8015 /// Sets the value of [aws_node_pool][crate::model::UpdateAwsNodePoolRequest::aws_node_pool].
8016 ///
8017 /// # Example
8018 /// ```ignore,no_run
8019 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsNodePoolRequest;
8020 /// use google_cloud_gkemulticloud_v1::model::AwsNodePool;
8021 /// let x = UpdateAwsNodePoolRequest::new().set_aws_node_pool(AwsNodePool::default()/* use setters */);
8022 /// ```
8023 pub fn set_aws_node_pool<T>(mut self, v: T) -> Self
8024 where
8025 T: std::convert::Into<crate::model::AwsNodePool>,
8026 {
8027 self.aws_node_pool = std::option::Option::Some(v.into());
8028 self
8029 }
8030
8031 /// Sets or clears the value of [aws_node_pool][crate::model::UpdateAwsNodePoolRequest::aws_node_pool].
8032 ///
8033 /// # Example
8034 /// ```ignore,no_run
8035 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsNodePoolRequest;
8036 /// use google_cloud_gkemulticloud_v1::model::AwsNodePool;
8037 /// let x = UpdateAwsNodePoolRequest::new().set_or_clear_aws_node_pool(Some(AwsNodePool::default()/* use setters */));
8038 /// let x = UpdateAwsNodePoolRequest::new().set_or_clear_aws_node_pool(None::<AwsNodePool>);
8039 /// ```
8040 pub fn set_or_clear_aws_node_pool<T>(mut self, v: std::option::Option<T>) -> Self
8041 where
8042 T: std::convert::Into<crate::model::AwsNodePool>,
8043 {
8044 self.aws_node_pool = v.map(|x| x.into());
8045 self
8046 }
8047
8048 /// Sets the value of [validate_only][crate::model::UpdateAwsNodePoolRequest::validate_only].
8049 ///
8050 /// # Example
8051 /// ```ignore,no_run
8052 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsNodePoolRequest;
8053 /// let x = UpdateAwsNodePoolRequest::new().set_validate_only(true);
8054 /// ```
8055 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
8056 self.validate_only = v.into();
8057 self
8058 }
8059
8060 /// Sets the value of [update_mask][crate::model::UpdateAwsNodePoolRequest::update_mask].
8061 ///
8062 /// # Example
8063 /// ```ignore,no_run
8064 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsNodePoolRequest;
8065 /// use wkt::FieldMask;
8066 /// let x = UpdateAwsNodePoolRequest::new().set_update_mask(FieldMask::default()/* use setters */);
8067 /// ```
8068 pub fn set_update_mask<T>(mut self, v: T) -> Self
8069 where
8070 T: std::convert::Into<wkt::FieldMask>,
8071 {
8072 self.update_mask = std::option::Option::Some(v.into());
8073 self
8074 }
8075
8076 /// Sets or clears the value of [update_mask][crate::model::UpdateAwsNodePoolRequest::update_mask].
8077 ///
8078 /// # Example
8079 /// ```ignore,no_run
8080 /// # use google_cloud_gkemulticloud_v1::model::UpdateAwsNodePoolRequest;
8081 /// use wkt::FieldMask;
8082 /// let x = UpdateAwsNodePoolRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
8083 /// let x = UpdateAwsNodePoolRequest::new().set_or_clear_update_mask(None::<FieldMask>);
8084 /// ```
8085 pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
8086 where
8087 T: std::convert::Into<wkt::FieldMask>,
8088 {
8089 self.update_mask = v.map(|x| x.into());
8090 self
8091 }
8092}
8093
8094impl wkt::message::Message for UpdateAwsNodePoolRequest {
8095 fn typename() -> &'static str {
8096 "type.googleapis.com/google.cloud.gkemulticloud.v1.UpdateAwsNodePoolRequest"
8097 }
8098}
8099
8100/// Request message for `AwsClusters.RollbackAwsNodePoolUpdate` method.
8101#[derive(Clone, Default, PartialEq)]
8102#[non_exhaustive]
8103#[deprecated]
8104pub struct RollbackAwsNodePoolUpdateRequest {
8105 /// Required. The name of the
8106 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource to
8107 /// rollback.
8108 ///
8109 /// `AwsNodePool` names are formatted as
8110 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
8111 ///
8112 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8113 /// for more details on Google Cloud resource names.
8114 ///
8115 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8116 pub name: std::string::String,
8117
8118 /// Optional. Option for rollback to ignore the PodDisruptionBudget when
8119 /// draining the node pool nodes. Default value is false.
8120 pub respect_pdb: bool,
8121
8122 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8123}
8124
8125impl RollbackAwsNodePoolUpdateRequest {
8126 pub fn new() -> Self {
8127 std::default::Default::default()
8128 }
8129
8130 /// Sets the value of [name][crate::model::RollbackAwsNodePoolUpdateRequest::name].
8131 ///
8132 /// # Example
8133 /// ```ignore,no_run
8134 /// # use google_cloud_gkemulticloud_v1::model::RollbackAwsNodePoolUpdateRequest;
8135 /// let x = RollbackAwsNodePoolUpdateRequest::new().set_name("example");
8136 /// ```
8137 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8138 self.name = v.into();
8139 self
8140 }
8141
8142 /// Sets the value of [respect_pdb][crate::model::RollbackAwsNodePoolUpdateRequest::respect_pdb].
8143 ///
8144 /// # Example
8145 /// ```ignore,no_run
8146 /// # use google_cloud_gkemulticloud_v1::model::RollbackAwsNodePoolUpdateRequest;
8147 /// let x = RollbackAwsNodePoolUpdateRequest::new().set_respect_pdb(true);
8148 /// ```
8149 pub fn set_respect_pdb<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
8150 self.respect_pdb = v.into();
8151 self
8152 }
8153}
8154
8155impl wkt::message::Message for RollbackAwsNodePoolUpdateRequest {
8156 fn typename() -> &'static str {
8157 "type.googleapis.com/google.cloud.gkemulticloud.v1.RollbackAwsNodePoolUpdateRequest"
8158 }
8159}
8160
8161/// Request message for `AwsClusters.GetAwsNodePool` method.
8162#[derive(Clone, Default, PartialEq)]
8163#[non_exhaustive]
8164#[deprecated]
8165pub struct GetAwsNodePoolRequest {
8166 /// Required. The name of the
8167 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource to
8168 /// describe.
8169 ///
8170 /// `AwsNodePool` names are formatted as
8171 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
8172 ///
8173 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8174 /// for more details on Google Cloud resource names.
8175 ///
8176 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8177 pub name: std::string::String,
8178
8179 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8180}
8181
8182impl GetAwsNodePoolRequest {
8183 pub fn new() -> Self {
8184 std::default::Default::default()
8185 }
8186
8187 /// Sets the value of [name][crate::model::GetAwsNodePoolRequest::name].
8188 ///
8189 /// # Example
8190 /// ```ignore,no_run
8191 /// # use google_cloud_gkemulticloud_v1::model::GetAwsNodePoolRequest;
8192 /// let x = GetAwsNodePoolRequest::new().set_name("example");
8193 /// ```
8194 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8195 self.name = v.into();
8196 self
8197 }
8198}
8199
8200impl wkt::message::Message for GetAwsNodePoolRequest {
8201 fn typename() -> &'static str {
8202 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAwsNodePoolRequest"
8203 }
8204}
8205
8206/// Request message for `AwsClusters.ListAwsNodePools` method.
8207#[derive(Clone, Default, PartialEq)]
8208#[non_exhaustive]
8209#[deprecated]
8210pub struct ListAwsNodePoolsRequest {
8211 /// Required. The parent `AwsCluster` which owns this collection of
8212 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources.
8213 ///
8214 /// `AwsCluster` names are formatted as
8215 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
8216 ///
8217 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8218 /// for more details on Google Cloud resource names.
8219 ///
8220 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8221 pub parent: std::string::String,
8222
8223 /// The maximum number of items to return.
8224 ///
8225 /// If not specified, a default value of 50 will be used by the service.
8226 /// Regardless of the pageSize value, the response can include a partial list
8227 /// and a caller should only rely on response's
8228 /// [nextPageToken][google.cloud.gkemulticloud.v1.ListAwsNodePoolsResponse.next_page_token]
8229 /// to determine if there are more instances left to be queried.
8230 ///
8231 /// [google.cloud.gkemulticloud.v1.ListAwsNodePoolsResponse.next_page_token]: crate::model::ListAwsNodePoolsResponse::next_page_token
8232 pub page_size: i32,
8233
8234 /// The `nextPageToken` value returned from a previous
8235 /// [awsNodePools.list][google.cloud.gkemulticloud.v1.AwsClusters.ListAwsNodePools]
8236 /// request, if any.
8237 ///
8238 /// [google.cloud.gkemulticloud.v1.AwsClusters.ListAwsNodePools]: crate::client::AwsClusters::list_aws_node_pools
8239 pub page_token: std::string::String,
8240
8241 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8242}
8243
8244impl ListAwsNodePoolsRequest {
8245 pub fn new() -> Self {
8246 std::default::Default::default()
8247 }
8248
8249 /// Sets the value of [parent][crate::model::ListAwsNodePoolsRequest::parent].
8250 ///
8251 /// # Example
8252 /// ```ignore,no_run
8253 /// # use google_cloud_gkemulticloud_v1::model::ListAwsNodePoolsRequest;
8254 /// let x = ListAwsNodePoolsRequest::new().set_parent("example");
8255 /// ```
8256 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8257 self.parent = v.into();
8258 self
8259 }
8260
8261 /// Sets the value of [page_size][crate::model::ListAwsNodePoolsRequest::page_size].
8262 ///
8263 /// # Example
8264 /// ```ignore,no_run
8265 /// # use google_cloud_gkemulticloud_v1::model::ListAwsNodePoolsRequest;
8266 /// let x = ListAwsNodePoolsRequest::new().set_page_size(42);
8267 /// ```
8268 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
8269 self.page_size = v.into();
8270 self
8271 }
8272
8273 /// Sets the value of [page_token][crate::model::ListAwsNodePoolsRequest::page_token].
8274 ///
8275 /// # Example
8276 /// ```ignore,no_run
8277 /// # use google_cloud_gkemulticloud_v1::model::ListAwsNodePoolsRequest;
8278 /// let x = ListAwsNodePoolsRequest::new().set_page_token("example");
8279 /// ```
8280 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8281 self.page_token = v.into();
8282 self
8283 }
8284}
8285
8286impl wkt::message::Message for ListAwsNodePoolsRequest {
8287 fn typename() -> &'static str {
8288 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAwsNodePoolsRequest"
8289 }
8290}
8291
8292/// Response message for `AwsClusters.ListAwsNodePools` method.
8293#[derive(Clone, Default, PartialEq)]
8294#[non_exhaustive]
8295#[deprecated]
8296pub struct ListAwsNodePoolsResponse {
8297 /// A list of [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]
8298 /// resources in the specified `AwsCluster`.
8299 ///
8300 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8301 pub aws_node_pools: std::vec::Vec<crate::model::AwsNodePool>,
8302
8303 /// Token to retrieve the next page of results, or empty if there are no more
8304 /// results in the list.
8305 pub next_page_token: std::string::String,
8306
8307 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8308}
8309
8310impl ListAwsNodePoolsResponse {
8311 pub fn new() -> Self {
8312 std::default::Default::default()
8313 }
8314
8315 /// Sets the value of [aws_node_pools][crate::model::ListAwsNodePoolsResponse::aws_node_pools].
8316 ///
8317 /// # Example
8318 /// ```ignore,no_run
8319 /// # use google_cloud_gkemulticloud_v1::model::ListAwsNodePoolsResponse;
8320 /// use google_cloud_gkemulticloud_v1::model::AwsNodePool;
8321 /// let x = ListAwsNodePoolsResponse::new()
8322 /// .set_aws_node_pools([
8323 /// AwsNodePool::default()/* use setters */,
8324 /// AwsNodePool::default()/* use (different) setters */,
8325 /// ]);
8326 /// ```
8327 pub fn set_aws_node_pools<T, V>(mut self, v: T) -> Self
8328 where
8329 T: std::iter::IntoIterator<Item = V>,
8330 V: std::convert::Into<crate::model::AwsNodePool>,
8331 {
8332 use std::iter::Iterator;
8333 self.aws_node_pools = v.into_iter().map(|i| i.into()).collect();
8334 self
8335 }
8336
8337 /// Sets the value of [next_page_token][crate::model::ListAwsNodePoolsResponse::next_page_token].
8338 ///
8339 /// # Example
8340 /// ```ignore,no_run
8341 /// # use google_cloud_gkemulticloud_v1::model::ListAwsNodePoolsResponse;
8342 /// let x = ListAwsNodePoolsResponse::new().set_next_page_token("example");
8343 /// ```
8344 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8345 self.next_page_token = v.into();
8346 self
8347 }
8348}
8349
8350impl wkt::message::Message for ListAwsNodePoolsResponse {
8351 fn typename() -> &'static str {
8352 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAwsNodePoolsResponse"
8353 }
8354}
8355
8356#[doc(hidden)]
8357impl google_cloud_gax::paginator::internal::PageableResponse for ListAwsNodePoolsResponse {
8358 type PageItem = crate::model::AwsNodePool;
8359
8360 fn items(self) -> std::vec::Vec<Self::PageItem> {
8361 self.aws_node_pools
8362 }
8363
8364 fn next_page_token(&self) -> std::string::String {
8365 use std::clone::Clone;
8366 self.next_page_token.clone()
8367 }
8368}
8369
8370/// Request message for `AwsClusters.DeleteAwsNodePool` method.
8371#[derive(Clone, Default, PartialEq)]
8372#[non_exhaustive]
8373#[deprecated]
8374pub struct DeleteAwsNodePoolRequest {
8375 /// Required. The resource name the
8376 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] to delete.
8377 ///
8378 /// `AwsNodePool` names are formatted as
8379 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
8380 ///
8381 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8382 /// for more details on Google Cloud resource names.
8383 ///
8384 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8385 pub name: std::string::String,
8386
8387 /// If set, only validate the request, but do not actually delete the node
8388 /// pool.
8389 pub validate_only: bool,
8390
8391 /// If set to true, and the
8392 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource is not
8393 /// found, the request will succeed but no action will be taken on the server
8394 /// and a completed [Operation][google.longrunning.Operation] will be returned.
8395 ///
8396 /// Useful for idempotent deletion.
8397 ///
8398 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8399 /// [google.longrunning.Operation]: google_cloud_longrunning::model::Operation
8400 pub allow_missing: bool,
8401
8402 /// Optional. If set to true, the deletion of
8403 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource will
8404 /// succeed even if errors occur during deleting in node pool resources. Using
8405 /// this parameter may result in orphaned resources in the node pool.
8406 ///
8407 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8408 pub ignore_errors: bool,
8409
8410 /// The current ETag of the
8411 /// [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool].
8412 ///
8413 /// Allows clients to perform deletions through optimistic concurrency control.
8414 ///
8415 /// If the provided ETag does not match the current etag of the node pool,
8416 /// the request will fail and an ABORTED error will be returned.
8417 ///
8418 /// [google.cloud.gkemulticloud.v1.AwsNodePool]: crate::model::AwsNodePool
8419 pub etag: std::string::String,
8420
8421 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8422}
8423
8424impl DeleteAwsNodePoolRequest {
8425 pub fn new() -> Self {
8426 std::default::Default::default()
8427 }
8428
8429 /// Sets the value of [name][crate::model::DeleteAwsNodePoolRequest::name].
8430 ///
8431 /// # Example
8432 /// ```ignore,no_run
8433 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsNodePoolRequest;
8434 /// let x = DeleteAwsNodePoolRequest::new().set_name("example");
8435 /// ```
8436 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8437 self.name = v.into();
8438 self
8439 }
8440
8441 /// Sets the value of [validate_only][crate::model::DeleteAwsNodePoolRequest::validate_only].
8442 ///
8443 /// # Example
8444 /// ```ignore,no_run
8445 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsNodePoolRequest;
8446 /// let x = DeleteAwsNodePoolRequest::new().set_validate_only(true);
8447 /// ```
8448 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
8449 self.validate_only = v.into();
8450 self
8451 }
8452
8453 /// Sets the value of [allow_missing][crate::model::DeleteAwsNodePoolRequest::allow_missing].
8454 ///
8455 /// # Example
8456 /// ```ignore,no_run
8457 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsNodePoolRequest;
8458 /// let x = DeleteAwsNodePoolRequest::new().set_allow_missing(true);
8459 /// ```
8460 pub fn set_allow_missing<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
8461 self.allow_missing = v.into();
8462 self
8463 }
8464
8465 /// Sets the value of [ignore_errors][crate::model::DeleteAwsNodePoolRequest::ignore_errors].
8466 ///
8467 /// # Example
8468 /// ```ignore,no_run
8469 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsNodePoolRequest;
8470 /// let x = DeleteAwsNodePoolRequest::new().set_ignore_errors(true);
8471 /// ```
8472 pub fn set_ignore_errors<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
8473 self.ignore_errors = v.into();
8474 self
8475 }
8476
8477 /// Sets the value of [etag][crate::model::DeleteAwsNodePoolRequest::etag].
8478 ///
8479 /// # Example
8480 /// ```ignore,no_run
8481 /// # use google_cloud_gkemulticloud_v1::model::DeleteAwsNodePoolRequest;
8482 /// let x = DeleteAwsNodePoolRequest::new().set_etag("example");
8483 /// ```
8484 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8485 self.etag = v.into();
8486 self
8487 }
8488}
8489
8490impl wkt::message::Message for DeleteAwsNodePoolRequest {
8491 fn typename() -> &'static str {
8492 "type.googleapis.com/google.cloud.gkemulticloud.v1.DeleteAwsNodePoolRequest"
8493 }
8494}
8495
8496/// GetAwsOpenIdConfigRequest gets the OIDC discovery document for the
8497/// cluster. See the OpenID Connect Discovery 1.0 specification for details.
8498#[derive(Clone, Default, PartialEq)]
8499#[non_exhaustive]
8500#[deprecated]
8501pub struct GetAwsOpenIdConfigRequest {
8502 /// Required. The AwsCluster, which owns the OIDC discovery document.
8503 /// Format:
8504 /// projects/{project}/locations/{location}/awsClusters/{cluster}
8505 pub aws_cluster: std::string::String,
8506
8507 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8508}
8509
8510impl GetAwsOpenIdConfigRequest {
8511 pub fn new() -> Self {
8512 std::default::Default::default()
8513 }
8514
8515 /// Sets the value of [aws_cluster][crate::model::GetAwsOpenIdConfigRequest::aws_cluster].
8516 ///
8517 /// # Example
8518 /// ```ignore,no_run
8519 /// # use google_cloud_gkemulticloud_v1::model::GetAwsOpenIdConfigRequest;
8520 /// let x = GetAwsOpenIdConfigRequest::new().set_aws_cluster("example");
8521 /// ```
8522 pub fn set_aws_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8523 self.aws_cluster = v.into();
8524 self
8525 }
8526}
8527
8528impl wkt::message::Message for GetAwsOpenIdConfigRequest {
8529 fn typename() -> &'static str {
8530 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAwsOpenIdConfigRequest"
8531 }
8532}
8533
8534/// GetAwsJsonWebKeysRequest gets the public component of the keys used by the
8535/// cluster to sign token requests. This will be the jwks_uri for the discover
8536/// document returned by getOpenIDConfig. See the OpenID Connect
8537/// Discovery 1.0 specification for details.
8538#[derive(Clone, Default, PartialEq)]
8539#[non_exhaustive]
8540#[deprecated]
8541pub struct GetAwsJsonWebKeysRequest {
8542 /// Required. The AwsCluster, which owns the JsonWebKeys.
8543 /// Format:
8544 /// projects/{project}/locations/{location}/awsClusters/{cluster}
8545 pub aws_cluster: std::string::String,
8546
8547 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8548}
8549
8550impl GetAwsJsonWebKeysRequest {
8551 pub fn new() -> Self {
8552 std::default::Default::default()
8553 }
8554
8555 /// Sets the value of [aws_cluster][crate::model::GetAwsJsonWebKeysRequest::aws_cluster].
8556 ///
8557 /// # Example
8558 /// ```ignore,no_run
8559 /// # use google_cloud_gkemulticloud_v1::model::GetAwsJsonWebKeysRequest;
8560 /// let x = GetAwsJsonWebKeysRequest::new().set_aws_cluster("example");
8561 /// ```
8562 pub fn set_aws_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8563 self.aws_cluster = v.into();
8564 self
8565 }
8566}
8567
8568impl wkt::message::Message for GetAwsJsonWebKeysRequest {
8569 fn typename() -> &'static str {
8570 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAwsJsonWebKeysRequest"
8571 }
8572}
8573
8574/// GetAwsServerConfigRequest gets the server config of GKE cluster on AWS.
8575#[derive(Clone, Default, PartialEq)]
8576#[non_exhaustive]
8577#[deprecated]
8578pub struct GetAwsServerConfigRequest {
8579 /// Required. The name of the
8580 /// [AwsServerConfig][google.cloud.gkemulticloud.v1.AwsServerConfig] resource
8581 /// to describe.
8582 ///
8583 /// `AwsServerConfig` names are formatted as
8584 /// `projects/<project-id>/locations/<region>/awsServerConfig`.
8585 ///
8586 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8587 /// for more details on Google Cloud resource names.
8588 ///
8589 /// [google.cloud.gkemulticloud.v1.AwsServerConfig]: crate::model::AwsServerConfig
8590 pub name: std::string::String,
8591
8592 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8593}
8594
8595impl GetAwsServerConfigRequest {
8596 pub fn new() -> Self {
8597 std::default::Default::default()
8598 }
8599
8600 /// Sets the value of [name][crate::model::GetAwsServerConfigRequest::name].
8601 ///
8602 /// # Example
8603 /// ```ignore,no_run
8604 /// # use google_cloud_gkemulticloud_v1::model::GetAwsServerConfigRequest;
8605 /// let x = GetAwsServerConfigRequest::new().set_name("example");
8606 /// ```
8607 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8608 self.name = v.into();
8609 self
8610 }
8611}
8612
8613impl wkt::message::Message for GetAwsServerConfigRequest {
8614 fn typename() -> &'static str {
8615 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAwsServerConfigRequest"
8616 }
8617}
8618
8619/// Request message for `AwsClusters.GenerateAwsAccessToken` method.
8620#[derive(Clone, Default, PartialEq)]
8621#[non_exhaustive]
8622#[deprecated]
8623pub struct GenerateAwsAccessTokenRequest {
8624 /// Required. The name of the
8625 /// [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to
8626 /// authenticate to.
8627 ///
8628 /// `AwsCluster` names are formatted as
8629 /// `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
8630 ///
8631 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8632 /// for more details on Google Cloud resource names.
8633 ///
8634 /// [google.cloud.gkemulticloud.v1.AwsCluster]: crate::model::AwsCluster
8635 pub aws_cluster: std::string::String,
8636
8637 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8638}
8639
8640impl GenerateAwsAccessTokenRequest {
8641 pub fn new() -> Self {
8642 std::default::Default::default()
8643 }
8644
8645 /// Sets the value of [aws_cluster][crate::model::GenerateAwsAccessTokenRequest::aws_cluster].
8646 ///
8647 /// # Example
8648 /// ```ignore,no_run
8649 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsAccessTokenRequest;
8650 /// let x = GenerateAwsAccessTokenRequest::new().set_aws_cluster("example");
8651 /// ```
8652 pub fn set_aws_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8653 self.aws_cluster = v.into();
8654 self
8655 }
8656}
8657
8658impl wkt::message::Message for GenerateAwsAccessTokenRequest {
8659 fn typename() -> &'static str {
8660 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAwsAccessTokenRequest"
8661 }
8662}
8663
8664/// Response message for `AwsClusters.GenerateAwsAccessToken` method.
8665#[derive(Clone, Default, PartialEq)]
8666#[non_exhaustive]
8667#[deprecated]
8668pub struct GenerateAwsAccessTokenResponse {
8669 /// Output only. Access token to authenticate to k8s api-server.
8670 pub access_token: std::string::String,
8671
8672 /// Output only. Timestamp at which the token will expire.
8673 pub expiration_time: std::option::Option<wkt::Timestamp>,
8674
8675 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8676}
8677
8678impl GenerateAwsAccessTokenResponse {
8679 pub fn new() -> Self {
8680 std::default::Default::default()
8681 }
8682
8683 /// Sets the value of [access_token][crate::model::GenerateAwsAccessTokenResponse::access_token].
8684 ///
8685 /// # Example
8686 /// ```ignore,no_run
8687 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsAccessTokenResponse;
8688 /// let x = GenerateAwsAccessTokenResponse::new().set_access_token("example");
8689 /// ```
8690 pub fn set_access_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8691 self.access_token = v.into();
8692 self
8693 }
8694
8695 /// Sets the value of [expiration_time][crate::model::GenerateAwsAccessTokenResponse::expiration_time].
8696 ///
8697 /// # Example
8698 /// ```ignore,no_run
8699 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsAccessTokenResponse;
8700 /// use wkt::Timestamp;
8701 /// let x = GenerateAwsAccessTokenResponse::new().set_expiration_time(Timestamp::default()/* use setters */);
8702 /// ```
8703 pub fn set_expiration_time<T>(mut self, v: T) -> Self
8704 where
8705 T: std::convert::Into<wkt::Timestamp>,
8706 {
8707 self.expiration_time = std::option::Option::Some(v.into());
8708 self
8709 }
8710
8711 /// Sets or clears the value of [expiration_time][crate::model::GenerateAwsAccessTokenResponse::expiration_time].
8712 ///
8713 /// # Example
8714 /// ```ignore,no_run
8715 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsAccessTokenResponse;
8716 /// use wkt::Timestamp;
8717 /// let x = GenerateAwsAccessTokenResponse::new().set_or_clear_expiration_time(Some(Timestamp::default()/* use setters */));
8718 /// let x = GenerateAwsAccessTokenResponse::new().set_or_clear_expiration_time(None::<Timestamp>);
8719 /// ```
8720 pub fn set_or_clear_expiration_time<T>(mut self, v: std::option::Option<T>) -> Self
8721 where
8722 T: std::convert::Into<wkt::Timestamp>,
8723 {
8724 self.expiration_time = v.map(|x| x.into());
8725 self
8726 }
8727}
8728
8729impl wkt::message::Message for GenerateAwsAccessTokenResponse {
8730 fn typename() -> &'static str {
8731 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAwsAccessTokenResponse"
8732 }
8733}
8734
8735#[derive(Clone, Default, PartialEq)]
8736#[non_exhaustive]
8737#[deprecated]
8738pub struct GenerateAwsClusterAgentTokenRequest {
8739 /// Required.
8740 pub aws_cluster: std::string::String,
8741
8742 /// Required.
8743 pub subject_token: std::string::String,
8744
8745 /// Required.
8746 pub subject_token_type: std::string::String,
8747
8748 /// Required.
8749 pub version: std::string::String,
8750
8751 /// Optional.
8752 pub node_pool_id: std::string::String,
8753
8754 /// Optional.
8755 pub grant_type: std::string::String,
8756
8757 /// Optional.
8758 pub audience: std::string::String,
8759
8760 /// Optional.
8761 pub scope: std::string::String,
8762
8763 /// Optional.
8764 pub requested_token_type: std::string::String,
8765
8766 /// Optional.
8767 pub options: std::string::String,
8768
8769 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8770}
8771
8772impl GenerateAwsClusterAgentTokenRequest {
8773 pub fn new() -> Self {
8774 std::default::Default::default()
8775 }
8776
8777 /// Sets the value of [aws_cluster][crate::model::GenerateAwsClusterAgentTokenRequest::aws_cluster].
8778 ///
8779 /// # Example
8780 /// ```ignore,no_run
8781 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8782 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_aws_cluster("example");
8783 /// ```
8784 pub fn set_aws_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8785 self.aws_cluster = v.into();
8786 self
8787 }
8788
8789 /// Sets the value of [subject_token][crate::model::GenerateAwsClusterAgentTokenRequest::subject_token].
8790 ///
8791 /// # Example
8792 /// ```ignore,no_run
8793 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8794 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_subject_token("example");
8795 /// ```
8796 pub fn set_subject_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8797 self.subject_token = v.into();
8798 self
8799 }
8800
8801 /// Sets the value of [subject_token_type][crate::model::GenerateAwsClusterAgentTokenRequest::subject_token_type].
8802 ///
8803 /// # Example
8804 /// ```ignore,no_run
8805 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8806 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_subject_token_type("example");
8807 /// ```
8808 pub fn set_subject_token_type<T: std::convert::Into<std::string::String>>(
8809 mut self,
8810 v: T,
8811 ) -> Self {
8812 self.subject_token_type = v.into();
8813 self
8814 }
8815
8816 /// Sets the value of [version][crate::model::GenerateAwsClusterAgentTokenRequest::version].
8817 ///
8818 /// # Example
8819 /// ```ignore,no_run
8820 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8821 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_version("example");
8822 /// ```
8823 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8824 self.version = v.into();
8825 self
8826 }
8827
8828 /// Sets the value of [node_pool_id][crate::model::GenerateAwsClusterAgentTokenRequest::node_pool_id].
8829 ///
8830 /// # Example
8831 /// ```ignore,no_run
8832 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8833 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_node_pool_id("example");
8834 /// ```
8835 pub fn set_node_pool_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8836 self.node_pool_id = v.into();
8837 self
8838 }
8839
8840 /// Sets the value of [grant_type][crate::model::GenerateAwsClusterAgentTokenRequest::grant_type].
8841 ///
8842 /// # Example
8843 /// ```ignore,no_run
8844 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8845 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_grant_type("example");
8846 /// ```
8847 pub fn set_grant_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8848 self.grant_type = v.into();
8849 self
8850 }
8851
8852 /// Sets the value of [audience][crate::model::GenerateAwsClusterAgentTokenRequest::audience].
8853 ///
8854 /// # Example
8855 /// ```ignore,no_run
8856 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8857 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_audience("example");
8858 /// ```
8859 pub fn set_audience<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8860 self.audience = v.into();
8861 self
8862 }
8863
8864 /// Sets the value of [scope][crate::model::GenerateAwsClusterAgentTokenRequest::scope].
8865 ///
8866 /// # Example
8867 /// ```ignore,no_run
8868 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8869 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_scope("example");
8870 /// ```
8871 pub fn set_scope<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8872 self.scope = v.into();
8873 self
8874 }
8875
8876 /// Sets the value of [requested_token_type][crate::model::GenerateAwsClusterAgentTokenRequest::requested_token_type].
8877 ///
8878 /// # Example
8879 /// ```ignore,no_run
8880 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8881 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_requested_token_type("example");
8882 /// ```
8883 pub fn set_requested_token_type<T: std::convert::Into<std::string::String>>(
8884 mut self,
8885 v: T,
8886 ) -> Self {
8887 self.requested_token_type = v.into();
8888 self
8889 }
8890
8891 /// Sets the value of [options][crate::model::GenerateAwsClusterAgentTokenRequest::options].
8892 ///
8893 /// # Example
8894 /// ```ignore,no_run
8895 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenRequest;
8896 /// let x = GenerateAwsClusterAgentTokenRequest::new().set_options("example");
8897 /// ```
8898 pub fn set_options<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8899 self.options = v.into();
8900 self
8901 }
8902}
8903
8904impl wkt::message::Message for GenerateAwsClusterAgentTokenRequest {
8905 fn typename() -> &'static str {
8906 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAwsClusterAgentTokenRequest"
8907 }
8908}
8909
8910#[derive(Clone, Default, PartialEq)]
8911#[non_exhaustive]
8912#[deprecated]
8913pub struct GenerateAwsClusterAgentTokenResponse {
8914 pub access_token: std::string::String,
8915
8916 pub expires_in: i32,
8917
8918 pub token_type: std::string::String,
8919
8920 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
8921}
8922
8923impl GenerateAwsClusterAgentTokenResponse {
8924 pub fn new() -> Self {
8925 std::default::Default::default()
8926 }
8927
8928 /// Sets the value of [access_token][crate::model::GenerateAwsClusterAgentTokenResponse::access_token].
8929 ///
8930 /// # Example
8931 /// ```ignore,no_run
8932 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenResponse;
8933 /// let x = GenerateAwsClusterAgentTokenResponse::new().set_access_token("example");
8934 /// ```
8935 pub fn set_access_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8936 self.access_token = v.into();
8937 self
8938 }
8939
8940 /// Sets the value of [expires_in][crate::model::GenerateAwsClusterAgentTokenResponse::expires_in].
8941 ///
8942 /// # Example
8943 /// ```ignore,no_run
8944 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenResponse;
8945 /// let x = GenerateAwsClusterAgentTokenResponse::new().set_expires_in(42);
8946 /// ```
8947 pub fn set_expires_in<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
8948 self.expires_in = v.into();
8949 self
8950 }
8951
8952 /// Sets the value of [token_type][crate::model::GenerateAwsClusterAgentTokenResponse::token_type].
8953 ///
8954 /// # Example
8955 /// ```ignore,no_run
8956 /// # use google_cloud_gkemulticloud_v1::model::GenerateAwsClusterAgentTokenResponse;
8957 /// let x = GenerateAwsClusterAgentTokenResponse::new().set_token_type("example");
8958 /// ```
8959 pub fn set_token_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
8960 self.token_type = v.into();
8961 self
8962 }
8963}
8964
8965impl wkt::message::Message for GenerateAwsClusterAgentTokenResponse {
8966 fn typename() -> &'static str {
8967 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAwsClusterAgentTokenResponse"
8968 }
8969}
8970
8971/// An Anthos cluster running on Azure.
8972#[derive(Clone, Default, PartialEq)]
8973#[non_exhaustive]
8974#[deprecated]
8975pub struct AzureCluster {
8976 /// The name of this resource.
8977 ///
8978 /// Cluster names are formatted as
8979 /// `projects/<project-number>/locations/<region>/azureClusters/<cluster-id>`.
8980 ///
8981 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
8982 /// for more details on Google Cloud Platform resource names.
8983 pub name: std::string::String,
8984
8985 /// Optional. A human readable description of this cluster.
8986 /// Cannot be longer than 255 UTF-8 encoded bytes.
8987 pub description: std::string::String,
8988
8989 /// Required. The Azure region where the cluster runs.
8990 ///
8991 /// Each Google Cloud region supports a subset of nearby Azure regions.
8992 /// You can call
8993 /// [GetAzureServerConfig][google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig]
8994 /// to list all supported Azure regions within a given Google Cloud region.
8995 ///
8996 /// [google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig]: crate::client::AzureClusters::get_azure_server_config
8997 pub azure_region: std::string::String,
8998
8999 /// Required. The ARM ID of the resource group where the cluster resources are
9000 /// deployed. For example:
9001 /// `/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>`
9002 pub resource_group_id: std::string::String,
9003
9004 /// Optional. Name of the
9005 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] that contains
9006 /// authentication configuration for how the Anthos Multi-Cloud API connects to
9007 /// Azure APIs.
9008 ///
9009 /// Either azure_client or azure_services_authentication should be provided.
9010 ///
9011 /// The `AzureClient` resource must reside on the same Google Cloud Platform
9012 /// project and region as the `AzureCluster`.
9013 ///
9014 /// `AzureClient` names are formatted as
9015 /// `projects/<project-number>/locations/<region>/azureClients/<client-id>`.
9016 ///
9017 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
9018 /// for more details on Google Cloud resource names.
9019 ///
9020 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
9021 pub azure_client: std::string::String,
9022
9023 /// Required. Cluster-wide networking configuration.
9024 pub networking: std::option::Option<crate::model::AzureClusterNetworking>,
9025
9026 /// Required. Configuration related to the cluster control plane.
9027 pub control_plane: std::option::Option<crate::model::AzureControlPlane>,
9028
9029 /// Required. Configuration related to the cluster RBAC settings.
9030 pub authorization: std::option::Option<crate::model::AzureAuthorization>,
9031
9032 /// Optional. Authentication configuration for management of Azure resources.
9033 ///
9034 /// Either azure_client or azure_services_authentication should be provided.
9035 pub azure_services_authentication:
9036 std::option::Option<crate::model::AzureServicesAuthentication>,
9037
9038 /// Output only. The current state of the cluster.
9039 pub state: crate::model::azure_cluster::State,
9040
9041 /// Output only. The endpoint of the cluster's API server.
9042 pub endpoint: std::string::String,
9043
9044 /// Output only. A globally unique identifier for the cluster.
9045 pub uid: std::string::String,
9046
9047 /// Output only. If set, there are currently changes in flight to the cluster.
9048 pub reconciling: bool,
9049
9050 /// Output only. The time at which this cluster was created.
9051 pub create_time: std::option::Option<wkt::Timestamp>,
9052
9053 /// Output only. The time at which this cluster was last updated.
9054 pub update_time: std::option::Option<wkt::Timestamp>,
9055
9056 /// Allows clients to perform consistent read-modify-writes
9057 /// through optimistic concurrency control.
9058 ///
9059 /// Can be sent on update and delete requests to ensure the
9060 /// client has an up-to-date value before proceeding.
9061 pub etag: std::string::String,
9062
9063 /// Optional. Annotations on the cluster.
9064 ///
9065 /// This field has the same restrictions as Kubernetes annotations.
9066 /// The total size of all keys and values combined is limited to 256k.
9067 /// Keys can have 2 segments: prefix (optional) and name (required),
9068 /// separated by a slash (/).
9069 /// Prefix must be a DNS subdomain.
9070 /// Name must be 63 characters or less, begin and end with alphanumerics,
9071 /// with dashes (-), underscores (_), dots (.), and alphanumerics between.
9072 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
9073
9074 /// Output only. Workload Identity settings.
9075 pub workload_identity_config: std::option::Option<crate::model::WorkloadIdentityConfig>,
9076
9077 /// Output only. PEM encoded x509 certificate of the cluster root of trust.
9078 pub cluster_ca_certificate: std::string::String,
9079
9080 /// Required. Fleet configuration.
9081 pub fleet: std::option::Option<crate::model::Fleet>,
9082
9083 /// Output only. Managed Azure resources for this cluster.
9084 pub managed_resources: std::option::Option<crate::model::AzureClusterResources>,
9085
9086 /// Optional. Logging configuration for this cluster.
9087 pub logging_config: std::option::Option<crate::model::LoggingConfig>,
9088
9089 /// Output only. A set of errors found in the cluster.
9090 pub errors: std::vec::Vec<crate::model::AzureClusterError>,
9091
9092 /// Optional. Monitoring configuration for this cluster.
9093 pub monitoring_config: std::option::Option<crate::model::MonitoringConfig>,
9094
9095 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
9096}
9097
9098impl AzureCluster {
9099 pub fn new() -> Self {
9100 std::default::Default::default()
9101 }
9102
9103 /// Sets the value of [name][crate::model::AzureCluster::name].
9104 ///
9105 /// # Example
9106 /// ```ignore,no_run
9107 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9108 /// let x = AzureCluster::new().set_name("example");
9109 /// ```
9110 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9111 self.name = v.into();
9112 self
9113 }
9114
9115 /// Sets the value of [description][crate::model::AzureCluster::description].
9116 ///
9117 /// # Example
9118 /// ```ignore,no_run
9119 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9120 /// let x = AzureCluster::new().set_description("example");
9121 /// ```
9122 pub fn set_description<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9123 self.description = v.into();
9124 self
9125 }
9126
9127 /// Sets the value of [azure_region][crate::model::AzureCluster::azure_region].
9128 ///
9129 /// # Example
9130 /// ```ignore,no_run
9131 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9132 /// let x = AzureCluster::new().set_azure_region("example");
9133 /// ```
9134 pub fn set_azure_region<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9135 self.azure_region = v.into();
9136 self
9137 }
9138
9139 /// Sets the value of [resource_group_id][crate::model::AzureCluster::resource_group_id].
9140 ///
9141 /// # Example
9142 /// ```ignore,no_run
9143 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9144 /// let x = AzureCluster::new().set_resource_group_id("example");
9145 /// ```
9146 pub fn set_resource_group_id<T: std::convert::Into<std::string::String>>(
9147 mut self,
9148 v: T,
9149 ) -> Self {
9150 self.resource_group_id = v.into();
9151 self
9152 }
9153
9154 /// Sets the value of [azure_client][crate::model::AzureCluster::azure_client].
9155 ///
9156 /// # Example
9157 /// ```ignore,no_run
9158 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9159 /// let x = AzureCluster::new().set_azure_client("example");
9160 /// ```
9161 pub fn set_azure_client<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9162 self.azure_client = v.into();
9163 self
9164 }
9165
9166 /// Sets the value of [networking][crate::model::AzureCluster::networking].
9167 ///
9168 /// # Example
9169 /// ```ignore,no_run
9170 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9171 /// use google_cloud_gkemulticloud_v1::model::AzureClusterNetworking;
9172 /// let x = AzureCluster::new().set_networking(AzureClusterNetworking::default()/* use setters */);
9173 /// ```
9174 pub fn set_networking<T>(mut self, v: T) -> Self
9175 where
9176 T: std::convert::Into<crate::model::AzureClusterNetworking>,
9177 {
9178 self.networking = std::option::Option::Some(v.into());
9179 self
9180 }
9181
9182 /// Sets or clears the value of [networking][crate::model::AzureCluster::networking].
9183 ///
9184 /// # Example
9185 /// ```ignore,no_run
9186 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9187 /// use google_cloud_gkemulticloud_v1::model::AzureClusterNetworking;
9188 /// let x = AzureCluster::new().set_or_clear_networking(Some(AzureClusterNetworking::default()/* use setters */));
9189 /// let x = AzureCluster::new().set_or_clear_networking(None::<AzureClusterNetworking>);
9190 /// ```
9191 pub fn set_or_clear_networking<T>(mut self, v: std::option::Option<T>) -> Self
9192 where
9193 T: std::convert::Into<crate::model::AzureClusterNetworking>,
9194 {
9195 self.networking = v.map(|x| x.into());
9196 self
9197 }
9198
9199 /// Sets the value of [control_plane][crate::model::AzureCluster::control_plane].
9200 ///
9201 /// # Example
9202 /// ```ignore,no_run
9203 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9204 /// use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
9205 /// let x = AzureCluster::new().set_control_plane(AzureControlPlane::default()/* use setters */);
9206 /// ```
9207 pub fn set_control_plane<T>(mut self, v: T) -> Self
9208 where
9209 T: std::convert::Into<crate::model::AzureControlPlane>,
9210 {
9211 self.control_plane = std::option::Option::Some(v.into());
9212 self
9213 }
9214
9215 /// Sets or clears the value of [control_plane][crate::model::AzureCluster::control_plane].
9216 ///
9217 /// # Example
9218 /// ```ignore,no_run
9219 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9220 /// use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
9221 /// let x = AzureCluster::new().set_or_clear_control_plane(Some(AzureControlPlane::default()/* use setters */));
9222 /// let x = AzureCluster::new().set_or_clear_control_plane(None::<AzureControlPlane>);
9223 /// ```
9224 pub fn set_or_clear_control_plane<T>(mut self, v: std::option::Option<T>) -> Self
9225 where
9226 T: std::convert::Into<crate::model::AzureControlPlane>,
9227 {
9228 self.control_plane = v.map(|x| x.into());
9229 self
9230 }
9231
9232 /// Sets the value of [authorization][crate::model::AzureCluster::authorization].
9233 ///
9234 /// # Example
9235 /// ```ignore,no_run
9236 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9237 /// use google_cloud_gkemulticloud_v1::model::AzureAuthorization;
9238 /// let x = AzureCluster::new().set_authorization(AzureAuthorization::default()/* use setters */);
9239 /// ```
9240 pub fn set_authorization<T>(mut self, v: T) -> Self
9241 where
9242 T: std::convert::Into<crate::model::AzureAuthorization>,
9243 {
9244 self.authorization = std::option::Option::Some(v.into());
9245 self
9246 }
9247
9248 /// Sets or clears the value of [authorization][crate::model::AzureCluster::authorization].
9249 ///
9250 /// # Example
9251 /// ```ignore,no_run
9252 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9253 /// use google_cloud_gkemulticloud_v1::model::AzureAuthorization;
9254 /// let x = AzureCluster::new().set_or_clear_authorization(Some(AzureAuthorization::default()/* use setters */));
9255 /// let x = AzureCluster::new().set_or_clear_authorization(None::<AzureAuthorization>);
9256 /// ```
9257 pub fn set_or_clear_authorization<T>(mut self, v: std::option::Option<T>) -> Self
9258 where
9259 T: std::convert::Into<crate::model::AzureAuthorization>,
9260 {
9261 self.authorization = v.map(|x| x.into());
9262 self
9263 }
9264
9265 /// Sets the value of [azure_services_authentication][crate::model::AzureCluster::azure_services_authentication].
9266 ///
9267 /// # Example
9268 /// ```ignore,no_run
9269 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9270 /// use google_cloud_gkemulticloud_v1::model::AzureServicesAuthentication;
9271 /// let x = AzureCluster::new().set_azure_services_authentication(AzureServicesAuthentication::default()/* use setters */);
9272 /// ```
9273 pub fn set_azure_services_authentication<T>(mut self, v: T) -> Self
9274 where
9275 T: std::convert::Into<crate::model::AzureServicesAuthentication>,
9276 {
9277 self.azure_services_authentication = std::option::Option::Some(v.into());
9278 self
9279 }
9280
9281 /// Sets or clears the value of [azure_services_authentication][crate::model::AzureCluster::azure_services_authentication].
9282 ///
9283 /// # Example
9284 /// ```ignore,no_run
9285 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9286 /// use google_cloud_gkemulticloud_v1::model::AzureServicesAuthentication;
9287 /// let x = AzureCluster::new().set_or_clear_azure_services_authentication(Some(AzureServicesAuthentication::default()/* use setters */));
9288 /// let x = AzureCluster::new().set_or_clear_azure_services_authentication(None::<AzureServicesAuthentication>);
9289 /// ```
9290 pub fn set_or_clear_azure_services_authentication<T>(
9291 mut self,
9292 v: std::option::Option<T>,
9293 ) -> Self
9294 where
9295 T: std::convert::Into<crate::model::AzureServicesAuthentication>,
9296 {
9297 self.azure_services_authentication = v.map(|x| x.into());
9298 self
9299 }
9300
9301 /// Sets the value of [state][crate::model::AzureCluster::state].
9302 ///
9303 /// # Example
9304 /// ```ignore,no_run
9305 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9306 /// use google_cloud_gkemulticloud_v1::model::azure_cluster::State;
9307 /// let x0 = AzureCluster::new().set_state(State::Provisioning);
9308 /// let x1 = AzureCluster::new().set_state(State::Running);
9309 /// let x2 = AzureCluster::new().set_state(State::Reconciling);
9310 /// ```
9311 pub fn set_state<T: std::convert::Into<crate::model::azure_cluster::State>>(
9312 mut self,
9313 v: T,
9314 ) -> Self {
9315 self.state = v.into();
9316 self
9317 }
9318
9319 /// Sets the value of [endpoint][crate::model::AzureCluster::endpoint].
9320 ///
9321 /// # Example
9322 /// ```ignore,no_run
9323 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9324 /// let x = AzureCluster::new().set_endpoint("example");
9325 /// ```
9326 pub fn set_endpoint<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9327 self.endpoint = v.into();
9328 self
9329 }
9330
9331 /// Sets the value of [uid][crate::model::AzureCluster::uid].
9332 ///
9333 /// # Example
9334 /// ```ignore,no_run
9335 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9336 /// let x = AzureCluster::new().set_uid("example");
9337 /// ```
9338 pub fn set_uid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9339 self.uid = v.into();
9340 self
9341 }
9342
9343 /// Sets the value of [reconciling][crate::model::AzureCluster::reconciling].
9344 ///
9345 /// # Example
9346 /// ```ignore,no_run
9347 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9348 /// let x = AzureCluster::new().set_reconciling(true);
9349 /// ```
9350 pub fn set_reconciling<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
9351 self.reconciling = v.into();
9352 self
9353 }
9354
9355 /// Sets the value of [create_time][crate::model::AzureCluster::create_time].
9356 ///
9357 /// # Example
9358 /// ```ignore,no_run
9359 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9360 /// use wkt::Timestamp;
9361 /// let x = AzureCluster::new().set_create_time(Timestamp::default()/* use setters */);
9362 /// ```
9363 pub fn set_create_time<T>(mut self, v: T) -> Self
9364 where
9365 T: std::convert::Into<wkt::Timestamp>,
9366 {
9367 self.create_time = std::option::Option::Some(v.into());
9368 self
9369 }
9370
9371 /// Sets or clears the value of [create_time][crate::model::AzureCluster::create_time].
9372 ///
9373 /// # Example
9374 /// ```ignore,no_run
9375 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9376 /// use wkt::Timestamp;
9377 /// let x = AzureCluster::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
9378 /// let x = AzureCluster::new().set_or_clear_create_time(None::<Timestamp>);
9379 /// ```
9380 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
9381 where
9382 T: std::convert::Into<wkt::Timestamp>,
9383 {
9384 self.create_time = v.map(|x| x.into());
9385 self
9386 }
9387
9388 /// Sets the value of [update_time][crate::model::AzureCluster::update_time].
9389 ///
9390 /// # Example
9391 /// ```ignore,no_run
9392 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9393 /// use wkt::Timestamp;
9394 /// let x = AzureCluster::new().set_update_time(Timestamp::default()/* use setters */);
9395 /// ```
9396 pub fn set_update_time<T>(mut self, v: T) -> Self
9397 where
9398 T: std::convert::Into<wkt::Timestamp>,
9399 {
9400 self.update_time = std::option::Option::Some(v.into());
9401 self
9402 }
9403
9404 /// Sets or clears the value of [update_time][crate::model::AzureCluster::update_time].
9405 ///
9406 /// # Example
9407 /// ```ignore,no_run
9408 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9409 /// use wkt::Timestamp;
9410 /// let x = AzureCluster::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
9411 /// let x = AzureCluster::new().set_or_clear_update_time(None::<Timestamp>);
9412 /// ```
9413 pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
9414 where
9415 T: std::convert::Into<wkt::Timestamp>,
9416 {
9417 self.update_time = v.map(|x| x.into());
9418 self
9419 }
9420
9421 /// Sets the value of [etag][crate::model::AzureCluster::etag].
9422 ///
9423 /// # Example
9424 /// ```ignore,no_run
9425 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9426 /// let x = AzureCluster::new().set_etag("example");
9427 /// ```
9428 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
9429 self.etag = v.into();
9430 self
9431 }
9432
9433 /// Sets the value of [annotations][crate::model::AzureCluster::annotations].
9434 ///
9435 /// # Example
9436 /// ```ignore,no_run
9437 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9438 /// let x = AzureCluster::new().set_annotations([
9439 /// ("key0", "abc"),
9440 /// ("key1", "xyz"),
9441 /// ]);
9442 /// ```
9443 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
9444 where
9445 T: std::iter::IntoIterator<Item = (K, V)>,
9446 K: std::convert::Into<std::string::String>,
9447 V: std::convert::Into<std::string::String>,
9448 {
9449 use std::iter::Iterator;
9450 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
9451 self
9452 }
9453
9454 /// Sets the value of [workload_identity_config][crate::model::AzureCluster::workload_identity_config].
9455 ///
9456 /// # Example
9457 /// ```ignore,no_run
9458 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9459 /// use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
9460 /// let x = AzureCluster::new().set_workload_identity_config(WorkloadIdentityConfig::default()/* use setters */);
9461 /// ```
9462 pub fn set_workload_identity_config<T>(mut self, v: T) -> Self
9463 where
9464 T: std::convert::Into<crate::model::WorkloadIdentityConfig>,
9465 {
9466 self.workload_identity_config = std::option::Option::Some(v.into());
9467 self
9468 }
9469
9470 /// Sets or clears the value of [workload_identity_config][crate::model::AzureCluster::workload_identity_config].
9471 ///
9472 /// # Example
9473 /// ```ignore,no_run
9474 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9475 /// use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
9476 /// let x = AzureCluster::new().set_or_clear_workload_identity_config(Some(WorkloadIdentityConfig::default()/* use setters */));
9477 /// let x = AzureCluster::new().set_or_clear_workload_identity_config(None::<WorkloadIdentityConfig>);
9478 /// ```
9479 pub fn set_or_clear_workload_identity_config<T>(mut self, v: std::option::Option<T>) -> Self
9480 where
9481 T: std::convert::Into<crate::model::WorkloadIdentityConfig>,
9482 {
9483 self.workload_identity_config = v.map(|x| x.into());
9484 self
9485 }
9486
9487 /// Sets the value of [cluster_ca_certificate][crate::model::AzureCluster::cluster_ca_certificate].
9488 ///
9489 /// # Example
9490 /// ```ignore,no_run
9491 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9492 /// let x = AzureCluster::new().set_cluster_ca_certificate("example");
9493 /// ```
9494 pub fn set_cluster_ca_certificate<T: std::convert::Into<std::string::String>>(
9495 mut self,
9496 v: T,
9497 ) -> Self {
9498 self.cluster_ca_certificate = v.into();
9499 self
9500 }
9501
9502 /// Sets the value of [fleet][crate::model::AzureCluster::fleet].
9503 ///
9504 /// # Example
9505 /// ```ignore,no_run
9506 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9507 /// use google_cloud_gkemulticloud_v1::model::Fleet;
9508 /// let x = AzureCluster::new().set_fleet(Fleet::default()/* use setters */);
9509 /// ```
9510 pub fn set_fleet<T>(mut self, v: T) -> Self
9511 where
9512 T: std::convert::Into<crate::model::Fleet>,
9513 {
9514 self.fleet = std::option::Option::Some(v.into());
9515 self
9516 }
9517
9518 /// Sets or clears the value of [fleet][crate::model::AzureCluster::fleet].
9519 ///
9520 /// # Example
9521 /// ```ignore,no_run
9522 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9523 /// use google_cloud_gkemulticloud_v1::model::Fleet;
9524 /// let x = AzureCluster::new().set_or_clear_fleet(Some(Fleet::default()/* use setters */));
9525 /// let x = AzureCluster::new().set_or_clear_fleet(None::<Fleet>);
9526 /// ```
9527 pub fn set_or_clear_fleet<T>(mut self, v: std::option::Option<T>) -> Self
9528 where
9529 T: std::convert::Into<crate::model::Fleet>,
9530 {
9531 self.fleet = v.map(|x| x.into());
9532 self
9533 }
9534
9535 /// Sets the value of [managed_resources][crate::model::AzureCluster::managed_resources].
9536 ///
9537 /// # Example
9538 /// ```ignore,no_run
9539 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9540 /// use google_cloud_gkemulticloud_v1::model::AzureClusterResources;
9541 /// let x = AzureCluster::new().set_managed_resources(AzureClusterResources::default()/* use setters */);
9542 /// ```
9543 pub fn set_managed_resources<T>(mut self, v: T) -> Self
9544 where
9545 T: std::convert::Into<crate::model::AzureClusterResources>,
9546 {
9547 self.managed_resources = std::option::Option::Some(v.into());
9548 self
9549 }
9550
9551 /// Sets or clears the value of [managed_resources][crate::model::AzureCluster::managed_resources].
9552 ///
9553 /// # Example
9554 /// ```ignore,no_run
9555 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9556 /// use google_cloud_gkemulticloud_v1::model::AzureClusterResources;
9557 /// let x = AzureCluster::new().set_or_clear_managed_resources(Some(AzureClusterResources::default()/* use setters */));
9558 /// let x = AzureCluster::new().set_or_clear_managed_resources(None::<AzureClusterResources>);
9559 /// ```
9560 pub fn set_or_clear_managed_resources<T>(mut self, v: std::option::Option<T>) -> Self
9561 where
9562 T: std::convert::Into<crate::model::AzureClusterResources>,
9563 {
9564 self.managed_resources = v.map(|x| x.into());
9565 self
9566 }
9567
9568 /// Sets the value of [logging_config][crate::model::AzureCluster::logging_config].
9569 ///
9570 /// # Example
9571 /// ```ignore,no_run
9572 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9573 /// use google_cloud_gkemulticloud_v1::model::LoggingConfig;
9574 /// let x = AzureCluster::new().set_logging_config(LoggingConfig::default()/* use setters */);
9575 /// ```
9576 pub fn set_logging_config<T>(mut self, v: T) -> Self
9577 where
9578 T: std::convert::Into<crate::model::LoggingConfig>,
9579 {
9580 self.logging_config = std::option::Option::Some(v.into());
9581 self
9582 }
9583
9584 /// Sets or clears the value of [logging_config][crate::model::AzureCluster::logging_config].
9585 ///
9586 /// # Example
9587 /// ```ignore,no_run
9588 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9589 /// use google_cloud_gkemulticloud_v1::model::LoggingConfig;
9590 /// let x = AzureCluster::new().set_or_clear_logging_config(Some(LoggingConfig::default()/* use setters */));
9591 /// let x = AzureCluster::new().set_or_clear_logging_config(None::<LoggingConfig>);
9592 /// ```
9593 pub fn set_or_clear_logging_config<T>(mut self, v: std::option::Option<T>) -> Self
9594 where
9595 T: std::convert::Into<crate::model::LoggingConfig>,
9596 {
9597 self.logging_config = v.map(|x| x.into());
9598 self
9599 }
9600
9601 /// Sets the value of [errors][crate::model::AzureCluster::errors].
9602 ///
9603 /// # Example
9604 /// ```ignore,no_run
9605 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9606 /// use google_cloud_gkemulticloud_v1::model::AzureClusterError;
9607 /// let x = AzureCluster::new()
9608 /// .set_errors([
9609 /// AzureClusterError::default()/* use setters */,
9610 /// AzureClusterError::default()/* use (different) setters */,
9611 /// ]);
9612 /// ```
9613 pub fn set_errors<T, V>(mut self, v: T) -> Self
9614 where
9615 T: std::iter::IntoIterator<Item = V>,
9616 V: std::convert::Into<crate::model::AzureClusterError>,
9617 {
9618 use std::iter::Iterator;
9619 self.errors = v.into_iter().map(|i| i.into()).collect();
9620 self
9621 }
9622
9623 /// Sets the value of [monitoring_config][crate::model::AzureCluster::monitoring_config].
9624 ///
9625 /// # Example
9626 /// ```ignore,no_run
9627 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9628 /// use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
9629 /// let x = AzureCluster::new().set_monitoring_config(MonitoringConfig::default()/* use setters */);
9630 /// ```
9631 pub fn set_monitoring_config<T>(mut self, v: T) -> Self
9632 where
9633 T: std::convert::Into<crate::model::MonitoringConfig>,
9634 {
9635 self.monitoring_config = std::option::Option::Some(v.into());
9636 self
9637 }
9638
9639 /// Sets or clears the value of [monitoring_config][crate::model::AzureCluster::monitoring_config].
9640 ///
9641 /// # Example
9642 /// ```ignore,no_run
9643 /// # use google_cloud_gkemulticloud_v1::model::AzureCluster;
9644 /// use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
9645 /// let x = AzureCluster::new().set_or_clear_monitoring_config(Some(MonitoringConfig::default()/* use setters */));
9646 /// let x = AzureCluster::new().set_or_clear_monitoring_config(None::<MonitoringConfig>);
9647 /// ```
9648 pub fn set_or_clear_monitoring_config<T>(mut self, v: std::option::Option<T>) -> Self
9649 where
9650 T: std::convert::Into<crate::model::MonitoringConfig>,
9651 {
9652 self.monitoring_config = v.map(|x| x.into());
9653 self
9654 }
9655}
9656
9657impl wkt::message::Message for AzureCluster {
9658 fn typename() -> &'static str {
9659 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureCluster"
9660 }
9661}
9662
9663/// Defines additional types related to [AzureCluster].
9664pub mod azure_cluster {
9665 #[allow(unused_imports)]
9666 use super::*;
9667
9668 /// The lifecycle state of the cluster.
9669 ///
9670 /// # Working with unknown values
9671 ///
9672 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
9673 /// additional enum variants at any time. Adding new variants is not considered
9674 /// a breaking change. Applications should write their code in anticipation of:
9675 ///
9676 /// - New values appearing in future releases of the client library, **and**
9677 /// - New values received dynamically, without application changes.
9678 ///
9679 /// Please consult the [Working with enums] section in the user guide for some
9680 /// guidelines.
9681 ///
9682 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
9683 #[derive(Clone, Debug, PartialEq)]
9684 #[non_exhaustive]
9685 pub enum State {
9686 /// Not set.
9687 Unspecified,
9688 /// The PROVISIONING state indicates the cluster is being created.
9689 Provisioning,
9690 /// The RUNNING state indicates the cluster has been created and is fully
9691 /// usable.
9692 Running,
9693 /// The RECONCILING state indicates that some work is actively being done on
9694 /// the cluster, such as upgrading the control plane replicas.
9695 Reconciling,
9696 /// The STOPPING state indicates the cluster is being deleted.
9697 Stopping,
9698 /// The ERROR state indicates the cluster is in a broken unrecoverable
9699 /// state.
9700 Error,
9701 /// The DEGRADED state indicates the cluster requires user action to
9702 /// restore full functionality.
9703 Degraded,
9704 /// If set, the enum was initialized with an unknown value.
9705 ///
9706 /// Applications can examine the value using [State::value] or
9707 /// [State::name].
9708 UnknownValue(state::UnknownValue),
9709 }
9710
9711 #[doc(hidden)]
9712 pub mod state {
9713 #[allow(unused_imports)]
9714 use super::*;
9715 #[derive(Clone, Debug, PartialEq)]
9716 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
9717 }
9718
9719 impl State {
9720 /// Gets the enum value.
9721 ///
9722 /// Returns `None` if the enum contains an unknown value deserialized from
9723 /// the string representation of enums.
9724 pub fn value(&self) -> std::option::Option<i32> {
9725 match self {
9726 Self::Unspecified => std::option::Option::Some(0),
9727 Self::Provisioning => std::option::Option::Some(1),
9728 Self::Running => std::option::Option::Some(2),
9729 Self::Reconciling => std::option::Option::Some(3),
9730 Self::Stopping => std::option::Option::Some(4),
9731 Self::Error => std::option::Option::Some(5),
9732 Self::Degraded => std::option::Option::Some(6),
9733 Self::UnknownValue(u) => u.0.value(),
9734 }
9735 }
9736
9737 /// Gets the enum value as a string.
9738 ///
9739 /// Returns `None` if the enum contains an unknown value deserialized from
9740 /// the integer representation of enums.
9741 pub fn name(&self) -> std::option::Option<&str> {
9742 match self {
9743 Self::Unspecified => std::option::Option::Some("STATE_UNSPECIFIED"),
9744 Self::Provisioning => std::option::Option::Some("PROVISIONING"),
9745 Self::Running => std::option::Option::Some("RUNNING"),
9746 Self::Reconciling => std::option::Option::Some("RECONCILING"),
9747 Self::Stopping => std::option::Option::Some("STOPPING"),
9748 Self::Error => std::option::Option::Some("ERROR"),
9749 Self::Degraded => std::option::Option::Some("DEGRADED"),
9750 Self::UnknownValue(u) => u.0.name(),
9751 }
9752 }
9753 }
9754
9755 impl std::default::Default for State {
9756 fn default() -> Self {
9757 use std::convert::From;
9758 Self::from(0)
9759 }
9760 }
9761
9762 impl std::fmt::Display for State {
9763 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
9764 wkt::internal::display_enum(f, self.name(), self.value())
9765 }
9766 }
9767
9768 impl std::convert::From<i32> for State {
9769 fn from(value: i32) -> Self {
9770 match value {
9771 0 => Self::Unspecified,
9772 1 => Self::Provisioning,
9773 2 => Self::Running,
9774 3 => Self::Reconciling,
9775 4 => Self::Stopping,
9776 5 => Self::Error,
9777 6 => Self::Degraded,
9778 _ => Self::UnknownValue(state::UnknownValue(
9779 wkt::internal::UnknownEnumValue::Integer(value),
9780 )),
9781 }
9782 }
9783 }
9784
9785 impl std::convert::From<&str> for State {
9786 fn from(value: &str) -> Self {
9787 use std::string::ToString;
9788 match value {
9789 "STATE_UNSPECIFIED" => Self::Unspecified,
9790 "PROVISIONING" => Self::Provisioning,
9791 "RUNNING" => Self::Running,
9792 "RECONCILING" => Self::Reconciling,
9793 "STOPPING" => Self::Stopping,
9794 "ERROR" => Self::Error,
9795 "DEGRADED" => Self::Degraded,
9796 _ => Self::UnknownValue(state::UnknownValue(
9797 wkt::internal::UnknownEnumValue::String(value.to_string()),
9798 )),
9799 }
9800 }
9801 }
9802
9803 impl serde::ser::Serialize for State {
9804 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
9805 where
9806 S: serde::Serializer,
9807 {
9808 match self {
9809 Self::Unspecified => serializer.serialize_i32(0),
9810 Self::Provisioning => serializer.serialize_i32(1),
9811 Self::Running => serializer.serialize_i32(2),
9812 Self::Reconciling => serializer.serialize_i32(3),
9813 Self::Stopping => serializer.serialize_i32(4),
9814 Self::Error => serializer.serialize_i32(5),
9815 Self::Degraded => serializer.serialize_i32(6),
9816 Self::UnknownValue(u) => u.0.serialize(serializer),
9817 }
9818 }
9819 }
9820
9821 impl<'de> serde::de::Deserialize<'de> for State {
9822 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
9823 where
9824 D: serde::Deserializer<'de>,
9825 {
9826 deserializer.deserialize_any(wkt::internal::EnumVisitor::<State>::new(
9827 ".google.cloud.gkemulticloud.v1.AzureCluster.State",
9828 ))
9829 }
9830 }
9831}
9832
9833/// ClusterNetworking contains cluster-wide networking configuration.
9834#[derive(Clone, Default, PartialEq)]
9835#[non_exhaustive]
9836#[deprecated]
9837pub struct AzureClusterNetworking {
9838 /// Required. The Azure Resource Manager (ARM) ID of the VNet associated with
9839 /// your cluster.
9840 ///
9841 /// All components in the cluster (i.e. control plane and node pools) run on a
9842 /// single VNet.
9843 ///
9844 /// Example:
9845 /// `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Network/virtualNetworks/<vnet-id>`
9846 ///
9847 /// This field cannot be changed after creation.
9848 pub virtual_network_id: std::string::String,
9849
9850 /// Required. The IP address range of the pods in this cluster, in CIDR
9851 /// notation (e.g. `10.96.0.0/14`).
9852 ///
9853 /// All pods in the cluster get assigned a unique IPv4 address from these
9854 /// ranges. Only a single range is supported.
9855 ///
9856 /// This field cannot be changed after creation.
9857 pub pod_address_cidr_blocks: std::vec::Vec<std::string::String>,
9858
9859 /// Required. The IP address range for services in this cluster, in CIDR
9860 /// notation (e.g. `10.96.0.0/14`).
9861 ///
9862 /// All services in the cluster get assigned a unique IPv4 address from these
9863 /// ranges. Only a single range is supported.
9864 ///
9865 /// This field cannot be changed after creating a cluster.
9866 pub service_address_cidr_blocks: std::vec::Vec<std::string::String>,
9867
9868 /// Optional. The ARM ID of the subnet where Kubernetes private service type
9869 /// load balancers are deployed. When unspecified, it defaults to
9870 /// AzureControlPlane.subnet_id.
9871 ///
9872 /// Example:
9873 /// "/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid456"
9874 pub service_load_balancer_subnet_id: std::string::String,
9875
9876 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
9877}
9878
9879impl AzureClusterNetworking {
9880 pub fn new() -> Self {
9881 std::default::Default::default()
9882 }
9883
9884 /// Sets the value of [virtual_network_id][crate::model::AzureClusterNetworking::virtual_network_id].
9885 ///
9886 /// # Example
9887 /// ```ignore,no_run
9888 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterNetworking;
9889 /// let x = AzureClusterNetworking::new().set_virtual_network_id("example");
9890 /// ```
9891 pub fn set_virtual_network_id<T: std::convert::Into<std::string::String>>(
9892 mut self,
9893 v: T,
9894 ) -> Self {
9895 self.virtual_network_id = v.into();
9896 self
9897 }
9898
9899 /// Sets the value of [pod_address_cidr_blocks][crate::model::AzureClusterNetworking::pod_address_cidr_blocks].
9900 ///
9901 /// # Example
9902 /// ```ignore,no_run
9903 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterNetworking;
9904 /// let x = AzureClusterNetworking::new().set_pod_address_cidr_blocks(["a", "b", "c"]);
9905 /// ```
9906 pub fn set_pod_address_cidr_blocks<T, V>(mut self, v: T) -> Self
9907 where
9908 T: std::iter::IntoIterator<Item = V>,
9909 V: std::convert::Into<std::string::String>,
9910 {
9911 use std::iter::Iterator;
9912 self.pod_address_cidr_blocks = v.into_iter().map(|i| i.into()).collect();
9913 self
9914 }
9915
9916 /// Sets the value of [service_address_cidr_blocks][crate::model::AzureClusterNetworking::service_address_cidr_blocks].
9917 ///
9918 /// # Example
9919 /// ```ignore,no_run
9920 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterNetworking;
9921 /// let x = AzureClusterNetworking::new().set_service_address_cidr_blocks(["a", "b", "c"]);
9922 /// ```
9923 pub fn set_service_address_cidr_blocks<T, V>(mut self, v: T) -> Self
9924 where
9925 T: std::iter::IntoIterator<Item = V>,
9926 V: std::convert::Into<std::string::String>,
9927 {
9928 use std::iter::Iterator;
9929 self.service_address_cidr_blocks = v.into_iter().map(|i| i.into()).collect();
9930 self
9931 }
9932
9933 /// Sets the value of [service_load_balancer_subnet_id][crate::model::AzureClusterNetworking::service_load_balancer_subnet_id].
9934 ///
9935 /// # Example
9936 /// ```ignore,no_run
9937 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterNetworking;
9938 /// let x = AzureClusterNetworking::new().set_service_load_balancer_subnet_id("example");
9939 /// ```
9940 pub fn set_service_load_balancer_subnet_id<T: std::convert::Into<std::string::String>>(
9941 mut self,
9942 v: T,
9943 ) -> Self {
9944 self.service_load_balancer_subnet_id = v.into();
9945 self
9946 }
9947}
9948
9949impl wkt::message::Message for AzureClusterNetworking {
9950 fn typename() -> &'static str {
9951 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureClusterNetworking"
9952 }
9953}
9954
9955/// AzureControlPlane represents the control plane configurations.
9956#[derive(Clone, Default, PartialEq)]
9957#[non_exhaustive]
9958#[deprecated]
9959pub struct AzureControlPlane {
9960 /// Required. The Kubernetes version to run on control plane replicas
9961 /// (e.g. `1.19.10-gke.1000`).
9962 ///
9963 /// You can list all supported versions on a given Google Cloud region by
9964 /// calling
9965 /// [GetAzureServerConfig][google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig].
9966 ///
9967 /// [google.cloud.gkemulticloud.v1.AzureClusters.GetAzureServerConfig]: crate::client::AzureClusters::get_azure_server_config
9968 pub version: std::string::String,
9969
9970 /// Optional. The ARM ID of the default subnet for the control plane. The
9971 /// control plane VMs are deployed in this subnet, unless
9972 /// `AzureControlPlane.replica_placements` is specified. This subnet will also
9973 /// be used as default for `AzureControlPlane.endpoint_subnet_id` if
9974 /// `AzureControlPlane.endpoint_subnet_id` is not specified. Similarly it will
9975 /// be used as default for
9976 /// `AzureClusterNetworking.service_load_balancer_subnet_id`.
9977 ///
9978 /// Example:
9979 /// `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Network/virtualNetworks/<vnet-id>/subnets/default`.
9980 pub subnet_id: std::string::String,
9981
9982 /// Optional. The Azure VM size name. Example: `Standard_DS2_v2`.
9983 ///
9984 /// For available VM sizes, see
9985 /// <https://docs.microsoft.com/en-us/azure/virtual-machines/vm-naming-conventions>.
9986 ///
9987 /// When unspecified, it defaults to `Standard_DS2_v2`.
9988 pub vm_size: std::string::String,
9989
9990 /// Required. SSH configuration for how to access the underlying control plane
9991 /// machines.
9992 pub ssh_config: std::option::Option<crate::model::AzureSshConfig>,
9993
9994 /// Optional. Configuration related to the root volume provisioned for each
9995 /// control plane replica.
9996 ///
9997 /// When unspecified, it defaults to 32-GiB Azure Disk.
9998 pub root_volume: std::option::Option<crate::model::AzureDiskTemplate>,
9999
10000 /// Optional. Configuration related to the main volume provisioned for each
10001 /// control plane replica.
10002 /// The main volume is in charge of storing all of the cluster's etcd state.
10003 ///
10004 /// When unspecified, it defaults to a 8-GiB Azure Disk.
10005 pub main_volume: std::option::Option<crate::model::AzureDiskTemplate>,
10006
10007 /// Optional. Configuration related to application-layer secrets encryption.
10008 pub database_encryption: std::option::Option<crate::model::AzureDatabaseEncryption>,
10009
10010 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
10011 pub proxy_config: std::option::Option<crate::model::AzureProxyConfig>,
10012
10013 /// Optional. Configuration related to vm config encryption.
10014 pub config_encryption: std::option::Option<crate::model::AzureConfigEncryption>,
10015
10016 /// Optional. A set of tags to apply to all underlying control plane Azure
10017 /// resources.
10018 pub tags: std::collections::HashMap<std::string::String, std::string::String>,
10019
10020 /// Optional. Configuration for where to place the control plane replicas.
10021 ///
10022 /// Up to three replica placement instances can be specified. If
10023 /// replica_placements is set, the replica placement instances will be applied
10024 /// to the three control plane replicas as evenly as possible.
10025 pub replica_placements: std::vec::Vec<crate::model::ReplicaPlacement>,
10026
10027 /// Optional. The ARM ID of the subnet where the control plane load balancer is
10028 /// deployed. When unspecified, it defaults to AzureControlPlane.subnet_id.
10029 ///
10030 /// Example:
10031 /// "/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid123"
10032 pub endpoint_subnet_id: std::string::String,
10033
10034 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10035}
10036
10037impl AzureControlPlane {
10038 pub fn new() -> Self {
10039 std::default::Default::default()
10040 }
10041
10042 /// Sets the value of [version][crate::model::AzureControlPlane::version].
10043 ///
10044 /// # Example
10045 /// ```ignore,no_run
10046 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10047 /// let x = AzureControlPlane::new().set_version("example");
10048 /// ```
10049 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10050 self.version = v.into();
10051 self
10052 }
10053
10054 /// Sets the value of [subnet_id][crate::model::AzureControlPlane::subnet_id].
10055 ///
10056 /// # Example
10057 /// ```ignore,no_run
10058 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10059 /// let x = AzureControlPlane::new().set_subnet_id("example");
10060 /// ```
10061 pub fn set_subnet_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10062 self.subnet_id = v.into();
10063 self
10064 }
10065
10066 /// Sets the value of [vm_size][crate::model::AzureControlPlane::vm_size].
10067 ///
10068 /// # Example
10069 /// ```ignore,no_run
10070 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10071 /// let x = AzureControlPlane::new().set_vm_size("example");
10072 /// ```
10073 pub fn set_vm_size<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10074 self.vm_size = v.into();
10075 self
10076 }
10077
10078 /// Sets the value of [ssh_config][crate::model::AzureControlPlane::ssh_config].
10079 ///
10080 /// # Example
10081 /// ```ignore,no_run
10082 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10083 /// use google_cloud_gkemulticloud_v1::model::AzureSshConfig;
10084 /// let x = AzureControlPlane::new().set_ssh_config(AzureSshConfig::default()/* use setters */);
10085 /// ```
10086 pub fn set_ssh_config<T>(mut self, v: T) -> Self
10087 where
10088 T: std::convert::Into<crate::model::AzureSshConfig>,
10089 {
10090 self.ssh_config = std::option::Option::Some(v.into());
10091 self
10092 }
10093
10094 /// Sets or clears the value of [ssh_config][crate::model::AzureControlPlane::ssh_config].
10095 ///
10096 /// # Example
10097 /// ```ignore,no_run
10098 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10099 /// use google_cloud_gkemulticloud_v1::model::AzureSshConfig;
10100 /// let x = AzureControlPlane::new().set_or_clear_ssh_config(Some(AzureSshConfig::default()/* use setters */));
10101 /// let x = AzureControlPlane::new().set_or_clear_ssh_config(None::<AzureSshConfig>);
10102 /// ```
10103 pub fn set_or_clear_ssh_config<T>(mut self, v: std::option::Option<T>) -> Self
10104 where
10105 T: std::convert::Into<crate::model::AzureSshConfig>,
10106 {
10107 self.ssh_config = v.map(|x| x.into());
10108 self
10109 }
10110
10111 /// Sets the value of [root_volume][crate::model::AzureControlPlane::root_volume].
10112 ///
10113 /// # Example
10114 /// ```ignore,no_run
10115 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10116 /// use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
10117 /// let x = AzureControlPlane::new().set_root_volume(AzureDiskTemplate::default()/* use setters */);
10118 /// ```
10119 pub fn set_root_volume<T>(mut self, v: T) -> Self
10120 where
10121 T: std::convert::Into<crate::model::AzureDiskTemplate>,
10122 {
10123 self.root_volume = std::option::Option::Some(v.into());
10124 self
10125 }
10126
10127 /// Sets or clears the value of [root_volume][crate::model::AzureControlPlane::root_volume].
10128 ///
10129 /// # Example
10130 /// ```ignore,no_run
10131 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10132 /// use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
10133 /// let x = AzureControlPlane::new().set_or_clear_root_volume(Some(AzureDiskTemplate::default()/* use setters */));
10134 /// let x = AzureControlPlane::new().set_or_clear_root_volume(None::<AzureDiskTemplate>);
10135 /// ```
10136 pub fn set_or_clear_root_volume<T>(mut self, v: std::option::Option<T>) -> Self
10137 where
10138 T: std::convert::Into<crate::model::AzureDiskTemplate>,
10139 {
10140 self.root_volume = v.map(|x| x.into());
10141 self
10142 }
10143
10144 /// Sets the value of [main_volume][crate::model::AzureControlPlane::main_volume].
10145 ///
10146 /// # Example
10147 /// ```ignore,no_run
10148 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10149 /// use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
10150 /// let x = AzureControlPlane::new().set_main_volume(AzureDiskTemplate::default()/* use setters */);
10151 /// ```
10152 pub fn set_main_volume<T>(mut self, v: T) -> Self
10153 where
10154 T: std::convert::Into<crate::model::AzureDiskTemplate>,
10155 {
10156 self.main_volume = std::option::Option::Some(v.into());
10157 self
10158 }
10159
10160 /// Sets or clears the value of [main_volume][crate::model::AzureControlPlane::main_volume].
10161 ///
10162 /// # Example
10163 /// ```ignore,no_run
10164 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10165 /// use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
10166 /// let x = AzureControlPlane::new().set_or_clear_main_volume(Some(AzureDiskTemplate::default()/* use setters */));
10167 /// let x = AzureControlPlane::new().set_or_clear_main_volume(None::<AzureDiskTemplate>);
10168 /// ```
10169 pub fn set_or_clear_main_volume<T>(mut self, v: std::option::Option<T>) -> Self
10170 where
10171 T: std::convert::Into<crate::model::AzureDiskTemplate>,
10172 {
10173 self.main_volume = v.map(|x| x.into());
10174 self
10175 }
10176
10177 /// Sets the value of [database_encryption][crate::model::AzureControlPlane::database_encryption].
10178 ///
10179 /// # Example
10180 /// ```ignore,no_run
10181 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10182 /// use google_cloud_gkemulticloud_v1::model::AzureDatabaseEncryption;
10183 /// let x = AzureControlPlane::new().set_database_encryption(AzureDatabaseEncryption::default()/* use setters */);
10184 /// ```
10185 pub fn set_database_encryption<T>(mut self, v: T) -> Self
10186 where
10187 T: std::convert::Into<crate::model::AzureDatabaseEncryption>,
10188 {
10189 self.database_encryption = std::option::Option::Some(v.into());
10190 self
10191 }
10192
10193 /// Sets or clears the value of [database_encryption][crate::model::AzureControlPlane::database_encryption].
10194 ///
10195 /// # Example
10196 /// ```ignore,no_run
10197 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10198 /// use google_cloud_gkemulticloud_v1::model::AzureDatabaseEncryption;
10199 /// let x = AzureControlPlane::new().set_or_clear_database_encryption(Some(AzureDatabaseEncryption::default()/* use setters */));
10200 /// let x = AzureControlPlane::new().set_or_clear_database_encryption(None::<AzureDatabaseEncryption>);
10201 /// ```
10202 pub fn set_or_clear_database_encryption<T>(mut self, v: std::option::Option<T>) -> Self
10203 where
10204 T: std::convert::Into<crate::model::AzureDatabaseEncryption>,
10205 {
10206 self.database_encryption = v.map(|x| x.into());
10207 self
10208 }
10209
10210 /// Sets the value of [proxy_config][crate::model::AzureControlPlane::proxy_config].
10211 ///
10212 /// # Example
10213 /// ```ignore,no_run
10214 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10215 /// use google_cloud_gkemulticloud_v1::model::AzureProxyConfig;
10216 /// let x = AzureControlPlane::new().set_proxy_config(AzureProxyConfig::default()/* use setters */);
10217 /// ```
10218 pub fn set_proxy_config<T>(mut self, v: T) -> Self
10219 where
10220 T: std::convert::Into<crate::model::AzureProxyConfig>,
10221 {
10222 self.proxy_config = std::option::Option::Some(v.into());
10223 self
10224 }
10225
10226 /// Sets or clears the value of [proxy_config][crate::model::AzureControlPlane::proxy_config].
10227 ///
10228 /// # Example
10229 /// ```ignore,no_run
10230 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10231 /// use google_cloud_gkemulticloud_v1::model::AzureProxyConfig;
10232 /// let x = AzureControlPlane::new().set_or_clear_proxy_config(Some(AzureProxyConfig::default()/* use setters */));
10233 /// let x = AzureControlPlane::new().set_or_clear_proxy_config(None::<AzureProxyConfig>);
10234 /// ```
10235 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
10236 where
10237 T: std::convert::Into<crate::model::AzureProxyConfig>,
10238 {
10239 self.proxy_config = v.map(|x| x.into());
10240 self
10241 }
10242
10243 /// Sets the value of [config_encryption][crate::model::AzureControlPlane::config_encryption].
10244 ///
10245 /// # Example
10246 /// ```ignore,no_run
10247 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10248 /// use google_cloud_gkemulticloud_v1::model::AzureConfigEncryption;
10249 /// let x = AzureControlPlane::new().set_config_encryption(AzureConfigEncryption::default()/* use setters */);
10250 /// ```
10251 pub fn set_config_encryption<T>(mut self, v: T) -> Self
10252 where
10253 T: std::convert::Into<crate::model::AzureConfigEncryption>,
10254 {
10255 self.config_encryption = std::option::Option::Some(v.into());
10256 self
10257 }
10258
10259 /// Sets or clears the value of [config_encryption][crate::model::AzureControlPlane::config_encryption].
10260 ///
10261 /// # Example
10262 /// ```ignore,no_run
10263 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10264 /// use google_cloud_gkemulticloud_v1::model::AzureConfigEncryption;
10265 /// let x = AzureControlPlane::new().set_or_clear_config_encryption(Some(AzureConfigEncryption::default()/* use setters */));
10266 /// let x = AzureControlPlane::new().set_or_clear_config_encryption(None::<AzureConfigEncryption>);
10267 /// ```
10268 pub fn set_or_clear_config_encryption<T>(mut self, v: std::option::Option<T>) -> Self
10269 where
10270 T: std::convert::Into<crate::model::AzureConfigEncryption>,
10271 {
10272 self.config_encryption = v.map(|x| x.into());
10273 self
10274 }
10275
10276 /// Sets the value of [tags][crate::model::AzureControlPlane::tags].
10277 ///
10278 /// # Example
10279 /// ```ignore,no_run
10280 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10281 /// let x = AzureControlPlane::new().set_tags([
10282 /// ("key0", "abc"),
10283 /// ("key1", "xyz"),
10284 /// ]);
10285 /// ```
10286 pub fn set_tags<T, K, V>(mut self, v: T) -> Self
10287 where
10288 T: std::iter::IntoIterator<Item = (K, V)>,
10289 K: std::convert::Into<std::string::String>,
10290 V: std::convert::Into<std::string::String>,
10291 {
10292 use std::iter::Iterator;
10293 self.tags = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
10294 self
10295 }
10296
10297 /// Sets the value of [replica_placements][crate::model::AzureControlPlane::replica_placements].
10298 ///
10299 /// # Example
10300 /// ```ignore,no_run
10301 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10302 /// use google_cloud_gkemulticloud_v1::model::ReplicaPlacement;
10303 /// let x = AzureControlPlane::new()
10304 /// .set_replica_placements([
10305 /// ReplicaPlacement::default()/* use setters */,
10306 /// ReplicaPlacement::default()/* use (different) setters */,
10307 /// ]);
10308 /// ```
10309 pub fn set_replica_placements<T, V>(mut self, v: T) -> Self
10310 where
10311 T: std::iter::IntoIterator<Item = V>,
10312 V: std::convert::Into<crate::model::ReplicaPlacement>,
10313 {
10314 use std::iter::Iterator;
10315 self.replica_placements = v.into_iter().map(|i| i.into()).collect();
10316 self
10317 }
10318
10319 /// Sets the value of [endpoint_subnet_id][crate::model::AzureControlPlane::endpoint_subnet_id].
10320 ///
10321 /// # Example
10322 /// ```ignore,no_run
10323 /// # use google_cloud_gkemulticloud_v1::model::AzureControlPlane;
10324 /// let x = AzureControlPlane::new().set_endpoint_subnet_id("example");
10325 /// ```
10326 pub fn set_endpoint_subnet_id<T: std::convert::Into<std::string::String>>(
10327 mut self,
10328 v: T,
10329 ) -> Self {
10330 self.endpoint_subnet_id = v.into();
10331 self
10332 }
10333}
10334
10335impl wkt::message::Message for AzureControlPlane {
10336 fn typename() -> &'static str {
10337 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureControlPlane"
10338 }
10339}
10340
10341/// Configuration for the placement of a control plane replica.
10342#[derive(Clone, Default, PartialEq)]
10343#[non_exhaustive]
10344#[deprecated]
10345pub struct ReplicaPlacement {
10346 /// Required. For a given replica, the ARM ID of the subnet where the control
10347 /// plane VM is deployed. Make sure it's a subnet under the virtual network in
10348 /// the cluster configuration.
10349 pub subnet_id: std::string::String,
10350
10351 /// Required. For a given replica, the Azure availability zone where to
10352 /// provision the control plane VM and the ETCD disk.
10353 pub azure_availability_zone: std::string::String,
10354
10355 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10356}
10357
10358impl ReplicaPlacement {
10359 pub fn new() -> Self {
10360 std::default::Default::default()
10361 }
10362
10363 /// Sets the value of [subnet_id][crate::model::ReplicaPlacement::subnet_id].
10364 ///
10365 /// # Example
10366 /// ```ignore,no_run
10367 /// # use google_cloud_gkemulticloud_v1::model::ReplicaPlacement;
10368 /// let x = ReplicaPlacement::new().set_subnet_id("example");
10369 /// ```
10370 pub fn set_subnet_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10371 self.subnet_id = v.into();
10372 self
10373 }
10374
10375 /// Sets the value of [azure_availability_zone][crate::model::ReplicaPlacement::azure_availability_zone].
10376 ///
10377 /// # Example
10378 /// ```ignore,no_run
10379 /// # use google_cloud_gkemulticloud_v1::model::ReplicaPlacement;
10380 /// let x = ReplicaPlacement::new().set_azure_availability_zone("example");
10381 /// ```
10382 pub fn set_azure_availability_zone<T: std::convert::Into<std::string::String>>(
10383 mut self,
10384 v: T,
10385 ) -> Self {
10386 self.azure_availability_zone = v.into();
10387 self
10388 }
10389}
10390
10391impl wkt::message::Message for ReplicaPlacement {
10392 fn typename() -> &'static str {
10393 "type.googleapis.com/google.cloud.gkemulticloud.v1.ReplicaPlacement"
10394 }
10395}
10396
10397/// Details of a proxy config stored in Azure Key Vault.
10398#[derive(Clone, Default, PartialEq)]
10399#[non_exhaustive]
10400#[deprecated]
10401pub struct AzureProxyConfig {
10402 /// The ARM ID the of the resource group containing proxy keyvault.
10403 ///
10404 /// Resource group ids are formatted as
10405 /// `/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>`.
10406 pub resource_group_id: std::string::String,
10407
10408 /// The URL the of the proxy setting secret with its version.
10409 ///
10410 /// The secret must be a JSON encoded proxy configuration
10411 /// as described in
10412 /// <https://cloud.google.com/kubernetes-engine/multi-cloud/docs/azure/how-to/use-a-proxy#create_a_proxy_configuration_file>
10413 ///
10414 /// Secret ids are formatted as
10415 /// `https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<secret-version>`.
10416 pub secret_id: std::string::String,
10417
10418 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10419}
10420
10421impl AzureProxyConfig {
10422 pub fn new() -> Self {
10423 std::default::Default::default()
10424 }
10425
10426 /// Sets the value of [resource_group_id][crate::model::AzureProxyConfig::resource_group_id].
10427 ///
10428 /// # Example
10429 /// ```ignore,no_run
10430 /// # use google_cloud_gkemulticloud_v1::model::AzureProxyConfig;
10431 /// let x = AzureProxyConfig::new().set_resource_group_id("example");
10432 /// ```
10433 pub fn set_resource_group_id<T: std::convert::Into<std::string::String>>(
10434 mut self,
10435 v: T,
10436 ) -> Self {
10437 self.resource_group_id = v.into();
10438 self
10439 }
10440
10441 /// Sets the value of [secret_id][crate::model::AzureProxyConfig::secret_id].
10442 ///
10443 /// # Example
10444 /// ```ignore,no_run
10445 /// # use google_cloud_gkemulticloud_v1::model::AzureProxyConfig;
10446 /// let x = AzureProxyConfig::new().set_secret_id("example");
10447 /// ```
10448 pub fn set_secret_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10449 self.secret_id = v.into();
10450 self
10451 }
10452}
10453
10454impl wkt::message::Message for AzureProxyConfig {
10455 fn typename() -> &'static str {
10456 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureProxyConfig"
10457 }
10458}
10459
10460/// Configuration related to application-layer secrets encryption.
10461///
10462/// Anthos clusters on Azure encrypts your Kubernetes data at rest
10463/// in etcd using Azure Key Vault.
10464#[derive(Clone, Default, PartialEq)]
10465#[non_exhaustive]
10466#[deprecated]
10467pub struct AzureDatabaseEncryption {
10468 /// Required. The ARM ID of the Azure Key Vault key to encrypt / decrypt data.
10469 ///
10470 /// For example:
10471 /// `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.KeyVault/vaults/<key-vault-id>/keys/<key-name>`
10472 /// Encryption will always take the latest version of the key and hence
10473 /// specific version is not supported.
10474 pub key_id: std::string::String,
10475
10476 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10477}
10478
10479impl AzureDatabaseEncryption {
10480 pub fn new() -> Self {
10481 std::default::Default::default()
10482 }
10483
10484 /// Sets the value of [key_id][crate::model::AzureDatabaseEncryption::key_id].
10485 ///
10486 /// # Example
10487 /// ```ignore,no_run
10488 /// # use google_cloud_gkemulticloud_v1::model::AzureDatabaseEncryption;
10489 /// let x = AzureDatabaseEncryption::new().set_key_id("example");
10490 /// ```
10491 pub fn set_key_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10492 self.key_id = v.into();
10493 self
10494 }
10495}
10496
10497impl wkt::message::Message for AzureDatabaseEncryption {
10498 fn typename() -> &'static str {
10499 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureDatabaseEncryption"
10500 }
10501}
10502
10503/// Configuration related to config data encryption.
10504///
10505/// Azure VM bootstrap secret is envelope encrypted with the provided key vault
10506/// key.
10507#[derive(Clone, Default, PartialEq)]
10508#[non_exhaustive]
10509#[deprecated]
10510pub struct AzureConfigEncryption {
10511 /// Required. The ARM ID of the Azure Key Vault key to encrypt / decrypt config
10512 /// data.
10513 ///
10514 /// For example:
10515 /// `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.KeyVault/vaults/<key-vault-id>/keys/<key-name>`
10516 pub key_id: std::string::String,
10517
10518 /// Optional. RSA key of the Azure Key Vault public key to use for encrypting
10519 /// the data.
10520 ///
10521 /// This key must be formatted as a PEM-encoded SubjectPublicKeyInfo (RFC 5280)
10522 /// in ASN.1 DER form. The string must be comprised of a single PEM block of
10523 /// type "PUBLIC KEY".
10524 pub public_key: std::string::String,
10525
10526 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10527}
10528
10529impl AzureConfigEncryption {
10530 pub fn new() -> Self {
10531 std::default::Default::default()
10532 }
10533
10534 /// Sets the value of [key_id][crate::model::AzureConfigEncryption::key_id].
10535 ///
10536 /// # Example
10537 /// ```ignore,no_run
10538 /// # use google_cloud_gkemulticloud_v1::model::AzureConfigEncryption;
10539 /// let x = AzureConfigEncryption::new().set_key_id("example");
10540 /// ```
10541 pub fn set_key_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10542 self.key_id = v.into();
10543 self
10544 }
10545
10546 /// Sets the value of [public_key][crate::model::AzureConfigEncryption::public_key].
10547 ///
10548 /// # Example
10549 /// ```ignore,no_run
10550 /// # use google_cloud_gkemulticloud_v1::model::AzureConfigEncryption;
10551 /// let x = AzureConfigEncryption::new().set_public_key("example");
10552 /// ```
10553 pub fn set_public_key<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10554 self.public_key = v.into();
10555 self
10556 }
10557}
10558
10559impl wkt::message::Message for AzureConfigEncryption {
10560 fn typename() -> &'static str {
10561 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureConfigEncryption"
10562 }
10563}
10564
10565/// Configuration for Azure Disks.
10566#[derive(Clone, Default, PartialEq)]
10567#[non_exhaustive]
10568#[deprecated]
10569pub struct AzureDiskTemplate {
10570 /// Optional. The size of the disk, in GiBs.
10571 ///
10572 /// When unspecified, a default value is provided. See the specific reference
10573 /// in the parent resource.
10574 pub size_gib: i32,
10575
10576 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10577}
10578
10579impl AzureDiskTemplate {
10580 pub fn new() -> Self {
10581 std::default::Default::default()
10582 }
10583
10584 /// Sets the value of [size_gib][crate::model::AzureDiskTemplate::size_gib].
10585 ///
10586 /// # Example
10587 /// ```ignore,no_run
10588 /// # use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
10589 /// let x = AzureDiskTemplate::new().set_size_gib(42);
10590 /// ```
10591 pub fn set_size_gib<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
10592 self.size_gib = v.into();
10593 self
10594 }
10595}
10596
10597impl wkt::message::Message for AzureDiskTemplate {
10598 fn typename() -> &'static str {
10599 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureDiskTemplate"
10600 }
10601}
10602
10603/// `AzureClient` resources hold client authentication information needed by the
10604/// Anthos Multi-Cloud API to manage Azure resources on your Azure subscription.
10605///
10606/// When an [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] is
10607/// created, an `AzureClient` resource needs to be provided and all operations on
10608/// Azure resources associated to that cluster will authenticate to Azure
10609/// services using the given client.
10610///
10611/// `AzureClient` resources are immutable and cannot be modified upon creation.
10612///
10613/// Each `AzureClient` resource is bound to a single Azure Active Directory
10614/// Application and tenant.
10615///
10616/// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
10617#[derive(Clone, Default, PartialEq)]
10618#[non_exhaustive]
10619#[deprecated]
10620pub struct AzureClient {
10621 /// The name of this resource.
10622 ///
10623 /// `AzureClient` resource names are formatted as
10624 /// `projects/<project-number>/locations/<region>/azureClients/<client-id>`.
10625 ///
10626 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
10627 /// for more details on Google Cloud resource names.
10628 pub name: std::string::String,
10629
10630 /// Required. The Azure Active Directory Tenant ID.
10631 pub tenant_id: std::string::String,
10632
10633 /// Required. The Azure Active Directory Application ID.
10634 pub application_id: std::string::String,
10635
10636 /// Output only. If set, there are currently pending changes to the client.
10637 pub reconciling: bool,
10638
10639 /// Optional. Annotations on the resource.
10640 ///
10641 /// This field has the same restrictions as Kubernetes annotations.
10642 /// The total size of all keys and values combined is limited to 256k.
10643 /// Keys can have 2 segments: prefix (optional) and name (required),
10644 /// separated by a slash (/).
10645 /// Prefix must be a DNS subdomain.
10646 /// Name must be 63 characters or less, begin and end with alphanumerics,
10647 /// with dashes (-), underscores (_), dots (.), and alphanumerics between.
10648 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
10649
10650 /// Output only. The PEM encoded x509 certificate.
10651 pub pem_certificate: std::string::String,
10652
10653 /// Output only. A globally unique identifier for the client.
10654 pub uid: std::string::String,
10655
10656 /// Output only. The time at which this resource was created.
10657 pub create_time: std::option::Option<wkt::Timestamp>,
10658
10659 /// Output only. The time at which this client was last updated.
10660 pub update_time: std::option::Option<wkt::Timestamp>,
10661
10662 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10663}
10664
10665impl AzureClient {
10666 pub fn new() -> Self {
10667 std::default::Default::default()
10668 }
10669
10670 /// Sets the value of [name][crate::model::AzureClient::name].
10671 ///
10672 /// # Example
10673 /// ```ignore,no_run
10674 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10675 /// let x = AzureClient::new().set_name("example");
10676 /// ```
10677 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10678 self.name = v.into();
10679 self
10680 }
10681
10682 /// Sets the value of [tenant_id][crate::model::AzureClient::tenant_id].
10683 ///
10684 /// # Example
10685 /// ```ignore,no_run
10686 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10687 /// let x = AzureClient::new().set_tenant_id("example");
10688 /// ```
10689 pub fn set_tenant_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10690 self.tenant_id = v.into();
10691 self
10692 }
10693
10694 /// Sets the value of [application_id][crate::model::AzureClient::application_id].
10695 ///
10696 /// # Example
10697 /// ```ignore,no_run
10698 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10699 /// let x = AzureClient::new().set_application_id("example");
10700 /// ```
10701 pub fn set_application_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10702 self.application_id = v.into();
10703 self
10704 }
10705
10706 /// Sets the value of [reconciling][crate::model::AzureClient::reconciling].
10707 ///
10708 /// # Example
10709 /// ```ignore,no_run
10710 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10711 /// let x = AzureClient::new().set_reconciling(true);
10712 /// ```
10713 pub fn set_reconciling<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
10714 self.reconciling = v.into();
10715 self
10716 }
10717
10718 /// Sets the value of [annotations][crate::model::AzureClient::annotations].
10719 ///
10720 /// # Example
10721 /// ```ignore,no_run
10722 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10723 /// let x = AzureClient::new().set_annotations([
10724 /// ("key0", "abc"),
10725 /// ("key1", "xyz"),
10726 /// ]);
10727 /// ```
10728 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
10729 where
10730 T: std::iter::IntoIterator<Item = (K, V)>,
10731 K: std::convert::Into<std::string::String>,
10732 V: std::convert::Into<std::string::String>,
10733 {
10734 use std::iter::Iterator;
10735 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
10736 self
10737 }
10738
10739 /// Sets the value of [pem_certificate][crate::model::AzureClient::pem_certificate].
10740 ///
10741 /// # Example
10742 /// ```ignore,no_run
10743 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10744 /// let x = AzureClient::new().set_pem_certificate("example");
10745 /// ```
10746 pub fn set_pem_certificate<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10747 self.pem_certificate = v.into();
10748 self
10749 }
10750
10751 /// Sets the value of [uid][crate::model::AzureClient::uid].
10752 ///
10753 /// # Example
10754 /// ```ignore,no_run
10755 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10756 /// let x = AzureClient::new().set_uid("example");
10757 /// ```
10758 pub fn set_uid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10759 self.uid = v.into();
10760 self
10761 }
10762
10763 /// Sets the value of [create_time][crate::model::AzureClient::create_time].
10764 ///
10765 /// # Example
10766 /// ```ignore,no_run
10767 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10768 /// use wkt::Timestamp;
10769 /// let x = AzureClient::new().set_create_time(Timestamp::default()/* use setters */);
10770 /// ```
10771 pub fn set_create_time<T>(mut self, v: T) -> Self
10772 where
10773 T: std::convert::Into<wkt::Timestamp>,
10774 {
10775 self.create_time = std::option::Option::Some(v.into());
10776 self
10777 }
10778
10779 /// Sets or clears the value of [create_time][crate::model::AzureClient::create_time].
10780 ///
10781 /// # Example
10782 /// ```ignore,no_run
10783 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10784 /// use wkt::Timestamp;
10785 /// let x = AzureClient::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
10786 /// let x = AzureClient::new().set_or_clear_create_time(None::<Timestamp>);
10787 /// ```
10788 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
10789 where
10790 T: std::convert::Into<wkt::Timestamp>,
10791 {
10792 self.create_time = v.map(|x| x.into());
10793 self
10794 }
10795
10796 /// Sets the value of [update_time][crate::model::AzureClient::update_time].
10797 ///
10798 /// # Example
10799 /// ```ignore,no_run
10800 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10801 /// use wkt::Timestamp;
10802 /// let x = AzureClient::new().set_update_time(Timestamp::default()/* use setters */);
10803 /// ```
10804 pub fn set_update_time<T>(mut self, v: T) -> Self
10805 where
10806 T: std::convert::Into<wkt::Timestamp>,
10807 {
10808 self.update_time = std::option::Option::Some(v.into());
10809 self
10810 }
10811
10812 /// Sets or clears the value of [update_time][crate::model::AzureClient::update_time].
10813 ///
10814 /// # Example
10815 /// ```ignore,no_run
10816 /// # use google_cloud_gkemulticloud_v1::model::AzureClient;
10817 /// use wkt::Timestamp;
10818 /// let x = AzureClient::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
10819 /// let x = AzureClient::new().set_or_clear_update_time(None::<Timestamp>);
10820 /// ```
10821 pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
10822 where
10823 T: std::convert::Into<wkt::Timestamp>,
10824 {
10825 self.update_time = v.map(|x| x.into());
10826 self
10827 }
10828}
10829
10830impl wkt::message::Message for AzureClient {
10831 fn typename() -> &'static str {
10832 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureClient"
10833 }
10834}
10835
10836/// Configuration related to the cluster RBAC settings.
10837#[derive(Clone, Default, PartialEq)]
10838#[non_exhaustive]
10839#[deprecated]
10840pub struct AzureAuthorization {
10841 /// Optional. Users that can perform operations as a cluster admin. A managed
10842 /// ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole
10843 /// to the users. Up to ten admin users can be provided.
10844 ///
10845 /// For more info on RBAC, see
10846 /// <https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles>
10847 pub admin_users: std::vec::Vec<crate::model::AzureClusterUser>,
10848
10849 /// Optional. Groups of users that can perform operations as a cluster admin. A
10850 /// managed ClusterRoleBinding will be created to grant the `cluster-admin`
10851 /// ClusterRole to the groups. Up to ten admin groups can be provided.
10852 ///
10853 /// For more info on RBAC, see
10854 /// <https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles>
10855 pub admin_groups: std::vec::Vec<crate::model::AzureClusterGroup>,
10856
10857 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10858}
10859
10860impl AzureAuthorization {
10861 pub fn new() -> Self {
10862 std::default::Default::default()
10863 }
10864
10865 /// Sets the value of [admin_users][crate::model::AzureAuthorization::admin_users].
10866 ///
10867 /// # Example
10868 /// ```ignore,no_run
10869 /// # use google_cloud_gkemulticloud_v1::model::AzureAuthorization;
10870 /// use google_cloud_gkemulticloud_v1::model::AzureClusterUser;
10871 /// let x = AzureAuthorization::new()
10872 /// .set_admin_users([
10873 /// AzureClusterUser::default()/* use setters */,
10874 /// AzureClusterUser::default()/* use (different) setters */,
10875 /// ]);
10876 /// ```
10877 pub fn set_admin_users<T, V>(mut self, v: T) -> Self
10878 where
10879 T: std::iter::IntoIterator<Item = V>,
10880 V: std::convert::Into<crate::model::AzureClusterUser>,
10881 {
10882 use std::iter::Iterator;
10883 self.admin_users = v.into_iter().map(|i| i.into()).collect();
10884 self
10885 }
10886
10887 /// Sets the value of [admin_groups][crate::model::AzureAuthorization::admin_groups].
10888 ///
10889 /// # Example
10890 /// ```ignore,no_run
10891 /// # use google_cloud_gkemulticloud_v1::model::AzureAuthorization;
10892 /// use google_cloud_gkemulticloud_v1::model::AzureClusterGroup;
10893 /// let x = AzureAuthorization::new()
10894 /// .set_admin_groups([
10895 /// AzureClusterGroup::default()/* use setters */,
10896 /// AzureClusterGroup::default()/* use (different) setters */,
10897 /// ]);
10898 /// ```
10899 pub fn set_admin_groups<T, V>(mut self, v: T) -> Self
10900 where
10901 T: std::iter::IntoIterator<Item = V>,
10902 V: std::convert::Into<crate::model::AzureClusterGroup>,
10903 {
10904 use std::iter::Iterator;
10905 self.admin_groups = v.into_iter().map(|i| i.into()).collect();
10906 self
10907 }
10908}
10909
10910impl wkt::message::Message for AzureAuthorization {
10911 fn typename() -> &'static str {
10912 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureAuthorization"
10913 }
10914}
10915
10916/// Authentication configuration for the management of Azure resources.
10917#[derive(Clone, Default, PartialEq)]
10918#[non_exhaustive]
10919#[deprecated]
10920pub struct AzureServicesAuthentication {
10921 /// Required. The Azure Active Directory Tenant ID.
10922 pub tenant_id: std::string::String,
10923
10924 /// Required. The Azure Active Directory Application ID.
10925 pub application_id: std::string::String,
10926
10927 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10928}
10929
10930impl AzureServicesAuthentication {
10931 pub fn new() -> Self {
10932 std::default::Default::default()
10933 }
10934
10935 /// Sets the value of [tenant_id][crate::model::AzureServicesAuthentication::tenant_id].
10936 ///
10937 /// # Example
10938 /// ```ignore,no_run
10939 /// # use google_cloud_gkemulticloud_v1::model::AzureServicesAuthentication;
10940 /// let x = AzureServicesAuthentication::new().set_tenant_id("example");
10941 /// ```
10942 pub fn set_tenant_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10943 self.tenant_id = v.into();
10944 self
10945 }
10946
10947 /// Sets the value of [application_id][crate::model::AzureServicesAuthentication::application_id].
10948 ///
10949 /// # Example
10950 /// ```ignore,no_run
10951 /// # use google_cloud_gkemulticloud_v1::model::AzureServicesAuthentication;
10952 /// let x = AzureServicesAuthentication::new().set_application_id("example");
10953 /// ```
10954 pub fn set_application_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10955 self.application_id = v.into();
10956 self
10957 }
10958}
10959
10960impl wkt::message::Message for AzureServicesAuthentication {
10961 fn typename() -> &'static str {
10962 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureServicesAuthentication"
10963 }
10964}
10965
10966/// Identities of a user-type subject for Azure clusters.
10967#[derive(Clone, Default, PartialEq)]
10968#[non_exhaustive]
10969#[deprecated]
10970pub struct AzureClusterUser {
10971 /// Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
10972 pub username: std::string::String,
10973
10974 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
10975}
10976
10977impl AzureClusterUser {
10978 pub fn new() -> Self {
10979 std::default::Default::default()
10980 }
10981
10982 /// Sets the value of [username][crate::model::AzureClusterUser::username].
10983 ///
10984 /// # Example
10985 /// ```ignore,no_run
10986 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterUser;
10987 /// let x = AzureClusterUser::new().set_username("example");
10988 /// ```
10989 pub fn set_username<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
10990 self.username = v.into();
10991 self
10992 }
10993}
10994
10995impl wkt::message::Message for AzureClusterUser {
10996 fn typename() -> &'static str {
10997 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureClusterUser"
10998 }
10999}
11000
11001/// Identities of a group-type subject for Azure clusters.
11002#[derive(Clone, Default, PartialEq)]
11003#[non_exhaustive]
11004#[deprecated]
11005pub struct AzureClusterGroup {
11006 /// Required. The name of the group, e.g. `my-group@domain.com`.
11007 pub group: std::string::String,
11008
11009 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
11010}
11011
11012impl AzureClusterGroup {
11013 pub fn new() -> Self {
11014 std::default::Default::default()
11015 }
11016
11017 /// Sets the value of [group][crate::model::AzureClusterGroup::group].
11018 ///
11019 /// # Example
11020 /// ```ignore,no_run
11021 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterGroup;
11022 /// let x = AzureClusterGroup::new().set_group("example");
11023 /// ```
11024 pub fn set_group<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11025 self.group = v.into();
11026 self
11027 }
11028}
11029
11030impl wkt::message::Message for AzureClusterGroup {
11031 fn typename() -> &'static str {
11032 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureClusterGroup"
11033 }
11034}
11035
11036/// An Anthos node pool running on Azure.
11037#[derive(Clone, Default, PartialEq)]
11038#[non_exhaustive]
11039#[deprecated]
11040pub struct AzureNodePool {
11041 /// The name of this resource.
11042 ///
11043 /// Node pool names are formatted as
11044 /// `projects/<project-number>/locations/<region>/azureClusters/<cluster-id>/azureNodePools/<node-pool-id>`.
11045 ///
11046 /// For more details on Google Cloud resource names,
11047 /// see [Resource Names](https://cloud.google.com/apis/design/resource_names)
11048 pub name: std::string::String,
11049
11050 /// Required. The Kubernetes version (e.g. `1.19.10-gke.1000`) running on this
11051 /// node pool.
11052 pub version: std::string::String,
11053
11054 /// Required. The node configuration of the node pool.
11055 pub config: std::option::Option<crate::model::AzureNodeConfig>,
11056
11057 /// Required. The ARM ID of the subnet where the node pool VMs run. Make sure
11058 /// it's a subnet under the virtual network in the cluster configuration.
11059 pub subnet_id: std::string::String,
11060
11061 /// Required. Autoscaler configuration for this node pool.
11062 pub autoscaling: std::option::Option<crate::model::AzureNodePoolAutoscaling>,
11063
11064 /// Output only. The current state of the node pool.
11065 pub state: crate::model::azure_node_pool::State,
11066
11067 /// Output only. A globally unique identifier for the node pool.
11068 pub uid: std::string::String,
11069
11070 /// Output only. If set, there are currently pending changes to the node
11071 /// pool.
11072 pub reconciling: bool,
11073
11074 /// Output only. The time at which this node pool was created.
11075 pub create_time: std::option::Option<wkt::Timestamp>,
11076
11077 /// Output only. The time at which this node pool was last updated.
11078 pub update_time: std::option::Option<wkt::Timestamp>,
11079
11080 /// Allows clients to perform consistent read-modify-writes
11081 /// through optimistic concurrency control.
11082 ///
11083 /// Can be sent on update and delete requests to ensure the
11084 /// client has an up-to-date value before proceeding.
11085 pub etag: std::string::String,
11086
11087 /// Optional. Annotations on the node pool.
11088 ///
11089 /// This field has the same restrictions as Kubernetes annotations.
11090 /// The total size of all keys and values combined is limited to 256k.
11091 /// Keys can have 2 segments: prefix (optional) and name (required),
11092 /// separated by a slash (/).
11093 /// Prefix must be a DNS subdomain.
11094 /// Name must be 63 characters or less, begin and end with alphanumerics,
11095 /// with dashes (-), underscores (_), dots (.), and alphanumerics between.
11096 pub annotations: std::collections::HashMap<std::string::String, std::string::String>,
11097
11098 /// Required. The constraint on the maximum number of pods that can be run
11099 /// simultaneously on a node in the node pool.
11100 pub max_pods_constraint: std::option::Option<crate::model::MaxPodsConstraint>,
11101
11102 /// Optional. The Azure availability zone of the nodes in this nodepool.
11103 ///
11104 /// When unspecified, it defaults to `1`.
11105 pub azure_availability_zone: std::string::String,
11106
11107 /// Output only. A set of errors found in the node pool.
11108 pub errors: std::vec::Vec<crate::model::AzureNodePoolError>,
11109
11110 /// Optional. The Management configuration for this node pool.
11111 pub management: std::option::Option<crate::model::AzureNodeManagement>,
11112
11113 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
11114}
11115
11116impl AzureNodePool {
11117 pub fn new() -> Self {
11118 std::default::Default::default()
11119 }
11120
11121 /// Sets the value of [name][crate::model::AzureNodePool::name].
11122 ///
11123 /// # Example
11124 /// ```ignore,no_run
11125 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11126 /// let x = AzureNodePool::new().set_name("example");
11127 /// ```
11128 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11129 self.name = v.into();
11130 self
11131 }
11132
11133 /// Sets the value of [version][crate::model::AzureNodePool::version].
11134 ///
11135 /// # Example
11136 /// ```ignore,no_run
11137 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11138 /// let x = AzureNodePool::new().set_version("example");
11139 /// ```
11140 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11141 self.version = v.into();
11142 self
11143 }
11144
11145 /// Sets the value of [config][crate::model::AzureNodePool::config].
11146 ///
11147 /// # Example
11148 /// ```ignore,no_run
11149 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11150 /// use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11151 /// let x = AzureNodePool::new().set_config(AzureNodeConfig::default()/* use setters */);
11152 /// ```
11153 pub fn set_config<T>(mut self, v: T) -> Self
11154 where
11155 T: std::convert::Into<crate::model::AzureNodeConfig>,
11156 {
11157 self.config = std::option::Option::Some(v.into());
11158 self
11159 }
11160
11161 /// Sets or clears the value of [config][crate::model::AzureNodePool::config].
11162 ///
11163 /// # Example
11164 /// ```ignore,no_run
11165 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11166 /// use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11167 /// let x = AzureNodePool::new().set_or_clear_config(Some(AzureNodeConfig::default()/* use setters */));
11168 /// let x = AzureNodePool::new().set_or_clear_config(None::<AzureNodeConfig>);
11169 /// ```
11170 pub fn set_or_clear_config<T>(mut self, v: std::option::Option<T>) -> Self
11171 where
11172 T: std::convert::Into<crate::model::AzureNodeConfig>,
11173 {
11174 self.config = v.map(|x| x.into());
11175 self
11176 }
11177
11178 /// Sets the value of [subnet_id][crate::model::AzureNodePool::subnet_id].
11179 ///
11180 /// # Example
11181 /// ```ignore,no_run
11182 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11183 /// let x = AzureNodePool::new().set_subnet_id("example");
11184 /// ```
11185 pub fn set_subnet_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11186 self.subnet_id = v.into();
11187 self
11188 }
11189
11190 /// Sets the value of [autoscaling][crate::model::AzureNodePool::autoscaling].
11191 ///
11192 /// # Example
11193 /// ```ignore,no_run
11194 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11195 /// use google_cloud_gkemulticloud_v1::model::AzureNodePoolAutoscaling;
11196 /// let x = AzureNodePool::new().set_autoscaling(AzureNodePoolAutoscaling::default()/* use setters */);
11197 /// ```
11198 pub fn set_autoscaling<T>(mut self, v: T) -> Self
11199 where
11200 T: std::convert::Into<crate::model::AzureNodePoolAutoscaling>,
11201 {
11202 self.autoscaling = std::option::Option::Some(v.into());
11203 self
11204 }
11205
11206 /// Sets or clears the value of [autoscaling][crate::model::AzureNodePool::autoscaling].
11207 ///
11208 /// # Example
11209 /// ```ignore,no_run
11210 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11211 /// use google_cloud_gkemulticloud_v1::model::AzureNodePoolAutoscaling;
11212 /// let x = AzureNodePool::new().set_or_clear_autoscaling(Some(AzureNodePoolAutoscaling::default()/* use setters */));
11213 /// let x = AzureNodePool::new().set_or_clear_autoscaling(None::<AzureNodePoolAutoscaling>);
11214 /// ```
11215 pub fn set_or_clear_autoscaling<T>(mut self, v: std::option::Option<T>) -> Self
11216 where
11217 T: std::convert::Into<crate::model::AzureNodePoolAutoscaling>,
11218 {
11219 self.autoscaling = v.map(|x| x.into());
11220 self
11221 }
11222
11223 /// Sets the value of [state][crate::model::AzureNodePool::state].
11224 ///
11225 /// # Example
11226 /// ```ignore,no_run
11227 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11228 /// use google_cloud_gkemulticloud_v1::model::azure_node_pool::State;
11229 /// let x0 = AzureNodePool::new().set_state(State::Provisioning);
11230 /// let x1 = AzureNodePool::new().set_state(State::Running);
11231 /// let x2 = AzureNodePool::new().set_state(State::Reconciling);
11232 /// ```
11233 pub fn set_state<T: std::convert::Into<crate::model::azure_node_pool::State>>(
11234 mut self,
11235 v: T,
11236 ) -> Self {
11237 self.state = v.into();
11238 self
11239 }
11240
11241 /// Sets the value of [uid][crate::model::AzureNodePool::uid].
11242 ///
11243 /// # Example
11244 /// ```ignore,no_run
11245 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11246 /// let x = AzureNodePool::new().set_uid("example");
11247 /// ```
11248 pub fn set_uid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11249 self.uid = v.into();
11250 self
11251 }
11252
11253 /// Sets the value of [reconciling][crate::model::AzureNodePool::reconciling].
11254 ///
11255 /// # Example
11256 /// ```ignore,no_run
11257 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11258 /// let x = AzureNodePool::new().set_reconciling(true);
11259 /// ```
11260 pub fn set_reconciling<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
11261 self.reconciling = v.into();
11262 self
11263 }
11264
11265 /// Sets the value of [create_time][crate::model::AzureNodePool::create_time].
11266 ///
11267 /// # Example
11268 /// ```ignore,no_run
11269 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11270 /// use wkt::Timestamp;
11271 /// let x = AzureNodePool::new().set_create_time(Timestamp::default()/* use setters */);
11272 /// ```
11273 pub fn set_create_time<T>(mut self, v: T) -> Self
11274 where
11275 T: std::convert::Into<wkt::Timestamp>,
11276 {
11277 self.create_time = std::option::Option::Some(v.into());
11278 self
11279 }
11280
11281 /// Sets or clears the value of [create_time][crate::model::AzureNodePool::create_time].
11282 ///
11283 /// # Example
11284 /// ```ignore,no_run
11285 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11286 /// use wkt::Timestamp;
11287 /// let x = AzureNodePool::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
11288 /// let x = AzureNodePool::new().set_or_clear_create_time(None::<Timestamp>);
11289 /// ```
11290 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
11291 where
11292 T: std::convert::Into<wkt::Timestamp>,
11293 {
11294 self.create_time = v.map(|x| x.into());
11295 self
11296 }
11297
11298 /// Sets the value of [update_time][crate::model::AzureNodePool::update_time].
11299 ///
11300 /// # Example
11301 /// ```ignore,no_run
11302 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11303 /// use wkt::Timestamp;
11304 /// let x = AzureNodePool::new().set_update_time(Timestamp::default()/* use setters */);
11305 /// ```
11306 pub fn set_update_time<T>(mut self, v: T) -> Self
11307 where
11308 T: std::convert::Into<wkt::Timestamp>,
11309 {
11310 self.update_time = std::option::Option::Some(v.into());
11311 self
11312 }
11313
11314 /// Sets or clears the value of [update_time][crate::model::AzureNodePool::update_time].
11315 ///
11316 /// # Example
11317 /// ```ignore,no_run
11318 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11319 /// use wkt::Timestamp;
11320 /// let x = AzureNodePool::new().set_or_clear_update_time(Some(Timestamp::default()/* use setters */));
11321 /// let x = AzureNodePool::new().set_or_clear_update_time(None::<Timestamp>);
11322 /// ```
11323 pub fn set_or_clear_update_time<T>(mut self, v: std::option::Option<T>) -> Self
11324 where
11325 T: std::convert::Into<wkt::Timestamp>,
11326 {
11327 self.update_time = v.map(|x| x.into());
11328 self
11329 }
11330
11331 /// Sets the value of [etag][crate::model::AzureNodePool::etag].
11332 ///
11333 /// # Example
11334 /// ```ignore,no_run
11335 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11336 /// let x = AzureNodePool::new().set_etag("example");
11337 /// ```
11338 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11339 self.etag = v.into();
11340 self
11341 }
11342
11343 /// Sets the value of [annotations][crate::model::AzureNodePool::annotations].
11344 ///
11345 /// # Example
11346 /// ```ignore,no_run
11347 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11348 /// let x = AzureNodePool::new().set_annotations([
11349 /// ("key0", "abc"),
11350 /// ("key1", "xyz"),
11351 /// ]);
11352 /// ```
11353 pub fn set_annotations<T, K, V>(mut self, v: T) -> Self
11354 where
11355 T: std::iter::IntoIterator<Item = (K, V)>,
11356 K: std::convert::Into<std::string::String>,
11357 V: std::convert::Into<std::string::String>,
11358 {
11359 use std::iter::Iterator;
11360 self.annotations = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
11361 self
11362 }
11363
11364 /// Sets the value of [max_pods_constraint][crate::model::AzureNodePool::max_pods_constraint].
11365 ///
11366 /// # Example
11367 /// ```ignore,no_run
11368 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11369 /// use google_cloud_gkemulticloud_v1::model::MaxPodsConstraint;
11370 /// let x = AzureNodePool::new().set_max_pods_constraint(MaxPodsConstraint::default()/* use setters */);
11371 /// ```
11372 pub fn set_max_pods_constraint<T>(mut self, v: T) -> Self
11373 where
11374 T: std::convert::Into<crate::model::MaxPodsConstraint>,
11375 {
11376 self.max_pods_constraint = std::option::Option::Some(v.into());
11377 self
11378 }
11379
11380 /// Sets or clears the value of [max_pods_constraint][crate::model::AzureNodePool::max_pods_constraint].
11381 ///
11382 /// # Example
11383 /// ```ignore,no_run
11384 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11385 /// use google_cloud_gkemulticloud_v1::model::MaxPodsConstraint;
11386 /// let x = AzureNodePool::new().set_or_clear_max_pods_constraint(Some(MaxPodsConstraint::default()/* use setters */));
11387 /// let x = AzureNodePool::new().set_or_clear_max_pods_constraint(None::<MaxPodsConstraint>);
11388 /// ```
11389 pub fn set_or_clear_max_pods_constraint<T>(mut self, v: std::option::Option<T>) -> Self
11390 where
11391 T: std::convert::Into<crate::model::MaxPodsConstraint>,
11392 {
11393 self.max_pods_constraint = v.map(|x| x.into());
11394 self
11395 }
11396
11397 /// Sets the value of [azure_availability_zone][crate::model::AzureNodePool::azure_availability_zone].
11398 ///
11399 /// # Example
11400 /// ```ignore,no_run
11401 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11402 /// let x = AzureNodePool::new().set_azure_availability_zone("example");
11403 /// ```
11404 pub fn set_azure_availability_zone<T: std::convert::Into<std::string::String>>(
11405 mut self,
11406 v: T,
11407 ) -> Self {
11408 self.azure_availability_zone = v.into();
11409 self
11410 }
11411
11412 /// Sets the value of [errors][crate::model::AzureNodePool::errors].
11413 ///
11414 /// # Example
11415 /// ```ignore,no_run
11416 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11417 /// use google_cloud_gkemulticloud_v1::model::AzureNodePoolError;
11418 /// let x = AzureNodePool::new()
11419 /// .set_errors([
11420 /// AzureNodePoolError::default()/* use setters */,
11421 /// AzureNodePoolError::default()/* use (different) setters */,
11422 /// ]);
11423 /// ```
11424 pub fn set_errors<T, V>(mut self, v: T) -> Self
11425 where
11426 T: std::iter::IntoIterator<Item = V>,
11427 V: std::convert::Into<crate::model::AzureNodePoolError>,
11428 {
11429 use std::iter::Iterator;
11430 self.errors = v.into_iter().map(|i| i.into()).collect();
11431 self
11432 }
11433
11434 /// Sets the value of [management][crate::model::AzureNodePool::management].
11435 ///
11436 /// # Example
11437 /// ```ignore,no_run
11438 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11439 /// use google_cloud_gkemulticloud_v1::model::AzureNodeManagement;
11440 /// let x = AzureNodePool::new().set_management(AzureNodeManagement::default()/* use setters */);
11441 /// ```
11442 pub fn set_management<T>(mut self, v: T) -> Self
11443 where
11444 T: std::convert::Into<crate::model::AzureNodeManagement>,
11445 {
11446 self.management = std::option::Option::Some(v.into());
11447 self
11448 }
11449
11450 /// Sets or clears the value of [management][crate::model::AzureNodePool::management].
11451 ///
11452 /// # Example
11453 /// ```ignore,no_run
11454 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePool;
11455 /// use google_cloud_gkemulticloud_v1::model::AzureNodeManagement;
11456 /// let x = AzureNodePool::new().set_or_clear_management(Some(AzureNodeManagement::default()/* use setters */));
11457 /// let x = AzureNodePool::new().set_or_clear_management(None::<AzureNodeManagement>);
11458 /// ```
11459 pub fn set_or_clear_management<T>(mut self, v: std::option::Option<T>) -> Self
11460 where
11461 T: std::convert::Into<crate::model::AzureNodeManagement>,
11462 {
11463 self.management = v.map(|x| x.into());
11464 self
11465 }
11466}
11467
11468impl wkt::message::Message for AzureNodePool {
11469 fn typename() -> &'static str {
11470 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureNodePool"
11471 }
11472}
11473
11474/// Defines additional types related to [AzureNodePool].
11475pub mod azure_node_pool {
11476 #[allow(unused_imports)]
11477 use super::*;
11478
11479 /// The lifecycle state of the node pool.
11480 ///
11481 /// # Working with unknown values
11482 ///
11483 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
11484 /// additional enum variants at any time. Adding new variants is not considered
11485 /// a breaking change. Applications should write their code in anticipation of:
11486 ///
11487 /// - New values appearing in future releases of the client library, **and**
11488 /// - New values received dynamically, without application changes.
11489 ///
11490 /// Please consult the [Working with enums] section in the user guide for some
11491 /// guidelines.
11492 ///
11493 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
11494 #[derive(Clone, Debug, PartialEq)]
11495 #[non_exhaustive]
11496 pub enum State {
11497 /// Not set.
11498 Unspecified,
11499 /// The PROVISIONING state indicates the node pool is being created.
11500 Provisioning,
11501 /// The RUNNING state indicates the node pool has been created and is fully
11502 /// usable.
11503 Running,
11504 /// The RECONCILING state indicates that the node pool is being reconciled.
11505 Reconciling,
11506 /// The STOPPING state indicates the node pool is being deleted.
11507 Stopping,
11508 /// The ERROR state indicates the node pool is in a broken unrecoverable
11509 /// state.
11510 Error,
11511 /// The DEGRADED state indicates the node pool requires user action to
11512 /// restore full functionality.
11513 Degraded,
11514 /// If set, the enum was initialized with an unknown value.
11515 ///
11516 /// Applications can examine the value using [State::value] or
11517 /// [State::name].
11518 UnknownValue(state::UnknownValue),
11519 }
11520
11521 #[doc(hidden)]
11522 pub mod state {
11523 #[allow(unused_imports)]
11524 use super::*;
11525 #[derive(Clone, Debug, PartialEq)]
11526 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
11527 }
11528
11529 impl State {
11530 /// Gets the enum value.
11531 ///
11532 /// Returns `None` if the enum contains an unknown value deserialized from
11533 /// the string representation of enums.
11534 pub fn value(&self) -> std::option::Option<i32> {
11535 match self {
11536 Self::Unspecified => std::option::Option::Some(0),
11537 Self::Provisioning => std::option::Option::Some(1),
11538 Self::Running => std::option::Option::Some(2),
11539 Self::Reconciling => std::option::Option::Some(3),
11540 Self::Stopping => std::option::Option::Some(4),
11541 Self::Error => std::option::Option::Some(5),
11542 Self::Degraded => std::option::Option::Some(6),
11543 Self::UnknownValue(u) => u.0.value(),
11544 }
11545 }
11546
11547 /// Gets the enum value as a string.
11548 ///
11549 /// Returns `None` if the enum contains an unknown value deserialized from
11550 /// the integer representation of enums.
11551 pub fn name(&self) -> std::option::Option<&str> {
11552 match self {
11553 Self::Unspecified => std::option::Option::Some("STATE_UNSPECIFIED"),
11554 Self::Provisioning => std::option::Option::Some("PROVISIONING"),
11555 Self::Running => std::option::Option::Some("RUNNING"),
11556 Self::Reconciling => std::option::Option::Some("RECONCILING"),
11557 Self::Stopping => std::option::Option::Some("STOPPING"),
11558 Self::Error => std::option::Option::Some("ERROR"),
11559 Self::Degraded => std::option::Option::Some("DEGRADED"),
11560 Self::UnknownValue(u) => u.0.name(),
11561 }
11562 }
11563 }
11564
11565 impl std::default::Default for State {
11566 fn default() -> Self {
11567 use std::convert::From;
11568 Self::from(0)
11569 }
11570 }
11571
11572 impl std::fmt::Display for State {
11573 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
11574 wkt::internal::display_enum(f, self.name(), self.value())
11575 }
11576 }
11577
11578 impl std::convert::From<i32> for State {
11579 fn from(value: i32) -> Self {
11580 match value {
11581 0 => Self::Unspecified,
11582 1 => Self::Provisioning,
11583 2 => Self::Running,
11584 3 => Self::Reconciling,
11585 4 => Self::Stopping,
11586 5 => Self::Error,
11587 6 => Self::Degraded,
11588 _ => Self::UnknownValue(state::UnknownValue(
11589 wkt::internal::UnknownEnumValue::Integer(value),
11590 )),
11591 }
11592 }
11593 }
11594
11595 impl std::convert::From<&str> for State {
11596 fn from(value: &str) -> Self {
11597 use std::string::ToString;
11598 match value {
11599 "STATE_UNSPECIFIED" => Self::Unspecified,
11600 "PROVISIONING" => Self::Provisioning,
11601 "RUNNING" => Self::Running,
11602 "RECONCILING" => Self::Reconciling,
11603 "STOPPING" => Self::Stopping,
11604 "ERROR" => Self::Error,
11605 "DEGRADED" => Self::Degraded,
11606 _ => Self::UnknownValue(state::UnknownValue(
11607 wkt::internal::UnknownEnumValue::String(value.to_string()),
11608 )),
11609 }
11610 }
11611 }
11612
11613 impl serde::ser::Serialize for State {
11614 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
11615 where
11616 S: serde::Serializer,
11617 {
11618 match self {
11619 Self::Unspecified => serializer.serialize_i32(0),
11620 Self::Provisioning => serializer.serialize_i32(1),
11621 Self::Running => serializer.serialize_i32(2),
11622 Self::Reconciling => serializer.serialize_i32(3),
11623 Self::Stopping => serializer.serialize_i32(4),
11624 Self::Error => serializer.serialize_i32(5),
11625 Self::Degraded => serializer.serialize_i32(6),
11626 Self::UnknownValue(u) => u.0.serialize(serializer),
11627 }
11628 }
11629 }
11630
11631 impl<'de> serde::de::Deserialize<'de> for State {
11632 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
11633 where
11634 D: serde::Deserializer<'de>,
11635 {
11636 deserializer.deserialize_any(wkt::internal::EnumVisitor::<State>::new(
11637 ".google.cloud.gkemulticloud.v1.AzureNodePool.State",
11638 ))
11639 }
11640 }
11641}
11642
11643/// AzureNodeManagement defines the set of node management features turned on for
11644/// an Azure node pool.
11645#[derive(Clone, Default, PartialEq)]
11646#[non_exhaustive]
11647#[deprecated]
11648pub struct AzureNodeManagement {
11649 /// Optional. Whether or not the nodes will be automatically repaired. When set
11650 /// to true, the nodes in this node pool will be monitored and if they fail
11651 /// health checks consistently over a period of time, an automatic repair
11652 /// action will be triggered to replace them with new nodes.
11653 pub auto_repair: bool,
11654
11655 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
11656}
11657
11658impl AzureNodeManagement {
11659 pub fn new() -> Self {
11660 std::default::Default::default()
11661 }
11662
11663 /// Sets the value of [auto_repair][crate::model::AzureNodeManagement::auto_repair].
11664 ///
11665 /// # Example
11666 /// ```ignore,no_run
11667 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeManagement;
11668 /// let x = AzureNodeManagement::new().set_auto_repair(true);
11669 /// ```
11670 pub fn set_auto_repair<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
11671 self.auto_repair = v.into();
11672 self
11673 }
11674}
11675
11676impl wkt::message::Message for AzureNodeManagement {
11677 fn typename() -> &'static str {
11678 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureNodeManagement"
11679 }
11680}
11681
11682/// Parameters that describe the configuration of all node machines
11683/// on a given node pool.
11684#[derive(Clone, Default, PartialEq)]
11685#[non_exhaustive]
11686#[deprecated]
11687pub struct AzureNodeConfig {
11688 /// Optional. The Azure VM size name. Example: `Standard_DS2_v2`.
11689 ///
11690 /// See [Supported VM
11691 /// sizes](/anthos/clusters/docs/azure/reference/supported-vms) for options.
11692 ///
11693 /// When unspecified, it defaults to `Standard_DS2_v2`.
11694 pub vm_size: std::string::String,
11695
11696 /// Optional. Configuration related to the root volume provisioned for each
11697 /// node pool machine.
11698 ///
11699 /// When unspecified, it defaults to a 32-GiB Azure Disk.
11700 pub root_volume: std::option::Option<crate::model::AzureDiskTemplate>,
11701
11702 /// Optional. A set of tags to apply to all underlying Azure resources for this
11703 /// node pool. This currently only includes Virtual Machine Scale Sets.
11704 ///
11705 /// Specify at most 50 pairs containing alphanumerics, spaces, and symbols
11706 /// (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to
11707 /// 255 Unicode characters.
11708 pub tags: std::collections::HashMap<std::string::String, std::string::String>,
11709
11710 /// Optional. The OS image type to use on node pool instances.
11711 /// Can be unspecified, or have a value of `ubuntu`.
11712 ///
11713 /// When unspecified, it defaults to `ubuntu`.
11714 pub image_type: std::string::String,
11715
11716 /// Required. SSH configuration for how to access the node pool machines.
11717 pub ssh_config: std::option::Option<crate::model::AzureSshConfig>,
11718
11719 /// Optional. Proxy configuration for outbound HTTP(S) traffic.
11720 pub proxy_config: std::option::Option<crate::model::AzureProxyConfig>,
11721
11722 /// Optional. Configuration related to vm config encryption.
11723 pub config_encryption: std::option::Option<crate::model::AzureConfigEncryption>,
11724
11725 /// Optional. The initial taints assigned to nodes of this node pool.
11726 pub taints: std::vec::Vec<crate::model::NodeTaint>,
11727
11728 /// Optional. The initial labels assigned to nodes of this node pool. An object
11729 /// containing a list of "key": value pairs. Example: { "name": "wrench",
11730 /// "mass": "1.3kg", "count": "3" }.
11731 pub labels: std::collections::HashMap<std::string::String, std::string::String>,
11732
11733 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
11734}
11735
11736impl AzureNodeConfig {
11737 pub fn new() -> Self {
11738 std::default::Default::default()
11739 }
11740
11741 /// Sets the value of [vm_size][crate::model::AzureNodeConfig::vm_size].
11742 ///
11743 /// # Example
11744 /// ```ignore,no_run
11745 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11746 /// let x = AzureNodeConfig::new().set_vm_size("example");
11747 /// ```
11748 pub fn set_vm_size<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11749 self.vm_size = v.into();
11750 self
11751 }
11752
11753 /// Sets the value of [root_volume][crate::model::AzureNodeConfig::root_volume].
11754 ///
11755 /// # Example
11756 /// ```ignore,no_run
11757 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11758 /// use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
11759 /// let x = AzureNodeConfig::new().set_root_volume(AzureDiskTemplate::default()/* use setters */);
11760 /// ```
11761 pub fn set_root_volume<T>(mut self, v: T) -> Self
11762 where
11763 T: std::convert::Into<crate::model::AzureDiskTemplate>,
11764 {
11765 self.root_volume = std::option::Option::Some(v.into());
11766 self
11767 }
11768
11769 /// Sets or clears the value of [root_volume][crate::model::AzureNodeConfig::root_volume].
11770 ///
11771 /// # Example
11772 /// ```ignore,no_run
11773 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11774 /// use google_cloud_gkemulticloud_v1::model::AzureDiskTemplate;
11775 /// let x = AzureNodeConfig::new().set_or_clear_root_volume(Some(AzureDiskTemplate::default()/* use setters */));
11776 /// let x = AzureNodeConfig::new().set_or_clear_root_volume(None::<AzureDiskTemplate>);
11777 /// ```
11778 pub fn set_or_clear_root_volume<T>(mut self, v: std::option::Option<T>) -> Self
11779 where
11780 T: std::convert::Into<crate::model::AzureDiskTemplate>,
11781 {
11782 self.root_volume = v.map(|x| x.into());
11783 self
11784 }
11785
11786 /// Sets the value of [tags][crate::model::AzureNodeConfig::tags].
11787 ///
11788 /// # Example
11789 /// ```ignore,no_run
11790 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11791 /// let x = AzureNodeConfig::new().set_tags([
11792 /// ("key0", "abc"),
11793 /// ("key1", "xyz"),
11794 /// ]);
11795 /// ```
11796 pub fn set_tags<T, K, V>(mut self, v: T) -> Self
11797 where
11798 T: std::iter::IntoIterator<Item = (K, V)>,
11799 K: std::convert::Into<std::string::String>,
11800 V: std::convert::Into<std::string::String>,
11801 {
11802 use std::iter::Iterator;
11803 self.tags = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
11804 self
11805 }
11806
11807 /// Sets the value of [image_type][crate::model::AzureNodeConfig::image_type].
11808 ///
11809 /// # Example
11810 /// ```ignore,no_run
11811 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11812 /// let x = AzureNodeConfig::new().set_image_type("example");
11813 /// ```
11814 pub fn set_image_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
11815 self.image_type = v.into();
11816 self
11817 }
11818
11819 /// Sets the value of [ssh_config][crate::model::AzureNodeConfig::ssh_config].
11820 ///
11821 /// # Example
11822 /// ```ignore,no_run
11823 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11824 /// use google_cloud_gkemulticloud_v1::model::AzureSshConfig;
11825 /// let x = AzureNodeConfig::new().set_ssh_config(AzureSshConfig::default()/* use setters */);
11826 /// ```
11827 pub fn set_ssh_config<T>(mut self, v: T) -> Self
11828 where
11829 T: std::convert::Into<crate::model::AzureSshConfig>,
11830 {
11831 self.ssh_config = std::option::Option::Some(v.into());
11832 self
11833 }
11834
11835 /// Sets or clears the value of [ssh_config][crate::model::AzureNodeConfig::ssh_config].
11836 ///
11837 /// # Example
11838 /// ```ignore,no_run
11839 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11840 /// use google_cloud_gkemulticloud_v1::model::AzureSshConfig;
11841 /// let x = AzureNodeConfig::new().set_or_clear_ssh_config(Some(AzureSshConfig::default()/* use setters */));
11842 /// let x = AzureNodeConfig::new().set_or_clear_ssh_config(None::<AzureSshConfig>);
11843 /// ```
11844 pub fn set_or_clear_ssh_config<T>(mut self, v: std::option::Option<T>) -> Self
11845 where
11846 T: std::convert::Into<crate::model::AzureSshConfig>,
11847 {
11848 self.ssh_config = v.map(|x| x.into());
11849 self
11850 }
11851
11852 /// Sets the value of [proxy_config][crate::model::AzureNodeConfig::proxy_config].
11853 ///
11854 /// # Example
11855 /// ```ignore,no_run
11856 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11857 /// use google_cloud_gkemulticloud_v1::model::AzureProxyConfig;
11858 /// let x = AzureNodeConfig::new().set_proxy_config(AzureProxyConfig::default()/* use setters */);
11859 /// ```
11860 pub fn set_proxy_config<T>(mut self, v: T) -> Self
11861 where
11862 T: std::convert::Into<crate::model::AzureProxyConfig>,
11863 {
11864 self.proxy_config = std::option::Option::Some(v.into());
11865 self
11866 }
11867
11868 /// Sets or clears the value of [proxy_config][crate::model::AzureNodeConfig::proxy_config].
11869 ///
11870 /// # Example
11871 /// ```ignore,no_run
11872 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11873 /// use google_cloud_gkemulticloud_v1::model::AzureProxyConfig;
11874 /// let x = AzureNodeConfig::new().set_or_clear_proxy_config(Some(AzureProxyConfig::default()/* use setters */));
11875 /// let x = AzureNodeConfig::new().set_or_clear_proxy_config(None::<AzureProxyConfig>);
11876 /// ```
11877 pub fn set_or_clear_proxy_config<T>(mut self, v: std::option::Option<T>) -> Self
11878 where
11879 T: std::convert::Into<crate::model::AzureProxyConfig>,
11880 {
11881 self.proxy_config = v.map(|x| x.into());
11882 self
11883 }
11884
11885 /// Sets the value of [config_encryption][crate::model::AzureNodeConfig::config_encryption].
11886 ///
11887 /// # Example
11888 /// ```ignore,no_run
11889 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11890 /// use google_cloud_gkemulticloud_v1::model::AzureConfigEncryption;
11891 /// let x = AzureNodeConfig::new().set_config_encryption(AzureConfigEncryption::default()/* use setters */);
11892 /// ```
11893 pub fn set_config_encryption<T>(mut self, v: T) -> Self
11894 where
11895 T: std::convert::Into<crate::model::AzureConfigEncryption>,
11896 {
11897 self.config_encryption = std::option::Option::Some(v.into());
11898 self
11899 }
11900
11901 /// Sets or clears the value of [config_encryption][crate::model::AzureNodeConfig::config_encryption].
11902 ///
11903 /// # Example
11904 /// ```ignore,no_run
11905 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11906 /// use google_cloud_gkemulticloud_v1::model::AzureConfigEncryption;
11907 /// let x = AzureNodeConfig::new().set_or_clear_config_encryption(Some(AzureConfigEncryption::default()/* use setters */));
11908 /// let x = AzureNodeConfig::new().set_or_clear_config_encryption(None::<AzureConfigEncryption>);
11909 /// ```
11910 pub fn set_or_clear_config_encryption<T>(mut self, v: std::option::Option<T>) -> Self
11911 where
11912 T: std::convert::Into<crate::model::AzureConfigEncryption>,
11913 {
11914 self.config_encryption = v.map(|x| x.into());
11915 self
11916 }
11917
11918 /// Sets the value of [taints][crate::model::AzureNodeConfig::taints].
11919 ///
11920 /// # Example
11921 /// ```ignore,no_run
11922 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11923 /// use google_cloud_gkemulticloud_v1::model::NodeTaint;
11924 /// let x = AzureNodeConfig::new()
11925 /// .set_taints([
11926 /// NodeTaint::default()/* use setters */,
11927 /// NodeTaint::default()/* use (different) setters */,
11928 /// ]);
11929 /// ```
11930 pub fn set_taints<T, V>(mut self, v: T) -> Self
11931 where
11932 T: std::iter::IntoIterator<Item = V>,
11933 V: std::convert::Into<crate::model::NodeTaint>,
11934 {
11935 use std::iter::Iterator;
11936 self.taints = v.into_iter().map(|i| i.into()).collect();
11937 self
11938 }
11939
11940 /// Sets the value of [labels][crate::model::AzureNodeConfig::labels].
11941 ///
11942 /// # Example
11943 /// ```ignore,no_run
11944 /// # use google_cloud_gkemulticloud_v1::model::AzureNodeConfig;
11945 /// let x = AzureNodeConfig::new().set_labels([
11946 /// ("key0", "abc"),
11947 /// ("key1", "xyz"),
11948 /// ]);
11949 /// ```
11950 pub fn set_labels<T, K, V>(mut self, v: T) -> Self
11951 where
11952 T: std::iter::IntoIterator<Item = (K, V)>,
11953 K: std::convert::Into<std::string::String>,
11954 V: std::convert::Into<std::string::String>,
11955 {
11956 use std::iter::Iterator;
11957 self.labels = v.into_iter().map(|(k, v)| (k.into(), v.into())).collect();
11958 self
11959 }
11960}
11961
11962impl wkt::message::Message for AzureNodeConfig {
11963 fn typename() -> &'static str {
11964 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureNodeConfig"
11965 }
11966}
11967
11968/// Configuration related to Kubernetes cluster autoscaler.
11969///
11970/// The Kubernetes cluster autoscaler will automatically adjust the
11971/// size of the node pool based on the cluster load.
11972#[derive(Clone, Default, PartialEq)]
11973#[non_exhaustive]
11974#[deprecated]
11975pub struct AzureNodePoolAutoscaling {
11976 /// Required. Minimum number of nodes in the node pool. Must be greater than or
11977 /// equal to 1 and less than or equal to max_node_count.
11978 pub min_node_count: i32,
11979
11980 /// Required. Maximum number of nodes in the node pool. Must be greater than or
11981 /// equal to min_node_count and less than or equal to 50.
11982 pub max_node_count: i32,
11983
11984 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
11985}
11986
11987impl AzureNodePoolAutoscaling {
11988 pub fn new() -> Self {
11989 std::default::Default::default()
11990 }
11991
11992 /// Sets the value of [min_node_count][crate::model::AzureNodePoolAutoscaling::min_node_count].
11993 ///
11994 /// # Example
11995 /// ```ignore,no_run
11996 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePoolAutoscaling;
11997 /// let x = AzureNodePoolAutoscaling::new().set_min_node_count(42);
11998 /// ```
11999 pub fn set_min_node_count<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
12000 self.min_node_count = v.into();
12001 self
12002 }
12003
12004 /// Sets the value of [max_node_count][crate::model::AzureNodePoolAutoscaling::max_node_count].
12005 ///
12006 /// # Example
12007 /// ```ignore,no_run
12008 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePoolAutoscaling;
12009 /// let x = AzureNodePoolAutoscaling::new().set_max_node_count(42);
12010 /// ```
12011 pub fn set_max_node_count<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
12012 self.max_node_count = v.into();
12013 self
12014 }
12015}
12016
12017impl wkt::message::Message for AzureNodePoolAutoscaling {
12018 fn typename() -> &'static str {
12019 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureNodePoolAutoscaling"
12020 }
12021}
12022
12023/// AzureOpenIdConfig is an OIDC discovery document for the cluster.
12024/// See the OpenID Connect Discovery 1.0 specification for details.
12025#[derive(Clone, Default, PartialEq)]
12026#[non_exhaustive]
12027#[deprecated]
12028pub struct AzureOpenIdConfig {
12029 /// OIDC Issuer.
12030 pub issuer: std::string::String,
12031
12032 /// JSON Web Key uri.
12033 pub jwks_uri: std::string::String,
12034
12035 /// Supported response types.
12036 pub response_types_supported: std::vec::Vec<std::string::String>,
12037
12038 /// Supported subject types.
12039 pub subject_types_supported: std::vec::Vec<std::string::String>,
12040
12041 /// supported ID Token signing Algorithms.
12042 pub id_token_signing_alg_values_supported: std::vec::Vec<std::string::String>,
12043
12044 /// Supported claims.
12045 pub claims_supported: std::vec::Vec<std::string::String>,
12046
12047 /// Supported grant types.
12048 pub grant_types: std::vec::Vec<std::string::String>,
12049
12050 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12051}
12052
12053impl AzureOpenIdConfig {
12054 pub fn new() -> Self {
12055 std::default::Default::default()
12056 }
12057
12058 /// Sets the value of [issuer][crate::model::AzureOpenIdConfig::issuer].
12059 ///
12060 /// # Example
12061 /// ```ignore,no_run
12062 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12063 /// let x = AzureOpenIdConfig::new().set_issuer("example");
12064 /// ```
12065 pub fn set_issuer<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12066 self.issuer = v.into();
12067 self
12068 }
12069
12070 /// Sets the value of [jwks_uri][crate::model::AzureOpenIdConfig::jwks_uri].
12071 ///
12072 /// # Example
12073 /// ```ignore,no_run
12074 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12075 /// let x = AzureOpenIdConfig::new().set_jwks_uri("example");
12076 /// ```
12077 pub fn set_jwks_uri<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12078 self.jwks_uri = v.into();
12079 self
12080 }
12081
12082 /// Sets the value of [response_types_supported][crate::model::AzureOpenIdConfig::response_types_supported].
12083 ///
12084 /// # Example
12085 /// ```ignore,no_run
12086 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12087 /// let x = AzureOpenIdConfig::new().set_response_types_supported(["a", "b", "c"]);
12088 /// ```
12089 pub fn set_response_types_supported<T, V>(mut self, v: T) -> Self
12090 where
12091 T: std::iter::IntoIterator<Item = V>,
12092 V: std::convert::Into<std::string::String>,
12093 {
12094 use std::iter::Iterator;
12095 self.response_types_supported = v.into_iter().map(|i| i.into()).collect();
12096 self
12097 }
12098
12099 /// Sets the value of [subject_types_supported][crate::model::AzureOpenIdConfig::subject_types_supported].
12100 ///
12101 /// # Example
12102 /// ```ignore,no_run
12103 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12104 /// let x = AzureOpenIdConfig::new().set_subject_types_supported(["a", "b", "c"]);
12105 /// ```
12106 pub fn set_subject_types_supported<T, V>(mut self, v: T) -> Self
12107 where
12108 T: std::iter::IntoIterator<Item = V>,
12109 V: std::convert::Into<std::string::String>,
12110 {
12111 use std::iter::Iterator;
12112 self.subject_types_supported = v.into_iter().map(|i| i.into()).collect();
12113 self
12114 }
12115
12116 /// Sets the value of [id_token_signing_alg_values_supported][crate::model::AzureOpenIdConfig::id_token_signing_alg_values_supported].
12117 ///
12118 /// # Example
12119 /// ```ignore,no_run
12120 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12121 /// let x = AzureOpenIdConfig::new().set_id_token_signing_alg_values_supported(["a", "b", "c"]);
12122 /// ```
12123 pub fn set_id_token_signing_alg_values_supported<T, V>(mut self, v: T) -> Self
12124 where
12125 T: std::iter::IntoIterator<Item = V>,
12126 V: std::convert::Into<std::string::String>,
12127 {
12128 use std::iter::Iterator;
12129 self.id_token_signing_alg_values_supported = v.into_iter().map(|i| i.into()).collect();
12130 self
12131 }
12132
12133 /// Sets the value of [claims_supported][crate::model::AzureOpenIdConfig::claims_supported].
12134 ///
12135 /// # Example
12136 /// ```ignore,no_run
12137 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12138 /// let x = AzureOpenIdConfig::new().set_claims_supported(["a", "b", "c"]);
12139 /// ```
12140 pub fn set_claims_supported<T, V>(mut self, v: T) -> Self
12141 where
12142 T: std::iter::IntoIterator<Item = V>,
12143 V: std::convert::Into<std::string::String>,
12144 {
12145 use std::iter::Iterator;
12146 self.claims_supported = v.into_iter().map(|i| i.into()).collect();
12147 self
12148 }
12149
12150 /// Sets the value of [grant_types][crate::model::AzureOpenIdConfig::grant_types].
12151 ///
12152 /// # Example
12153 /// ```ignore,no_run
12154 /// # use google_cloud_gkemulticloud_v1::model::AzureOpenIdConfig;
12155 /// let x = AzureOpenIdConfig::new().set_grant_types(["a", "b", "c"]);
12156 /// ```
12157 pub fn set_grant_types<T, V>(mut self, v: T) -> Self
12158 where
12159 T: std::iter::IntoIterator<Item = V>,
12160 V: std::convert::Into<std::string::String>,
12161 {
12162 use std::iter::Iterator;
12163 self.grant_types = v.into_iter().map(|i| i.into()).collect();
12164 self
12165 }
12166}
12167
12168impl wkt::message::Message for AzureOpenIdConfig {
12169 fn typename() -> &'static str {
12170 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureOpenIdConfig"
12171 }
12172}
12173
12174/// AzureJsonWebKeys is a valid JSON Web Key Set as specififed in RFC 7517.
12175#[derive(Clone, Default, PartialEq)]
12176#[non_exhaustive]
12177#[deprecated]
12178pub struct AzureJsonWebKeys {
12179 /// The public component of the keys used by the cluster to sign token
12180 /// requests.
12181 pub keys: std::vec::Vec<crate::model::Jwk>,
12182
12183 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12184}
12185
12186impl AzureJsonWebKeys {
12187 pub fn new() -> Self {
12188 std::default::Default::default()
12189 }
12190
12191 /// Sets the value of [keys][crate::model::AzureJsonWebKeys::keys].
12192 ///
12193 /// # Example
12194 /// ```ignore,no_run
12195 /// # use google_cloud_gkemulticloud_v1::model::AzureJsonWebKeys;
12196 /// use google_cloud_gkemulticloud_v1::model::Jwk;
12197 /// let x = AzureJsonWebKeys::new()
12198 /// .set_keys([
12199 /// Jwk::default()/* use setters */,
12200 /// Jwk::default()/* use (different) setters */,
12201 /// ]);
12202 /// ```
12203 pub fn set_keys<T, V>(mut self, v: T) -> Self
12204 where
12205 T: std::iter::IntoIterator<Item = V>,
12206 V: std::convert::Into<crate::model::Jwk>,
12207 {
12208 use std::iter::Iterator;
12209 self.keys = v.into_iter().map(|i| i.into()).collect();
12210 self
12211 }
12212}
12213
12214impl wkt::message::Message for AzureJsonWebKeys {
12215 fn typename() -> &'static str {
12216 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureJsonWebKeys"
12217 }
12218}
12219
12220/// AzureServerConfig contains information about a Google Cloud location, such as
12221/// supported Azure regions and Kubernetes versions.
12222#[derive(Clone, Default, PartialEq)]
12223#[non_exhaustive]
12224#[deprecated]
12225pub struct AzureServerConfig {
12226 /// The `AzureServerConfig` resource name.
12227 ///
12228 /// `AzureServerConfig` names are formatted as
12229 /// `projects/<project-number>/locations/<region>/azureServerConfig`.
12230 ///
12231 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
12232 /// for more details on Google Cloud Platform resource names.
12233 pub name: std::string::String,
12234
12235 /// List of all released Kubernetes versions, including ones which are end of
12236 /// life and can no longer be used. Filter by the `enabled`
12237 /// property to limit to currently available versions.
12238 /// Valid versions supported for both create and update operations
12239 pub valid_versions: std::vec::Vec<crate::model::AzureK8sVersionInfo>,
12240
12241 /// The list of supported Azure regions.
12242 pub supported_azure_regions: std::vec::Vec<std::string::String>,
12243
12244 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12245}
12246
12247impl AzureServerConfig {
12248 pub fn new() -> Self {
12249 std::default::Default::default()
12250 }
12251
12252 /// Sets the value of [name][crate::model::AzureServerConfig::name].
12253 ///
12254 /// # Example
12255 /// ```ignore,no_run
12256 /// # use google_cloud_gkemulticloud_v1::model::AzureServerConfig;
12257 /// let x = AzureServerConfig::new().set_name("example");
12258 /// ```
12259 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12260 self.name = v.into();
12261 self
12262 }
12263
12264 /// Sets the value of [valid_versions][crate::model::AzureServerConfig::valid_versions].
12265 ///
12266 /// # Example
12267 /// ```ignore,no_run
12268 /// # use google_cloud_gkemulticloud_v1::model::AzureServerConfig;
12269 /// use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12270 /// let x = AzureServerConfig::new()
12271 /// .set_valid_versions([
12272 /// AzureK8sVersionInfo::default()/* use setters */,
12273 /// AzureK8sVersionInfo::default()/* use (different) setters */,
12274 /// ]);
12275 /// ```
12276 pub fn set_valid_versions<T, V>(mut self, v: T) -> Self
12277 where
12278 T: std::iter::IntoIterator<Item = V>,
12279 V: std::convert::Into<crate::model::AzureK8sVersionInfo>,
12280 {
12281 use std::iter::Iterator;
12282 self.valid_versions = v.into_iter().map(|i| i.into()).collect();
12283 self
12284 }
12285
12286 /// Sets the value of [supported_azure_regions][crate::model::AzureServerConfig::supported_azure_regions].
12287 ///
12288 /// # Example
12289 /// ```ignore,no_run
12290 /// # use google_cloud_gkemulticloud_v1::model::AzureServerConfig;
12291 /// let x = AzureServerConfig::new().set_supported_azure_regions(["a", "b", "c"]);
12292 /// ```
12293 pub fn set_supported_azure_regions<T, V>(mut self, v: T) -> Self
12294 where
12295 T: std::iter::IntoIterator<Item = V>,
12296 V: std::convert::Into<std::string::String>,
12297 {
12298 use std::iter::Iterator;
12299 self.supported_azure_regions = v.into_iter().map(|i| i.into()).collect();
12300 self
12301 }
12302}
12303
12304impl wkt::message::Message for AzureServerConfig {
12305 fn typename() -> &'static str {
12306 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureServerConfig"
12307 }
12308}
12309
12310/// Kubernetes version information of GKE cluster on Azure.
12311#[derive(Clone, Default, PartialEq)]
12312#[non_exhaustive]
12313#[deprecated]
12314pub struct AzureK8sVersionInfo {
12315 /// Kubernetes version name (for example, `1.19.10-gke.1000`)
12316 pub version: std::string::String,
12317
12318 /// Optional. True if the version is available for cluster creation. If a
12319 /// version is enabled for creation, it can be used to create new clusters.
12320 /// Otherwise, cluster creation will fail. However, cluster upgrade operations
12321 /// may succeed, even if the version is not enabled.
12322 pub enabled: bool,
12323
12324 /// Optional. True if this cluster version belongs to a minor version that has
12325 /// reached its end of life and is no longer in scope to receive security and
12326 /// bug fixes.
12327 pub end_of_life: bool,
12328
12329 /// Optional. The estimated date (in Pacific Time) when this cluster version
12330 /// will reach its end of life. Or if this version is no longer supported (the
12331 /// `end_of_life` field is true), this is the actual date (in Pacific time)
12332 /// when the version reached its end of life.
12333 pub end_of_life_date: std::option::Option<google_cloud_type::model::Date>,
12334
12335 /// Optional. The date (in Pacific Time) when the cluster version was released.
12336 pub release_date: std::option::Option<google_cloud_type::model::Date>,
12337
12338 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12339}
12340
12341impl AzureK8sVersionInfo {
12342 pub fn new() -> Self {
12343 std::default::Default::default()
12344 }
12345
12346 /// Sets the value of [version][crate::model::AzureK8sVersionInfo::version].
12347 ///
12348 /// # Example
12349 /// ```ignore,no_run
12350 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12351 /// let x = AzureK8sVersionInfo::new().set_version("example");
12352 /// ```
12353 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12354 self.version = v.into();
12355 self
12356 }
12357
12358 /// Sets the value of [enabled][crate::model::AzureK8sVersionInfo::enabled].
12359 ///
12360 /// # Example
12361 /// ```ignore,no_run
12362 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12363 /// let x = AzureK8sVersionInfo::new().set_enabled(true);
12364 /// ```
12365 pub fn set_enabled<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
12366 self.enabled = v.into();
12367 self
12368 }
12369
12370 /// Sets the value of [end_of_life][crate::model::AzureK8sVersionInfo::end_of_life].
12371 ///
12372 /// # Example
12373 /// ```ignore,no_run
12374 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12375 /// let x = AzureK8sVersionInfo::new().set_end_of_life(true);
12376 /// ```
12377 pub fn set_end_of_life<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
12378 self.end_of_life = v.into();
12379 self
12380 }
12381
12382 /// Sets the value of [end_of_life_date][crate::model::AzureK8sVersionInfo::end_of_life_date].
12383 ///
12384 /// # Example
12385 /// ```ignore,no_run
12386 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12387 /// use google_cloud_type::model::Date;
12388 /// let x = AzureK8sVersionInfo::new().set_end_of_life_date(Date::default()/* use setters */);
12389 /// ```
12390 pub fn set_end_of_life_date<T>(mut self, v: T) -> Self
12391 where
12392 T: std::convert::Into<google_cloud_type::model::Date>,
12393 {
12394 self.end_of_life_date = std::option::Option::Some(v.into());
12395 self
12396 }
12397
12398 /// Sets or clears the value of [end_of_life_date][crate::model::AzureK8sVersionInfo::end_of_life_date].
12399 ///
12400 /// # Example
12401 /// ```ignore,no_run
12402 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12403 /// use google_cloud_type::model::Date;
12404 /// let x = AzureK8sVersionInfo::new().set_or_clear_end_of_life_date(Some(Date::default()/* use setters */));
12405 /// let x = AzureK8sVersionInfo::new().set_or_clear_end_of_life_date(None::<Date>);
12406 /// ```
12407 pub fn set_or_clear_end_of_life_date<T>(mut self, v: std::option::Option<T>) -> Self
12408 where
12409 T: std::convert::Into<google_cloud_type::model::Date>,
12410 {
12411 self.end_of_life_date = v.map(|x| x.into());
12412 self
12413 }
12414
12415 /// Sets the value of [release_date][crate::model::AzureK8sVersionInfo::release_date].
12416 ///
12417 /// # Example
12418 /// ```ignore,no_run
12419 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12420 /// use google_cloud_type::model::Date;
12421 /// let x = AzureK8sVersionInfo::new().set_release_date(Date::default()/* use setters */);
12422 /// ```
12423 pub fn set_release_date<T>(mut self, v: T) -> Self
12424 where
12425 T: std::convert::Into<google_cloud_type::model::Date>,
12426 {
12427 self.release_date = std::option::Option::Some(v.into());
12428 self
12429 }
12430
12431 /// Sets or clears the value of [release_date][crate::model::AzureK8sVersionInfo::release_date].
12432 ///
12433 /// # Example
12434 /// ```ignore,no_run
12435 /// # use google_cloud_gkemulticloud_v1::model::AzureK8sVersionInfo;
12436 /// use google_cloud_type::model::Date;
12437 /// let x = AzureK8sVersionInfo::new().set_or_clear_release_date(Some(Date::default()/* use setters */));
12438 /// let x = AzureK8sVersionInfo::new().set_or_clear_release_date(None::<Date>);
12439 /// ```
12440 pub fn set_or_clear_release_date<T>(mut self, v: std::option::Option<T>) -> Self
12441 where
12442 T: std::convert::Into<google_cloud_type::model::Date>,
12443 {
12444 self.release_date = v.map(|x| x.into());
12445 self
12446 }
12447}
12448
12449impl wkt::message::Message for AzureK8sVersionInfo {
12450 fn typename() -> &'static str {
12451 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureK8sVersionInfo"
12452 }
12453}
12454
12455/// SSH configuration for Azure resources.
12456#[derive(Clone, Default, PartialEq)]
12457#[non_exhaustive]
12458#[deprecated]
12459pub struct AzureSshConfig {
12460 /// Required. The SSH public key data for VMs managed by Anthos. This accepts
12461 /// the authorized_keys file format used in OpenSSH according to the sshd(8)
12462 /// manual page.
12463 pub authorized_key: std::string::String,
12464
12465 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12466}
12467
12468impl AzureSshConfig {
12469 pub fn new() -> Self {
12470 std::default::Default::default()
12471 }
12472
12473 /// Sets the value of [authorized_key][crate::model::AzureSshConfig::authorized_key].
12474 ///
12475 /// # Example
12476 /// ```ignore,no_run
12477 /// # use google_cloud_gkemulticloud_v1::model::AzureSshConfig;
12478 /// let x = AzureSshConfig::new().set_authorized_key("example");
12479 /// ```
12480 pub fn set_authorized_key<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12481 self.authorized_key = v.into();
12482 self
12483 }
12484}
12485
12486impl wkt::message::Message for AzureSshConfig {
12487 fn typename() -> &'static str {
12488 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureSshConfig"
12489 }
12490}
12491
12492/// Managed Azure resources for the cluster.
12493///
12494/// The values could change and be empty, depending on the state of the cluster.
12495#[derive(Clone, Default, PartialEq)]
12496#[non_exhaustive]
12497#[deprecated]
12498pub struct AzureClusterResources {
12499 /// Output only. The ARM ID of the cluster network security group.
12500 pub network_security_group_id: std::string::String,
12501
12502 /// Output only. The ARM ID of the control plane application security group.
12503 pub control_plane_application_security_group_id: std::string::String,
12504
12505 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12506}
12507
12508impl AzureClusterResources {
12509 pub fn new() -> Self {
12510 std::default::Default::default()
12511 }
12512
12513 /// Sets the value of [network_security_group_id][crate::model::AzureClusterResources::network_security_group_id].
12514 ///
12515 /// # Example
12516 /// ```ignore,no_run
12517 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterResources;
12518 /// let x = AzureClusterResources::new().set_network_security_group_id("example");
12519 /// ```
12520 pub fn set_network_security_group_id<T: std::convert::Into<std::string::String>>(
12521 mut self,
12522 v: T,
12523 ) -> Self {
12524 self.network_security_group_id = v.into();
12525 self
12526 }
12527
12528 /// Sets the value of [control_plane_application_security_group_id][crate::model::AzureClusterResources::control_plane_application_security_group_id].
12529 ///
12530 /// # Example
12531 /// ```ignore,no_run
12532 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterResources;
12533 /// let x = AzureClusterResources::new().set_control_plane_application_security_group_id("example");
12534 /// ```
12535 pub fn set_control_plane_application_security_group_id<
12536 T: std::convert::Into<std::string::String>,
12537 >(
12538 mut self,
12539 v: T,
12540 ) -> Self {
12541 self.control_plane_application_security_group_id = v.into();
12542 self
12543 }
12544}
12545
12546impl wkt::message::Message for AzureClusterResources {
12547 fn typename() -> &'static str {
12548 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureClusterResources"
12549 }
12550}
12551
12552/// AzureClusterError describes errors found on Azure clusters.
12553#[derive(Clone, Default, PartialEq)]
12554#[non_exhaustive]
12555#[deprecated]
12556pub struct AzureClusterError {
12557 /// Human-friendly description of the error.
12558 pub message: std::string::String,
12559
12560 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12561}
12562
12563impl AzureClusterError {
12564 pub fn new() -> Self {
12565 std::default::Default::default()
12566 }
12567
12568 /// Sets the value of [message][crate::model::AzureClusterError::message].
12569 ///
12570 /// # Example
12571 /// ```ignore,no_run
12572 /// # use google_cloud_gkemulticloud_v1::model::AzureClusterError;
12573 /// let x = AzureClusterError::new().set_message("example");
12574 /// ```
12575 pub fn set_message<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12576 self.message = v.into();
12577 self
12578 }
12579}
12580
12581impl wkt::message::Message for AzureClusterError {
12582 fn typename() -> &'static str {
12583 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureClusterError"
12584 }
12585}
12586
12587/// AzureNodePoolError describes errors found on Azure node pools.
12588#[derive(Clone, Default, PartialEq)]
12589#[non_exhaustive]
12590#[deprecated]
12591pub struct AzureNodePoolError {
12592 /// Human-friendly description of the error.
12593 pub message: std::string::String,
12594
12595 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12596}
12597
12598impl AzureNodePoolError {
12599 pub fn new() -> Self {
12600 std::default::Default::default()
12601 }
12602
12603 /// Sets the value of [message][crate::model::AzureNodePoolError::message].
12604 ///
12605 /// # Example
12606 /// ```ignore,no_run
12607 /// # use google_cloud_gkemulticloud_v1::model::AzureNodePoolError;
12608 /// let x = AzureNodePoolError::new().set_message("example");
12609 /// ```
12610 pub fn set_message<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12611 self.message = v.into();
12612 self
12613 }
12614}
12615
12616impl wkt::message::Message for AzureNodePoolError {
12617 fn typename() -> &'static str {
12618 "type.googleapis.com/google.cloud.gkemulticloud.v1.AzureNodePoolError"
12619 }
12620}
12621
12622/// Request message for `AzureClusters.CreateAzureCluster` method.
12623#[derive(Clone, Default, PartialEq)]
12624#[non_exhaustive]
12625#[deprecated]
12626pub struct CreateAzureClusterRequest {
12627 /// Required. The parent location where this
12628 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource will be
12629 /// created.
12630 ///
12631 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
12632 ///
12633 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
12634 /// for more details on Google Cloud resource names.
12635 ///
12636 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12637 pub parent: std::string::String,
12638
12639 /// Required. The specification of the
12640 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] to create.
12641 ///
12642 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12643 pub azure_cluster: std::option::Option<crate::model::AzureCluster>,
12644
12645 /// Required. A client provided ID the resource. Must be unique within the
12646 /// parent resource.
12647 ///
12648 /// The provided ID will be part of the
12649 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource name
12650 /// formatted as
12651 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`.
12652 ///
12653 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
12654 ///
12655 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12656 pub azure_cluster_id: std::string::String,
12657
12658 /// If set, only validate the request, but do not actually create the cluster.
12659 pub validate_only: bool,
12660
12661 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12662}
12663
12664impl CreateAzureClusterRequest {
12665 pub fn new() -> Self {
12666 std::default::Default::default()
12667 }
12668
12669 /// Sets the value of [parent][crate::model::CreateAzureClusterRequest::parent].
12670 ///
12671 /// # Example
12672 /// ```ignore,no_run
12673 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClusterRequest;
12674 /// let x = CreateAzureClusterRequest::new().set_parent("example");
12675 /// ```
12676 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12677 self.parent = v.into();
12678 self
12679 }
12680
12681 /// Sets the value of [azure_cluster][crate::model::CreateAzureClusterRequest::azure_cluster].
12682 ///
12683 /// # Example
12684 /// ```ignore,no_run
12685 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClusterRequest;
12686 /// use google_cloud_gkemulticloud_v1::model::AzureCluster;
12687 /// let x = CreateAzureClusterRequest::new().set_azure_cluster(AzureCluster::default()/* use setters */);
12688 /// ```
12689 pub fn set_azure_cluster<T>(mut self, v: T) -> Self
12690 where
12691 T: std::convert::Into<crate::model::AzureCluster>,
12692 {
12693 self.azure_cluster = std::option::Option::Some(v.into());
12694 self
12695 }
12696
12697 /// Sets or clears the value of [azure_cluster][crate::model::CreateAzureClusterRequest::azure_cluster].
12698 ///
12699 /// # Example
12700 /// ```ignore,no_run
12701 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClusterRequest;
12702 /// use google_cloud_gkemulticloud_v1::model::AzureCluster;
12703 /// let x = CreateAzureClusterRequest::new().set_or_clear_azure_cluster(Some(AzureCluster::default()/* use setters */));
12704 /// let x = CreateAzureClusterRequest::new().set_or_clear_azure_cluster(None::<AzureCluster>);
12705 /// ```
12706 pub fn set_or_clear_azure_cluster<T>(mut self, v: std::option::Option<T>) -> Self
12707 where
12708 T: std::convert::Into<crate::model::AzureCluster>,
12709 {
12710 self.azure_cluster = v.map(|x| x.into());
12711 self
12712 }
12713
12714 /// Sets the value of [azure_cluster_id][crate::model::CreateAzureClusterRequest::azure_cluster_id].
12715 ///
12716 /// # Example
12717 /// ```ignore,no_run
12718 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClusterRequest;
12719 /// let x = CreateAzureClusterRequest::new().set_azure_cluster_id("example");
12720 /// ```
12721 pub fn set_azure_cluster_id<T: std::convert::Into<std::string::String>>(
12722 mut self,
12723 v: T,
12724 ) -> Self {
12725 self.azure_cluster_id = v.into();
12726 self
12727 }
12728
12729 /// Sets the value of [validate_only][crate::model::CreateAzureClusterRequest::validate_only].
12730 ///
12731 /// # Example
12732 /// ```ignore,no_run
12733 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClusterRequest;
12734 /// let x = CreateAzureClusterRequest::new().set_validate_only(true);
12735 /// ```
12736 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
12737 self.validate_only = v.into();
12738 self
12739 }
12740}
12741
12742impl wkt::message::Message for CreateAzureClusterRequest {
12743 fn typename() -> &'static str {
12744 "type.googleapis.com/google.cloud.gkemulticloud.v1.CreateAzureClusterRequest"
12745 }
12746}
12747
12748/// Request message for `AzureClusters.UpdateAzureCluster` method.
12749#[derive(Clone, Default, PartialEq)]
12750#[non_exhaustive]
12751#[deprecated]
12752pub struct UpdateAzureClusterRequest {
12753 /// Required. The [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]
12754 /// resource to update.
12755 ///
12756 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12757 pub azure_cluster: std::option::Option<crate::model::AzureCluster>,
12758
12759 /// If set, only validate the request, but do not actually update the cluster.
12760 pub validate_only: bool,
12761
12762 /// Required. Mask of fields to update. At least one path must be supplied in
12763 /// this field. The elements of the repeated paths field can only include these
12764 /// fields from [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]:
12765 ///
12766 /// * `description`.
12767 /// * `azureClient`.
12768 /// * `control_plane.version`.
12769 /// * `control_plane.vm_size`.
12770 /// * `annotations`.
12771 /// * `authorization.admin_users`.
12772 /// * `authorization.admin_groups`.
12773 /// * `control_plane.root_volume.size_gib`.
12774 /// * `azure_services_authentication`.
12775 /// * `azure_services_authentication.tenant_id`.
12776 /// * `azure_services_authentication.application_id`.
12777 /// * `control_plane.proxy_config`.
12778 /// * `control_plane.proxy_config.resource_group_id`.
12779 /// * `control_plane.proxy_config.secret_id`.
12780 /// * `control_plane.ssh_config.authorized_key`.
12781 /// * `logging_config.component_config.enable_components`
12782 /// * `monitoring_config.managed_prometheus_config.enabled`.
12783 ///
12784 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12785 pub update_mask: std::option::Option<wkt::FieldMask>,
12786
12787 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12788}
12789
12790impl UpdateAzureClusterRequest {
12791 pub fn new() -> Self {
12792 std::default::Default::default()
12793 }
12794
12795 /// Sets the value of [azure_cluster][crate::model::UpdateAzureClusterRequest::azure_cluster].
12796 ///
12797 /// # Example
12798 /// ```ignore,no_run
12799 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureClusterRequest;
12800 /// use google_cloud_gkemulticloud_v1::model::AzureCluster;
12801 /// let x = UpdateAzureClusterRequest::new().set_azure_cluster(AzureCluster::default()/* use setters */);
12802 /// ```
12803 pub fn set_azure_cluster<T>(mut self, v: T) -> Self
12804 where
12805 T: std::convert::Into<crate::model::AzureCluster>,
12806 {
12807 self.azure_cluster = std::option::Option::Some(v.into());
12808 self
12809 }
12810
12811 /// Sets or clears the value of [azure_cluster][crate::model::UpdateAzureClusterRequest::azure_cluster].
12812 ///
12813 /// # Example
12814 /// ```ignore,no_run
12815 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureClusterRequest;
12816 /// use google_cloud_gkemulticloud_v1::model::AzureCluster;
12817 /// let x = UpdateAzureClusterRequest::new().set_or_clear_azure_cluster(Some(AzureCluster::default()/* use setters */));
12818 /// let x = UpdateAzureClusterRequest::new().set_or_clear_azure_cluster(None::<AzureCluster>);
12819 /// ```
12820 pub fn set_or_clear_azure_cluster<T>(mut self, v: std::option::Option<T>) -> Self
12821 where
12822 T: std::convert::Into<crate::model::AzureCluster>,
12823 {
12824 self.azure_cluster = v.map(|x| x.into());
12825 self
12826 }
12827
12828 /// Sets the value of [validate_only][crate::model::UpdateAzureClusterRequest::validate_only].
12829 ///
12830 /// # Example
12831 /// ```ignore,no_run
12832 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureClusterRequest;
12833 /// let x = UpdateAzureClusterRequest::new().set_validate_only(true);
12834 /// ```
12835 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
12836 self.validate_only = v.into();
12837 self
12838 }
12839
12840 /// Sets the value of [update_mask][crate::model::UpdateAzureClusterRequest::update_mask].
12841 ///
12842 /// # Example
12843 /// ```ignore,no_run
12844 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureClusterRequest;
12845 /// use wkt::FieldMask;
12846 /// let x = UpdateAzureClusterRequest::new().set_update_mask(FieldMask::default()/* use setters */);
12847 /// ```
12848 pub fn set_update_mask<T>(mut self, v: T) -> Self
12849 where
12850 T: std::convert::Into<wkt::FieldMask>,
12851 {
12852 self.update_mask = std::option::Option::Some(v.into());
12853 self
12854 }
12855
12856 /// Sets or clears the value of [update_mask][crate::model::UpdateAzureClusterRequest::update_mask].
12857 ///
12858 /// # Example
12859 /// ```ignore,no_run
12860 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureClusterRequest;
12861 /// use wkt::FieldMask;
12862 /// let x = UpdateAzureClusterRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
12863 /// let x = UpdateAzureClusterRequest::new().set_or_clear_update_mask(None::<FieldMask>);
12864 /// ```
12865 pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
12866 where
12867 T: std::convert::Into<wkt::FieldMask>,
12868 {
12869 self.update_mask = v.map(|x| x.into());
12870 self
12871 }
12872}
12873
12874impl wkt::message::Message for UpdateAzureClusterRequest {
12875 fn typename() -> &'static str {
12876 "type.googleapis.com/google.cloud.gkemulticloud.v1.UpdateAzureClusterRequest"
12877 }
12878}
12879
12880/// Request message for `AzureClusters.GetAzureCluster` method.
12881#[derive(Clone, Default, PartialEq)]
12882#[non_exhaustive]
12883#[deprecated]
12884pub struct GetAzureClusterRequest {
12885 /// Required. The name of the
12886 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource to
12887 /// describe.
12888 ///
12889 /// `AzureCluster` names are formatted as
12890 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`.
12891 ///
12892 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
12893 /// for more details on Google Cloud Platform resource names.
12894 ///
12895 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12896 pub name: std::string::String,
12897
12898 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12899}
12900
12901impl GetAzureClusterRequest {
12902 pub fn new() -> Self {
12903 std::default::Default::default()
12904 }
12905
12906 /// Sets the value of [name][crate::model::GetAzureClusterRequest::name].
12907 ///
12908 /// # Example
12909 /// ```ignore,no_run
12910 /// # use google_cloud_gkemulticloud_v1::model::GetAzureClusterRequest;
12911 /// let x = GetAzureClusterRequest::new().set_name("example");
12912 /// ```
12913 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12914 self.name = v.into();
12915 self
12916 }
12917}
12918
12919impl wkt::message::Message for GetAzureClusterRequest {
12920 fn typename() -> &'static str {
12921 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAzureClusterRequest"
12922 }
12923}
12924
12925/// Request message for `AzureClusters.ListAzureClusters` method.
12926#[derive(Clone, Default, PartialEq)]
12927#[non_exhaustive]
12928#[deprecated]
12929pub struct ListAzureClustersRequest {
12930 /// Required. The parent location which owns this collection of
12931 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resources.
12932 ///
12933 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
12934 ///
12935 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
12936 /// for more details on Google Cloud Platform resource names.
12937 ///
12938 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
12939 pub parent: std::string::String,
12940
12941 /// The maximum number of items to return.
12942 ///
12943 /// If not specified, a default value of 50 will be used by the service.
12944 /// Regardless of the pageSize value, the response can include a partial list
12945 /// and a caller should only rely on response's
12946 /// [nextPageToken][google.cloud.gkemulticloud.v1.ListAzureClustersResponse.next_page_token]
12947 /// to determine if there are more instances left to be queried.
12948 ///
12949 /// [google.cloud.gkemulticloud.v1.ListAzureClustersResponse.next_page_token]: crate::model::ListAzureClustersResponse::next_page_token
12950 pub page_size: i32,
12951
12952 /// The `nextPageToken` value returned from a previous
12953 /// [azureClusters.list][google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClusters]
12954 /// request, if any.
12955 ///
12956 /// [google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClusters]: crate::client::AzureClusters::list_azure_clusters
12957 pub page_token: std::string::String,
12958
12959 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
12960}
12961
12962impl ListAzureClustersRequest {
12963 pub fn new() -> Self {
12964 std::default::Default::default()
12965 }
12966
12967 /// Sets the value of [parent][crate::model::ListAzureClustersRequest::parent].
12968 ///
12969 /// # Example
12970 /// ```ignore,no_run
12971 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClustersRequest;
12972 /// let x = ListAzureClustersRequest::new().set_parent("example");
12973 /// ```
12974 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12975 self.parent = v.into();
12976 self
12977 }
12978
12979 /// Sets the value of [page_size][crate::model::ListAzureClustersRequest::page_size].
12980 ///
12981 /// # Example
12982 /// ```ignore,no_run
12983 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClustersRequest;
12984 /// let x = ListAzureClustersRequest::new().set_page_size(42);
12985 /// ```
12986 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
12987 self.page_size = v.into();
12988 self
12989 }
12990
12991 /// Sets the value of [page_token][crate::model::ListAzureClustersRequest::page_token].
12992 ///
12993 /// # Example
12994 /// ```ignore,no_run
12995 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClustersRequest;
12996 /// let x = ListAzureClustersRequest::new().set_page_token("example");
12997 /// ```
12998 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
12999 self.page_token = v.into();
13000 self
13001 }
13002}
13003
13004impl wkt::message::Message for ListAzureClustersRequest {
13005 fn typename() -> &'static str {
13006 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAzureClustersRequest"
13007 }
13008}
13009
13010/// Response message for `AzureClusters.ListAzureClusters` method.
13011#[derive(Clone, Default, PartialEq)]
13012#[non_exhaustive]
13013#[deprecated]
13014pub struct ListAzureClustersResponse {
13015 /// A list of [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]
13016 /// resources in the specified Google Cloud Platform project and region region.
13017 ///
13018 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
13019 pub azure_clusters: std::vec::Vec<crate::model::AzureCluster>,
13020
13021 /// Token to retrieve the next page of results, or empty if there are no more
13022 /// results in the list.
13023 pub next_page_token: std::string::String,
13024
13025 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13026}
13027
13028impl ListAzureClustersResponse {
13029 pub fn new() -> Self {
13030 std::default::Default::default()
13031 }
13032
13033 /// Sets the value of [azure_clusters][crate::model::ListAzureClustersResponse::azure_clusters].
13034 ///
13035 /// # Example
13036 /// ```ignore,no_run
13037 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClustersResponse;
13038 /// use google_cloud_gkemulticloud_v1::model::AzureCluster;
13039 /// let x = ListAzureClustersResponse::new()
13040 /// .set_azure_clusters([
13041 /// AzureCluster::default()/* use setters */,
13042 /// AzureCluster::default()/* use (different) setters */,
13043 /// ]);
13044 /// ```
13045 pub fn set_azure_clusters<T, V>(mut self, v: T) -> Self
13046 where
13047 T: std::iter::IntoIterator<Item = V>,
13048 V: std::convert::Into<crate::model::AzureCluster>,
13049 {
13050 use std::iter::Iterator;
13051 self.azure_clusters = v.into_iter().map(|i| i.into()).collect();
13052 self
13053 }
13054
13055 /// Sets the value of [next_page_token][crate::model::ListAzureClustersResponse::next_page_token].
13056 ///
13057 /// # Example
13058 /// ```ignore,no_run
13059 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClustersResponse;
13060 /// let x = ListAzureClustersResponse::new().set_next_page_token("example");
13061 /// ```
13062 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13063 self.next_page_token = v.into();
13064 self
13065 }
13066}
13067
13068impl wkt::message::Message for ListAzureClustersResponse {
13069 fn typename() -> &'static str {
13070 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAzureClustersResponse"
13071 }
13072}
13073
13074#[doc(hidden)]
13075impl google_cloud_gax::paginator::internal::PageableResponse for ListAzureClustersResponse {
13076 type PageItem = crate::model::AzureCluster;
13077
13078 fn items(self) -> std::vec::Vec<Self::PageItem> {
13079 self.azure_clusters
13080 }
13081
13082 fn next_page_token(&self) -> std::string::String {
13083 use std::clone::Clone;
13084 self.next_page_token.clone()
13085 }
13086}
13087
13088/// Request message for `AzureClusters.DeleteAzureCluster` method.
13089#[derive(Clone, Default, PartialEq)]
13090#[non_exhaustive]
13091#[deprecated]
13092pub struct DeleteAzureClusterRequest {
13093 /// Required. The resource name the
13094 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] to delete.
13095 ///
13096 /// `AzureCluster` names are formatted as
13097 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`.
13098 ///
13099 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13100 /// for more details on Google Cloud Platform resource names.
13101 ///
13102 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
13103 pub name: std::string::String,
13104
13105 /// If set to true, and the
13106 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource is not
13107 /// found, the request will succeed but no action will be taken on the server
13108 /// and a completed [Operation][google.longrunning.Operation] will be returned.
13109 ///
13110 /// Useful for idempotent deletion.
13111 ///
13112 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
13113 /// [google.longrunning.Operation]: google_cloud_longrunning::model::Operation
13114 pub allow_missing: bool,
13115
13116 /// If set, only validate the request, but do not actually delete the resource.
13117 pub validate_only: bool,
13118
13119 /// The current etag of the
13120 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster].
13121 ///
13122 /// Allows clients to perform deletions through optimistic concurrency control.
13123 ///
13124 /// If the provided etag does not match the current etag of the cluster,
13125 /// the request will fail and an ABORTED error will be returned.
13126 ///
13127 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
13128 pub etag: std::string::String,
13129
13130 /// Optional. If set to true, the deletion of
13131 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource will
13132 /// succeed even if errors occur during deleting in cluster resources. Using
13133 /// this parameter may result in orphaned resources in the cluster.
13134 ///
13135 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
13136 pub ignore_errors: bool,
13137
13138 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13139}
13140
13141impl DeleteAzureClusterRequest {
13142 pub fn new() -> Self {
13143 std::default::Default::default()
13144 }
13145
13146 /// Sets the value of [name][crate::model::DeleteAzureClusterRequest::name].
13147 ///
13148 /// # Example
13149 /// ```ignore,no_run
13150 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClusterRequest;
13151 /// let x = DeleteAzureClusterRequest::new().set_name("example");
13152 /// ```
13153 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13154 self.name = v.into();
13155 self
13156 }
13157
13158 /// Sets the value of [allow_missing][crate::model::DeleteAzureClusterRequest::allow_missing].
13159 ///
13160 /// # Example
13161 /// ```ignore,no_run
13162 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClusterRequest;
13163 /// let x = DeleteAzureClusterRequest::new().set_allow_missing(true);
13164 /// ```
13165 pub fn set_allow_missing<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13166 self.allow_missing = v.into();
13167 self
13168 }
13169
13170 /// Sets the value of [validate_only][crate::model::DeleteAzureClusterRequest::validate_only].
13171 ///
13172 /// # Example
13173 /// ```ignore,no_run
13174 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClusterRequest;
13175 /// let x = DeleteAzureClusterRequest::new().set_validate_only(true);
13176 /// ```
13177 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13178 self.validate_only = v.into();
13179 self
13180 }
13181
13182 /// Sets the value of [etag][crate::model::DeleteAzureClusterRequest::etag].
13183 ///
13184 /// # Example
13185 /// ```ignore,no_run
13186 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClusterRequest;
13187 /// let x = DeleteAzureClusterRequest::new().set_etag("example");
13188 /// ```
13189 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13190 self.etag = v.into();
13191 self
13192 }
13193
13194 /// Sets the value of [ignore_errors][crate::model::DeleteAzureClusterRequest::ignore_errors].
13195 ///
13196 /// # Example
13197 /// ```ignore,no_run
13198 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClusterRequest;
13199 /// let x = DeleteAzureClusterRequest::new().set_ignore_errors(true);
13200 /// ```
13201 pub fn set_ignore_errors<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13202 self.ignore_errors = v.into();
13203 self
13204 }
13205}
13206
13207impl wkt::message::Message for DeleteAzureClusterRequest {
13208 fn typename() -> &'static str {
13209 "type.googleapis.com/google.cloud.gkemulticloud.v1.DeleteAzureClusterRequest"
13210 }
13211}
13212
13213/// Response message for `AzureClusters.CreateAzureNodePool` method.
13214#[derive(Clone, Default, PartialEq)]
13215#[non_exhaustive]
13216#[deprecated]
13217pub struct CreateAzureNodePoolRequest {
13218 /// Required. The [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]
13219 /// resource where this node pool will be created.
13220 ///
13221 /// `AzureCluster` names are formatted as
13222 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`.
13223 ///
13224 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13225 /// for more details on Google Cloud resource names.
13226 ///
13227 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
13228 pub parent: std::string::String,
13229
13230 /// Required. The specification of the
13231 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] to create.
13232 ///
13233 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13234 pub azure_node_pool: std::option::Option<crate::model::AzureNodePool>,
13235
13236 /// Required. A client provided ID the resource. Must be unique within the
13237 /// parent resource.
13238 ///
13239 /// The provided ID will be part of the
13240 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource name
13241 /// formatted as
13242 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>/azureNodePools/<node-pool-id>`.
13243 ///
13244 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
13245 ///
13246 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13247 pub azure_node_pool_id: std::string::String,
13248
13249 /// If set, only validate the request, but do not actually create the node
13250 /// pool.
13251 pub validate_only: bool,
13252
13253 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13254}
13255
13256impl CreateAzureNodePoolRequest {
13257 pub fn new() -> Self {
13258 std::default::Default::default()
13259 }
13260
13261 /// Sets the value of [parent][crate::model::CreateAzureNodePoolRequest::parent].
13262 ///
13263 /// # Example
13264 /// ```ignore,no_run
13265 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureNodePoolRequest;
13266 /// let x = CreateAzureNodePoolRequest::new().set_parent("example");
13267 /// ```
13268 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13269 self.parent = v.into();
13270 self
13271 }
13272
13273 /// Sets the value of [azure_node_pool][crate::model::CreateAzureNodePoolRequest::azure_node_pool].
13274 ///
13275 /// # Example
13276 /// ```ignore,no_run
13277 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureNodePoolRequest;
13278 /// use google_cloud_gkemulticloud_v1::model::AzureNodePool;
13279 /// let x = CreateAzureNodePoolRequest::new().set_azure_node_pool(AzureNodePool::default()/* use setters */);
13280 /// ```
13281 pub fn set_azure_node_pool<T>(mut self, v: T) -> Self
13282 where
13283 T: std::convert::Into<crate::model::AzureNodePool>,
13284 {
13285 self.azure_node_pool = std::option::Option::Some(v.into());
13286 self
13287 }
13288
13289 /// Sets or clears the value of [azure_node_pool][crate::model::CreateAzureNodePoolRequest::azure_node_pool].
13290 ///
13291 /// # Example
13292 /// ```ignore,no_run
13293 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureNodePoolRequest;
13294 /// use google_cloud_gkemulticloud_v1::model::AzureNodePool;
13295 /// let x = CreateAzureNodePoolRequest::new().set_or_clear_azure_node_pool(Some(AzureNodePool::default()/* use setters */));
13296 /// let x = CreateAzureNodePoolRequest::new().set_or_clear_azure_node_pool(None::<AzureNodePool>);
13297 /// ```
13298 pub fn set_or_clear_azure_node_pool<T>(mut self, v: std::option::Option<T>) -> Self
13299 where
13300 T: std::convert::Into<crate::model::AzureNodePool>,
13301 {
13302 self.azure_node_pool = v.map(|x| x.into());
13303 self
13304 }
13305
13306 /// Sets the value of [azure_node_pool_id][crate::model::CreateAzureNodePoolRequest::azure_node_pool_id].
13307 ///
13308 /// # Example
13309 /// ```ignore,no_run
13310 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureNodePoolRequest;
13311 /// let x = CreateAzureNodePoolRequest::new().set_azure_node_pool_id("example");
13312 /// ```
13313 pub fn set_azure_node_pool_id<T: std::convert::Into<std::string::String>>(
13314 mut self,
13315 v: T,
13316 ) -> Self {
13317 self.azure_node_pool_id = v.into();
13318 self
13319 }
13320
13321 /// Sets the value of [validate_only][crate::model::CreateAzureNodePoolRequest::validate_only].
13322 ///
13323 /// # Example
13324 /// ```ignore,no_run
13325 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureNodePoolRequest;
13326 /// let x = CreateAzureNodePoolRequest::new().set_validate_only(true);
13327 /// ```
13328 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13329 self.validate_only = v.into();
13330 self
13331 }
13332}
13333
13334impl wkt::message::Message for CreateAzureNodePoolRequest {
13335 fn typename() -> &'static str {
13336 "type.googleapis.com/google.cloud.gkemulticloud.v1.CreateAzureNodePoolRequest"
13337 }
13338}
13339
13340/// Request message for `AzureClusters.UpdateAzureNodePool` method.
13341#[derive(Clone, Default, PartialEq)]
13342#[non_exhaustive]
13343#[deprecated]
13344pub struct UpdateAzureNodePoolRequest {
13345 /// Required. The [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]
13346 /// resource to update.
13347 ///
13348 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13349 pub azure_node_pool: std::option::Option<crate::model::AzureNodePool>,
13350
13351 /// If set, only validate the request, but don't actually update the node pool.
13352 pub validate_only: bool,
13353
13354 /// Required. Mask of fields to update. At least one path must be supplied in
13355 /// this field. The elements of the repeated paths field can only include these
13356 /// fields from [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]:
13357 ///
13358 /// *. `annotations`.
13359 ///
13360 /// * `version`.
13361 /// * `autoscaling.min_node_count`.
13362 /// * `autoscaling.max_node_count`.
13363 /// * `config.ssh_config.authorized_key`.
13364 /// * `management.auto_repair`.
13365 /// * `management`.
13366 ///
13367 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13368 pub update_mask: std::option::Option<wkt::FieldMask>,
13369
13370 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13371}
13372
13373impl UpdateAzureNodePoolRequest {
13374 pub fn new() -> Self {
13375 std::default::Default::default()
13376 }
13377
13378 /// Sets the value of [azure_node_pool][crate::model::UpdateAzureNodePoolRequest::azure_node_pool].
13379 ///
13380 /// # Example
13381 /// ```ignore,no_run
13382 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureNodePoolRequest;
13383 /// use google_cloud_gkemulticloud_v1::model::AzureNodePool;
13384 /// let x = UpdateAzureNodePoolRequest::new().set_azure_node_pool(AzureNodePool::default()/* use setters */);
13385 /// ```
13386 pub fn set_azure_node_pool<T>(mut self, v: T) -> Self
13387 where
13388 T: std::convert::Into<crate::model::AzureNodePool>,
13389 {
13390 self.azure_node_pool = std::option::Option::Some(v.into());
13391 self
13392 }
13393
13394 /// Sets or clears the value of [azure_node_pool][crate::model::UpdateAzureNodePoolRequest::azure_node_pool].
13395 ///
13396 /// # Example
13397 /// ```ignore,no_run
13398 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureNodePoolRequest;
13399 /// use google_cloud_gkemulticloud_v1::model::AzureNodePool;
13400 /// let x = UpdateAzureNodePoolRequest::new().set_or_clear_azure_node_pool(Some(AzureNodePool::default()/* use setters */));
13401 /// let x = UpdateAzureNodePoolRequest::new().set_or_clear_azure_node_pool(None::<AzureNodePool>);
13402 /// ```
13403 pub fn set_or_clear_azure_node_pool<T>(mut self, v: std::option::Option<T>) -> Self
13404 where
13405 T: std::convert::Into<crate::model::AzureNodePool>,
13406 {
13407 self.azure_node_pool = v.map(|x| x.into());
13408 self
13409 }
13410
13411 /// Sets the value of [validate_only][crate::model::UpdateAzureNodePoolRequest::validate_only].
13412 ///
13413 /// # Example
13414 /// ```ignore,no_run
13415 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureNodePoolRequest;
13416 /// let x = UpdateAzureNodePoolRequest::new().set_validate_only(true);
13417 /// ```
13418 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13419 self.validate_only = v.into();
13420 self
13421 }
13422
13423 /// Sets the value of [update_mask][crate::model::UpdateAzureNodePoolRequest::update_mask].
13424 ///
13425 /// # Example
13426 /// ```ignore,no_run
13427 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureNodePoolRequest;
13428 /// use wkt::FieldMask;
13429 /// let x = UpdateAzureNodePoolRequest::new().set_update_mask(FieldMask::default()/* use setters */);
13430 /// ```
13431 pub fn set_update_mask<T>(mut self, v: T) -> Self
13432 where
13433 T: std::convert::Into<wkt::FieldMask>,
13434 {
13435 self.update_mask = std::option::Option::Some(v.into());
13436 self
13437 }
13438
13439 /// Sets or clears the value of [update_mask][crate::model::UpdateAzureNodePoolRequest::update_mask].
13440 ///
13441 /// # Example
13442 /// ```ignore,no_run
13443 /// # use google_cloud_gkemulticloud_v1::model::UpdateAzureNodePoolRequest;
13444 /// use wkt::FieldMask;
13445 /// let x = UpdateAzureNodePoolRequest::new().set_or_clear_update_mask(Some(FieldMask::default()/* use setters */));
13446 /// let x = UpdateAzureNodePoolRequest::new().set_or_clear_update_mask(None::<FieldMask>);
13447 /// ```
13448 pub fn set_or_clear_update_mask<T>(mut self, v: std::option::Option<T>) -> Self
13449 where
13450 T: std::convert::Into<wkt::FieldMask>,
13451 {
13452 self.update_mask = v.map(|x| x.into());
13453 self
13454 }
13455}
13456
13457impl wkt::message::Message for UpdateAzureNodePoolRequest {
13458 fn typename() -> &'static str {
13459 "type.googleapis.com/google.cloud.gkemulticloud.v1.UpdateAzureNodePoolRequest"
13460 }
13461}
13462
13463/// Request message for `AzureClusters.GetAzureNodePool` method.
13464#[derive(Clone, Default, PartialEq)]
13465#[non_exhaustive]
13466#[deprecated]
13467pub struct GetAzureNodePoolRequest {
13468 /// Required. The name of the
13469 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource to
13470 /// describe.
13471 ///
13472 /// `AzureNodePool` names are formatted as
13473 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>/azureNodePools/<node-pool-id>`.
13474 ///
13475 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13476 /// for more details on Google Cloud resource names.
13477 ///
13478 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13479 pub name: std::string::String,
13480
13481 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13482}
13483
13484impl GetAzureNodePoolRequest {
13485 pub fn new() -> Self {
13486 std::default::Default::default()
13487 }
13488
13489 /// Sets the value of [name][crate::model::GetAzureNodePoolRequest::name].
13490 ///
13491 /// # Example
13492 /// ```ignore,no_run
13493 /// # use google_cloud_gkemulticloud_v1::model::GetAzureNodePoolRequest;
13494 /// let x = GetAzureNodePoolRequest::new().set_name("example");
13495 /// ```
13496 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13497 self.name = v.into();
13498 self
13499 }
13500}
13501
13502impl wkt::message::Message for GetAzureNodePoolRequest {
13503 fn typename() -> &'static str {
13504 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAzureNodePoolRequest"
13505 }
13506}
13507
13508/// Request message for `AzureClusters.ListAzureNodePools` method.
13509#[derive(Clone, Default, PartialEq)]
13510#[non_exhaustive]
13511#[deprecated]
13512pub struct ListAzureNodePoolsRequest {
13513 /// Required. The parent `AzureCluster` which owns this collection of
13514 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resources.
13515 ///
13516 /// `AzureCluster` names are formatted as
13517 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`.
13518 ///
13519 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13520 /// for more details on Google Cloud resource names.
13521 ///
13522 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13523 pub parent: std::string::String,
13524
13525 /// The maximum number of items to return.
13526 ///
13527 /// If not specified, a default value of 50 will be used by the service.
13528 /// Regardless of the pageSize value, the response can include a partial list
13529 /// and a caller should only rely on response's
13530 /// [nextPageToken][google.cloud.gkemulticloud.v1.ListAzureNodePoolsResponse.next_page_token]
13531 /// to determine if there are more instances left to be queried.
13532 ///
13533 /// [google.cloud.gkemulticloud.v1.ListAzureNodePoolsResponse.next_page_token]: crate::model::ListAzureNodePoolsResponse::next_page_token
13534 pub page_size: i32,
13535
13536 /// The `nextPageToken` value returned from a previous
13537 /// [azureNodePools.list][google.cloud.gkemulticloud.v1.AzureClusters.ListAzureNodePools]
13538 /// request, if any.
13539 ///
13540 /// [google.cloud.gkemulticloud.v1.AzureClusters.ListAzureNodePools]: crate::client::AzureClusters::list_azure_node_pools
13541 pub page_token: std::string::String,
13542
13543 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13544}
13545
13546impl ListAzureNodePoolsRequest {
13547 pub fn new() -> Self {
13548 std::default::Default::default()
13549 }
13550
13551 /// Sets the value of [parent][crate::model::ListAzureNodePoolsRequest::parent].
13552 ///
13553 /// # Example
13554 /// ```ignore,no_run
13555 /// # use google_cloud_gkemulticloud_v1::model::ListAzureNodePoolsRequest;
13556 /// let x = ListAzureNodePoolsRequest::new().set_parent("example");
13557 /// ```
13558 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13559 self.parent = v.into();
13560 self
13561 }
13562
13563 /// Sets the value of [page_size][crate::model::ListAzureNodePoolsRequest::page_size].
13564 ///
13565 /// # Example
13566 /// ```ignore,no_run
13567 /// # use google_cloud_gkemulticloud_v1::model::ListAzureNodePoolsRequest;
13568 /// let x = ListAzureNodePoolsRequest::new().set_page_size(42);
13569 /// ```
13570 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
13571 self.page_size = v.into();
13572 self
13573 }
13574
13575 /// Sets the value of [page_token][crate::model::ListAzureNodePoolsRequest::page_token].
13576 ///
13577 /// # Example
13578 /// ```ignore,no_run
13579 /// # use google_cloud_gkemulticloud_v1::model::ListAzureNodePoolsRequest;
13580 /// let x = ListAzureNodePoolsRequest::new().set_page_token("example");
13581 /// ```
13582 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13583 self.page_token = v.into();
13584 self
13585 }
13586}
13587
13588impl wkt::message::Message for ListAzureNodePoolsRequest {
13589 fn typename() -> &'static str {
13590 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAzureNodePoolsRequest"
13591 }
13592}
13593
13594/// Response message for `AzureClusters.ListAzureNodePools` method.
13595#[derive(Clone, Default, PartialEq)]
13596#[non_exhaustive]
13597#[deprecated]
13598pub struct ListAzureNodePoolsResponse {
13599 /// A list of [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]
13600 /// resources in the specified `AzureCluster`.
13601 ///
13602 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13603 pub azure_node_pools: std::vec::Vec<crate::model::AzureNodePool>,
13604
13605 /// Token to retrieve the next page of results, or empty if there are no more
13606 /// results in the list.
13607 pub next_page_token: std::string::String,
13608
13609 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13610}
13611
13612impl ListAzureNodePoolsResponse {
13613 pub fn new() -> Self {
13614 std::default::Default::default()
13615 }
13616
13617 /// Sets the value of [azure_node_pools][crate::model::ListAzureNodePoolsResponse::azure_node_pools].
13618 ///
13619 /// # Example
13620 /// ```ignore,no_run
13621 /// # use google_cloud_gkemulticloud_v1::model::ListAzureNodePoolsResponse;
13622 /// use google_cloud_gkemulticloud_v1::model::AzureNodePool;
13623 /// let x = ListAzureNodePoolsResponse::new()
13624 /// .set_azure_node_pools([
13625 /// AzureNodePool::default()/* use setters */,
13626 /// AzureNodePool::default()/* use (different) setters */,
13627 /// ]);
13628 /// ```
13629 pub fn set_azure_node_pools<T, V>(mut self, v: T) -> Self
13630 where
13631 T: std::iter::IntoIterator<Item = V>,
13632 V: std::convert::Into<crate::model::AzureNodePool>,
13633 {
13634 use std::iter::Iterator;
13635 self.azure_node_pools = v.into_iter().map(|i| i.into()).collect();
13636 self
13637 }
13638
13639 /// Sets the value of [next_page_token][crate::model::ListAzureNodePoolsResponse::next_page_token].
13640 ///
13641 /// # Example
13642 /// ```ignore,no_run
13643 /// # use google_cloud_gkemulticloud_v1::model::ListAzureNodePoolsResponse;
13644 /// let x = ListAzureNodePoolsResponse::new().set_next_page_token("example");
13645 /// ```
13646 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13647 self.next_page_token = v.into();
13648 self
13649 }
13650}
13651
13652impl wkt::message::Message for ListAzureNodePoolsResponse {
13653 fn typename() -> &'static str {
13654 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAzureNodePoolsResponse"
13655 }
13656}
13657
13658#[doc(hidden)]
13659impl google_cloud_gax::paginator::internal::PageableResponse for ListAzureNodePoolsResponse {
13660 type PageItem = crate::model::AzureNodePool;
13661
13662 fn items(self) -> std::vec::Vec<Self::PageItem> {
13663 self.azure_node_pools
13664 }
13665
13666 fn next_page_token(&self) -> std::string::String {
13667 use std::clone::Clone;
13668 self.next_page_token.clone()
13669 }
13670}
13671
13672/// Request message for `AzureClusters.DeleteAzureNodePool` method.
13673#[derive(Clone, Default, PartialEq)]
13674#[non_exhaustive]
13675#[deprecated]
13676pub struct DeleteAzureNodePoolRequest {
13677 /// Required. The resource name the
13678 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] to delete.
13679 ///
13680 /// `AzureNodePool` names are formatted as
13681 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>/azureNodePools/<node-pool-id>`.
13682 ///
13683 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13684 /// for more details on Google Cloud resource names.
13685 ///
13686 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13687 pub name: std::string::String,
13688
13689 /// If set, only validate the request, but do not actually delete the node
13690 /// pool.
13691 pub validate_only: bool,
13692
13693 /// If set to true, and the
13694 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource is
13695 /// not found, the request will succeed but no action will be taken on the
13696 /// server and a completed [Operation][google.longrunning.Operation] will be
13697 /// returned.
13698 ///
13699 /// Useful for idempotent deletion.
13700 ///
13701 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13702 /// [google.longrunning.Operation]: google_cloud_longrunning::model::Operation
13703 pub allow_missing: bool,
13704
13705 /// The current ETag of the
13706 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool].
13707 ///
13708 /// Allows clients to perform deletions through optimistic concurrency control.
13709 ///
13710 /// If the provided ETag does not match the current etag of the node pool,
13711 /// the request will fail and an ABORTED error will be returned.
13712 ///
13713 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13714 pub etag: std::string::String,
13715
13716 /// Optional. If set to true, the deletion of
13717 /// [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool] resource will
13718 /// succeed even if errors occur during deleting in node pool resources. Using
13719 /// this parameter may result in orphaned resources in the node pool.
13720 ///
13721 /// [google.cloud.gkemulticloud.v1.AzureNodePool]: crate::model::AzureNodePool
13722 pub ignore_errors: bool,
13723
13724 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13725}
13726
13727impl DeleteAzureNodePoolRequest {
13728 pub fn new() -> Self {
13729 std::default::Default::default()
13730 }
13731
13732 /// Sets the value of [name][crate::model::DeleteAzureNodePoolRequest::name].
13733 ///
13734 /// # Example
13735 /// ```ignore,no_run
13736 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureNodePoolRequest;
13737 /// let x = DeleteAzureNodePoolRequest::new().set_name("example");
13738 /// ```
13739 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13740 self.name = v.into();
13741 self
13742 }
13743
13744 /// Sets the value of [validate_only][crate::model::DeleteAzureNodePoolRequest::validate_only].
13745 ///
13746 /// # Example
13747 /// ```ignore,no_run
13748 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureNodePoolRequest;
13749 /// let x = DeleteAzureNodePoolRequest::new().set_validate_only(true);
13750 /// ```
13751 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13752 self.validate_only = v.into();
13753 self
13754 }
13755
13756 /// Sets the value of [allow_missing][crate::model::DeleteAzureNodePoolRequest::allow_missing].
13757 ///
13758 /// # Example
13759 /// ```ignore,no_run
13760 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureNodePoolRequest;
13761 /// let x = DeleteAzureNodePoolRequest::new().set_allow_missing(true);
13762 /// ```
13763 pub fn set_allow_missing<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13764 self.allow_missing = v.into();
13765 self
13766 }
13767
13768 /// Sets the value of [etag][crate::model::DeleteAzureNodePoolRequest::etag].
13769 ///
13770 /// # Example
13771 /// ```ignore,no_run
13772 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureNodePoolRequest;
13773 /// let x = DeleteAzureNodePoolRequest::new().set_etag("example");
13774 /// ```
13775 pub fn set_etag<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13776 self.etag = v.into();
13777 self
13778 }
13779
13780 /// Sets the value of [ignore_errors][crate::model::DeleteAzureNodePoolRequest::ignore_errors].
13781 ///
13782 /// # Example
13783 /// ```ignore,no_run
13784 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureNodePoolRequest;
13785 /// let x = DeleteAzureNodePoolRequest::new().set_ignore_errors(true);
13786 /// ```
13787 pub fn set_ignore_errors<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
13788 self.ignore_errors = v.into();
13789 self
13790 }
13791}
13792
13793impl wkt::message::Message for DeleteAzureNodePoolRequest {
13794 fn typename() -> &'static str {
13795 "type.googleapis.com/google.cloud.gkemulticloud.v1.DeleteAzureNodePoolRequest"
13796 }
13797}
13798
13799/// GetAzureOpenIdConfigRequest gets the OIDC discovery document for the
13800/// cluster. See the OpenID Connect Discovery 1.0 specification for details.
13801#[derive(Clone, Default, PartialEq)]
13802#[non_exhaustive]
13803#[deprecated]
13804pub struct GetAzureOpenIdConfigRequest {
13805 /// Required. The AzureCluster, which owns the OIDC discovery document.
13806 /// Format:
13807 /// projects/\<project-id\>/locations/\<region\>/azureClusters/\<cluster-id\>
13808 pub azure_cluster: std::string::String,
13809
13810 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13811}
13812
13813impl GetAzureOpenIdConfigRequest {
13814 pub fn new() -> Self {
13815 std::default::Default::default()
13816 }
13817
13818 /// Sets the value of [azure_cluster][crate::model::GetAzureOpenIdConfigRequest::azure_cluster].
13819 ///
13820 /// # Example
13821 /// ```ignore,no_run
13822 /// # use google_cloud_gkemulticloud_v1::model::GetAzureOpenIdConfigRequest;
13823 /// let x = GetAzureOpenIdConfigRequest::new().set_azure_cluster("example");
13824 /// ```
13825 pub fn set_azure_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13826 self.azure_cluster = v.into();
13827 self
13828 }
13829}
13830
13831impl wkt::message::Message for GetAzureOpenIdConfigRequest {
13832 fn typename() -> &'static str {
13833 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAzureOpenIdConfigRequest"
13834 }
13835}
13836
13837/// GetAzureJsonWebKeysRequest gets the public component of the keys used by the
13838/// cluster to sign token requests. This will be the jwks_uri for the discover
13839/// document returned by getOpenIDConfig. See the OpenID Connect
13840/// Discovery 1.0 specification for details.
13841#[derive(Clone, Default, PartialEq)]
13842#[non_exhaustive]
13843#[deprecated]
13844pub struct GetAzureJsonWebKeysRequest {
13845 /// Required. The AzureCluster, which owns the JsonWebKeys.
13846 /// Format:
13847 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`
13848 pub azure_cluster: std::string::String,
13849
13850 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13851}
13852
13853impl GetAzureJsonWebKeysRequest {
13854 pub fn new() -> Self {
13855 std::default::Default::default()
13856 }
13857
13858 /// Sets the value of [azure_cluster][crate::model::GetAzureJsonWebKeysRequest::azure_cluster].
13859 ///
13860 /// # Example
13861 /// ```ignore,no_run
13862 /// # use google_cloud_gkemulticloud_v1::model::GetAzureJsonWebKeysRequest;
13863 /// let x = GetAzureJsonWebKeysRequest::new().set_azure_cluster("example");
13864 /// ```
13865 pub fn set_azure_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13866 self.azure_cluster = v.into();
13867 self
13868 }
13869}
13870
13871impl wkt::message::Message for GetAzureJsonWebKeysRequest {
13872 fn typename() -> &'static str {
13873 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAzureJsonWebKeysRequest"
13874 }
13875}
13876
13877/// GetAzureServerConfigRequest gets the server config of GKE cluster on Azure.
13878#[derive(Clone, Default, PartialEq)]
13879#[non_exhaustive]
13880#[deprecated]
13881pub struct GetAzureServerConfigRequest {
13882 /// Required. The name of the
13883 /// [AzureServerConfig][google.cloud.gkemulticloud.v1.AzureServerConfig]
13884 /// resource to describe.
13885 ///
13886 /// `AzureServerConfig` names are formatted as
13887 /// `projects/<project-id>/locations/<region>/azureServerConfig`.
13888 ///
13889 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13890 /// for more details on Google Cloud resource names.
13891 ///
13892 /// [google.cloud.gkemulticloud.v1.AzureServerConfig]: crate::model::AzureServerConfig
13893 pub name: std::string::String,
13894
13895 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13896}
13897
13898impl GetAzureServerConfigRequest {
13899 pub fn new() -> Self {
13900 std::default::Default::default()
13901 }
13902
13903 /// Sets the value of [name][crate::model::GetAzureServerConfigRequest::name].
13904 ///
13905 /// # Example
13906 /// ```ignore,no_run
13907 /// # use google_cloud_gkemulticloud_v1::model::GetAzureServerConfigRequest;
13908 /// let x = GetAzureServerConfigRequest::new().set_name("example");
13909 /// ```
13910 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13911 self.name = v.into();
13912 self
13913 }
13914}
13915
13916impl wkt::message::Message for GetAzureServerConfigRequest {
13917 fn typename() -> &'static str {
13918 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAzureServerConfigRequest"
13919 }
13920}
13921
13922/// Request message for `AzureClusters.CreateAzureClient` method.
13923#[derive(Clone, Default, PartialEq)]
13924#[non_exhaustive]
13925#[deprecated]
13926pub struct CreateAzureClientRequest {
13927 /// Required. The parent location where this
13928 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource will be
13929 /// created.
13930 ///
13931 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
13932 ///
13933 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
13934 /// for more details on Google Cloud resource names.
13935 ///
13936 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
13937 pub parent: std::string::String,
13938
13939 /// Required. The specification of the
13940 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] to create.
13941 ///
13942 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
13943 pub azure_client: std::option::Option<crate::model::AzureClient>,
13944
13945 /// Required. A client provided ID the resource. Must be unique within the
13946 /// parent resource.
13947 ///
13948 /// The provided ID will be part of the
13949 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource name
13950 /// formatted as
13951 /// `projects/<project-id>/locations/<region>/azureClients/<client-id>`.
13952 ///
13953 /// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters.
13954 ///
13955 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
13956 pub azure_client_id: std::string::String,
13957
13958 /// If set, only validate the request, but do not actually create the client.
13959 pub validate_only: bool,
13960
13961 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
13962}
13963
13964impl CreateAzureClientRequest {
13965 pub fn new() -> Self {
13966 std::default::Default::default()
13967 }
13968
13969 /// Sets the value of [parent][crate::model::CreateAzureClientRequest::parent].
13970 ///
13971 /// # Example
13972 /// ```ignore,no_run
13973 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClientRequest;
13974 /// let x = CreateAzureClientRequest::new().set_parent("example");
13975 /// ```
13976 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
13977 self.parent = v.into();
13978 self
13979 }
13980
13981 /// Sets the value of [azure_client][crate::model::CreateAzureClientRequest::azure_client].
13982 ///
13983 /// # Example
13984 /// ```ignore,no_run
13985 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClientRequest;
13986 /// use google_cloud_gkemulticloud_v1::model::AzureClient;
13987 /// let x = CreateAzureClientRequest::new().set_azure_client(AzureClient::default()/* use setters */);
13988 /// ```
13989 pub fn set_azure_client<T>(mut self, v: T) -> Self
13990 where
13991 T: std::convert::Into<crate::model::AzureClient>,
13992 {
13993 self.azure_client = std::option::Option::Some(v.into());
13994 self
13995 }
13996
13997 /// Sets or clears the value of [azure_client][crate::model::CreateAzureClientRequest::azure_client].
13998 ///
13999 /// # Example
14000 /// ```ignore,no_run
14001 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClientRequest;
14002 /// use google_cloud_gkemulticloud_v1::model::AzureClient;
14003 /// let x = CreateAzureClientRequest::new().set_or_clear_azure_client(Some(AzureClient::default()/* use setters */));
14004 /// let x = CreateAzureClientRequest::new().set_or_clear_azure_client(None::<AzureClient>);
14005 /// ```
14006 pub fn set_or_clear_azure_client<T>(mut self, v: std::option::Option<T>) -> Self
14007 where
14008 T: std::convert::Into<crate::model::AzureClient>,
14009 {
14010 self.azure_client = v.map(|x| x.into());
14011 self
14012 }
14013
14014 /// Sets the value of [azure_client_id][crate::model::CreateAzureClientRequest::azure_client_id].
14015 ///
14016 /// # Example
14017 /// ```ignore,no_run
14018 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClientRequest;
14019 /// let x = CreateAzureClientRequest::new().set_azure_client_id("example");
14020 /// ```
14021 pub fn set_azure_client_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14022 self.azure_client_id = v.into();
14023 self
14024 }
14025
14026 /// Sets the value of [validate_only][crate::model::CreateAzureClientRequest::validate_only].
14027 ///
14028 /// # Example
14029 /// ```ignore,no_run
14030 /// # use google_cloud_gkemulticloud_v1::model::CreateAzureClientRequest;
14031 /// let x = CreateAzureClientRequest::new().set_validate_only(true);
14032 /// ```
14033 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
14034 self.validate_only = v.into();
14035 self
14036 }
14037}
14038
14039impl wkt::message::Message for CreateAzureClientRequest {
14040 fn typename() -> &'static str {
14041 "type.googleapis.com/google.cloud.gkemulticloud.v1.CreateAzureClientRequest"
14042 }
14043}
14044
14045/// Request message for `AzureClusters.GetAzureClient` method.
14046#[derive(Clone, Default, PartialEq)]
14047#[non_exhaustive]
14048#[deprecated]
14049pub struct GetAzureClientRequest {
14050 /// Required. The name of the
14051 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource to
14052 /// describe.
14053 ///
14054 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] names are
14055 /// formatted as
14056 /// `projects/<project-id>/locations/<region>/azureClients/<client-id>`.
14057 ///
14058 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
14059 /// for more details on Google Cloud resource names.
14060 ///
14061 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
14062 pub name: std::string::String,
14063
14064 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14065}
14066
14067impl GetAzureClientRequest {
14068 pub fn new() -> Self {
14069 std::default::Default::default()
14070 }
14071
14072 /// Sets the value of [name][crate::model::GetAzureClientRequest::name].
14073 ///
14074 /// # Example
14075 /// ```ignore,no_run
14076 /// # use google_cloud_gkemulticloud_v1::model::GetAzureClientRequest;
14077 /// let x = GetAzureClientRequest::new().set_name("example");
14078 /// ```
14079 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14080 self.name = v.into();
14081 self
14082 }
14083}
14084
14085impl wkt::message::Message for GetAzureClientRequest {
14086 fn typename() -> &'static str {
14087 "type.googleapis.com/google.cloud.gkemulticloud.v1.GetAzureClientRequest"
14088 }
14089}
14090
14091/// Request message for `AzureClusters.ListAzureClients` method.
14092#[derive(Clone, Default, PartialEq)]
14093#[non_exhaustive]
14094#[deprecated]
14095pub struct ListAzureClientsRequest {
14096 /// Required. The parent location which owns this collection of
14097 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resources.
14098 ///
14099 /// Location names are formatted as `projects/<project-id>/locations/<region>`.
14100 ///
14101 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
14102 /// for more details on Google Cloud Platform resource names.
14103 ///
14104 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
14105 pub parent: std::string::String,
14106
14107 /// The maximum number of items to return.
14108 ///
14109 /// If not specified, a default value of 50 will be used by the service.
14110 /// Regardless of the pageSize value, the response can include a partial list
14111 /// and a caller should only rely on response's
14112 /// [nextPageToken][google.cloud.gkemulticloud.v1.ListAzureClientsResponse.next_page_token]
14113 /// to determine if there are more instances left to be queried.
14114 ///
14115 /// [google.cloud.gkemulticloud.v1.ListAzureClientsResponse.next_page_token]: crate::model::ListAzureClientsResponse::next_page_token
14116 pub page_size: i32,
14117
14118 /// The `nextPageToken` value returned from a previous
14119 /// [azureClients.list][google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClients]
14120 /// request, if any.
14121 ///
14122 /// [google.cloud.gkemulticloud.v1.AzureClusters.ListAzureClients]: crate::client::AzureClusters::list_azure_clients
14123 pub page_token: std::string::String,
14124
14125 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14126}
14127
14128impl ListAzureClientsRequest {
14129 pub fn new() -> Self {
14130 std::default::Default::default()
14131 }
14132
14133 /// Sets the value of [parent][crate::model::ListAzureClientsRequest::parent].
14134 ///
14135 /// # Example
14136 /// ```ignore,no_run
14137 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClientsRequest;
14138 /// let x = ListAzureClientsRequest::new().set_parent("example");
14139 /// ```
14140 pub fn set_parent<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14141 self.parent = v.into();
14142 self
14143 }
14144
14145 /// Sets the value of [page_size][crate::model::ListAzureClientsRequest::page_size].
14146 ///
14147 /// # Example
14148 /// ```ignore,no_run
14149 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClientsRequest;
14150 /// let x = ListAzureClientsRequest::new().set_page_size(42);
14151 /// ```
14152 pub fn set_page_size<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
14153 self.page_size = v.into();
14154 self
14155 }
14156
14157 /// Sets the value of [page_token][crate::model::ListAzureClientsRequest::page_token].
14158 ///
14159 /// # Example
14160 /// ```ignore,no_run
14161 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClientsRequest;
14162 /// let x = ListAzureClientsRequest::new().set_page_token("example");
14163 /// ```
14164 pub fn set_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14165 self.page_token = v.into();
14166 self
14167 }
14168}
14169
14170impl wkt::message::Message for ListAzureClientsRequest {
14171 fn typename() -> &'static str {
14172 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAzureClientsRequest"
14173 }
14174}
14175
14176/// Response message for `AzureClusters.ListAzureClients` method.
14177#[derive(Clone, Default, PartialEq)]
14178#[non_exhaustive]
14179#[deprecated]
14180pub struct ListAzureClientsResponse {
14181 /// A list of [AzureClient][google.cloud.gkemulticloud.v1.AzureClient]
14182 /// resources in the specified Google Cloud project and region region.
14183 ///
14184 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
14185 pub azure_clients: std::vec::Vec<crate::model::AzureClient>,
14186
14187 /// Token to retrieve the next page of results, or empty if there are no more
14188 /// results in the list.
14189 pub next_page_token: std::string::String,
14190
14191 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14192}
14193
14194impl ListAzureClientsResponse {
14195 pub fn new() -> Self {
14196 std::default::Default::default()
14197 }
14198
14199 /// Sets the value of [azure_clients][crate::model::ListAzureClientsResponse::azure_clients].
14200 ///
14201 /// # Example
14202 /// ```ignore,no_run
14203 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClientsResponse;
14204 /// use google_cloud_gkemulticloud_v1::model::AzureClient;
14205 /// let x = ListAzureClientsResponse::new()
14206 /// .set_azure_clients([
14207 /// AzureClient::default()/* use setters */,
14208 /// AzureClient::default()/* use (different) setters */,
14209 /// ]);
14210 /// ```
14211 pub fn set_azure_clients<T, V>(mut self, v: T) -> Self
14212 where
14213 T: std::iter::IntoIterator<Item = V>,
14214 V: std::convert::Into<crate::model::AzureClient>,
14215 {
14216 use std::iter::Iterator;
14217 self.azure_clients = v.into_iter().map(|i| i.into()).collect();
14218 self
14219 }
14220
14221 /// Sets the value of [next_page_token][crate::model::ListAzureClientsResponse::next_page_token].
14222 ///
14223 /// # Example
14224 /// ```ignore,no_run
14225 /// # use google_cloud_gkemulticloud_v1::model::ListAzureClientsResponse;
14226 /// let x = ListAzureClientsResponse::new().set_next_page_token("example");
14227 /// ```
14228 pub fn set_next_page_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14229 self.next_page_token = v.into();
14230 self
14231 }
14232}
14233
14234impl wkt::message::Message for ListAzureClientsResponse {
14235 fn typename() -> &'static str {
14236 "type.googleapis.com/google.cloud.gkemulticloud.v1.ListAzureClientsResponse"
14237 }
14238}
14239
14240#[doc(hidden)]
14241impl google_cloud_gax::paginator::internal::PageableResponse for ListAzureClientsResponse {
14242 type PageItem = crate::model::AzureClient;
14243
14244 fn items(self) -> std::vec::Vec<Self::PageItem> {
14245 self.azure_clients
14246 }
14247
14248 fn next_page_token(&self) -> std::string::String {
14249 use std::clone::Clone;
14250 self.next_page_token.clone()
14251 }
14252}
14253
14254/// Request message for `AzureClusters.DeleteAzureClient` method.
14255#[derive(Clone, Default, PartialEq)]
14256#[non_exhaustive]
14257#[deprecated]
14258pub struct DeleteAzureClientRequest {
14259 /// Required. The resource name the
14260 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] to delete.
14261 ///
14262 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] names are
14263 /// formatted as
14264 /// `projects/<project-id>/locations/<region>/azureClients/<client-id>`.
14265 ///
14266 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
14267 /// for more details on Google Cloud resource names.
14268 ///
14269 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
14270 pub name: std::string::String,
14271
14272 /// If set to true, and the
14273 /// [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] resource is not
14274 /// found, the request will succeed but no action will be taken on the server
14275 /// and a completed [Operation][google.longrunning.Operation] will be returned.
14276 ///
14277 /// Useful for idempotent deletion.
14278 ///
14279 /// [google.cloud.gkemulticloud.v1.AzureClient]: crate::model::AzureClient
14280 /// [google.longrunning.Operation]: google_cloud_longrunning::model::Operation
14281 pub allow_missing: bool,
14282
14283 /// If set, only validate the request, but do not actually delete the resource.
14284 pub validate_only: bool,
14285
14286 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14287}
14288
14289impl DeleteAzureClientRequest {
14290 pub fn new() -> Self {
14291 std::default::Default::default()
14292 }
14293
14294 /// Sets the value of [name][crate::model::DeleteAzureClientRequest::name].
14295 ///
14296 /// # Example
14297 /// ```ignore,no_run
14298 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClientRequest;
14299 /// let x = DeleteAzureClientRequest::new().set_name("example");
14300 /// ```
14301 pub fn set_name<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14302 self.name = v.into();
14303 self
14304 }
14305
14306 /// Sets the value of [allow_missing][crate::model::DeleteAzureClientRequest::allow_missing].
14307 ///
14308 /// # Example
14309 /// ```ignore,no_run
14310 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClientRequest;
14311 /// let x = DeleteAzureClientRequest::new().set_allow_missing(true);
14312 /// ```
14313 pub fn set_allow_missing<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
14314 self.allow_missing = v.into();
14315 self
14316 }
14317
14318 /// Sets the value of [validate_only][crate::model::DeleteAzureClientRequest::validate_only].
14319 ///
14320 /// # Example
14321 /// ```ignore,no_run
14322 /// # use google_cloud_gkemulticloud_v1::model::DeleteAzureClientRequest;
14323 /// let x = DeleteAzureClientRequest::new().set_validate_only(true);
14324 /// ```
14325 pub fn set_validate_only<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
14326 self.validate_only = v.into();
14327 self
14328 }
14329}
14330
14331impl wkt::message::Message for DeleteAzureClientRequest {
14332 fn typename() -> &'static str {
14333 "type.googleapis.com/google.cloud.gkemulticloud.v1.DeleteAzureClientRequest"
14334 }
14335}
14336
14337/// Request message for `AzureClusters.GenerateAzureAccessToken` method.
14338#[derive(Clone, Default, PartialEq)]
14339#[non_exhaustive]
14340#[deprecated]
14341pub struct GenerateAzureAccessTokenRequest {
14342 /// Required. The name of the
14343 /// [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] resource to
14344 /// authenticate to.
14345 ///
14346 /// `AzureCluster` names are formatted as
14347 /// `projects/<project-id>/locations/<region>/azureClusters/<cluster-id>`.
14348 ///
14349 /// See [Resource Names](https://cloud.google.com/apis/design/resource_names)
14350 /// for more details on Google Cloud resource names.
14351 ///
14352 /// [google.cloud.gkemulticloud.v1.AzureCluster]: crate::model::AzureCluster
14353 pub azure_cluster: std::string::String,
14354
14355 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14356}
14357
14358impl GenerateAzureAccessTokenRequest {
14359 pub fn new() -> Self {
14360 std::default::Default::default()
14361 }
14362
14363 /// Sets the value of [azure_cluster][crate::model::GenerateAzureAccessTokenRequest::azure_cluster].
14364 ///
14365 /// # Example
14366 /// ```ignore,no_run
14367 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureAccessTokenRequest;
14368 /// let x = GenerateAzureAccessTokenRequest::new().set_azure_cluster("example");
14369 /// ```
14370 pub fn set_azure_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14371 self.azure_cluster = v.into();
14372 self
14373 }
14374}
14375
14376impl wkt::message::Message for GenerateAzureAccessTokenRequest {
14377 fn typename() -> &'static str {
14378 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAzureAccessTokenRequest"
14379 }
14380}
14381
14382/// Response message for `AzureClusters.GenerateAzureAccessToken` method.
14383#[derive(Clone, Default, PartialEq)]
14384#[non_exhaustive]
14385#[deprecated]
14386pub struct GenerateAzureAccessTokenResponse {
14387 /// Output only. Access token to authenticate to k8s api-server.
14388 pub access_token: std::string::String,
14389
14390 /// Output only. Timestamp at which the token will expire.
14391 pub expiration_time: std::option::Option<wkt::Timestamp>,
14392
14393 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14394}
14395
14396impl GenerateAzureAccessTokenResponse {
14397 pub fn new() -> Self {
14398 std::default::Default::default()
14399 }
14400
14401 /// Sets the value of [access_token][crate::model::GenerateAzureAccessTokenResponse::access_token].
14402 ///
14403 /// # Example
14404 /// ```ignore,no_run
14405 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureAccessTokenResponse;
14406 /// let x = GenerateAzureAccessTokenResponse::new().set_access_token("example");
14407 /// ```
14408 pub fn set_access_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14409 self.access_token = v.into();
14410 self
14411 }
14412
14413 /// Sets the value of [expiration_time][crate::model::GenerateAzureAccessTokenResponse::expiration_time].
14414 ///
14415 /// # Example
14416 /// ```ignore,no_run
14417 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureAccessTokenResponse;
14418 /// use wkt::Timestamp;
14419 /// let x = GenerateAzureAccessTokenResponse::new().set_expiration_time(Timestamp::default()/* use setters */);
14420 /// ```
14421 pub fn set_expiration_time<T>(mut self, v: T) -> Self
14422 where
14423 T: std::convert::Into<wkt::Timestamp>,
14424 {
14425 self.expiration_time = std::option::Option::Some(v.into());
14426 self
14427 }
14428
14429 /// Sets or clears the value of [expiration_time][crate::model::GenerateAzureAccessTokenResponse::expiration_time].
14430 ///
14431 /// # Example
14432 /// ```ignore,no_run
14433 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureAccessTokenResponse;
14434 /// use wkt::Timestamp;
14435 /// let x = GenerateAzureAccessTokenResponse::new().set_or_clear_expiration_time(Some(Timestamp::default()/* use setters */));
14436 /// let x = GenerateAzureAccessTokenResponse::new().set_or_clear_expiration_time(None::<Timestamp>);
14437 /// ```
14438 pub fn set_or_clear_expiration_time<T>(mut self, v: std::option::Option<T>) -> Self
14439 where
14440 T: std::convert::Into<wkt::Timestamp>,
14441 {
14442 self.expiration_time = v.map(|x| x.into());
14443 self
14444 }
14445}
14446
14447impl wkt::message::Message for GenerateAzureAccessTokenResponse {
14448 fn typename() -> &'static str {
14449 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAzureAccessTokenResponse"
14450 }
14451}
14452
14453#[derive(Clone, Default, PartialEq)]
14454#[non_exhaustive]
14455#[deprecated]
14456pub struct GenerateAzureClusterAgentTokenRequest {
14457 /// Required.
14458 pub azure_cluster: std::string::String,
14459
14460 /// Required.
14461 pub subject_token: std::string::String,
14462
14463 /// Required.
14464 pub subject_token_type: std::string::String,
14465
14466 /// Required.
14467 pub version: std::string::String,
14468
14469 /// Optional.
14470 pub node_pool_id: std::string::String,
14471
14472 /// Optional.
14473 pub grant_type: std::string::String,
14474
14475 /// Optional.
14476 pub audience: std::string::String,
14477
14478 /// Optional.
14479 pub scope: std::string::String,
14480
14481 /// Optional.
14482 pub requested_token_type: std::string::String,
14483
14484 /// Optional.
14485 pub options: std::string::String,
14486
14487 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14488}
14489
14490impl GenerateAzureClusterAgentTokenRequest {
14491 pub fn new() -> Self {
14492 std::default::Default::default()
14493 }
14494
14495 /// Sets the value of [azure_cluster][crate::model::GenerateAzureClusterAgentTokenRequest::azure_cluster].
14496 ///
14497 /// # Example
14498 /// ```ignore,no_run
14499 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14500 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_azure_cluster("example");
14501 /// ```
14502 pub fn set_azure_cluster<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14503 self.azure_cluster = v.into();
14504 self
14505 }
14506
14507 /// Sets the value of [subject_token][crate::model::GenerateAzureClusterAgentTokenRequest::subject_token].
14508 ///
14509 /// # Example
14510 /// ```ignore,no_run
14511 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14512 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_subject_token("example");
14513 /// ```
14514 pub fn set_subject_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14515 self.subject_token = v.into();
14516 self
14517 }
14518
14519 /// Sets the value of [subject_token_type][crate::model::GenerateAzureClusterAgentTokenRequest::subject_token_type].
14520 ///
14521 /// # Example
14522 /// ```ignore,no_run
14523 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14524 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_subject_token_type("example");
14525 /// ```
14526 pub fn set_subject_token_type<T: std::convert::Into<std::string::String>>(
14527 mut self,
14528 v: T,
14529 ) -> Self {
14530 self.subject_token_type = v.into();
14531 self
14532 }
14533
14534 /// Sets the value of [version][crate::model::GenerateAzureClusterAgentTokenRequest::version].
14535 ///
14536 /// # Example
14537 /// ```ignore,no_run
14538 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14539 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_version("example");
14540 /// ```
14541 pub fn set_version<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14542 self.version = v.into();
14543 self
14544 }
14545
14546 /// Sets the value of [node_pool_id][crate::model::GenerateAzureClusterAgentTokenRequest::node_pool_id].
14547 ///
14548 /// # Example
14549 /// ```ignore,no_run
14550 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14551 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_node_pool_id("example");
14552 /// ```
14553 pub fn set_node_pool_id<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14554 self.node_pool_id = v.into();
14555 self
14556 }
14557
14558 /// Sets the value of [grant_type][crate::model::GenerateAzureClusterAgentTokenRequest::grant_type].
14559 ///
14560 /// # Example
14561 /// ```ignore,no_run
14562 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14563 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_grant_type("example");
14564 /// ```
14565 pub fn set_grant_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14566 self.grant_type = v.into();
14567 self
14568 }
14569
14570 /// Sets the value of [audience][crate::model::GenerateAzureClusterAgentTokenRequest::audience].
14571 ///
14572 /// # Example
14573 /// ```ignore,no_run
14574 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14575 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_audience("example");
14576 /// ```
14577 pub fn set_audience<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14578 self.audience = v.into();
14579 self
14580 }
14581
14582 /// Sets the value of [scope][crate::model::GenerateAzureClusterAgentTokenRequest::scope].
14583 ///
14584 /// # Example
14585 /// ```ignore,no_run
14586 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14587 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_scope("example");
14588 /// ```
14589 pub fn set_scope<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14590 self.scope = v.into();
14591 self
14592 }
14593
14594 /// Sets the value of [requested_token_type][crate::model::GenerateAzureClusterAgentTokenRequest::requested_token_type].
14595 ///
14596 /// # Example
14597 /// ```ignore,no_run
14598 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14599 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_requested_token_type("example");
14600 /// ```
14601 pub fn set_requested_token_type<T: std::convert::Into<std::string::String>>(
14602 mut self,
14603 v: T,
14604 ) -> Self {
14605 self.requested_token_type = v.into();
14606 self
14607 }
14608
14609 /// Sets the value of [options][crate::model::GenerateAzureClusterAgentTokenRequest::options].
14610 ///
14611 /// # Example
14612 /// ```ignore,no_run
14613 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenRequest;
14614 /// let x = GenerateAzureClusterAgentTokenRequest::new().set_options("example");
14615 /// ```
14616 pub fn set_options<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14617 self.options = v.into();
14618 self
14619 }
14620}
14621
14622impl wkt::message::Message for GenerateAzureClusterAgentTokenRequest {
14623 fn typename() -> &'static str {
14624 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAzureClusterAgentTokenRequest"
14625 }
14626}
14627
14628#[derive(Clone, Default, PartialEq)]
14629#[non_exhaustive]
14630#[deprecated]
14631pub struct GenerateAzureClusterAgentTokenResponse {
14632 pub access_token: std::string::String,
14633
14634 pub expires_in: i32,
14635
14636 pub token_type: std::string::String,
14637
14638 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14639}
14640
14641impl GenerateAzureClusterAgentTokenResponse {
14642 pub fn new() -> Self {
14643 std::default::Default::default()
14644 }
14645
14646 /// Sets the value of [access_token][crate::model::GenerateAzureClusterAgentTokenResponse::access_token].
14647 ///
14648 /// # Example
14649 /// ```ignore,no_run
14650 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenResponse;
14651 /// let x = GenerateAzureClusterAgentTokenResponse::new().set_access_token("example");
14652 /// ```
14653 pub fn set_access_token<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14654 self.access_token = v.into();
14655 self
14656 }
14657
14658 /// Sets the value of [expires_in][crate::model::GenerateAzureClusterAgentTokenResponse::expires_in].
14659 ///
14660 /// # Example
14661 /// ```ignore,no_run
14662 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenResponse;
14663 /// let x = GenerateAzureClusterAgentTokenResponse::new().set_expires_in(42);
14664 /// ```
14665 pub fn set_expires_in<T: std::convert::Into<i32>>(mut self, v: T) -> Self {
14666 self.expires_in = v.into();
14667 self
14668 }
14669
14670 /// Sets the value of [token_type][crate::model::GenerateAzureClusterAgentTokenResponse::token_type].
14671 ///
14672 /// # Example
14673 /// ```ignore,no_run
14674 /// # use google_cloud_gkemulticloud_v1::model::GenerateAzureClusterAgentTokenResponse;
14675 /// let x = GenerateAzureClusterAgentTokenResponse::new().set_token_type("example");
14676 /// ```
14677 pub fn set_token_type<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14678 self.token_type = v.into();
14679 self
14680 }
14681}
14682
14683impl wkt::message::Message for GenerateAzureClusterAgentTokenResponse {
14684 fn typename() -> &'static str {
14685 "type.googleapis.com/google.cloud.gkemulticloud.v1.GenerateAzureClusterAgentTokenResponse"
14686 }
14687}
14688
14689/// Jwk is a JSON Web Key as specified in RFC 7517.
14690#[derive(Clone, Default, PartialEq)]
14691#[non_exhaustive]
14692pub struct Jwk {
14693 /// Key Type.
14694 pub kty: std::string::String,
14695
14696 /// Algorithm.
14697 pub alg: std::string::String,
14698
14699 /// Permitted uses for the public keys.
14700 pub r#use: std::string::String,
14701
14702 /// Key ID.
14703 pub kid: std::string::String,
14704
14705 /// Used for RSA keys.
14706 pub n: std::string::String,
14707
14708 /// Used for RSA keys.
14709 pub e: std::string::String,
14710
14711 /// Used for ECDSA keys.
14712 pub x: std::string::String,
14713
14714 /// Used for ECDSA keys.
14715 pub y: std::string::String,
14716
14717 /// Used for ECDSA keys.
14718 pub crv: std::string::String,
14719
14720 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14721}
14722
14723impl Jwk {
14724 pub fn new() -> Self {
14725 std::default::Default::default()
14726 }
14727
14728 /// Sets the value of [kty][crate::model::Jwk::kty].
14729 ///
14730 /// # Example
14731 /// ```ignore,no_run
14732 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14733 /// let x = Jwk::new().set_kty("example");
14734 /// ```
14735 pub fn set_kty<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14736 self.kty = v.into();
14737 self
14738 }
14739
14740 /// Sets the value of [alg][crate::model::Jwk::alg].
14741 ///
14742 /// # Example
14743 /// ```ignore,no_run
14744 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14745 /// let x = Jwk::new().set_alg("example");
14746 /// ```
14747 pub fn set_alg<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14748 self.alg = v.into();
14749 self
14750 }
14751
14752 /// Sets the value of [r#use][crate::model::Jwk::use].
14753 ///
14754 /// # Example
14755 /// ```ignore,no_run
14756 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14757 /// let x = Jwk::new().set_use("example");
14758 /// ```
14759 pub fn set_use<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14760 self.r#use = v.into();
14761 self
14762 }
14763
14764 /// Sets the value of [kid][crate::model::Jwk::kid].
14765 ///
14766 /// # Example
14767 /// ```ignore,no_run
14768 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14769 /// let x = Jwk::new().set_kid("example");
14770 /// ```
14771 pub fn set_kid<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14772 self.kid = v.into();
14773 self
14774 }
14775
14776 /// Sets the value of [n][crate::model::Jwk::n].
14777 ///
14778 /// # Example
14779 /// ```ignore,no_run
14780 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14781 /// let x = Jwk::new().set_n("example");
14782 /// ```
14783 pub fn set_n<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14784 self.n = v.into();
14785 self
14786 }
14787
14788 /// Sets the value of [e][crate::model::Jwk::e].
14789 ///
14790 /// # Example
14791 /// ```ignore,no_run
14792 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14793 /// let x = Jwk::new().set_e("example");
14794 /// ```
14795 pub fn set_e<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14796 self.e = v.into();
14797 self
14798 }
14799
14800 /// Sets the value of [x][crate::model::Jwk::x].
14801 ///
14802 /// # Example
14803 /// ```ignore,no_run
14804 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14805 /// let x = Jwk::new().set_x("example");
14806 /// ```
14807 pub fn set_x<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14808 self.x = v.into();
14809 self
14810 }
14811
14812 /// Sets the value of [y][crate::model::Jwk::y].
14813 ///
14814 /// # Example
14815 /// ```ignore,no_run
14816 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14817 /// let x = Jwk::new().set_y("example");
14818 /// ```
14819 pub fn set_y<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14820 self.y = v.into();
14821 self
14822 }
14823
14824 /// Sets the value of [crv][crate::model::Jwk::crv].
14825 ///
14826 /// # Example
14827 /// ```ignore,no_run
14828 /// # use google_cloud_gkemulticloud_v1::model::Jwk;
14829 /// let x = Jwk::new().set_crv("example");
14830 /// ```
14831 pub fn set_crv<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14832 self.crv = v.into();
14833 self
14834 }
14835}
14836
14837impl wkt::message::Message for Jwk {
14838 fn typename() -> &'static str {
14839 "type.googleapis.com/google.cloud.gkemulticloud.v1.Jwk"
14840 }
14841}
14842
14843/// Workload Identity settings.
14844#[derive(Clone, Default, PartialEq)]
14845#[non_exhaustive]
14846pub struct WorkloadIdentityConfig {
14847 /// The OIDC issuer URL for this cluster.
14848 pub issuer_uri: std::string::String,
14849
14850 /// The Workload Identity Pool associated to the cluster.
14851 pub workload_pool: std::string::String,
14852
14853 /// The ID of the OIDC Identity Provider (IdP) associated to the Workload
14854 /// Identity Pool.
14855 pub identity_provider: std::string::String,
14856
14857 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14858}
14859
14860impl WorkloadIdentityConfig {
14861 pub fn new() -> Self {
14862 std::default::Default::default()
14863 }
14864
14865 /// Sets the value of [issuer_uri][crate::model::WorkloadIdentityConfig::issuer_uri].
14866 ///
14867 /// # Example
14868 /// ```ignore,no_run
14869 /// # use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
14870 /// let x = WorkloadIdentityConfig::new().set_issuer_uri("example");
14871 /// ```
14872 pub fn set_issuer_uri<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14873 self.issuer_uri = v.into();
14874 self
14875 }
14876
14877 /// Sets the value of [workload_pool][crate::model::WorkloadIdentityConfig::workload_pool].
14878 ///
14879 /// # Example
14880 /// ```ignore,no_run
14881 /// # use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
14882 /// let x = WorkloadIdentityConfig::new().set_workload_pool("example");
14883 /// ```
14884 pub fn set_workload_pool<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
14885 self.workload_pool = v.into();
14886 self
14887 }
14888
14889 /// Sets the value of [identity_provider][crate::model::WorkloadIdentityConfig::identity_provider].
14890 ///
14891 /// # Example
14892 /// ```ignore,no_run
14893 /// # use google_cloud_gkemulticloud_v1::model::WorkloadIdentityConfig;
14894 /// let x = WorkloadIdentityConfig::new().set_identity_provider("example");
14895 /// ```
14896 pub fn set_identity_provider<T: std::convert::Into<std::string::String>>(
14897 mut self,
14898 v: T,
14899 ) -> Self {
14900 self.identity_provider = v.into();
14901 self
14902 }
14903}
14904
14905impl wkt::message::Message for WorkloadIdentityConfig {
14906 fn typename() -> &'static str {
14907 "type.googleapis.com/google.cloud.gkemulticloud.v1.WorkloadIdentityConfig"
14908 }
14909}
14910
14911/// Constraints applied to pods.
14912#[derive(Clone, Default, PartialEq)]
14913#[non_exhaustive]
14914pub struct MaxPodsConstraint {
14915 /// Required. The maximum number of pods to schedule on a single node.
14916 pub max_pods_per_node: i64,
14917
14918 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14919}
14920
14921impl MaxPodsConstraint {
14922 pub fn new() -> Self {
14923 std::default::Default::default()
14924 }
14925
14926 /// Sets the value of [max_pods_per_node][crate::model::MaxPodsConstraint::max_pods_per_node].
14927 ///
14928 /// # Example
14929 /// ```ignore,no_run
14930 /// # use google_cloud_gkemulticloud_v1::model::MaxPodsConstraint;
14931 /// let x = MaxPodsConstraint::new().set_max_pods_per_node(42);
14932 /// ```
14933 pub fn set_max_pods_per_node<T: std::convert::Into<i64>>(mut self, v: T) -> Self {
14934 self.max_pods_per_node = v.into();
14935 self
14936 }
14937}
14938
14939impl wkt::message::Message for MaxPodsConstraint {
14940 fn typename() -> &'static str {
14941 "type.googleapis.com/google.cloud.gkemulticloud.v1.MaxPodsConstraint"
14942 }
14943}
14944
14945/// Metadata about a long-running operation.
14946#[derive(Clone, Default, PartialEq)]
14947#[non_exhaustive]
14948pub struct OperationMetadata {
14949 /// Output only. The time at which this operation was created.
14950 pub create_time: std::option::Option<wkt::Timestamp>,
14951
14952 /// Output only. The time at which this operation was completed.
14953 pub end_time: std::option::Option<wkt::Timestamp>,
14954
14955 /// Output only. The name of the resource associated to this operation.
14956 pub target: std::string::String,
14957
14958 /// Output only. Human-readable status of the operation, if any.
14959 pub status_detail: std::string::String,
14960
14961 /// Output only. Human-readable status of any error that occurred during the
14962 /// operation.
14963 pub error_detail: std::string::String,
14964
14965 /// Output only. The verb associated with the API method which triggered this
14966 /// operation. Possible values are "create", "delete", "update" and "import".
14967 pub verb: std::string::String,
14968
14969 /// Output only. Identifies whether cancellation has been requested for the
14970 /// operation. Operations that have successfully been cancelled have
14971 /// [google.longrunning.Operation.error][google.longrunning.Operation.error]
14972 /// value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
14973 /// corresponding to `Code.CANCELLED`.
14974 ///
14975 /// [google.longrunning.Operation.error]: google_cloud_longrunning::model::Operation::result
14976 /// [google.rpc.Status.code]: google_cloud_rpc::model::Status::code
14977 pub requested_cancellation: bool,
14978
14979 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
14980}
14981
14982impl OperationMetadata {
14983 pub fn new() -> Self {
14984 std::default::Default::default()
14985 }
14986
14987 /// Sets the value of [create_time][crate::model::OperationMetadata::create_time].
14988 ///
14989 /// # Example
14990 /// ```ignore,no_run
14991 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
14992 /// use wkt::Timestamp;
14993 /// let x = OperationMetadata::new().set_create_time(Timestamp::default()/* use setters */);
14994 /// ```
14995 pub fn set_create_time<T>(mut self, v: T) -> Self
14996 where
14997 T: std::convert::Into<wkt::Timestamp>,
14998 {
14999 self.create_time = std::option::Option::Some(v.into());
15000 self
15001 }
15002
15003 /// Sets or clears the value of [create_time][crate::model::OperationMetadata::create_time].
15004 ///
15005 /// # Example
15006 /// ```ignore,no_run
15007 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15008 /// use wkt::Timestamp;
15009 /// let x = OperationMetadata::new().set_or_clear_create_time(Some(Timestamp::default()/* use setters */));
15010 /// let x = OperationMetadata::new().set_or_clear_create_time(None::<Timestamp>);
15011 /// ```
15012 pub fn set_or_clear_create_time<T>(mut self, v: std::option::Option<T>) -> Self
15013 where
15014 T: std::convert::Into<wkt::Timestamp>,
15015 {
15016 self.create_time = v.map(|x| x.into());
15017 self
15018 }
15019
15020 /// Sets the value of [end_time][crate::model::OperationMetadata::end_time].
15021 ///
15022 /// # Example
15023 /// ```ignore,no_run
15024 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15025 /// use wkt::Timestamp;
15026 /// let x = OperationMetadata::new().set_end_time(Timestamp::default()/* use setters */);
15027 /// ```
15028 pub fn set_end_time<T>(mut self, v: T) -> Self
15029 where
15030 T: std::convert::Into<wkt::Timestamp>,
15031 {
15032 self.end_time = std::option::Option::Some(v.into());
15033 self
15034 }
15035
15036 /// Sets or clears the value of [end_time][crate::model::OperationMetadata::end_time].
15037 ///
15038 /// # Example
15039 /// ```ignore,no_run
15040 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15041 /// use wkt::Timestamp;
15042 /// let x = OperationMetadata::new().set_or_clear_end_time(Some(Timestamp::default()/* use setters */));
15043 /// let x = OperationMetadata::new().set_or_clear_end_time(None::<Timestamp>);
15044 /// ```
15045 pub fn set_or_clear_end_time<T>(mut self, v: std::option::Option<T>) -> Self
15046 where
15047 T: std::convert::Into<wkt::Timestamp>,
15048 {
15049 self.end_time = v.map(|x| x.into());
15050 self
15051 }
15052
15053 /// Sets the value of [target][crate::model::OperationMetadata::target].
15054 ///
15055 /// # Example
15056 /// ```ignore,no_run
15057 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15058 /// let x = OperationMetadata::new().set_target("example");
15059 /// ```
15060 pub fn set_target<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15061 self.target = v.into();
15062 self
15063 }
15064
15065 /// Sets the value of [status_detail][crate::model::OperationMetadata::status_detail].
15066 ///
15067 /// # Example
15068 /// ```ignore,no_run
15069 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15070 /// let x = OperationMetadata::new().set_status_detail("example");
15071 /// ```
15072 pub fn set_status_detail<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15073 self.status_detail = v.into();
15074 self
15075 }
15076
15077 /// Sets the value of [error_detail][crate::model::OperationMetadata::error_detail].
15078 ///
15079 /// # Example
15080 /// ```ignore,no_run
15081 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15082 /// let x = OperationMetadata::new().set_error_detail("example");
15083 /// ```
15084 pub fn set_error_detail<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15085 self.error_detail = v.into();
15086 self
15087 }
15088
15089 /// Sets the value of [verb][crate::model::OperationMetadata::verb].
15090 ///
15091 /// # Example
15092 /// ```ignore,no_run
15093 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15094 /// let x = OperationMetadata::new().set_verb("example");
15095 /// ```
15096 pub fn set_verb<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15097 self.verb = v.into();
15098 self
15099 }
15100
15101 /// Sets the value of [requested_cancellation][crate::model::OperationMetadata::requested_cancellation].
15102 ///
15103 /// # Example
15104 /// ```ignore,no_run
15105 /// # use google_cloud_gkemulticloud_v1::model::OperationMetadata;
15106 /// let x = OperationMetadata::new().set_requested_cancellation(true);
15107 /// ```
15108 pub fn set_requested_cancellation<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
15109 self.requested_cancellation = v.into();
15110 self
15111 }
15112}
15113
15114impl wkt::message::Message for OperationMetadata {
15115 fn typename() -> &'static str {
15116 "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata"
15117 }
15118}
15119
15120/// The taint content for the node taint.
15121#[derive(Clone, Default, PartialEq)]
15122#[non_exhaustive]
15123pub struct NodeTaint {
15124 /// Required. Key for the taint.
15125 pub key: std::string::String,
15126
15127 /// Required. Value for the taint.
15128 pub value: std::string::String,
15129
15130 /// Required. The taint effect.
15131 pub effect: crate::model::node_taint::Effect,
15132
15133 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15134}
15135
15136impl NodeTaint {
15137 pub fn new() -> Self {
15138 std::default::Default::default()
15139 }
15140
15141 /// Sets the value of [key][crate::model::NodeTaint::key].
15142 ///
15143 /// # Example
15144 /// ```ignore,no_run
15145 /// # use google_cloud_gkemulticloud_v1::model::NodeTaint;
15146 /// let x = NodeTaint::new().set_key("example");
15147 /// ```
15148 pub fn set_key<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15149 self.key = v.into();
15150 self
15151 }
15152
15153 /// Sets the value of [value][crate::model::NodeTaint::value].
15154 ///
15155 /// # Example
15156 /// ```ignore,no_run
15157 /// # use google_cloud_gkemulticloud_v1::model::NodeTaint;
15158 /// let x = NodeTaint::new().set_value("example");
15159 /// ```
15160 pub fn set_value<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15161 self.value = v.into();
15162 self
15163 }
15164
15165 /// Sets the value of [effect][crate::model::NodeTaint::effect].
15166 ///
15167 /// # Example
15168 /// ```ignore,no_run
15169 /// # use google_cloud_gkemulticloud_v1::model::NodeTaint;
15170 /// use google_cloud_gkemulticloud_v1::model::node_taint::Effect;
15171 /// let x0 = NodeTaint::new().set_effect(Effect::NoSchedule);
15172 /// let x1 = NodeTaint::new().set_effect(Effect::PreferNoSchedule);
15173 /// let x2 = NodeTaint::new().set_effect(Effect::NoExecute);
15174 /// ```
15175 pub fn set_effect<T: std::convert::Into<crate::model::node_taint::Effect>>(
15176 mut self,
15177 v: T,
15178 ) -> Self {
15179 self.effect = v.into();
15180 self
15181 }
15182}
15183
15184impl wkt::message::Message for NodeTaint {
15185 fn typename() -> &'static str {
15186 "type.googleapis.com/google.cloud.gkemulticloud.v1.NodeTaint"
15187 }
15188}
15189
15190/// Defines additional types related to [NodeTaint].
15191pub mod node_taint {
15192 #[allow(unused_imports)]
15193 use super::*;
15194
15195 /// The taint effect.
15196 ///
15197 /// # Working with unknown values
15198 ///
15199 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
15200 /// additional enum variants at any time. Adding new variants is not considered
15201 /// a breaking change. Applications should write their code in anticipation of:
15202 ///
15203 /// - New values appearing in future releases of the client library, **and**
15204 /// - New values received dynamically, without application changes.
15205 ///
15206 /// Please consult the [Working with enums] section in the user guide for some
15207 /// guidelines.
15208 ///
15209 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
15210 #[derive(Clone, Debug, PartialEq)]
15211 #[non_exhaustive]
15212 pub enum Effect {
15213 /// Not set.
15214 Unspecified,
15215 /// Do not allow new pods to schedule onto the node unless they tolerate the
15216 /// taint, but allow all pods submitted to Kubelet without going through the
15217 /// scheduler to start, and allow all already-running pods to continue
15218 /// running. Enforced by the scheduler.
15219 NoSchedule,
15220 /// Like TaintEffectNoSchedule, but the scheduler tries not to schedule
15221 /// new pods onto the node, rather than prohibiting new pods from scheduling
15222 /// onto the node entirely. Enforced by the scheduler.
15223 PreferNoSchedule,
15224 /// Evict any already-running pods that do not tolerate the taint.
15225 /// Currently enforced by NodeController.
15226 NoExecute,
15227 /// If set, the enum was initialized with an unknown value.
15228 ///
15229 /// Applications can examine the value using [Effect::value] or
15230 /// [Effect::name].
15231 UnknownValue(effect::UnknownValue),
15232 }
15233
15234 #[doc(hidden)]
15235 pub mod effect {
15236 #[allow(unused_imports)]
15237 use super::*;
15238 #[derive(Clone, Debug, PartialEq)]
15239 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
15240 }
15241
15242 impl Effect {
15243 /// Gets the enum value.
15244 ///
15245 /// Returns `None` if the enum contains an unknown value deserialized from
15246 /// the string representation of enums.
15247 pub fn value(&self) -> std::option::Option<i32> {
15248 match self {
15249 Self::Unspecified => std::option::Option::Some(0),
15250 Self::NoSchedule => std::option::Option::Some(1),
15251 Self::PreferNoSchedule => std::option::Option::Some(2),
15252 Self::NoExecute => std::option::Option::Some(3),
15253 Self::UnknownValue(u) => u.0.value(),
15254 }
15255 }
15256
15257 /// Gets the enum value as a string.
15258 ///
15259 /// Returns `None` if the enum contains an unknown value deserialized from
15260 /// the integer representation of enums.
15261 pub fn name(&self) -> std::option::Option<&str> {
15262 match self {
15263 Self::Unspecified => std::option::Option::Some("EFFECT_UNSPECIFIED"),
15264 Self::NoSchedule => std::option::Option::Some("NO_SCHEDULE"),
15265 Self::PreferNoSchedule => std::option::Option::Some("PREFER_NO_SCHEDULE"),
15266 Self::NoExecute => std::option::Option::Some("NO_EXECUTE"),
15267 Self::UnknownValue(u) => u.0.name(),
15268 }
15269 }
15270 }
15271
15272 impl std::default::Default for Effect {
15273 fn default() -> Self {
15274 use std::convert::From;
15275 Self::from(0)
15276 }
15277 }
15278
15279 impl std::fmt::Display for Effect {
15280 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
15281 wkt::internal::display_enum(f, self.name(), self.value())
15282 }
15283 }
15284
15285 impl std::convert::From<i32> for Effect {
15286 fn from(value: i32) -> Self {
15287 match value {
15288 0 => Self::Unspecified,
15289 1 => Self::NoSchedule,
15290 2 => Self::PreferNoSchedule,
15291 3 => Self::NoExecute,
15292 _ => Self::UnknownValue(effect::UnknownValue(
15293 wkt::internal::UnknownEnumValue::Integer(value),
15294 )),
15295 }
15296 }
15297 }
15298
15299 impl std::convert::From<&str> for Effect {
15300 fn from(value: &str) -> Self {
15301 use std::string::ToString;
15302 match value {
15303 "EFFECT_UNSPECIFIED" => Self::Unspecified,
15304 "NO_SCHEDULE" => Self::NoSchedule,
15305 "PREFER_NO_SCHEDULE" => Self::PreferNoSchedule,
15306 "NO_EXECUTE" => Self::NoExecute,
15307 _ => Self::UnknownValue(effect::UnknownValue(
15308 wkt::internal::UnknownEnumValue::String(value.to_string()),
15309 )),
15310 }
15311 }
15312 }
15313
15314 impl serde::ser::Serialize for Effect {
15315 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
15316 where
15317 S: serde::Serializer,
15318 {
15319 match self {
15320 Self::Unspecified => serializer.serialize_i32(0),
15321 Self::NoSchedule => serializer.serialize_i32(1),
15322 Self::PreferNoSchedule => serializer.serialize_i32(2),
15323 Self::NoExecute => serializer.serialize_i32(3),
15324 Self::UnknownValue(u) => u.0.serialize(serializer),
15325 }
15326 }
15327 }
15328
15329 impl<'de> serde::de::Deserialize<'de> for Effect {
15330 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
15331 where
15332 D: serde::Deserializer<'de>,
15333 {
15334 deserializer.deserialize_any(wkt::internal::EnumVisitor::<Effect>::new(
15335 ".google.cloud.gkemulticloud.v1.NodeTaint.Effect",
15336 ))
15337 }
15338 }
15339}
15340
15341/// Configuration for node pool kubelet options.
15342#[derive(Clone, Default, PartialEq)]
15343#[non_exhaustive]
15344pub struct NodeKubeletConfig {
15345 /// Optional. Enable the insecure kubelet read only port.
15346 pub insecure_kubelet_readonly_port_enabled: bool,
15347
15348 /// Optional. Control the CPU management policy on the node.
15349 /// See
15350 /// <https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/>
15351 ///
15352 /// The following values are allowed.
15353 ///
15354 /// * "none": the default, which represents the existing scheduling behavior.
15355 /// * "static": allows pods with certain resource characteristics to be granted
15356 /// increased CPU affinity and exclusivity on the node.
15357 /// The default value is 'none' if unspecified.
15358 pub cpu_manager_policy: std::option::Option<std::string::String>,
15359
15360 /// Optional. Enable CPU CFS quota enforcement for containers that specify CPU
15361 /// limits.
15362 ///
15363 /// This option is enabled by default which makes kubelet use CFS quota
15364 /// (<https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt>) to
15365 /// enforce container CPU limits. Otherwise, CPU limits will not be enforced at
15366 /// all.
15367 ///
15368 /// Disable this option to mitigate CPU throttling problems while still having
15369 /// your pods to be in Guaranteed QoS class by specifying the CPU limits.
15370 ///
15371 /// The default value is 'true' if unspecified.
15372 pub cpu_cfs_quota: std::option::Option<bool>,
15373
15374 /// Optional. Set the CPU CFS quota period value 'cpu.cfs_period_us'.
15375 ///
15376 /// The string must be a sequence of decimal numbers, each with optional
15377 /// fraction and a unit suffix, such as "300ms".
15378 /// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
15379 /// The value must be a positive duration.
15380 ///
15381 /// The default value is '100ms' if unspecified.
15382 pub cpu_cfs_quota_period: std::option::Option<std::string::String>,
15383
15384 /// Optional. Set the Pod PID limits. See
15385 /// <https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits>
15386 ///
15387 /// Controls the maximum number of processes allowed to run in a pod. The value
15388 /// must be greater than or equal to 1024 and less than 4194304.
15389 pub pod_pids_limit: std::option::Option<i64>,
15390
15391 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15392}
15393
15394impl NodeKubeletConfig {
15395 pub fn new() -> Self {
15396 std::default::Default::default()
15397 }
15398
15399 /// Sets the value of [insecure_kubelet_readonly_port_enabled][crate::model::NodeKubeletConfig::insecure_kubelet_readonly_port_enabled].
15400 ///
15401 /// # Example
15402 /// ```ignore,no_run
15403 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15404 /// let x = NodeKubeletConfig::new().set_insecure_kubelet_readonly_port_enabled(true);
15405 /// ```
15406 pub fn set_insecure_kubelet_readonly_port_enabled<T: std::convert::Into<bool>>(
15407 mut self,
15408 v: T,
15409 ) -> Self {
15410 self.insecure_kubelet_readonly_port_enabled = v.into();
15411 self
15412 }
15413
15414 /// Sets the value of [cpu_manager_policy][crate::model::NodeKubeletConfig::cpu_manager_policy].
15415 ///
15416 /// # Example
15417 /// ```ignore,no_run
15418 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15419 /// let x = NodeKubeletConfig::new().set_cpu_manager_policy("example");
15420 /// ```
15421 pub fn set_cpu_manager_policy<T>(mut self, v: T) -> Self
15422 where
15423 T: std::convert::Into<std::string::String>,
15424 {
15425 self.cpu_manager_policy = std::option::Option::Some(v.into());
15426 self
15427 }
15428
15429 /// Sets or clears the value of [cpu_manager_policy][crate::model::NodeKubeletConfig::cpu_manager_policy].
15430 ///
15431 /// # Example
15432 /// ```ignore,no_run
15433 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15434 /// let x = NodeKubeletConfig::new().set_or_clear_cpu_manager_policy(Some("example"));
15435 /// let x = NodeKubeletConfig::new().set_or_clear_cpu_manager_policy(None::<String>);
15436 /// ```
15437 pub fn set_or_clear_cpu_manager_policy<T>(mut self, v: std::option::Option<T>) -> Self
15438 where
15439 T: std::convert::Into<std::string::String>,
15440 {
15441 self.cpu_manager_policy = v.map(|x| x.into());
15442 self
15443 }
15444
15445 /// Sets the value of [cpu_cfs_quota][crate::model::NodeKubeletConfig::cpu_cfs_quota].
15446 ///
15447 /// # Example
15448 /// ```ignore,no_run
15449 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15450 /// let x = NodeKubeletConfig::new().set_cpu_cfs_quota(true);
15451 /// ```
15452 pub fn set_cpu_cfs_quota<T>(mut self, v: T) -> Self
15453 where
15454 T: std::convert::Into<bool>,
15455 {
15456 self.cpu_cfs_quota = std::option::Option::Some(v.into());
15457 self
15458 }
15459
15460 /// Sets or clears the value of [cpu_cfs_quota][crate::model::NodeKubeletConfig::cpu_cfs_quota].
15461 ///
15462 /// # Example
15463 /// ```ignore,no_run
15464 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15465 /// let x = NodeKubeletConfig::new().set_or_clear_cpu_cfs_quota(Some(false));
15466 /// let x = NodeKubeletConfig::new().set_or_clear_cpu_cfs_quota(None::<bool>);
15467 /// ```
15468 pub fn set_or_clear_cpu_cfs_quota<T>(mut self, v: std::option::Option<T>) -> Self
15469 where
15470 T: std::convert::Into<bool>,
15471 {
15472 self.cpu_cfs_quota = v.map(|x| x.into());
15473 self
15474 }
15475
15476 /// Sets the value of [cpu_cfs_quota_period][crate::model::NodeKubeletConfig::cpu_cfs_quota_period].
15477 ///
15478 /// # Example
15479 /// ```ignore,no_run
15480 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15481 /// let x = NodeKubeletConfig::new().set_cpu_cfs_quota_period("example");
15482 /// ```
15483 pub fn set_cpu_cfs_quota_period<T>(mut self, v: T) -> Self
15484 where
15485 T: std::convert::Into<std::string::String>,
15486 {
15487 self.cpu_cfs_quota_period = std::option::Option::Some(v.into());
15488 self
15489 }
15490
15491 /// Sets or clears the value of [cpu_cfs_quota_period][crate::model::NodeKubeletConfig::cpu_cfs_quota_period].
15492 ///
15493 /// # Example
15494 /// ```ignore,no_run
15495 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15496 /// let x = NodeKubeletConfig::new().set_or_clear_cpu_cfs_quota_period(Some("example"));
15497 /// let x = NodeKubeletConfig::new().set_or_clear_cpu_cfs_quota_period(None::<String>);
15498 /// ```
15499 pub fn set_or_clear_cpu_cfs_quota_period<T>(mut self, v: std::option::Option<T>) -> Self
15500 where
15501 T: std::convert::Into<std::string::String>,
15502 {
15503 self.cpu_cfs_quota_period = v.map(|x| x.into());
15504 self
15505 }
15506
15507 /// Sets the value of [pod_pids_limit][crate::model::NodeKubeletConfig::pod_pids_limit].
15508 ///
15509 /// # Example
15510 /// ```ignore,no_run
15511 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15512 /// let x = NodeKubeletConfig::new().set_pod_pids_limit(42);
15513 /// ```
15514 pub fn set_pod_pids_limit<T>(mut self, v: T) -> Self
15515 where
15516 T: std::convert::Into<i64>,
15517 {
15518 self.pod_pids_limit = std::option::Option::Some(v.into());
15519 self
15520 }
15521
15522 /// Sets or clears the value of [pod_pids_limit][crate::model::NodeKubeletConfig::pod_pids_limit].
15523 ///
15524 /// # Example
15525 /// ```ignore,no_run
15526 /// # use google_cloud_gkemulticloud_v1::model::NodeKubeletConfig;
15527 /// let x = NodeKubeletConfig::new().set_or_clear_pod_pids_limit(Some(42));
15528 /// let x = NodeKubeletConfig::new().set_or_clear_pod_pids_limit(None::<i32>);
15529 /// ```
15530 pub fn set_or_clear_pod_pids_limit<T>(mut self, v: std::option::Option<T>) -> Self
15531 where
15532 T: std::convert::Into<i64>,
15533 {
15534 self.pod_pids_limit = v.map(|x| x.into());
15535 self
15536 }
15537}
15538
15539impl wkt::message::Message for NodeKubeletConfig {
15540 fn typename() -> &'static str {
15541 "type.googleapis.com/google.cloud.gkemulticloud.v1.NodeKubeletConfig"
15542 }
15543}
15544
15545/// Fleet related configuration.
15546///
15547/// Fleets are a Google Cloud concept for logically organizing clusters,
15548/// letting you use and manage multi-cluster capabilities and apply
15549/// consistent policies across your systems.
15550///
15551/// See [Anthos
15552/// Fleets](https://cloud.google.com/anthos/multicluster-management/fleets) for
15553/// more details on Anthos multi-cluster capabilities using Fleets.
15554#[derive(Clone, Default, PartialEq)]
15555#[non_exhaustive]
15556pub struct Fleet {
15557 /// Required. The name of the Fleet host project where this cluster will be
15558 /// registered.
15559 ///
15560 /// Project names are formatted as
15561 /// `projects/<project-number>`.
15562 pub project: std::string::String,
15563
15564 /// Output only. The name of the managed Hub Membership resource associated to
15565 /// this cluster.
15566 ///
15567 /// Membership names are formatted as
15568 /// `projects/<project-number>/locations/global/membership/<cluster-id>`.
15569 pub membership: std::string::String,
15570
15571 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15572}
15573
15574impl Fleet {
15575 pub fn new() -> Self {
15576 std::default::Default::default()
15577 }
15578
15579 /// Sets the value of [project][crate::model::Fleet::project].
15580 ///
15581 /// # Example
15582 /// ```ignore,no_run
15583 /// # use google_cloud_gkemulticloud_v1::model::Fleet;
15584 /// let x = Fleet::new().set_project("example");
15585 /// ```
15586 pub fn set_project<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15587 self.project = v.into();
15588 self
15589 }
15590
15591 /// Sets the value of [membership][crate::model::Fleet::membership].
15592 ///
15593 /// # Example
15594 /// ```ignore,no_run
15595 /// # use google_cloud_gkemulticloud_v1::model::Fleet;
15596 /// let x = Fleet::new().set_membership("example");
15597 /// ```
15598 pub fn set_membership<T: std::convert::Into<std::string::String>>(mut self, v: T) -> Self {
15599 self.membership = v.into();
15600 self
15601 }
15602}
15603
15604impl wkt::message::Message for Fleet {
15605 fn typename() -> &'static str {
15606 "type.googleapis.com/google.cloud.gkemulticloud.v1.Fleet"
15607 }
15608}
15609
15610/// Parameters that describe the Logging configuration in a cluster.
15611#[derive(Clone, Default, PartialEq)]
15612#[non_exhaustive]
15613pub struct LoggingConfig {
15614 /// The configuration of the logging components;
15615 pub component_config: std::option::Option<crate::model::LoggingComponentConfig>,
15616
15617 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15618}
15619
15620impl LoggingConfig {
15621 pub fn new() -> Self {
15622 std::default::Default::default()
15623 }
15624
15625 /// Sets the value of [component_config][crate::model::LoggingConfig::component_config].
15626 ///
15627 /// # Example
15628 /// ```ignore,no_run
15629 /// # use google_cloud_gkemulticloud_v1::model::LoggingConfig;
15630 /// use google_cloud_gkemulticloud_v1::model::LoggingComponentConfig;
15631 /// let x = LoggingConfig::new().set_component_config(LoggingComponentConfig::default()/* use setters */);
15632 /// ```
15633 pub fn set_component_config<T>(mut self, v: T) -> Self
15634 where
15635 T: std::convert::Into<crate::model::LoggingComponentConfig>,
15636 {
15637 self.component_config = std::option::Option::Some(v.into());
15638 self
15639 }
15640
15641 /// Sets or clears the value of [component_config][crate::model::LoggingConfig::component_config].
15642 ///
15643 /// # Example
15644 /// ```ignore,no_run
15645 /// # use google_cloud_gkemulticloud_v1::model::LoggingConfig;
15646 /// use google_cloud_gkemulticloud_v1::model::LoggingComponentConfig;
15647 /// let x = LoggingConfig::new().set_or_clear_component_config(Some(LoggingComponentConfig::default()/* use setters */));
15648 /// let x = LoggingConfig::new().set_or_clear_component_config(None::<LoggingComponentConfig>);
15649 /// ```
15650 pub fn set_or_clear_component_config<T>(mut self, v: std::option::Option<T>) -> Self
15651 where
15652 T: std::convert::Into<crate::model::LoggingComponentConfig>,
15653 {
15654 self.component_config = v.map(|x| x.into());
15655 self
15656 }
15657}
15658
15659impl wkt::message::Message for LoggingConfig {
15660 fn typename() -> &'static str {
15661 "type.googleapis.com/google.cloud.gkemulticloud.v1.LoggingConfig"
15662 }
15663}
15664
15665/// Parameters that describe the Logging component configuration in a cluster.
15666#[derive(Clone, Default, PartialEq)]
15667#[non_exhaustive]
15668pub struct LoggingComponentConfig {
15669 /// The components to be enabled.
15670 pub enable_components: std::vec::Vec<crate::model::logging_component_config::Component>,
15671
15672 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15673}
15674
15675impl LoggingComponentConfig {
15676 pub fn new() -> Self {
15677 std::default::Default::default()
15678 }
15679
15680 /// Sets the value of [enable_components][crate::model::LoggingComponentConfig::enable_components].
15681 ///
15682 /// # Example
15683 /// ```ignore,no_run
15684 /// # use google_cloud_gkemulticloud_v1::model::LoggingComponentConfig;
15685 /// use google_cloud_gkemulticloud_v1::model::logging_component_config::Component;
15686 /// let x = LoggingComponentConfig::new().set_enable_components([
15687 /// Component::SystemComponents,
15688 /// Component::Workloads,
15689 /// ]);
15690 /// ```
15691 pub fn set_enable_components<T, V>(mut self, v: T) -> Self
15692 where
15693 T: std::iter::IntoIterator<Item = V>,
15694 V: std::convert::Into<crate::model::logging_component_config::Component>,
15695 {
15696 use std::iter::Iterator;
15697 self.enable_components = v.into_iter().map(|i| i.into()).collect();
15698 self
15699 }
15700}
15701
15702impl wkt::message::Message for LoggingComponentConfig {
15703 fn typename() -> &'static str {
15704 "type.googleapis.com/google.cloud.gkemulticloud.v1.LoggingComponentConfig"
15705 }
15706}
15707
15708/// Defines additional types related to [LoggingComponentConfig].
15709pub mod logging_component_config {
15710 #[allow(unused_imports)]
15711 use super::*;
15712
15713 /// The components of the logging configuration;
15714 ///
15715 /// # Working with unknown values
15716 ///
15717 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
15718 /// additional enum variants at any time. Adding new variants is not considered
15719 /// a breaking change. Applications should write their code in anticipation of:
15720 ///
15721 /// - New values appearing in future releases of the client library, **and**
15722 /// - New values received dynamically, without application changes.
15723 ///
15724 /// Please consult the [Working with enums] section in the user guide for some
15725 /// guidelines.
15726 ///
15727 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
15728 #[derive(Clone, Debug, PartialEq)]
15729 #[non_exhaustive]
15730 pub enum Component {
15731 /// No component is specified
15732 Unspecified,
15733 /// This indicates that system logging components is enabled.
15734 SystemComponents,
15735 /// This indicates that user workload logging component is enabled.
15736 Workloads,
15737 /// If set, the enum was initialized with an unknown value.
15738 ///
15739 /// Applications can examine the value using [Component::value] or
15740 /// [Component::name].
15741 UnknownValue(component::UnknownValue),
15742 }
15743
15744 #[doc(hidden)]
15745 pub mod component {
15746 #[allow(unused_imports)]
15747 use super::*;
15748 #[derive(Clone, Debug, PartialEq)]
15749 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
15750 }
15751
15752 impl Component {
15753 /// Gets the enum value.
15754 ///
15755 /// Returns `None` if the enum contains an unknown value deserialized from
15756 /// the string representation of enums.
15757 pub fn value(&self) -> std::option::Option<i32> {
15758 match self {
15759 Self::Unspecified => std::option::Option::Some(0),
15760 Self::SystemComponents => std::option::Option::Some(1),
15761 Self::Workloads => std::option::Option::Some(2),
15762 Self::UnknownValue(u) => u.0.value(),
15763 }
15764 }
15765
15766 /// Gets the enum value as a string.
15767 ///
15768 /// Returns `None` if the enum contains an unknown value deserialized from
15769 /// the integer representation of enums.
15770 pub fn name(&self) -> std::option::Option<&str> {
15771 match self {
15772 Self::Unspecified => std::option::Option::Some("COMPONENT_UNSPECIFIED"),
15773 Self::SystemComponents => std::option::Option::Some("SYSTEM_COMPONENTS"),
15774 Self::Workloads => std::option::Option::Some("WORKLOADS"),
15775 Self::UnknownValue(u) => u.0.name(),
15776 }
15777 }
15778 }
15779
15780 impl std::default::Default for Component {
15781 fn default() -> Self {
15782 use std::convert::From;
15783 Self::from(0)
15784 }
15785 }
15786
15787 impl std::fmt::Display for Component {
15788 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
15789 wkt::internal::display_enum(f, self.name(), self.value())
15790 }
15791 }
15792
15793 impl std::convert::From<i32> for Component {
15794 fn from(value: i32) -> Self {
15795 match value {
15796 0 => Self::Unspecified,
15797 1 => Self::SystemComponents,
15798 2 => Self::Workloads,
15799 _ => Self::UnknownValue(component::UnknownValue(
15800 wkt::internal::UnknownEnumValue::Integer(value),
15801 )),
15802 }
15803 }
15804 }
15805
15806 impl std::convert::From<&str> for Component {
15807 fn from(value: &str) -> Self {
15808 use std::string::ToString;
15809 match value {
15810 "COMPONENT_UNSPECIFIED" => Self::Unspecified,
15811 "SYSTEM_COMPONENTS" => Self::SystemComponents,
15812 "WORKLOADS" => Self::Workloads,
15813 _ => Self::UnknownValue(component::UnknownValue(
15814 wkt::internal::UnknownEnumValue::String(value.to_string()),
15815 )),
15816 }
15817 }
15818 }
15819
15820 impl serde::ser::Serialize for Component {
15821 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
15822 where
15823 S: serde::Serializer,
15824 {
15825 match self {
15826 Self::Unspecified => serializer.serialize_i32(0),
15827 Self::SystemComponents => serializer.serialize_i32(1),
15828 Self::Workloads => serializer.serialize_i32(2),
15829 Self::UnknownValue(u) => u.0.serialize(serializer),
15830 }
15831 }
15832 }
15833
15834 impl<'de> serde::de::Deserialize<'de> for Component {
15835 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
15836 where
15837 D: serde::Deserializer<'de>,
15838 {
15839 deserializer.deserialize_any(wkt::internal::EnumVisitor::<Component>::new(
15840 ".google.cloud.gkemulticloud.v1.LoggingComponentConfig.Component",
15841 ))
15842 }
15843 }
15844}
15845
15846/// Parameters that describe the Monitoring configuration in a cluster.
15847#[derive(Clone, Default, PartialEq)]
15848#[non_exhaustive]
15849pub struct MonitoringConfig {
15850 /// Enable Google Cloud Managed Service for Prometheus in the cluster.
15851 pub managed_prometheus_config: std::option::Option<crate::model::ManagedPrometheusConfig>,
15852
15853 /// Optionally enable GKE metrics.
15854 /// Only for Attached Clusters.
15855 pub cloud_monitoring_config: std::option::Option<crate::model::CloudMonitoringConfig>,
15856
15857 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15858}
15859
15860impl MonitoringConfig {
15861 pub fn new() -> Self {
15862 std::default::Default::default()
15863 }
15864
15865 /// Sets the value of [managed_prometheus_config][crate::model::MonitoringConfig::managed_prometheus_config].
15866 ///
15867 /// # Example
15868 /// ```ignore,no_run
15869 /// # use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
15870 /// use google_cloud_gkemulticloud_v1::model::ManagedPrometheusConfig;
15871 /// let x = MonitoringConfig::new().set_managed_prometheus_config(ManagedPrometheusConfig::default()/* use setters */);
15872 /// ```
15873 pub fn set_managed_prometheus_config<T>(mut self, v: T) -> Self
15874 where
15875 T: std::convert::Into<crate::model::ManagedPrometheusConfig>,
15876 {
15877 self.managed_prometheus_config = std::option::Option::Some(v.into());
15878 self
15879 }
15880
15881 /// Sets or clears the value of [managed_prometheus_config][crate::model::MonitoringConfig::managed_prometheus_config].
15882 ///
15883 /// # Example
15884 /// ```ignore,no_run
15885 /// # use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
15886 /// use google_cloud_gkemulticloud_v1::model::ManagedPrometheusConfig;
15887 /// let x = MonitoringConfig::new().set_or_clear_managed_prometheus_config(Some(ManagedPrometheusConfig::default()/* use setters */));
15888 /// let x = MonitoringConfig::new().set_or_clear_managed_prometheus_config(None::<ManagedPrometheusConfig>);
15889 /// ```
15890 pub fn set_or_clear_managed_prometheus_config<T>(mut self, v: std::option::Option<T>) -> Self
15891 where
15892 T: std::convert::Into<crate::model::ManagedPrometheusConfig>,
15893 {
15894 self.managed_prometheus_config = v.map(|x| x.into());
15895 self
15896 }
15897
15898 /// Sets the value of [cloud_monitoring_config][crate::model::MonitoringConfig::cloud_monitoring_config].
15899 ///
15900 /// # Example
15901 /// ```ignore,no_run
15902 /// # use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
15903 /// use google_cloud_gkemulticloud_v1::model::CloudMonitoringConfig;
15904 /// let x = MonitoringConfig::new().set_cloud_monitoring_config(CloudMonitoringConfig::default()/* use setters */);
15905 /// ```
15906 pub fn set_cloud_monitoring_config<T>(mut self, v: T) -> Self
15907 where
15908 T: std::convert::Into<crate::model::CloudMonitoringConfig>,
15909 {
15910 self.cloud_monitoring_config = std::option::Option::Some(v.into());
15911 self
15912 }
15913
15914 /// Sets or clears the value of [cloud_monitoring_config][crate::model::MonitoringConfig::cloud_monitoring_config].
15915 ///
15916 /// # Example
15917 /// ```ignore,no_run
15918 /// # use google_cloud_gkemulticloud_v1::model::MonitoringConfig;
15919 /// use google_cloud_gkemulticloud_v1::model::CloudMonitoringConfig;
15920 /// let x = MonitoringConfig::new().set_or_clear_cloud_monitoring_config(Some(CloudMonitoringConfig::default()/* use setters */));
15921 /// let x = MonitoringConfig::new().set_or_clear_cloud_monitoring_config(None::<CloudMonitoringConfig>);
15922 /// ```
15923 pub fn set_or_clear_cloud_monitoring_config<T>(mut self, v: std::option::Option<T>) -> Self
15924 where
15925 T: std::convert::Into<crate::model::CloudMonitoringConfig>,
15926 {
15927 self.cloud_monitoring_config = v.map(|x| x.into());
15928 self
15929 }
15930}
15931
15932impl wkt::message::Message for MonitoringConfig {
15933 fn typename() -> &'static str {
15934 "type.googleapis.com/google.cloud.gkemulticloud.v1.MonitoringConfig"
15935 }
15936}
15937
15938/// ManagedPrometheusConfig defines the configuration for
15939/// Google Cloud Managed Service for Prometheus.
15940#[derive(Clone, Default, PartialEq)]
15941#[non_exhaustive]
15942pub struct ManagedPrometheusConfig {
15943 /// Enable Managed Collection.
15944 pub enabled: bool,
15945
15946 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15947}
15948
15949impl ManagedPrometheusConfig {
15950 pub fn new() -> Self {
15951 std::default::Default::default()
15952 }
15953
15954 /// Sets the value of [enabled][crate::model::ManagedPrometheusConfig::enabled].
15955 ///
15956 /// # Example
15957 /// ```ignore,no_run
15958 /// # use google_cloud_gkemulticloud_v1::model::ManagedPrometheusConfig;
15959 /// let x = ManagedPrometheusConfig::new().set_enabled(true);
15960 /// ```
15961 pub fn set_enabled<T: std::convert::Into<bool>>(mut self, v: T) -> Self {
15962 self.enabled = v.into();
15963 self
15964 }
15965}
15966
15967impl wkt::message::Message for ManagedPrometheusConfig {
15968 fn typename() -> &'static str {
15969 "type.googleapis.com/google.cloud.gkemulticloud.v1.ManagedPrometheusConfig"
15970 }
15971}
15972
15973/// CloudMonitoringConfig defines the configuration for
15974/// built-in Cloud Logging and Monitoring.
15975/// Only for Attached Clusters.
15976#[derive(Clone, Default, PartialEq)]
15977#[non_exhaustive]
15978pub struct CloudMonitoringConfig {
15979 /// Enable GKE-native logging and metrics.
15980 /// Only for Attached Clusters.
15981 pub enabled: std::option::Option<bool>,
15982
15983 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
15984}
15985
15986impl CloudMonitoringConfig {
15987 pub fn new() -> Self {
15988 std::default::Default::default()
15989 }
15990
15991 /// Sets the value of [enabled][crate::model::CloudMonitoringConfig::enabled].
15992 ///
15993 /// # Example
15994 /// ```ignore,no_run
15995 /// # use google_cloud_gkemulticloud_v1::model::CloudMonitoringConfig;
15996 /// let x = CloudMonitoringConfig::new().set_enabled(true);
15997 /// ```
15998 pub fn set_enabled<T>(mut self, v: T) -> Self
15999 where
16000 T: std::convert::Into<bool>,
16001 {
16002 self.enabled = std::option::Option::Some(v.into());
16003 self
16004 }
16005
16006 /// Sets or clears the value of [enabled][crate::model::CloudMonitoringConfig::enabled].
16007 ///
16008 /// # Example
16009 /// ```ignore,no_run
16010 /// # use google_cloud_gkemulticloud_v1::model::CloudMonitoringConfig;
16011 /// let x = CloudMonitoringConfig::new().set_or_clear_enabled(Some(false));
16012 /// let x = CloudMonitoringConfig::new().set_or_clear_enabled(None::<bool>);
16013 /// ```
16014 pub fn set_or_clear_enabled<T>(mut self, v: std::option::Option<T>) -> Self
16015 where
16016 T: std::convert::Into<bool>,
16017 {
16018 self.enabled = v.map(|x| x.into());
16019 self
16020 }
16021}
16022
16023impl wkt::message::Message for CloudMonitoringConfig {
16024 fn typename() -> &'static str {
16025 "type.googleapis.com/google.cloud.gkemulticloud.v1.CloudMonitoringConfig"
16026 }
16027}
16028
16029/// Configuration for Binary Authorization.
16030#[derive(Clone, Default, PartialEq)]
16031#[non_exhaustive]
16032pub struct BinaryAuthorization {
16033 /// Mode of operation for binauthz policy evaluation. If unspecified, defaults
16034 /// to DISABLED.
16035 pub evaluation_mode: crate::model::binary_authorization::EvaluationMode,
16036
16037 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
16038}
16039
16040impl BinaryAuthorization {
16041 pub fn new() -> Self {
16042 std::default::Default::default()
16043 }
16044
16045 /// Sets the value of [evaluation_mode][crate::model::BinaryAuthorization::evaluation_mode].
16046 ///
16047 /// # Example
16048 /// ```ignore,no_run
16049 /// # use google_cloud_gkemulticloud_v1::model::BinaryAuthorization;
16050 /// use google_cloud_gkemulticloud_v1::model::binary_authorization::EvaluationMode;
16051 /// let x0 = BinaryAuthorization::new().set_evaluation_mode(EvaluationMode::Disabled);
16052 /// let x1 = BinaryAuthorization::new().set_evaluation_mode(EvaluationMode::ProjectSingletonPolicyEnforce);
16053 /// ```
16054 pub fn set_evaluation_mode<
16055 T: std::convert::Into<crate::model::binary_authorization::EvaluationMode>,
16056 >(
16057 mut self,
16058 v: T,
16059 ) -> Self {
16060 self.evaluation_mode = v.into();
16061 self
16062 }
16063}
16064
16065impl wkt::message::Message for BinaryAuthorization {
16066 fn typename() -> &'static str {
16067 "type.googleapis.com/google.cloud.gkemulticloud.v1.BinaryAuthorization"
16068 }
16069}
16070
16071/// Defines additional types related to [BinaryAuthorization].
16072pub mod binary_authorization {
16073 #[allow(unused_imports)]
16074 use super::*;
16075
16076 /// Binary Authorization mode of operation.
16077 ///
16078 /// # Working with unknown values
16079 ///
16080 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
16081 /// additional enum variants at any time. Adding new variants is not considered
16082 /// a breaking change. Applications should write their code in anticipation of:
16083 ///
16084 /// - New values appearing in future releases of the client library, **and**
16085 /// - New values received dynamically, without application changes.
16086 ///
16087 /// Please consult the [Working with enums] section in the user guide for some
16088 /// guidelines.
16089 ///
16090 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
16091 #[derive(Clone, Debug, PartialEq)]
16092 #[non_exhaustive]
16093 pub enum EvaluationMode {
16094 /// Default value
16095 Unspecified,
16096 /// Disable BinaryAuthorization
16097 Disabled,
16098 /// Enforce Kubernetes admission requests with BinaryAuthorization using the
16099 /// project's singleton policy.
16100 ProjectSingletonPolicyEnforce,
16101 /// If set, the enum was initialized with an unknown value.
16102 ///
16103 /// Applications can examine the value using [EvaluationMode::value] or
16104 /// [EvaluationMode::name].
16105 UnknownValue(evaluation_mode::UnknownValue),
16106 }
16107
16108 #[doc(hidden)]
16109 pub mod evaluation_mode {
16110 #[allow(unused_imports)]
16111 use super::*;
16112 #[derive(Clone, Debug, PartialEq)]
16113 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
16114 }
16115
16116 impl EvaluationMode {
16117 /// Gets the enum value.
16118 ///
16119 /// Returns `None` if the enum contains an unknown value deserialized from
16120 /// the string representation of enums.
16121 pub fn value(&self) -> std::option::Option<i32> {
16122 match self {
16123 Self::Unspecified => std::option::Option::Some(0),
16124 Self::Disabled => std::option::Option::Some(1),
16125 Self::ProjectSingletonPolicyEnforce => std::option::Option::Some(2),
16126 Self::UnknownValue(u) => u.0.value(),
16127 }
16128 }
16129
16130 /// Gets the enum value as a string.
16131 ///
16132 /// Returns `None` if the enum contains an unknown value deserialized from
16133 /// the integer representation of enums.
16134 pub fn name(&self) -> std::option::Option<&str> {
16135 match self {
16136 Self::Unspecified => std::option::Option::Some("EVALUATION_MODE_UNSPECIFIED"),
16137 Self::Disabled => std::option::Option::Some("DISABLED"),
16138 Self::ProjectSingletonPolicyEnforce => {
16139 std::option::Option::Some("PROJECT_SINGLETON_POLICY_ENFORCE")
16140 }
16141 Self::UnknownValue(u) => u.0.name(),
16142 }
16143 }
16144 }
16145
16146 impl std::default::Default for EvaluationMode {
16147 fn default() -> Self {
16148 use std::convert::From;
16149 Self::from(0)
16150 }
16151 }
16152
16153 impl std::fmt::Display for EvaluationMode {
16154 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
16155 wkt::internal::display_enum(f, self.name(), self.value())
16156 }
16157 }
16158
16159 impl std::convert::From<i32> for EvaluationMode {
16160 fn from(value: i32) -> Self {
16161 match value {
16162 0 => Self::Unspecified,
16163 1 => Self::Disabled,
16164 2 => Self::ProjectSingletonPolicyEnforce,
16165 _ => Self::UnknownValue(evaluation_mode::UnknownValue(
16166 wkt::internal::UnknownEnumValue::Integer(value),
16167 )),
16168 }
16169 }
16170 }
16171
16172 impl std::convert::From<&str> for EvaluationMode {
16173 fn from(value: &str) -> Self {
16174 use std::string::ToString;
16175 match value {
16176 "EVALUATION_MODE_UNSPECIFIED" => Self::Unspecified,
16177 "DISABLED" => Self::Disabled,
16178 "PROJECT_SINGLETON_POLICY_ENFORCE" => Self::ProjectSingletonPolicyEnforce,
16179 _ => Self::UnknownValue(evaluation_mode::UnknownValue(
16180 wkt::internal::UnknownEnumValue::String(value.to_string()),
16181 )),
16182 }
16183 }
16184 }
16185
16186 impl serde::ser::Serialize for EvaluationMode {
16187 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
16188 where
16189 S: serde::Serializer,
16190 {
16191 match self {
16192 Self::Unspecified => serializer.serialize_i32(0),
16193 Self::Disabled => serializer.serialize_i32(1),
16194 Self::ProjectSingletonPolicyEnforce => serializer.serialize_i32(2),
16195 Self::UnknownValue(u) => u.0.serialize(serializer),
16196 }
16197 }
16198 }
16199
16200 impl<'de> serde::de::Deserialize<'de> for EvaluationMode {
16201 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
16202 where
16203 D: serde::Deserializer<'de>,
16204 {
16205 deserializer.deserialize_any(wkt::internal::EnumVisitor::<EvaluationMode>::new(
16206 ".google.cloud.gkemulticloud.v1.BinaryAuthorization.EvaluationMode",
16207 ))
16208 }
16209 }
16210}
16211
16212/// SecurityPostureConfig defines the flags needed to enable/disable features for
16213/// the Security Posture API.
16214#[derive(Clone, Default, PartialEq)]
16215#[non_exhaustive]
16216pub struct SecurityPostureConfig {
16217 /// Sets which mode to use for vulnerability scanning.
16218 pub vulnerability_mode: crate::model::security_posture_config::VulnerabilityMode,
16219
16220 pub(crate) _unknown_fields: serde_json::Map<std::string::String, serde_json::Value>,
16221}
16222
16223impl SecurityPostureConfig {
16224 pub fn new() -> Self {
16225 std::default::Default::default()
16226 }
16227
16228 /// Sets the value of [vulnerability_mode][crate::model::SecurityPostureConfig::vulnerability_mode].
16229 ///
16230 /// # Example
16231 /// ```ignore,no_run
16232 /// # use google_cloud_gkemulticloud_v1::model::SecurityPostureConfig;
16233 /// use google_cloud_gkemulticloud_v1::model::security_posture_config::VulnerabilityMode;
16234 /// let x0 = SecurityPostureConfig::new().set_vulnerability_mode(VulnerabilityMode::VulnerabilityDisabled);
16235 /// let x1 = SecurityPostureConfig::new().set_vulnerability_mode(VulnerabilityMode::VulnerabilityEnterprise);
16236 /// ```
16237 pub fn set_vulnerability_mode<
16238 T: std::convert::Into<crate::model::security_posture_config::VulnerabilityMode>,
16239 >(
16240 mut self,
16241 v: T,
16242 ) -> Self {
16243 self.vulnerability_mode = v.into();
16244 self
16245 }
16246}
16247
16248impl wkt::message::Message for SecurityPostureConfig {
16249 fn typename() -> &'static str {
16250 "type.googleapis.com/google.cloud.gkemulticloud.v1.SecurityPostureConfig"
16251 }
16252}
16253
16254/// Defines additional types related to [SecurityPostureConfig].
16255pub mod security_posture_config {
16256 #[allow(unused_imports)]
16257 use super::*;
16258
16259 /// VulnerabilityMode defines enablement mode for vulnerability scanning.
16260 ///
16261 /// # Working with unknown values
16262 ///
16263 /// This enum is defined as `#[non_exhaustive]` because Google Cloud may add
16264 /// additional enum variants at any time. Adding new variants is not considered
16265 /// a breaking change. Applications should write their code in anticipation of:
16266 ///
16267 /// - New values appearing in future releases of the client library, **and**
16268 /// - New values received dynamically, without application changes.
16269 ///
16270 /// Please consult the [Working with enums] section in the user guide for some
16271 /// guidelines.
16272 ///
16273 /// [Working with enums]: https://google-cloud-rust.github.io/working_with_enums.html
16274 #[derive(Clone, Debug, PartialEq)]
16275 #[non_exhaustive]
16276 pub enum VulnerabilityMode {
16277 /// Default value not specified.
16278 Unspecified,
16279 /// Disables vulnerability scanning on the cluster.
16280 VulnerabilityDisabled,
16281 /// Applies the Security Posture's vulnerability on cluster Enterprise level
16282 /// features.
16283 VulnerabilityEnterprise,
16284 /// If set, the enum was initialized with an unknown value.
16285 ///
16286 /// Applications can examine the value using [VulnerabilityMode::value] or
16287 /// [VulnerabilityMode::name].
16288 UnknownValue(vulnerability_mode::UnknownValue),
16289 }
16290
16291 #[doc(hidden)]
16292 pub mod vulnerability_mode {
16293 #[allow(unused_imports)]
16294 use super::*;
16295 #[derive(Clone, Debug, PartialEq)]
16296 pub struct UnknownValue(pub(crate) wkt::internal::UnknownEnumValue);
16297 }
16298
16299 impl VulnerabilityMode {
16300 /// Gets the enum value.
16301 ///
16302 /// Returns `None` if the enum contains an unknown value deserialized from
16303 /// the string representation of enums.
16304 pub fn value(&self) -> std::option::Option<i32> {
16305 match self {
16306 Self::Unspecified => std::option::Option::Some(0),
16307 Self::VulnerabilityDisabled => std::option::Option::Some(1),
16308 Self::VulnerabilityEnterprise => std::option::Option::Some(2),
16309 Self::UnknownValue(u) => u.0.value(),
16310 }
16311 }
16312
16313 /// Gets the enum value as a string.
16314 ///
16315 /// Returns `None` if the enum contains an unknown value deserialized from
16316 /// the integer representation of enums.
16317 pub fn name(&self) -> std::option::Option<&str> {
16318 match self {
16319 Self::Unspecified => std::option::Option::Some("VULNERABILITY_MODE_UNSPECIFIED"),
16320 Self::VulnerabilityDisabled => std::option::Option::Some("VULNERABILITY_DISABLED"),
16321 Self::VulnerabilityEnterprise => {
16322 std::option::Option::Some("VULNERABILITY_ENTERPRISE")
16323 }
16324 Self::UnknownValue(u) => u.0.name(),
16325 }
16326 }
16327 }
16328
16329 impl std::default::Default for VulnerabilityMode {
16330 fn default() -> Self {
16331 use std::convert::From;
16332 Self::from(0)
16333 }
16334 }
16335
16336 impl std::fmt::Display for VulnerabilityMode {
16337 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
16338 wkt::internal::display_enum(f, self.name(), self.value())
16339 }
16340 }
16341
16342 impl std::convert::From<i32> for VulnerabilityMode {
16343 fn from(value: i32) -> Self {
16344 match value {
16345 0 => Self::Unspecified,
16346 1 => Self::VulnerabilityDisabled,
16347 2 => Self::VulnerabilityEnterprise,
16348 _ => Self::UnknownValue(vulnerability_mode::UnknownValue(
16349 wkt::internal::UnknownEnumValue::Integer(value),
16350 )),
16351 }
16352 }
16353 }
16354
16355 impl std::convert::From<&str> for VulnerabilityMode {
16356 fn from(value: &str) -> Self {
16357 use std::string::ToString;
16358 match value {
16359 "VULNERABILITY_MODE_UNSPECIFIED" => Self::Unspecified,
16360 "VULNERABILITY_DISABLED" => Self::VulnerabilityDisabled,
16361 "VULNERABILITY_ENTERPRISE" => Self::VulnerabilityEnterprise,
16362 _ => Self::UnknownValue(vulnerability_mode::UnknownValue(
16363 wkt::internal::UnknownEnumValue::String(value.to_string()),
16364 )),
16365 }
16366 }
16367 }
16368
16369 impl serde::ser::Serialize for VulnerabilityMode {
16370 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
16371 where
16372 S: serde::Serializer,
16373 {
16374 match self {
16375 Self::Unspecified => serializer.serialize_i32(0),
16376 Self::VulnerabilityDisabled => serializer.serialize_i32(1),
16377 Self::VulnerabilityEnterprise => serializer.serialize_i32(2),
16378 Self::UnknownValue(u) => u.0.serialize(serializer),
16379 }
16380 }
16381 }
16382
16383 impl<'de> serde::de::Deserialize<'de> for VulnerabilityMode {
16384 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
16385 where
16386 D: serde::Deserializer<'de>,
16387 {
16388 deserializer.deserialize_any(wkt::internal::EnumVisitor::<VulnerabilityMode>::new(
16389 ".google.cloud.gkemulticloud.v1.SecurityPostureConfig.VulnerabilityMode",
16390 ))
16391 }
16392 }
16393}