Kubernetes Engine API C++ Client  2.4.0
A C++ Client Library for the Kubernetes Engine API
cluster_manager_client.h
Go to the documentation of this file.
1 // Copyright 2022 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 // Generated by the Codegen C++ plugin.
16 // If you make any local changes, they will be lost.
17 // source: google/container/v1/cluster_service.proto
18 
19 #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINER_CLUSTER_MANAGER_CLIENT_H
20 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINER_CLUSTER_MANAGER_CLIENT_H
21 
22 #include "google/cloud/container/cluster_manager_connection.h"
23 #include "google/cloud/future.h"
24 #include "google/cloud/options.h"
25 #include "google/cloud/polling_policy.h"
26 #include "google/cloud/status_or.h"
27 #include "google/cloud/version.h"
28 #include <map>
29 #include <memory>
30 
31 namespace google {
32 namespace cloud {
33 namespace container {
35 
36 ///
37 /// Google Kubernetes Engine Cluster Manager v1
38 ///
39 /// @par Equality
40 ///
41 /// Instances of this class created via copy-construction or copy-assignment
42 /// always compare equal. Instances created with equal
43 /// `std::shared_ptr<*Connection>` objects compare equal. Objects that compare
44 /// equal share the same underlying resources.
45 ///
46 /// @par Performance
47 ///
48 /// Creating a new instance of this class is a relatively expensive operation,
49 /// new objects establish new connections to the service. In contrast,
50 /// copy-construction, move-construction, and the corresponding assignment
51 /// operations are relatively efficient as the copies share all underlying
52 /// resources.
53 ///
54 /// @par Thread Safety
55 ///
56 /// Concurrent access to different instances of this class, even if they compare
57 /// equal, is guaranteed to work. Two or more threads operating on the same
58 /// instance of this class is not guaranteed to work. Since copy-construction
59 /// and move-construction is a relatively efficient operation, consider using
60 /// such a copy when using this class from multiple threads.
61 ///
63  public:
65  std::shared_ptr<ClusterManagerConnection> connection, Options opts = {});
67 
68  //@{
69  // @name Copy and move support
74  //@}
75 
76  //@{
77  // @name Equality
78  friend bool operator==(ClusterManagerClient const& a,
79  ClusterManagerClient const& b) {
80  return a.connection_ == b.connection_;
81  }
82  friend bool operator!=(ClusterManagerClient const& a,
83  ClusterManagerClient const& b) {
84  return !(a == b);
85  }
86  //@}
87 
88  ///
89  /// Lists all clusters owned by a project in either the specified zone or all
90  /// zones.
91  ///
92  /// @param parent The parent (project and location) where the clusters will
93  /// be listed.
94  /// Specified in the format `projects/*/locations/*`.
95  /// Location "-" matches all zones and all regions.
96  /// @param opts Optional. Override the class-level options, such as retry and
97  /// backoff policies.
98  /// @return
99  /// @googleapis_link{google::container::v1::ListClustersResponse,google/container/v1/cluster_service.proto#L2523}
100  ///
101  /// [google.container.v1.ListClustersRequest]:
102  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2504}
103  /// [google.container.v1.ListClustersResponse]:
104  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2523}
105  ///
106  StatusOr<google::container::v1::ListClustersResponse> ListClusters(
107  std::string const& parent, Options opts = {});
108 
109  ///
110  /// Lists all clusters owned by a project in either the specified zone or all
111  /// zones.
112  ///
113  /// @param request
114  /// @googleapis_link{google::container::v1::ListClustersRequest,google/container/v1/cluster_service.proto#L2504}
115  /// @param opts Optional. Override the class-level options, such as retry and
116  /// backoff policies.
117  /// @return
118  /// @googleapis_link{google::container::v1::ListClustersResponse,google/container/v1/cluster_service.proto#L2523}
119  ///
120  /// [google.container.v1.ListClustersRequest]:
121  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2504}
122  /// [google.container.v1.ListClustersResponse]:
123  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2523}
124  ///
125  StatusOr<google::container::v1::ListClustersResponse> ListClusters(
126  google::container::v1::ListClustersRequest const& request,
127  Options opts = {});
128 
129  ///
130  /// Gets the details of a specific cluster.
131  ///
132  /// @param name The name (project, location, cluster) of the cluster to
133  /// retrieve.
134  /// Specified in the format `projects/*/locations/*/clusters/*`.
135  /// @param opts Optional. Override the class-level options, such as retry and
136  /// backoff policies.
137  /// @return
138  /// @googleapis_link{google::container::v1::Cluster,google/container/v1/cluster_service.proto#L1372}
139  ///
140  /// [google.container.v1.GetClusterRequest]:
141  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2105}
142  /// [google.container.v1.Cluster]:
143  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1372}
144  ///
145  StatusOr<google::container::v1::Cluster> GetCluster(std::string const& name,
146  Options opts = {});
147 
148  ///
149  /// Gets the details of a specific cluster.
150  ///
151  /// @param request
152  /// @googleapis_link{google::container::v1::GetClusterRequest,google/container/v1/cluster_service.proto#L2105}
153  /// @param opts Optional. Override the class-level options, such as retry and
154  /// backoff policies.
155  /// @return
156  /// @googleapis_link{google::container::v1::Cluster,google/container/v1/cluster_service.proto#L1372}
157  ///
158  /// [google.container.v1.GetClusterRequest]:
159  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2105}
160  /// [google.container.v1.Cluster]:
161  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1372}
162  ///
163  StatusOr<google::container::v1::Cluster> GetCluster(
164  google::container::v1::GetClusterRequest const& request,
165  Options opts = {});
166 
167  ///
168  /// Creates a cluster, consisting of the specified number and type of Google
169  /// Compute Engine instances.
170  ///
171  /// By default, the cluster is created in the project's
172  /// [default
173  /// network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
174  ///
175  /// One firewall is added for the cluster. After cluster creation,
176  /// the Kubelet creates routes for each node to allow the containers
177  /// on that node to communicate with all other instances in the
178  /// cluster.
179  ///
180  /// Finally, an entry is added to the project's global metadata indicating
181  /// which CIDR range the cluster is using.
182  ///
183  /// @param parent The parent (project and location) where the cluster will be
184  /// created.
185  /// Specified in the format `projects/*/locations/*`.
186  /// @param cluster Required. A [cluster
187  /// resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
188  /// @param opts Optional. Override the class-level options, such as retry and
189  /// backoff policies.
190  /// @return
191  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
192  ///
193  /// [google.container.v1.CreateClusterRequest]:
194  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2083}
195  /// [google.container.v1.Operation]:
196  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
197  ///
198  StatusOr<google::container::v1::Operation> CreateCluster(
199  std::string const& parent, google::container::v1::Cluster const& cluster,
200  Options opts = {});
201 
202  ///
203  /// Creates a cluster, consisting of the specified number and type of Google
204  /// Compute Engine instances.
205  ///
206  /// By default, the cluster is created in the project's
207  /// [default
208  /// network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
209  ///
210  /// One firewall is added for the cluster. After cluster creation,
211  /// the Kubelet creates routes for each node to allow the containers
212  /// on that node to communicate with all other instances in the
213  /// cluster.
214  ///
215  /// Finally, an entry is added to the project's global metadata indicating
216  /// which CIDR range the cluster is using.
217  ///
218  /// @param request
219  /// @googleapis_link{google::container::v1::CreateClusterRequest,google/container/v1/cluster_service.proto#L2083}
220  /// @param opts Optional. Override the class-level options, such as retry and
221  /// backoff policies.
222  /// @return
223  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
224  ///
225  /// [google.container.v1.CreateClusterRequest]:
226  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2083}
227  /// [google.container.v1.Operation]:
228  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
229  ///
230  StatusOr<google::container::v1::Operation> CreateCluster(
231  google::container::v1::CreateClusterRequest const& request,
232  Options opts = {});
233 
234  ///
235  /// Updates the settings of a specific cluster.
236  ///
237  /// @param name The name (project, location, cluster) of the cluster to
238  /// update.
239  /// Specified in the format `projects/*/locations/*/clusters/*`.
240  /// @param update Required. A description of the update.
241  /// @param opts Optional. Override the class-level options, such as retry and
242  /// backoff policies.
243  /// @return
244  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
245  ///
246  /// [google.container.v1.UpdateClusterRequest]:
247  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2127}
248  /// [google.container.v1.Operation]:
249  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
250  ///
251  StatusOr<google::container::v1::Operation> UpdateCluster(
252  std::string const& name,
253  google::container::v1::ClusterUpdate const& update, Options opts = {});
254 
255  ///
256  /// Updates the settings of a specific cluster.
257  ///
258  /// @param request
259  /// @googleapis_link{google::container::v1::UpdateClusterRequest,google/container/v1/cluster_service.proto#L2127}
260  /// @param opts Optional. Override the class-level options, such as retry and
261  /// backoff policies.
262  /// @return
263  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
264  ///
265  /// [google.container.v1.UpdateClusterRequest]:
266  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2127}
267  /// [google.container.v1.Operation]:
268  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
269  ///
270  StatusOr<google::container::v1::Operation> UpdateCluster(
271  google::container::v1::UpdateClusterRequest const& request,
272  Options opts = {});
273 
274  ///
275  /// Updates the version and/or image type for the specified node pool.
276  ///
277  /// @param request
278  /// @googleapis_link{google::container::v1::UpdateNodePoolRequest,google/container/v1/cluster_service.proto#L2152}
279  /// @param opts Optional. Override the class-level options, such as retry and
280  /// backoff policies.
281  /// @return
282  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
283  ///
284  /// [google.container.v1.UpdateNodePoolRequest]:
285  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2152}
286  /// [google.container.v1.Operation]:
287  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
288  ///
289  StatusOr<google::container::v1::Operation> UpdateNodePool(
290  google::container::v1::UpdateNodePoolRequest const& request,
291  Options opts = {});
292 
293  ///
294  /// Sets the autoscaling settings for the specified node pool.
295  ///
296  /// @param request
297  /// @googleapis_link{google::container::v1::SetNodePoolAutoscalingRequest,google/container/v1/cluster_service.proto#L2245}
298  /// @param opts Optional. Override the class-level options, such as retry and
299  /// backoff policies.
300  /// @return
301  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
302  ///
303  /// [google.container.v1.SetNodePoolAutoscalingRequest]:
304  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2245}
305  /// [google.container.v1.Operation]:
306  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
307  ///
308  StatusOr<google::container::v1::Operation> SetNodePoolAutoscaling(
309  google::container::v1::SetNodePoolAutoscalingRequest const& request,
310  Options opts = {});
311 
312  ///
313  /// Sets the logging service for a specific cluster.
314  ///
315  /// @param name The name (project, location, cluster) of the cluster to set
316  /// logging.
317  /// Specified in the format `projects/*/locations/*/clusters/*`.
318  /// @param logging_service Required. The logging service the cluster should
319  /// use to write logs.
320  /// Currently available options:
321  /// * `logging.googleapis.com/kubernetes` - The Cloud Logging
322  /// service with a Kubernetes-native resource model
323  /// * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
324  /// available as of GKE 1.15).
325  /// * `none` - no logs will be exported from the cluster.
326  /// If left as an empty string,`logging.googleapis.com/kubernetes` will be
327  /// used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
328  /// @param opts Optional. Override the class-level options, such as retry and
329  /// backoff policies.
330  /// @return
331  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
332  ///
333  /// [google.container.v1.SetLoggingServiceRequest]:
334  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2275}
335  /// [google.container.v1.Operation]:
336  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
337  ///
338  StatusOr<google::container::v1::Operation> SetLoggingService(
339  std::string const& name, std::string const& logging_service,
340  Options opts = {});
341 
342  ///
343  /// Sets the logging service for a specific cluster.
344  ///
345  /// @param request
346  /// @googleapis_link{google::container::v1::SetLoggingServiceRequest,google/container/v1/cluster_service.proto#L2275}
347  /// @param opts Optional. Override the class-level options, such as retry and
348  /// backoff policies.
349  /// @return
350  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
351  ///
352  /// [google.container.v1.SetLoggingServiceRequest]:
353  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2275}
354  /// [google.container.v1.Operation]:
355  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
356  ///
357  StatusOr<google::container::v1::Operation> SetLoggingService(
358  google::container::v1::SetLoggingServiceRequest const& request,
359  Options opts = {});
360 
361  ///
362  /// Sets the monitoring service for a specific cluster.
363  ///
364  /// @param name The name (project, location, cluster) of the cluster to set
365  /// monitoring.
366  /// Specified in the format `projects/*/locations/*/clusters/*`.
367  /// @param monitoring_service Required. The monitoring service the cluster
368  /// should use to write metrics.
369  /// Currently available options:
370  /// * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
371  /// service with a Kubernetes-native resource model
372  /// * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
373  /// longer available as of GKE 1.15).
374  /// * `none` - No metrics will be exported from the cluster.
375  /// If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
376  /// used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
377  /// @param opts Optional. Override the class-level options, such as retry and
378  /// backoff policies.
379  /// @return
380  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
381  ///
382  /// [google.container.v1.SetMonitoringServiceRequest]:
383  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2310}
384  /// [google.container.v1.Operation]:
385  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
386  ///
387  StatusOr<google::container::v1::Operation> SetMonitoringService(
388  std::string const& name, std::string const& monitoring_service,
389  Options opts = {});
390 
391  ///
392  /// Sets the monitoring service for a specific cluster.
393  ///
394  /// @param request
395  /// @googleapis_link{google::container::v1::SetMonitoringServiceRequest,google/container/v1/cluster_service.proto#L2310}
396  /// @param opts Optional. Override the class-level options, such as retry and
397  /// backoff policies.
398  /// @return
399  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
400  ///
401  /// [google.container.v1.SetMonitoringServiceRequest]:
402  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2310}
403  /// [google.container.v1.Operation]:
404  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
405  ///
406  StatusOr<google::container::v1::Operation> SetMonitoringService(
407  google::container::v1::SetMonitoringServiceRequest const& request,
408  Options opts = {});
409 
410  ///
411  /// Sets the addons for a specific cluster.
412  ///
413  /// @param name The name (project, location, cluster) of the cluster to set
414  /// addons.
415  /// Specified in the format `projects/*/locations/*/clusters/*`.
416  /// @param addons_config Required. The desired configurations for the various
417  /// addons available to run in the
418  /// cluster.
419  /// @param opts Optional. Override the class-level options, such as retry and
420  /// backoff policies.
421  /// @return
422  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
423  ///
424  /// [google.container.v1.SetAddonsConfigRequest]:
425  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2345}
426  /// [google.container.v1.Operation]:
427  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
428  ///
429  StatusOr<google::container::v1::Operation> SetAddonsConfig(
430  std::string const& name,
431  google::container::v1::AddonsConfig const& addons_config,
432  Options opts = {});
433 
434  ///
435  /// Sets the addons for a specific cluster.
436  ///
437  /// @param request
438  /// @googleapis_link{google::container::v1::SetAddonsConfigRequest,google/container/v1/cluster_service.proto#L2345}
439  /// @param opts Optional. Override the class-level options, such as retry and
440  /// backoff policies.
441  /// @return
442  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
443  ///
444  /// [google.container.v1.SetAddonsConfigRequest]:
445  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2345}
446  /// [google.container.v1.Operation]:
447  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
448  ///
449  StatusOr<google::container::v1::Operation> SetAddonsConfig(
450  google::container::v1::SetAddonsConfigRequest const& request,
451  Options opts = {});
452 
453  ///
454  /// Sets the locations for a specific cluster.
455  /// Deprecated. Use
456  /// [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
457  /// instead.
458  ///
459  /// @param name The name (project, location, cluster) of the cluster to set
460  /// locations.
461  /// Specified in the format `projects/*/locations/*/clusters/*`.
462  /// @param locations Required. The desired list of Google Compute Engine
463  /// [zones](https://cloud.google.com/compute/docs/zones#available) in which
464  /// the cluster's nodes should be located. Changing the locations a cluster
465  /// is in will result in nodes being either created or removed from the
466  /// cluster, depending on whether locations are being added or removed. This
467  /// list must always include the cluster's primary zone.
468  /// @param opts Optional. Override the class-level options, such as retry and
469  /// backoff policies.
470  /// @return
471  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
472  ///
473  /// [google.container.v1.SetLocationsRequest]:
474  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2371}
475  /// [google.container.v1.Operation]:
476  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
477  ///
478  StatusOr<google::container::v1::Operation> SetLocations(
479  std::string const& name, std::vector<std::string> const& locations,
480  Options opts = {});
481 
482  ///
483  /// Sets the locations for a specific cluster.
484  /// Deprecated. Use
485  /// [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
486  /// instead.
487  ///
488  /// @param request
489  /// @googleapis_link{google::container::v1::SetLocationsRequest,google/container/v1/cluster_service.proto#L2371}
490  /// @param opts Optional. Override the class-level options, such as retry and
491  /// backoff policies.
492  /// @return
493  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
494  ///
495  /// [google.container.v1.SetLocationsRequest]:
496  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2371}
497  /// [google.container.v1.Operation]:
498  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
499  ///
500  StatusOr<google::container::v1::Operation> SetLocations(
501  google::container::v1::SetLocationsRequest const& request,
502  Options opts = {});
503 
504  ///
505  /// Updates the master for a specific cluster.
506  ///
507  /// @param name The name (project, location, cluster) of the cluster to
508  /// update.
509  /// Specified in the format `projects/*/locations/*/clusters/*`.
510  /// @param master_version Required. The Kubernetes version to change the
511  /// master to.
512  /// Users may specify either explicit versions offered by Kubernetes Engine
513  /// or version aliases, which have the following behavior:
514  /// - "latest": picks the highest valid Kubernetes version
515  /// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
516  /// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
517  /// - "1.X.Y-gke.N": picks an explicit Kubernetes version
518  /// - "-": picks the default Kubernetes version
519  /// @param opts Optional. Override the class-level options, such as retry and
520  /// backoff policies.
521  /// @return
522  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
523  ///
524  /// [google.container.v1.UpdateMasterRequest]:
525  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2402}
526  /// [google.container.v1.Operation]:
527  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
528  ///
529  StatusOr<google::container::v1::Operation> UpdateMaster(
530  std::string const& name, std::string const& master_version,
531  Options opts = {});
532 
533  ///
534  /// Updates the master for a specific cluster.
535  ///
536  /// @param request
537  /// @googleapis_link{google::container::v1::UpdateMasterRequest,google/container/v1/cluster_service.proto#L2402}
538  /// @param opts Optional. Override the class-level options, such as retry and
539  /// backoff policies.
540  /// @return
541  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
542  ///
543  /// [google.container.v1.UpdateMasterRequest]:
544  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2402}
545  /// [google.container.v1.Operation]:
546  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
547  ///
548  StatusOr<google::container::v1::Operation> UpdateMaster(
549  google::container::v1::UpdateMasterRequest const& request,
550  Options opts = {});
551 
552  ///
553  /// Sets master auth materials. Currently supports changing the admin password
554  /// or a specific cluster, either via password generation or explicitly
555  /// setting the password.
556  ///
557  /// @param request
558  /// @googleapis_link{google::container::v1::SetMasterAuthRequest,google/container/v1/cluster_service.proto#L2436}
559  /// @param opts Optional. Override the class-level options, such as retry and
560  /// backoff policies.
561  /// @return
562  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
563  ///
564  /// [google.container.v1.SetMasterAuthRequest]:
565  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2436}
566  /// [google.container.v1.Operation]:
567  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
568  ///
569  StatusOr<google::container::v1::Operation> SetMasterAuth(
570  google::container::v1::SetMasterAuthRequest const& request,
571  Options opts = {});
572 
573  ///
574  /// Deletes the cluster, including the Kubernetes endpoint and all worker
575  /// nodes.
576  ///
577  /// Firewalls and routes that were configured during cluster creation
578  /// are also deleted.
579  ///
580  /// Other Google Compute Engine resources that might be in use by the cluster,
581  /// such as load balancer resources, are not deleted if they weren't present
582  /// when the cluster was initially created.
583  ///
584  /// @param name The name (project, location, cluster) of the cluster to
585  /// delete.
586  /// Specified in the format `projects/*/locations/*/clusters/*`.
587  /// @param opts Optional. Override the class-level options, such as retry and
588  /// backoff policies.
589  /// @return
590  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
591  ///
592  /// [google.container.v1.DeleteClusterRequest]:
593  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2482}
594  /// [google.container.v1.Operation]:
595  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
596  ///
597  StatusOr<google::container::v1::Operation> DeleteCluster(
598  std::string const& name, Options opts = {});
599 
600  ///
601  /// Deletes the cluster, including the Kubernetes endpoint and all worker
602  /// nodes.
603  ///
604  /// Firewalls and routes that were configured during cluster creation
605  /// are also deleted.
606  ///
607  /// Other Google Compute Engine resources that might be in use by the cluster,
608  /// such as load balancer resources, are not deleted if they weren't present
609  /// when the cluster was initially created.
610  ///
611  /// @param request
612  /// @googleapis_link{google::container::v1::DeleteClusterRequest,google/container/v1/cluster_service.proto#L2482}
613  /// @param opts Optional. Override the class-level options, such as retry and
614  /// backoff policies.
615  /// @return
616  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
617  ///
618  /// [google.container.v1.DeleteClusterRequest]:
619  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2482}
620  /// [google.container.v1.Operation]:
621  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
622  ///
623  StatusOr<google::container::v1::Operation> DeleteCluster(
624  google::container::v1::DeleteClusterRequest const& request,
625  Options opts = {});
626 
627  ///
628  /// Lists all operations in a project in a specific zone or all zones.
629  ///
630  /// @param request
631  /// @googleapis_link{google::container::v1::ListOperationsRequest,google/container/v1/cluster_service.proto#L2556}
632  /// @param opts Optional. Override the class-level options, such as retry and
633  /// backoff policies.
634  /// @return
635  /// @googleapis_link{google::container::v1::ListOperationsResponse,google/container/v1/cluster_service.proto#L2597}
636  ///
637  /// [google.container.v1.ListOperationsRequest]:
638  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2556}
639  /// [google.container.v1.ListOperationsResponse]:
640  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2597}
641  ///
642  StatusOr<google::container::v1::ListOperationsResponse> ListOperations(
643  google::container::v1::ListOperationsRequest const& request,
644  Options opts = {});
645 
646  ///
647  /// Gets the specified operation.
648  ///
649  /// @param name The name (project, location, operation id) of the operation
650  /// to get.
651  /// Specified in the format `projects/*/locations/*/operations/*`.
652  /// @param opts Optional. Override the class-level options, such as retry and
653  /// backoff policies.
654  /// @return
655  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
656  ///
657  /// [google.container.v1.GetOperationRequest]:
658  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2534}
659  /// [google.container.v1.Operation]:
660  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
661  ///
662  StatusOr<google::container::v1::Operation> GetOperation(
663  std::string const& name, Options opts = {});
664 
665  ///
666  /// Gets the specified operation.
667  ///
668  /// @param request
669  /// @googleapis_link{google::container::v1::GetOperationRequest,google/container/v1/cluster_service.proto#L2534}
670  /// @param opts Optional. Override the class-level options, such as retry and
671  /// backoff policies.
672  /// @return
673  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
674  ///
675  /// [google.container.v1.GetOperationRequest]:
676  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2534}
677  /// [google.container.v1.Operation]:
678  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
679  ///
680  StatusOr<google::container::v1::Operation> GetOperation(
681  google::container::v1::GetOperationRequest const& request,
682  Options opts = {});
683 
684  ///
685  /// Cancels the specified operation.
686  ///
687  /// @param name The name (project, location, operation id) of the operation
688  /// to cancel.
689  /// Specified in the format `projects/*/locations/*/operations/*`.
690  /// @param opts Optional. Override the class-level options, such as retry and
691  /// backoff policies.
692  ///
693  /// [google.container.v1.CancelOperationRequest]:
694  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2575}
695  ///
696  Status CancelOperation(std::string const& name, Options opts = {});
697 
698  ///
699  /// Cancels the specified operation.
700  ///
701  /// @param request
702  /// @googleapis_link{google::container::v1::CancelOperationRequest,google/container/v1/cluster_service.proto#L2575}
703  /// @param opts Optional. Override the class-level options, such as retry and
704  /// backoff policies.
705  ///
706  /// [google.container.v1.CancelOperationRequest]:
707  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2575}
708  ///
710  google::container::v1::CancelOperationRequest const& request,
711  Options opts = {});
712 
713  ///
714  /// Returns configuration info about the Google Kubernetes Engine service.
715  ///
716  /// @param name The name (project and location) of the server config to get,
717  /// specified in the format `projects/*/locations/*`.
718  /// @param opts Optional. Override the class-level options, such as retry and
719  /// backoff policies.
720  /// @return
721  /// @googleapis_link{google::container::v1::ServerConfig,google/container/v1/cluster_service.proto#L2625}
722  ///
723  /// [google.container.v1.GetServerConfigRequest]:
724  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2607}
725  /// [google.container.v1.ServerConfig]:
726  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2625}
727  ///
728  StatusOr<google::container::v1::ServerConfig> GetServerConfig(
729  std::string const& name, Options opts = {});
730 
731  ///
732  /// Returns configuration info about the Google Kubernetes Engine service.
733  ///
734  /// @param request
735  /// @googleapis_link{google::container::v1::GetServerConfigRequest,google/container/v1/cluster_service.proto#L2607}
736  /// @param opts Optional. Override the class-level options, such as retry and
737  /// backoff policies.
738  /// @return
739  /// @googleapis_link{google::container::v1::ServerConfig,google/container/v1/cluster_service.proto#L2625}
740  ///
741  /// [google.container.v1.GetServerConfigRequest]:
742  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2607}
743  /// [google.container.v1.ServerConfig]:
744  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2625}
745  ///
746  StatusOr<google::container::v1::ServerConfig> GetServerConfig(
747  google::container::v1::GetServerConfigRequest const& request,
748  Options opts = {});
749 
750  ///
751  /// Gets the public component of the cluster signing keys in
752  /// JSON Web Key format.
753  /// This API is not yet intended for general use, and is not available for all
754  /// clusters.
755  ///
756  /// @param request
757  /// @googleapis_link{google::container::v1::GetJSONWebKeysRequest,google/container/v1/cluster_service.proto#L3785}
758  /// @param opts Optional. Override the class-level options, such as retry and
759  /// backoff policies.
760  /// @return
761  /// @googleapis_link{google::container::v1::GetJSONWebKeysResponse,google/container/v1/cluster_service.proto#L3822}
762  ///
763  /// [google.container.v1.GetJSONWebKeysRequest]:
764  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3785}
765  /// [google.container.v1.GetJSONWebKeysResponse]:
766  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3822}
767  ///
768  StatusOr<google::container::v1::GetJSONWebKeysResponse> GetJSONWebKeys(
769  google::container::v1::GetJSONWebKeysRequest const& request,
770  Options opts = {});
771 
772  ///
773  /// Lists the node pools for a cluster.
774  ///
775  /// @param parent The parent (project, location, cluster name) where the node
776  /// pools will be
777  /// listed. Specified in the format `projects/*/locations/*/clusters/*`.
778  /// @param opts Optional. Override the class-level options, such as retry and
779  /// backoff policies.
780  /// @return
781  /// @googleapis_link{google::container::v1::ListNodePoolsResponse,google/container/v1/cluster_service.proto#L3279}
782  ///
783  /// [google.container.v1.ListNodePoolsRequest]:
784  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2711}
785  /// [google.container.v1.ListNodePoolsResponse]:
786  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3279}
787  ///
788  StatusOr<google::container::v1::ListNodePoolsResponse> ListNodePools(
789  std::string const& parent, Options opts = {});
790 
791  ///
792  /// Lists the node pools for a cluster.
793  ///
794  /// @param request
795  /// @googleapis_link{google::container::v1::ListNodePoolsRequest,google/container/v1/cluster_service.proto#L2711}
796  /// @param opts Optional. Override the class-level options, such as retry and
797  /// backoff policies.
798  /// @return
799  /// @googleapis_link{google::container::v1::ListNodePoolsResponse,google/container/v1/cluster_service.proto#L3279}
800  ///
801  /// [google.container.v1.ListNodePoolsRequest]:
802  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2711}
803  /// [google.container.v1.ListNodePoolsResponse]:
804  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3279}
805  ///
806  StatusOr<google::container::v1::ListNodePoolsResponse> ListNodePools(
807  google::container::v1::ListNodePoolsRequest const& request,
808  Options opts = {});
809 
810  ///
811  /// Retrieves the requested node pool.
812  ///
813  /// @param name The name (project, location, cluster, node pool id) of the
814  /// node pool to
815  /// get. Specified in the format
816  /// `projects/*/locations/*/clusters/*/nodePools/*`.
817  /// @param opts Optional. Override the class-level options, such as retry and
818  /// backoff policies.
819  /// @return
820  /// @googleapis_link{google::container::v1::NodePool,google/container/v1/cluster_service.proto#L2794}
821  ///
822  /// [google.container.v1.GetNodePoolRequest]:
823  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2733}
824  /// [google.container.v1.NodePool]:
825  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2794}
826  ///
827  StatusOr<google::container::v1::NodePool> GetNodePool(std::string const& name,
828  Options opts = {});
829 
830  ///
831  /// Retrieves the requested node pool.
832  ///
833  /// @param request
834  /// @googleapis_link{google::container::v1::GetNodePoolRequest,google/container/v1/cluster_service.proto#L2733}
835  /// @param opts Optional. Override the class-level options, such as retry and
836  /// backoff policies.
837  /// @return
838  /// @googleapis_link{google::container::v1::NodePool,google/container/v1/cluster_service.proto#L2794}
839  ///
840  /// [google.container.v1.GetNodePoolRequest]:
841  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2733}
842  /// [google.container.v1.NodePool]:
843  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2794}
844  ///
845  StatusOr<google::container::v1::NodePool> GetNodePool(
846  google::container::v1::GetNodePoolRequest const& request,
847  Options opts = {});
848 
849  ///
850  /// Creates a node pool for a cluster.
851  ///
852  /// @param parent The parent (project, location, cluster name) where the node
853  /// pool will be
854  /// created. Specified in the format
855  /// `projects/*/locations/*/clusters/*`.
856  /// @param node_pool Required. The node pool to create.
857  /// @param opts Optional. Override the class-level options, such as retry and
858  /// backoff policies.
859  /// @return
860  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
861  ///
862  /// [google.container.v1.CreateNodePoolRequest]:
863  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2658}
864  /// [google.container.v1.Operation]:
865  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
866  ///
867  StatusOr<google::container::v1::Operation> CreateNodePool(
868  std::string const& parent,
869  google::container::v1::NodePool const& node_pool, Options opts = {});
870 
871  ///
872  /// Creates a node pool for a cluster.
873  ///
874  /// @param request
875  /// @googleapis_link{google::container::v1::CreateNodePoolRequest,google/container/v1/cluster_service.proto#L2658}
876  /// @param opts Optional. Override the class-level options, such as retry and
877  /// backoff policies.
878  /// @return
879  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
880  ///
881  /// [google.container.v1.CreateNodePoolRequest]:
882  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2658}
883  /// [google.container.v1.Operation]:
884  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
885  ///
886  StatusOr<google::container::v1::Operation> CreateNodePool(
887  google::container::v1::CreateNodePoolRequest const& request,
888  Options opts = {});
889 
890  ///
891  /// Deletes a node pool from a cluster.
892  ///
893  /// @param name The name (project, location, cluster, node pool id) of the
894  /// node pool to
895  /// delete. Specified in the format
896  /// `projects/*/locations/*/clusters/*/nodePools/*`.
897  /// @param opts Optional. Override the class-level options, such as retry and
898  /// backoff policies.
899  /// @return
900  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
901  ///
902  /// [google.container.v1.DeleteNodePoolRequest]:
903  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2684}
904  /// [google.container.v1.Operation]:
905  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
906  ///
907  StatusOr<google::container::v1::Operation> DeleteNodePool(
908  std::string const& name, Options opts = {});
909 
910  ///
911  /// Deletes a node pool from a cluster.
912  ///
913  /// @param request
914  /// @googleapis_link{google::container::v1::DeleteNodePoolRequest,google/container/v1/cluster_service.proto#L2684}
915  /// @param opts Optional. Override the class-level options, such as retry and
916  /// backoff policies.
917  /// @return
918  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
919  ///
920  /// [google.container.v1.DeleteNodePoolRequest]:
921  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L2684}
922  /// [google.container.v1.Operation]:
923  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
924  ///
925  StatusOr<google::container::v1::Operation> DeleteNodePool(
926  google::container::v1::DeleteNodePoolRequest const& request,
927  Options opts = {});
928 
929  ///
930  /// CompleteNodePoolUpgrade will signal an on-going node pool upgrade to
931  /// complete.
932  ///
933  /// @param request
934  /// @googleapis_link{google::container::v1::CompleteNodePoolUpgradeRequest,google/container/v1/cluster_service.proto#L3238}
935  /// @param opts Optional. Override the class-level options, such as retry and
936  /// backoff policies.
937  ///
938  /// [google.container.v1.CompleteNodePoolUpgradeRequest]:
939  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3238}
940  ///
942  google::container::v1::CompleteNodePoolUpgradeRequest const& request,
943  Options opts = {});
944 
945  ///
946  /// Rolls back a previously Aborted or Failed NodePool upgrade.
947  /// This makes no changes if the last upgrade successfully completed.
948  ///
949  /// @param name The name (project, location, cluster, node pool id) of the
950  /// node poll to
951  /// rollback upgrade.
952  /// Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
953  /// @param opts Optional. Override the class-level options, such as retry and
954  /// backoff policies.
955  /// @return
956  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
957  ///
958  /// [google.container.v1.RollbackNodePoolUpgradeRequest]:
959  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3248}
960  /// [google.container.v1.Operation]:
961  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
962  ///
963  StatusOr<google::container::v1::Operation> RollbackNodePoolUpgrade(
964  std::string const& name, Options opts = {});
965 
966  ///
967  /// Rolls back a previously Aborted or Failed NodePool upgrade.
968  /// This makes no changes if the last upgrade successfully completed.
969  ///
970  /// @param request
971  /// @googleapis_link{google::container::v1::RollbackNodePoolUpgradeRequest,google/container/v1/cluster_service.proto#L3248}
972  /// @param opts Optional. Override the class-level options, such as retry and
973  /// backoff policies.
974  /// @return
975  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
976  ///
977  /// [google.container.v1.RollbackNodePoolUpgradeRequest]:
978  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3248}
979  /// [google.container.v1.Operation]:
980  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
981  ///
982  StatusOr<google::container::v1::Operation> RollbackNodePoolUpgrade(
983  google::container::v1::RollbackNodePoolUpgradeRequest const& request,
984  Options opts = {});
985 
986  ///
987  /// Sets the NodeManagement options for a node pool.
988  ///
989  /// @param request
990  /// @googleapis_link{google::container::v1::SetNodePoolManagementRequest,google/container/v1/cluster_service.proto#L3177}
991  /// @param opts Optional. Override the class-level options, such as retry and
992  /// backoff policies.
993  /// @return
994  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
995  ///
996  /// [google.container.v1.SetNodePoolManagementRequest]:
997  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3177}
998  /// [google.container.v1.Operation]:
999  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1000  ///
1001  StatusOr<google::container::v1::Operation> SetNodePoolManagement(
1002  google::container::v1::SetNodePoolManagementRequest const& request,
1003  Options opts = {});
1004 
1005  ///
1006  /// Sets labels on a cluster.
1007  ///
1008  /// @param request
1009  /// @googleapis_link{google::container::v1::SetLabelsRequest,google/container/v1/cluster_service.proto#L3440}
1010  /// @param opts Optional. Override the class-level options, such as retry and
1011  /// backoff policies.
1012  /// @return
1013  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1014  ///
1015  /// [google.container.v1.SetLabelsRequest]:
1016  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3440}
1017  /// [google.container.v1.Operation]:
1018  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1019  ///
1020  StatusOr<google::container::v1::Operation> SetLabels(
1021  google::container::v1::SetLabelsRequest const& request,
1022  Options opts = {});
1023 
1024  ///
1025  /// Enables or disables the ABAC authorization mechanism on a cluster.
1026  ///
1027  /// @param name The name (project, location, cluster name) of the cluster to
1028  /// set legacy
1029  /// abac. Specified in the format `projects/*/locations/*/clusters/*`.
1030  /// @param enabled Required. Whether ABAC authorization will be enabled in
1031  /// the cluster.
1032  /// @param opts Optional. Override the class-level options, such as retry and
1033  /// backoff policies.
1034  /// @return
1035  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1036  ///
1037  /// [google.container.v1.SetLegacyAbacRequest]:
1038  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3474}
1039  /// [google.container.v1.Operation]:
1040  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1041  ///
1042  StatusOr<google::container::v1::Operation> SetLegacyAbac(
1043  std::string const& name, bool enabled, Options opts = {});
1044 
1045  ///
1046  /// Enables or disables the ABAC authorization mechanism on a cluster.
1047  ///
1048  /// @param request
1049  /// @googleapis_link{google::container::v1::SetLegacyAbacRequest,google/container/v1/cluster_service.proto#L3474}
1050  /// @param opts Optional. Override the class-level options, such as retry and
1051  /// backoff policies.
1052  /// @return
1053  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1054  ///
1055  /// [google.container.v1.SetLegacyAbacRequest]:
1056  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3474}
1057  /// [google.container.v1.Operation]:
1058  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1059  ///
1060  StatusOr<google::container::v1::Operation> SetLegacyAbac(
1061  google::container::v1::SetLegacyAbacRequest const& request,
1062  Options opts = {});
1063 
1064  ///
1065  /// Starts master IP rotation.
1066  ///
1067  /// @param name The name (project, location, cluster name) of the cluster to
1068  /// start IP
1069  /// rotation. Specified in the format `projects/*/locations/*/clusters/*`.
1070  /// @param opts Optional. Override the class-level options, such as retry and
1071  /// backoff policies.
1072  /// @return
1073  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1074  ///
1075  /// [google.container.v1.StartIPRotationRequest]:
1076  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3500}
1077  /// [google.container.v1.Operation]:
1078  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1079  ///
1080  StatusOr<google::container::v1::Operation> StartIPRotation(
1081  std::string const& name, Options opts = {});
1082 
1083  ///
1084  /// Starts master IP rotation.
1085  ///
1086  /// @param request
1087  /// @googleapis_link{google::container::v1::StartIPRotationRequest,google/container/v1/cluster_service.proto#L3500}
1088  /// @param opts Optional. Override the class-level options, such as retry and
1089  /// backoff policies.
1090  /// @return
1091  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1092  ///
1093  /// [google.container.v1.StartIPRotationRequest]:
1094  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3500}
1095  /// [google.container.v1.Operation]:
1096  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1097  ///
1098  StatusOr<google::container::v1::Operation> StartIPRotation(
1099  google::container::v1::StartIPRotationRequest const& request,
1100  Options opts = {});
1101 
1102  ///
1103  /// Completes master IP rotation.
1104  ///
1105  /// @param name The name (project, location, cluster name) of the cluster to
1106  /// complete IP
1107  /// rotation. Specified in the format `projects/*/locations/*/clusters/*`.
1108  /// @param opts Optional. Override the class-level options, such as retry and
1109  /// backoff policies.
1110  /// @return
1111  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1112  ///
1113  /// [google.container.v1.CompleteIPRotationRequest]:
1114  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3525}
1115  /// [google.container.v1.Operation]:
1116  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1117  ///
1118  StatusOr<google::container::v1::Operation> CompleteIPRotation(
1119  std::string const& name, Options opts = {});
1120 
1121  ///
1122  /// Completes master IP rotation.
1123  ///
1124  /// @param request
1125  /// @googleapis_link{google::container::v1::CompleteIPRotationRequest,google/container/v1/cluster_service.proto#L3525}
1126  /// @param opts Optional. Override the class-level options, such as retry and
1127  /// backoff policies.
1128  /// @return
1129  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1130  ///
1131  /// [google.container.v1.CompleteIPRotationRequest]:
1132  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3525}
1133  /// [google.container.v1.Operation]:
1134  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1135  ///
1136  StatusOr<google::container::v1::Operation> CompleteIPRotation(
1137  google::container::v1::CompleteIPRotationRequest const& request,
1138  Options opts = {});
1139 
1140  ///
1141  /// Sets the size for a specific node pool. The new size will be used for all
1142  /// replicas, including future replicas created by modifying
1143  /// [NodePool.locations][google.container.v1.NodePool.locations].
1144  ///
1145  /// @param request
1146  /// @googleapis_link{google::container::v1::SetNodePoolSizeRequest,google/container/v1/cluster_service.proto#L3207}
1147  /// @param opts Optional. Override the class-level options, such as retry and
1148  /// backoff policies.
1149  /// @return
1150  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1151  ///
1152  /// [google.container.v1.SetNodePoolSizeRequest]:
1153  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3207}
1154  /// [google.container.v1.Operation]:
1155  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1156  ///
1157  StatusOr<google::container::v1::Operation> SetNodePoolSize(
1158  google::container::v1::SetNodePoolSizeRequest const& request,
1159  Options opts = {});
1160 
1161  ///
1162  /// Enables or disables Network Policy for a cluster.
1163  ///
1164  /// @param name The name (project, location, cluster name) of the cluster to
1165  /// set networking
1166  /// policy. Specified in the format `projects/*/locations/*/clusters/*`.
1167  /// @param network_policy Required. Configuration options for the
1168  /// NetworkPolicy feature.
1169  /// @param opts Optional. Override the class-level options, such as retry and
1170  /// backoff policies.
1171  /// @return
1172  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1173  ///
1174  /// [google.container.v1.SetNetworkPolicyRequest]:
1175  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3609}
1176  /// [google.container.v1.Operation]:
1177  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1178  ///
1179  StatusOr<google::container::v1::Operation> SetNetworkPolicy(
1180  std::string const& name,
1181  google::container::v1::NetworkPolicy const& network_policy,
1182  Options opts = {});
1183 
1184  ///
1185  /// Enables or disables Network Policy for a cluster.
1186  ///
1187  /// @param request
1188  /// @googleapis_link{google::container::v1::SetNetworkPolicyRequest,google/container/v1/cluster_service.proto#L3609}
1189  /// @param opts Optional. Override the class-level options, such as retry and
1190  /// backoff policies.
1191  /// @return
1192  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1193  ///
1194  /// [google.container.v1.SetNetworkPolicyRequest]:
1195  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3609}
1196  /// [google.container.v1.Operation]:
1197  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1198  ///
1199  StatusOr<google::container::v1::Operation> SetNetworkPolicy(
1200  google::container::v1::SetNetworkPolicyRequest const& request,
1201  Options opts = {});
1202 
1203  ///
1204  /// Sets the maintenance policy for a cluster.
1205  ///
1206  /// @param project_id Required. The Google Developers Console [project ID or
1207  /// project
1208  /// number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1209  /// @param zone Required. The name of the Google Compute Engine
1210  /// [zone](https://cloud.google.com/compute/docs/zones#available) in which
1211  /// the cluster resides.
1212  /// @param cluster_id Required. The name of the cluster to update.
1213  /// @param maintenance_policy Required. The maintenance policy to be set for
1214  /// the cluster. An empty field
1215  /// clears the existing maintenance policy.
1216  /// @param opts Optional. Override the class-level options, such as retry and
1217  /// backoff policies.
1218  /// @return
1219  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1220  ///
1221  /// [google.container.v1.SetMaintenancePolicyRequest]:
1222  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3634}
1223  /// [google.container.v1.Operation]:
1224  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1225  ///
1226  StatusOr<google::container::v1::Operation> SetMaintenancePolicy(
1227  std::string const& project_id, std::string const& zone,
1228  std::string const& cluster_id,
1229  google::container::v1::MaintenancePolicy const& maintenance_policy,
1230  Options opts = {});
1231 
1232  ///
1233  /// Sets the maintenance policy for a cluster.
1234  ///
1235  /// @param name The name (project, location, cluster name) of the cluster to
1236  /// set
1237  /// maintenance policy.
1238  /// Specified in the format `projects/*/locations/*/clusters/*`.
1239  /// @param maintenance_policy Required. The maintenance policy to be set for
1240  /// the cluster. An empty field
1241  /// clears the existing maintenance policy.
1242  /// @param opts Optional. Override the class-level options, such as retry and
1243  /// backoff policies.
1244  /// @return
1245  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1246  ///
1247  /// [google.container.v1.SetMaintenancePolicyRequest]:
1248  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3634}
1249  /// [google.container.v1.Operation]:
1250  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1251  ///
1252  StatusOr<google::container::v1::Operation> SetMaintenancePolicy(
1253  std::string const& name,
1254  google::container::v1::MaintenancePolicy const& maintenance_policy,
1255  Options opts = {});
1256 
1257  ///
1258  /// Sets the maintenance policy for a cluster.
1259  ///
1260  /// @param request
1261  /// @googleapis_link{google::container::v1::SetMaintenancePolicyRequest,google/container/v1/cluster_service.proto#L3634}
1262  /// @param opts Optional. Override the class-level options, such as retry and
1263  /// backoff policies.
1264  /// @return
1265  /// @googleapis_link{google::container::v1::Operation,google/container/v1/cluster_service.proto#L1909}
1266  ///
1267  /// [google.container.v1.SetMaintenancePolicyRequest]:
1268  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3634}
1269  /// [google.container.v1.Operation]:
1270  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L1909}
1271  ///
1272  StatusOr<google::container::v1::Operation> SetMaintenancePolicy(
1273  google::container::v1::SetMaintenancePolicyRequest const& request,
1274  Options opts = {});
1275 
1276  ///
1277  /// Lists subnetworks that are usable for creating clusters in a project.
1278  ///
1279  /// @param request
1280  /// @googleapis_link{google::container::v1::ListUsableSubnetworksRequest,google/container/v1/cluster_service.proto#L3974}
1281  /// @param opts Optional. Override the class-level options, such as retry and
1282  /// backoff policies.
1283  /// @return
1284  /// @googleapis_link{google::container::v1::UsableSubnetwork,google/container/v1/cluster_service.proto#L4046}
1285  ///
1286  /// [google.container.v1.ListUsableSubnetworksRequest]:
1287  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L3974}
1288  /// [google.container.v1.UsableSubnetwork]:
1289  /// @googleapis_reference_link{google/container/v1/cluster_service.proto#L4046}
1290  ///
1291  StreamRange<google::container::v1::UsableSubnetwork> ListUsableSubnetworks(
1292  google::container::v1::ListUsableSubnetworksRequest request,
1293  Options opts = {});
1294 
1295  private:
1296  std::shared_ptr<ClusterManagerConnection> connection_;
1297  Options options_;
1298 };
1299 
1301 } // namespace container
1302 } // namespace cloud
1303 } // namespace google
1304 
1305 #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINER_CLUSTER_MANAGER_CLIENT_H