Kubernetes Engine API C++ Client  2.4.0
A C++ Client Library for the Kubernetes Engine API
cluster_manager_connection.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_CONNECTION_H
20 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINER_CLUSTER_MANAGER_CONNECTION_H
21 
22 #include "google/cloud/container/cluster_manager_connection_idempotency_policy.h"
23 #include "google/cloud/container/internal/cluster_manager_retry_traits.h"
24 #include "google/cloud/container/internal/cluster_manager_stub.h"
25 #include "google/cloud/backoff_policy.h"
26 #include "google/cloud/options.h"
27 #include "google/cloud/status_or.h"
28 #include "google/cloud/stream_range.h"
29 #include "google/cloud/version.h"
30 #include <memory>
31 
32 namespace google {
33 namespace cloud {
34 namespace container {
36 
37 using ClusterManagerRetryPolicy =
38  ::google::cloud::internal::TraitBasedRetryPolicy<
39  container_internal::ClusterManagerRetryTraits>;
40 
41 using ClusterManagerLimitedTimeRetryPolicy =
42  ::google::cloud::internal::LimitedTimeRetryPolicy<
43  container_internal::ClusterManagerRetryTraits>;
44 
45 using ClusterManagerLimitedErrorCountRetryPolicy =
46  ::google::cloud::internal::LimitedErrorCountRetryPolicy<
47  container_internal::ClusterManagerRetryTraits>;
48 
49 /**
50  * The `ClusterManagerConnection` object for `ClusterManagerClient`.
51  *
52  * This interface defines virtual methods for each of the user-facing overload
53  * sets in `ClusterManagerClient`. This allows users to inject custom behavior
54  * (e.g., with a Google Mock object) when writing tests that use objects of type
55  * `ClusterManagerClient`.
56  *
57  * To create a concrete instance, see `MakeClusterManagerConnection()`.
58  *
59  * For mocking, see `container_mocks::MockClusterManagerConnection`.
60  */
62  public:
63  virtual ~ClusterManagerConnection() = 0;
64 
65  virtual Options options() { return Options{}; }
66 
67  virtual StatusOr<google::container::v1::ListClustersResponse> ListClusters(
68  google::container::v1::ListClustersRequest const& request);
69 
70  virtual StatusOr<google::container::v1::Cluster> GetCluster(
71  google::container::v1::GetClusterRequest const& request);
72 
73  virtual StatusOr<google::container::v1::Operation> CreateCluster(
74  google::container::v1::CreateClusterRequest const& request);
75 
76  virtual StatusOr<google::container::v1::Operation> UpdateCluster(
77  google::container::v1::UpdateClusterRequest const& request);
78 
79  virtual StatusOr<google::container::v1::Operation> UpdateNodePool(
80  google::container::v1::UpdateNodePoolRequest const& request);
81 
82  virtual StatusOr<google::container::v1::Operation> SetNodePoolAutoscaling(
83  google::container::v1::SetNodePoolAutoscalingRequest const& request);
84 
85  virtual StatusOr<google::container::v1::Operation> SetLoggingService(
86  google::container::v1::SetLoggingServiceRequest const& request);
87 
88  virtual StatusOr<google::container::v1::Operation> SetMonitoringService(
89  google::container::v1::SetMonitoringServiceRequest const& request);
90 
91  virtual StatusOr<google::container::v1::Operation> SetAddonsConfig(
92  google::container::v1::SetAddonsConfigRequest const& request);
93 
94  virtual StatusOr<google::container::v1::Operation> SetLocations(
95  google::container::v1::SetLocationsRequest const& request);
96 
97  virtual StatusOr<google::container::v1::Operation> UpdateMaster(
98  google::container::v1::UpdateMasterRequest const& request);
99 
100  virtual StatusOr<google::container::v1::Operation> SetMasterAuth(
101  google::container::v1::SetMasterAuthRequest const& request);
102 
103  virtual StatusOr<google::container::v1::Operation> DeleteCluster(
104  google::container::v1::DeleteClusterRequest const& request);
105 
106  virtual StatusOr<google::container::v1::ListOperationsResponse>
107  ListOperations(google::container::v1::ListOperationsRequest const& request);
108 
109  virtual StatusOr<google::container::v1::Operation> GetOperation(
110  google::container::v1::GetOperationRequest const& request);
111 
113  google::container::v1::CancelOperationRequest const& request);
114 
115  virtual StatusOr<google::container::v1::ServerConfig> GetServerConfig(
116  google::container::v1::GetServerConfigRequest const& request);
117 
118  virtual StatusOr<google::container::v1::GetJSONWebKeysResponse>
119  GetJSONWebKeys(google::container::v1::GetJSONWebKeysRequest const& request);
120 
121  virtual StatusOr<google::container::v1::ListNodePoolsResponse> ListNodePools(
122  google::container::v1::ListNodePoolsRequest const& request);
123 
124  virtual StatusOr<google::container::v1::NodePool> GetNodePool(
125  google::container::v1::GetNodePoolRequest const& request);
126 
127  virtual StatusOr<google::container::v1::Operation> CreateNodePool(
128  google::container::v1::CreateNodePoolRequest const& request);
129 
130  virtual StatusOr<google::container::v1::Operation> DeleteNodePool(
131  google::container::v1::DeleteNodePoolRequest const& request);
132 
134  google::container::v1::CompleteNodePoolUpgradeRequest const& request);
135 
136  virtual StatusOr<google::container::v1::Operation> RollbackNodePoolUpgrade(
137  google::container::v1::RollbackNodePoolUpgradeRequest const& request);
138 
139  virtual StatusOr<google::container::v1::Operation> SetNodePoolManagement(
140  google::container::v1::SetNodePoolManagementRequest const& request);
141 
142  virtual StatusOr<google::container::v1::Operation> SetLabels(
143  google::container::v1::SetLabelsRequest const& request);
144 
145  virtual StatusOr<google::container::v1::Operation> SetLegacyAbac(
146  google::container::v1::SetLegacyAbacRequest const& request);
147 
148  virtual StatusOr<google::container::v1::Operation> StartIPRotation(
149  google::container::v1::StartIPRotationRequest const& request);
150 
151  virtual StatusOr<google::container::v1::Operation> CompleteIPRotation(
152  google::container::v1::CompleteIPRotationRequest const& request);
153 
154  virtual StatusOr<google::container::v1::Operation> SetNodePoolSize(
155  google::container::v1::SetNodePoolSizeRequest const& request);
156 
157  virtual StatusOr<google::container::v1::Operation> SetNetworkPolicy(
158  google::container::v1::SetNetworkPolicyRequest const& request);
159 
160  virtual StatusOr<google::container::v1::Operation> SetMaintenancePolicy(
161  google::container::v1::SetMaintenancePolicyRequest const& request);
162 
163  virtual StreamRange<google::container::v1::UsableSubnetwork>
165  google::container::v1::ListUsableSubnetworksRequest request);
166 };
167 
168 /**
169  * A factory function to construct an object of type `ClusterManagerConnection`.
170  *
171  * The returned connection object should not be used directly; instead it
172  * should be passed as an argument to the constructor of ClusterManagerClient.
173  *
174  * The optional @p options argument may be used to configure aspects of the
175  * returned `ClusterManagerConnection`. Expected options are any of the types in
176  * the following option lists:
177  *
178  * - `google::cloud::CommonOptionList`
179  * - `google::cloud::GrpcOptionList`
180  * - `google::cloud::UnifiedCredentialsOptionList`
181  * - `google::cloud::container::ClusterManagerPolicyOptionList`
182  *
183  * @note Unexpected options will be ignored. To log unexpected options instead,
184  * set `GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes` in the environment.
185  *
186  * @param options (optional) Configure the `ClusterManagerConnection` created by
187  * this function.
188  */
190  Options options = {});
191 
193 } // namespace container
194 } // namespace cloud
195 } // namespace google
196 
197 #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINER_CLUSTER_MANAGER_CONNECTION_H