1// Copyright 2021 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 protoc-gen-go_gapic. DO NOT EDIT. 16 17package container 18 19import ( 20 "context" 21 "fmt" 22 "math" 23 "net/url" 24 "time" 25 26 gax "github.com/googleapis/gax-go/v2" 27 "google.golang.org/api/iterator" 28 "google.golang.org/api/option" 29 "google.golang.org/api/option/internaloption" 30 gtransport "google.golang.org/api/transport/grpc" 31 containerpb "google.golang.org/genproto/googleapis/container/v1" 32 "google.golang.org/grpc" 33 "google.golang.org/grpc/codes" 34 "google.golang.org/grpc/metadata" 35 "google.golang.org/protobuf/proto" 36) 37 38var newClusterManagerClientHook clientHook 39 40// ClusterManagerCallOptions contains the retry settings for each method of ClusterManagerClient. 41type ClusterManagerCallOptions struct { 42 ListClusters []gax.CallOption 43 GetCluster []gax.CallOption 44 CreateCluster []gax.CallOption 45 UpdateCluster []gax.CallOption 46 UpdateNodePool []gax.CallOption 47 SetNodePoolAutoscaling []gax.CallOption 48 SetLoggingService []gax.CallOption 49 SetMonitoringService []gax.CallOption 50 SetAddonsConfig []gax.CallOption 51 SetLocations []gax.CallOption 52 UpdateMaster []gax.CallOption 53 SetMasterAuth []gax.CallOption 54 DeleteCluster []gax.CallOption 55 ListOperations []gax.CallOption 56 GetOperation []gax.CallOption 57 CancelOperation []gax.CallOption 58 GetServerConfig []gax.CallOption 59 GetJSONWebKeys []gax.CallOption 60 ListNodePools []gax.CallOption 61 GetNodePool []gax.CallOption 62 CreateNodePool []gax.CallOption 63 DeleteNodePool []gax.CallOption 64 RollbackNodePoolUpgrade []gax.CallOption 65 SetNodePoolManagement []gax.CallOption 66 SetLabels []gax.CallOption 67 SetLegacyAbac []gax.CallOption 68 StartIPRotation []gax.CallOption 69 CompleteIPRotation []gax.CallOption 70 SetNodePoolSize []gax.CallOption 71 SetNetworkPolicy []gax.CallOption 72 SetMaintenancePolicy []gax.CallOption 73 ListUsableSubnetworks []gax.CallOption 74} 75 76func defaultClusterManagerGRPCClientOptions() []option.ClientOption { 77 return []option.ClientOption{ 78 internaloption.WithDefaultEndpoint("container.googleapis.com:443"), 79 internaloption.WithDefaultMTLSEndpoint("container.mtls.googleapis.com:443"), 80 internaloption.WithDefaultAudience("https://container.googleapis.com/"), 81 internaloption.WithDefaultScopes(DefaultAuthScopes()...), 82 internaloption.EnableJwtWithScope(), 83 option.WithGRPCDialOption(grpc.WithDisableServiceConfig()), 84 option.WithGRPCDialOption(grpc.WithDefaultCallOptions( 85 grpc.MaxCallRecvMsgSize(math.MaxInt32))), 86 } 87} 88 89func defaultClusterManagerCallOptions() *ClusterManagerCallOptions { 90 return &ClusterManagerCallOptions{ 91 ListClusters: []gax.CallOption{ 92 gax.WithRetry(func() gax.Retryer { 93 return gax.OnCodes([]codes.Code{ 94 codes.Unavailable, 95 codes.DeadlineExceeded, 96 }, gax.Backoff{ 97 Initial: 100 * time.Millisecond, 98 Max: 60000 * time.Millisecond, 99 Multiplier: 1.30, 100 }) 101 }), 102 }, 103 GetCluster: []gax.CallOption{ 104 gax.WithRetry(func() gax.Retryer { 105 return gax.OnCodes([]codes.Code{ 106 codes.Unavailable, 107 codes.DeadlineExceeded, 108 }, gax.Backoff{ 109 Initial: 100 * time.Millisecond, 110 Max: 60000 * time.Millisecond, 111 Multiplier: 1.30, 112 }) 113 }), 114 }, 115 CreateCluster: []gax.CallOption{}, 116 UpdateCluster: []gax.CallOption{}, 117 UpdateNodePool: []gax.CallOption{}, 118 SetNodePoolAutoscaling: []gax.CallOption{}, 119 SetLoggingService: []gax.CallOption{}, 120 SetMonitoringService: []gax.CallOption{}, 121 SetAddonsConfig: []gax.CallOption{}, 122 SetLocations: []gax.CallOption{}, 123 UpdateMaster: []gax.CallOption{}, 124 SetMasterAuth: []gax.CallOption{}, 125 DeleteCluster: []gax.CallOption{ 126 gax.WithRetry(func() gax.Retryer { 127 return gax.OnCodes([]codes.Code{ 128 codes.Unavailable, 129 codes.DeadlineExceeded, 130 }, gax.Backoff{ 131 Initial: 100 * time.Millisecond, 132 Max: 60000 * time.Millisecond, 133 Multiplier: 1.30, 134 }) 135 }), 136 }, 137 ListOperations: []gax.CallOption{ 138 gax.WithRetry(func() gax.Retryer { 139 return gax.OnCodes([]codes.Code{ 140 codes.Unavailable, 141 codes.DeadlineExceeded, 142 }, gax.Backoff{ 143 Initial: 100 * time.Millisecond, 144 Max: 60000 * time.Millisecond, 145 Multiplier: 1.30, 146 }) 147 }), 148 }, 149 GetOperation: []gax.CallOption{ 150 gax.WithRetry(func() gax.Retryer { 151 return gax.OnCodes([]codes.Code{ 152 codes.Unavailable, 153 codes.DeadlineExceeded, 154 }, gax.Backoff{ 155 Initial: 100 * time.Millisecond, 156 Max: 60000 * time.Millisecond, 157 Multiplier: 1.30, 158 }) 159 }), 160 }, 161 CancelOperation: []gax.CallOption{}, 162 GetServerConfig: []gax.CallOption{ 163 gax.WithRetry(func() gax.Retryer { 164 return gax.OnCodes([]codes.Code{ 165 codes.Unavailable, 166 codes.DeadlineExceeded, 167 }, gax.Backoff{ 168 Initial: 100 * time.Millisecond, 169 Max: 60000 * time.Millisecond, 170 Multiplier: 1.30, 171 }) 172 }), 173 }, 174 GetJSONWebKeys: []gax.CallOption{}, 175 ListNodePools: []gax.CallOption{ 176 gax.WithRetry(func() gax.Retryer { 177 return gax.OnCodes([]codes.Code{ 178 codes.Unavailable, 179 codes.DeadlineExceeded, 180 }, gax.Backoff{ 181 Initial: 100 * time.Millisecond, 182 Max: 60000 * time.Millisecond, 183 Multiplier: 1.30, 184 }) 185 }), 186 }, 187 GetNodePool: []gax.CallOption{ 188 gax.WithRetry(func() gax.Retryer { 189 return gax.OnCodes([]codes.Code{ 190 codes.Unavailable, 191 codes.DeadlineExceeded, 192 }, gax.Backoff{ 193 Initial: 100 * time.Millisecond, 194 Max: 60000 * time.Millisecond, 195 Multiplier: 1.30, 196 }) 197 }), 198 }, 199 CreateNodePool: []gax.CallOption{}, 200 DeleteNodePool: []gax.CallOption{ 201 gax.WithRetry(func() gax.Retryer { 202 return gax.OnCodes([]codes.Code{ 203 codes.Unavailable, 204 codes.DeadlineExceeded, 205 }, gax.Backoff{ 206 Initial: 100 * time.Millisecond, 207 Max: 60000 * time.Millisecond, 208 Multiplier: 1.30, 209 }) 210 }), 211 }, 212 RollbackNodePoolUpgrade: []gax.CallOption{}, 213 SetNodePoolManagement: []gax.CallOption{}, 214 SetLabels: []gax.CallOption{}, 215 SetLegacyAbac: []gax.CallOption{}, 216 StartIPRotation: []gax.CallOption{}, 217 CompleteIPRotation: []gax.CallOption{}, 218 SetNodePoolSize: []gax.CallOption{}, 219 SetNetworkPolicy: []gax.CallOption{}, 220 SetMaintenancePolicy: []gax.CallOption{}, 221 ListUsableSubnetworks: []gax.CallOption{}, 222 } 223} 224 225// internalClusterManagerClient is an interface that defines the methods availaible from Kubernetes Engine API. 226type internalClusterManagerClient interface { 227 Close() error 228 setGoogleClientInfo(...string) 229 Connection() *grpc.ClientConn 230 ListClusters(context.Context, *containerpb.ListClustersRequest, ...gax.CallOption) (*containerpb.ListClustersResponse, error) 231 GetCluster(context.Context, *containerpb.GetClusterRequest, ...gax.CallOption) (*containerpb.Cluster, error) 232 CreateCluster(context.Context, *containerpb.CreateClusterRequest, ...gax.CallOption) (*containerpb.Operation, error) 233 UpdateCluster(context.Context, *containerpb.UpdateClusterRequest, ...gax.CallOption) (*containerpb.Operation, error) 234 UpdateNodePool(context.Context, *containerpb.UpdateNodePoolRequest, ...gax.CallOption) (*containerpb.Operation, error) 235 SetNodePoolAutoscaling(context.Context, *containerpb.SetNodePoolAutoscalingRequest, ...gax.CallOption) (*containerpb.Operation, error) 236 SetLoggingService(context.Context, *containerpb.SetLoggingServiceRequest, ...gax.CallOption) (*containerpb.Operation, error) 237 SetMonitoringService(context.Context, *containerpb.SetMonitoringServiceRequest, ...gax.CallOption) (*containerpb.Operation, error) 238 SetAddonsConfig(context.Context, *containerpb.SetAddonsConfigRequest, ...gax.CallOption) (*containerpb.Operation, error) 239 SetLocations(context.Context, *containerpb.SetLocationsRequest, ...gax.CallOption) (*containerpb.Operation, error) 240 UpdateMaster(context.Context, *containerpb.UpdateMasterRequest, ...gax.CallOption) (*containerpb.Operation, error) 241 SetMasterAuth(context.Context, *containerpb.SetMasterAuthRequest, ...gax.CallOption) (*containerpb.Operation, error) 242 DeleteCluster(context.Context, *containerpb.DeleteClusterRequest, ...gax.CallOption) (*containerpb.Operation, error) 243 ListOperations(context.Context, *containerpb.ListOperationsRequest, ...gax.CallOption) (*containerpb.ListOperationsResponse, error) 244 GetOperation(context.Context, *containerpb.GetOperationRequest, ...gax.CallOption) (*containerpb.Operation, error) 245 CancelOperation(context.Context, *containerpb.CancelOperationRequest, ...gax.CallOption) error 246 GetServerConfig(context.Context, *containerpb.GetServerConfigRequest, ...gax.CallOption) (*containerpb.ServerConfig, error) 247 GetJSONWebKeys(context.Context, *containerpb.GetJSONWebKeysRequest, ...gax.CallOption) (*containerpb.GetJSONWebKeysResponse, error) 248 ListNodePools(context.Context, *containerpb.ListNodePoolsRequest, ...gax.CallOption) (*containerpb.ListNodePoolsResponse, error) 249 GetNodePool(context.Context, *containerpb.GetNodePoolRequest, ...gax.CallOption) (*containerpb.NodePool, error) 250 CreateNodePool(context.Context, *containerpb.CreateNodePoolRequest, ...gax.CallOption) (*containerpb.Operation, error) 251 DeleteNodePool(context.Context, *containerpb.DeleteNodePoolRequest, ...gax.CallOption) (*containerpb.Operation, error) 252 RollbackNodePoolUpgrade(context.Context, *containerpb.RollbackNodePoolUpgradeRequest, ...gax.CallOption) (*containerpb.Operation, error) 253 SetNodePoolManagement(context.Context, *containerpb.SetNodePoolManagementRequest, ...gax.CallOption) (*containerpb.Operation, error) 254 SetLabels(context.Context, *containerpb.SetLabelsRequest, ...gax.CallOption) (*containerpb.Operation, error) 255 SetLegacyAbac(context.Context, *containerpb.SetLegacyAbacRequest, ...gax.CallOption) (*containerpb.Operation, error) 256 StartIPRotation(context.Context, *containerpb.StartIPRotationRequest, ...gax.CallOption) (*containerpb.Operation, error) 257 CompleteIPRotation(context.Context, *containerpb.CompleteIPRotationRequest, ...gax.CallOption) (*containerpb.Operation, error) 258 SetNodePoolSize(context.Context, *containerpb.SetNodePoolSizeRequest, ...gax.CallOption) (*containerpb.Operation, error) 259 SetNetworkPolicy(context.Context, *containerpb.SetNetworkPolicyRequest, ...gax.CallOption) (*containerpb.Operation, error) 260 SetMaintenancePolicy(context.Context, *containerpb.SetMaintenancePolicyRequest, ...gax.CallOption) (*containerpb.Operation, error) 261 ListUsableSubnetworks(context.Context, *containerpb.ListUsableSubnetworksRequest, ...gax.CallOption) *UsableSubnetworkIterator 262} 263 264// ClusterManagerClient is a client for interacting with Kubernetes Engine API. 265// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. 266// 267// Google Kubernetes Engine Cluster Manager v1 268type ClusterManagerClient struct { 269 // The internal transport-dependent client. 270 internalClient internalClusterManagerClient 271 272 // The call options for this service. 273 CallOptions *ClusterManagerCallOptions 274} 275 276// Wrapper methods routed to the internal client. 277 278// Close closes the connection to the API service. The user should invoke this when 279// the client is no longer required. 280func (c *ClusterManagerClient) Close() error { 281 return c.internalClient.Close() 282} 283 284// setGoogleClientInfo sets the name and version of the application in 285// the `x-goog-api-client` header passed on each request. Intended for 286// use by Google-written clients. 287func (c *ClusterManagerClient) setGoogleClientInfo(keyval ...string) { 288 c.internalClient.setGoogleClientInfo(keyval...) 289} 290 291// Connection returns a connection to the API service. 292// 293// Deprecated. 294func (c *ClusterManagerClient) Connection() *grpc.ClientConn { 295 return c.internalClient.Connection() 296} 297 298// ListClusters lists all clusters owned by a project in either the specified zone or all 299// zones. 300func (c *ClusterManagerClient) ListClusters(ctx context.Context, req *containerpb.ListClustersRequest, opts ...gax.CallOption) (*containerpb.ListClustersResponse, error) { 301 return c.internalClient.ListClusters(ctx, req, opts...) 302} 303 304// GetCluster gets the details of a specific cluster. 305func (c *ClusterManagerClient) GetCluster(ctx context.Context, req *containerpb.GetClusterRequest, opts ...gax.CallOption) (*containerpb.Cluster, error) { 306 return c.internalClient.GetCluster(ctx, req, opts...) 307} 308 309// CreateCluster creates a cluster, consisting of the specified number and type of Google 310// Compute Engine instances. 311// 312// By default, the cluster is created in the project’s 313// default 314// network (at https://cloud.google.com/compute/docs/networks-and-firewalls#networks). 315// 316// One firewall is added for the cluster. After cluster creation, 317// the Kubelet creates routes for each node to allow the containers 318// on that node to communicate with all other instances in the 319// cluster. 320// 321// Finally, an entry is added to the project’s global metadata indicating 322// which CIDR range the cluster is using. 323func (c *ClusterManagerClient) CreateCluster(ctx context.Context, req *containerpb.CreateClusterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 324 return c.internalClient.CreateCluster(ctx, req, opts...) 325} 326 327// UpdateCluster updates the settings of a specific cluster. 328func (c *ClusterManagerClient) UpdateCluster(ctx context.Context, req *containerpb.UpdateClusterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 329 return c.internalClient.UpdateCluster(ctx, req, opts...) 330} 331 332// UpdateNodePool updates the version and/or image type for the specified node pool. 333func (c *ClusterManagerClient) UpdateNodePool(ctx context.Context, req *containerpb.UpdateNodePoolRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 334 return c.internalClient.UpdateNodePool(ctx, req, opts...) 335} 336 337// SetNodePoolAutoscaling sets the autoscaling settings for the specified node pool. 338func (c *ClusterManagerClient) SetNodePoolAutoscaling(ctx context.Context, req *containerpb.SetNodePoolAutoscalingRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 339 return c.internalClient.SetNodePoolAutoscaling(ctx, req, opts...) 340} 341 342// SetLoggingService sets the logging service for a specific cluster. 343func (c *ClusterManagerClient) SetLoggingService(ctx context.Context, req *containerpb.SetLoggingServiceRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 344 return c.internalClient.SetLoggingService(ctx, req, opts...) 345} 346 347// SetMonitoringService sets the monitoring service for a specific cluster. 348func (c *ClusterManagerClient) SetMonitoringService(ctx context.Context, req *containerpb.SetMonitoringServiceRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 349 return c.internalClient.SetMonitoringService(ctx, req, opts...) 350} 351 352// SetAddonsConfig sets the addons for a specific cluster. 353func (c *ClusterManagerClient) SetAddonsConfig(ctx context.Context, req *containerpb.SetAddonsConfigRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 354 return c.internalClient.SetAddonsConfig(ctx, req, opts...) 355} 356 357// SetLocations sets the locations for a specific cluster. 358// Deprecated. Use 359// projects.locations.clusters.update (at https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) 360// instead. 361// 362// Deprecated: SetLocations may be removed in a future version. 363func (c *ClusterManagerClient) SetLocations(ctx context.Context, req *containerpb.SetLocationsRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 364 return c.internalClient.SetLocations(ctx, req, opts...) 365} 366 367// UpdateMaster updates the master for a specific cluster. 368func (c *ClusterManagerClient) UpdateMaster(ctx context.Context, req *containerpb.UpdateMasterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 369 return c.internalClient.UpdateMaster(ctx, req, opts...) 370} 371 372// SetMasterAuth sets master auth materials. Currently supports changing the admin password 373// or a specific cluster, either via password generation or explicitly setting 374// the password. 375func (c *ClusterManagerClient) SetMasterAuth(ctx context.Context, req *containerpb.SetMasterAuthRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 376 return c.internalClient.SetMasterAuth(ctx, req, opts...) 377} 378 379// DeleteCluster deletes the cluster, including the Kubernetes endpoint and all worker 380// nodes. 381// 382// Firewalls and routes that were configured during cluster creation 383// are also deleted. 384// 385// Other Google Compute Engine resources that might be in use by the cluster, 386// such as load balancer resources, are not deleted if they weren’t present 387// when the cluster was initially created. 388func (c *ClusterManagerClient) DeleteCluster(ctx context.Context, req *containerpb.DeleteClusterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 389 return c.internalClient.DeleteCluster(ctx, req, opts...) 390} 391 392// ListOperations lists all operations in a project in a specific zone or all zones. 393func (c *ClusterManagerClient) ListOperations(ctx context.Context, req *containerpb.ListOperationsRequest, opts ...gax.CallOption) (*containerpb.ListOperationsResponse, error) { 394 return c.internalClient.ListOperations(ctx, req, opts...) 395} 396 397// GetOperation gets the specified operation. 398func (c *ClusterManagerClient) GetOperation(ctx context.Context, req *containerpb.GetOperationRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 399 return c.internalClient.GetOperation(ctx, req, opts...) 400} 401 402// CancelOperation cancels the specified operation. 403func (c *ClusterManagerClient) CancelOperation(ctx context.Context, req *containerpb.CancelOperationRequest, opts ...gax.CallOption) error { 404 return c.internalClient.CancelOperation(ctx, req, opts...) 405} 406 407// GetServerConfig returns configuration info about the Google Kubernetes Engine service. 408func (c *ClusterManagerClient) GetServerConfig(ctx context.Context, req *containerpb.GetServerConfigRequest, opts ...gax.CallOption) (*containerpb.ServerConfig, error) { 409 return c.internalClient.GetServerConfig(ctx, req, opts...) 410} 411 412// GetJSONWebKeys gets the public component of the cluster signing keys in 413// JSON Web Key format. 414// This API is not yet intended for general use, and is not available for all 415// clusters. 416func (c *ClusterManagerClient) GetJSONWebKeys(ctx context.Context, req *containerpb.GetJSONWebKeysRequest, opts ...gax.CallOption) (*containerpb.GetJSONWebKeysResponse, error) { 417 return c.internalClient.GetJSONWebKeys(ctx, req, opts...) 418} 419 420// ListNodePools lists the node pools for a cluster. 421func (c *ClusterManagerClient) ListNodePools(ctx context.Context, req *containerpb.ListNodePoolsRequest, opts ...gax.CallOption) (*containerpb.ListNodePoolsResponse, error) { 422 return c.internalClient.ListNodePools(ctx, req, opts...) 423} 424 425// GetNodePool retrieves the requested node pool. 426func (c *ClusterManagerClient) GetNodePool(ctx context.Context, req *containerpb.GetNodePoolRequest, opts ...gax.CallOption) (*containerpb.NodePool, error) { 427 return c.internalClient.GetNodePool(ctx, req, opts...) 428} 429 430// CreateNodePool creates a node pool for a cluster. 431func (c *ClusterManagerClient) CreateNodePool(ctx context.Context, req *containerpb.CreateNodePoolRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 432 return c.internalClient.CreateNodePool(ctx, req, opts...) 433} 434 435// DeleteNodePool deletes a node pool from a cluster. 436func (c *ClusterManagerClient) DeleteNodePool(ctx context.Context, req *containerpb.DeleteNodePoolRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 437 return c.internalClient.DeleteNodePool(ctx, req, opts...) 438} 439 440// RollbackNodePoolUpgrade rolls back a previously Aborted or Failed NodePool upgrade. 441// This makes no changes if the last upgrade successfully completed. 442func (c *ClusterManagerClient) RollbackNodePoolUpgrade(ctx context.Context, req *containerpb.RollbackNodePoolUpgradeRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 443 return c.internalClient.RollbackNodePoolUpgrade(ctx, req, opts...) 444} 445 446// SetNodePoolManagement sets the NodeManagement options for a node pool. 447func (c *ClusterManagerClient) SetNodePoolManagement(ctx context.Context, req *containerpb.SetNodePoolManagementRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 448 return c.internalClient.SetNodePoolManagement(ctx, req, opts...) 449} 450 451// SetLabels sets labels on a cluster. 452func (c *ClusterManagerClient) SetLabels(ctx context.Context, req *containerpb.SetLabelsRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 453 return c.internalClient.SetLabels(ctx, req, opts...) 454} 455 456// SetLegacyAbac enables or disables the ABAC authorization mechanism on a cluster. 457func (c *ClusterManagerClient) SetLegacyAbac(ctx context.Context, req *containerpb.SetLegacyAbacRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 458 return c.internalClient.SetLegacyAbac(ctx, req, opts...) 459} 460 461// StartIPRotation starts master IP rotation. 462func (c *ClusterManagerClient) StartIPRotation(ctx context.Context, req *containerpb.StartIPRotationRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 463 return c.internalClient.StartIPRotation(ctx, req, opts...) 464} 465 466// CompleteIPRotation completes master IP rotation. 467func (c *ClusterManagerClient) CompleteIPRotation(ctx context.Context, req *containerpb.CompleteIPRotationRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 468 return c.internalClient.CompleteIPRotation(ctx, req, opts...) 469} 470 471// SetNodePoolSize sets the size for a specific node pool. 472func (c *ClusterManagerClient) SetNodePoolSize(ctx context.Context, req *containerpb.SetNodePoolSizeRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 473 return c.internalClient.SetNodePoolSize(ctx, req, opts...) 474} 475 476// SetNetworkPolicy enables or disables Network Policy for a cluster. 477func (c *ClusterManagerClient) SetNetworkPolicy(ctx context.Context, req *containerpb.SetNetworkPolicyRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 478 return c.internalClient.SetNetworkPolicy(ctx, req, opts...) 479} 480 481// SetMaintenancePolicy sets the maintenance policy for a cluster. 482func (c *ClusterManagerClient) SetMaintenancePolicy(ctx context.Context, req *containerpb.SetMaintenancePolicyRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 483 return c.internalClient.SetMaintenancePolicy(ctx, req, opts...) 484} 485 486// ListUsableSubnetworks lists subnetworks that are usable for creating clusters in a project. 487func (c *ClusterManagerClient) ListUsableSubnetworks(ctx context.Context, req *containerpb.ListUsableSubnetworksRequest, opts ...gax.CallOption) *UsableSubnetworkIterator { 488 return c.internalClient.ListUsableSubnetworks(ctx, req, opts...) 489} 490 491// clusterManagerGRPCClient is a client for interacting with Kubernetes Engine API over gRPC transport. 492// 493// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. 494type clusterManagerGRPCClient struct { 495 // Connection pool of gRPC connections to the service. 496 connPool gtransport.ConnPool 497 498 // flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE 499 disableDeadlines bool 500 501 // Points back to the CallOptions field of the containing ClusterManagerClient 502 CallOptions **ClusterManagerCallOptions 503 504 // The gRPC API client. 505 clusterManagerClient containerpb.ClusterManagerClient 506 507 // The x-goog-* metadata to be sent with each request. 508 xGoogMetadata metadata.MD 509} 510 511// NewClusterManagerClient creates a new cluster manager client based on gRPC. 512// The returned client must be Closed when it is done being used to clean up its underlying connections. 513// 514// Google Kubernetes Engine Cluster Manager v1 515func NewClusterManagerClient(ctx context.Context, opts ...option.ClientOption) (*ClusterManagerClient, error) { 516 clientOpts := defaultClusterManagerGRPCClientOptions() 517 if newClusterManagerClientHook != nil { 518 hookOpts, err := newClusterManagerClientHook(ctx, clientHookParams{}) 519 if err != nil { 520 return nil, err 521 } 522 clientOpts = append(clientOpts, hookOpts...) 523 } 524 525 disableDeadlines, err := checkDisableDeadlines() 526 if err != nil { 527 return nil, err 528 } 529 530 connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) 531 if err != nil { 532 return nil, err 533 } 534 client := ClusterManagerClient{CallOptions: defaultClusterManagerCallOptions()} 535 536 c := &clusterManagerGRPCClient{ 537 connPool: connPool, 538 disableDeadlines: disableDeadlines, 539 clusterManagerClient: containerpb.NewClusterManagerClient(connPool), 540 CallOptions: &client.CallOptions, 541 } 542 c.setGoogleClientInfo() 543 544 client.internalClient = c 545 546 return &client, nil 547} 548 549// Connection returns a connection to the API service. 550// 551// Deprecated. 552func (c *clusterManagerGRPCClient) Connection() *grpc.ClientConn { 553 return c.connPool.Conn() 554} 555 556// setGoogleClientInfo sets the name and version of the application in 557// the `x-goog-api-client` header passed on each request. Intended for 558// use by Google-written clients. 559func (c *clusterManagerGRPCClient) setGoogleClientInfo(keyval ...string) { 560 kv := append([]string{"gl-go", versionGo()}, keyval...) 561 kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) 562 c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) 563} 564 565// Close closes the connection to the API service. The user should invoke this when 566// the client is no longer required. 567func (c *clusterManagerGRPCClient) Close() error { 568 return c.connPool.Close() 569} 570 571func (c *clusterManagerGRPCClient) ListClusters(ctx context.Context, req *containerpb.ListClustersRequest, opts ...gax.CallOption) (*containerpb.ListClustersResponse, error) { 572 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 573 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 574 defer cancel() 575 ctx = cctx 576 } 577 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v", "parent", url.QueryEscape(req.GetParent()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()))) 578 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 579 opts = append((*c.CallOptions).ListClusters[0:len((*c.CallOptions).ListClusters):len((*c.CallOptions).ListClusters)], opts...) 580 var resp *containerpb.ListClustersResponse 581 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 582 var err error 583 resp, err = c.clusterManagerClient.ListClusters(ctx, req, settings.GRPC...) 584 return err 585 }, opts...) 586 if err != nil { 587 return nil, err 588 } 589 return resp, nil 590} 591 592func (c *clusterManagerGRPCClient) GetCluster(ctx context.Context, req *containerpb.GetClusterRequest, opts ...gax.CallOption) (*containerpb.Cluster, error) { 593 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 594 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 595 defer cancel() 596 ctx = cctx 597 } 598 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 599 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 600 opts = append((*c.CallOptions).GetCluster[0:len((*c.CallOptions).GetCluster):len((*c.CallOptions).GetCluster)], opts...) 601 var resp *containerpb.Cluster 602 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 603 var err error 604 resp, err = c.clusterManagerClient.GetCluster(ctx, req, settings.GRPC...) 605 return err 606 }, opts...) 607 if err != nil { 608 return nil, err 609 } 610 return resp, nil 611} 612 613func (c *clusterManagerGRPCClient) CreateCluster(ctx context.Context, req *containerpb.CreateClusterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 614 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 615 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 616 defer cancel() 617 ctx = cctx 618 } 619 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v", "parent", url.QueryEscape(req.GetParent()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()))) 620 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 621 opts = append((*c.CallOptions).CreateCluster[0:len((*c.CallOptions).CreateCluster):len((*c.CallOptions).CreateCluster)], opts...) 622 var resp *containerpb.Operation 623 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 624 var err error 625 resp, err = c.clusterManagerClient.CreateCluster(ctx, req, settings.GRPC...) 626 return err 627 }, opts...) 628 if err != nil { 629 return nil, err 630 } 631 return resp, nil 632} 633 634func (c *clusterManagerGRPCClient) UpdateCluster(ctx context.Context, req *containerpb.UpdateClusterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 635 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 636 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 637 defer cancel() 638 ctx = cctx 639 } 640 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 641 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 642 opts = append((*c.CallOptions).UpdateCluster[0:len((*c.CallOptions).UpdateCluster):len((*c.CallOptions).UpdateCluster)], opts...) 643 var resp *containerpb.Operation 644 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 645 var err error 646 resp, err = c.clusterManagerClient.UpdateCluster(ctx, req, settings.GRPC...) 647 return err 648 }, opts...) 649 if err != nil { 650 return nil, err 651 } 652 return resp, nil 653} 654 655func (c *clusterManagerGRPCClient) UpdateNodePool(ctx context.Context, req *containerpb.UpdateNodePoolRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 656 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 657 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 658 defer cancel() 659 ctx = cctx 660 } 661 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 662 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 663 opts = append((*c.CallOptions).UpdateNodePool[0:len((*c.CallOptions).UpdateNodePool):len((*c.CallOptions).UpdateNodePool)], opts...) 664 var resp *containerpb.Operation 665 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 666 var err error 667 resp, err = c.clusterManagerClient.UpdateNodePool(ctx, req, settings.GRPC...) 668 return err 669 }, opts...) 670 if err != nil { 671 return nil, err 672 } 673 return resp, nil 674} 675 676func (c *clusterManagerGRPCClient) SetNodePoolAutoscaling(ctx context.Context, req *containerpb.SetNodePoolAutoscalingRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 677 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 678 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 679 defer cancel() 680 ctx = cctx 681 } 682 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 683 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 684 opts = append((*c.CallOptions).SetNodePoolAutoscaling[0:len((*c.CallOptions).SetNodePoolAutoscaling):len((*c.CallOptions).SetNodePoolAutoscaling)], opts...) 685 var resp *containerpb.Operation 686 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 687 var err error 688 resp, err = c.clusterManagerClient.SetNodePoolAutoscaling(ctx, req, settings.GRPC...) 689 return err 690 }, opts...) 691 if err != nil { 692 return nil, err 693 } 694 return resp, nil 695} 696 697func (c *clusterManagerGRPCClient) SetLoggingService(ctx context.Context, req *containerpb.SetLoggingServiceRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 698 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 699 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 700 defer cancel() 701 ctx = cctx 702 } 703 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 704 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 705 opts = append((*c.CallOptions).SetLoggingService[0:len((*c.CallOptions).SetLoggingService):len((*c.CallOptions).SetLoggingService)], opts...) 706 var resp *containerpb.Operation 707 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 708 var err error 709 resp, err = c.clusterManagerClient.SetLoggingService(ctx, req, settings.GRPC...) 710 return err 711 }, opts...) 712 if err != nil { 713 return nil, err 714 } 715 return resp, nil 716} 717 718func (c *clusterManagerGRPCClient) SetMonitoringService(ctx context.Context, req *containerpb.SetMonitoringServiceRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 719 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 720 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 721 defer cancel() 722 ctx = cctx 723 } 724 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 725 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 726 opts = append((*c.CallOptions).SetMonitoringService[0:len((*c.CallOptions).SetMonitoringService):len((*c.CallOptions).SetMonitoringService)], opts...) 727 var resp *containerpb.Operation 728 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 729 var err error 730 resp, err = c.clusterManagerClient.SetMonitoringService(ctx, req, settings.GRPC...) 731 return err 732 }, opts...) 733 if err != nil { 734 return nil, err 735 } 736 return resp, nil 737} 738 739func (c *clusterManagerGRPCClient) SetAddonsConfig(ctx context.Context, req *containerpb.SetAddonsConfigRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 740 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 741 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 742 defer cancel() 743 ctx = cctx 744 } 745 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 746 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 747 opts = append((*c.CallOptions).SetAddonsConfig[0:len((*c.CallOptions).SetAddonsConfig):len((*c.CallOptions).SetAddonsConfig)], opts...) 748 var resp *containerpb.Operation 749 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 750 var err error 751 resp, err = c.clusterManagerClient.SetAddonsConfig(ctx, req, settings.GRPC...) 752 return err 753 }, opts...) 754 if err != nil { 755 return nil, err 756 } 757 return resp, nil 758} 759 760func (c *clusterManagerGRPCClient) SetLocations(ctx context.Context, req *containerpb.SetLocationsRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 761 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 762 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 763 defer cancel() 764 ctx = cctx 765 } 766 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 767 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 768 opts = append((*c.CallOptions).SetLocations[0:len((*c.CallOptions).SetLocations):len((*c.CallOptions).SetLocations)], opts...) 769 var resp *containerpb.Operation 770 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 771 var err error 772 resp, err = c.clusterManagerClient.SetLocations(ctx, req, settings.GRPC...) 773 return err 774 }, opts...) 775 if err != nil { 776 return nil, err 777 } 778 return resp, nil 779} 780 781func (c *clusterManagerGRPCClient) UpdateMaster(ctx context.Context, req *containerpb.UpdateMasterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 782 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 783 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 784 defer cancel() 785 ctx = cctx 786 } 787 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 788 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 789 opts = append((*c.CallOptions).UpdateMaster[0:len((*c.CallOptions).UpdateMaster):len((*c.CallOptions).UpdateMaster)], opts...) 790 var resp *containerpb.Operation 791 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 792 var err error 793 resp, err = c.clusterManagerClient.UpdateMaster(ctx, req, settings.GRPC...) 794 return err 795 }, opts...) 796 if err != nil { 797 return nil, err 798 } 799 return resp, nil 800} 801 802func (c *clusterManagerGRPCClient) SetMasterAuth(ctx context.Context, req *containerpb.SetMasterAuthRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 803 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 804 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 805 defer cancel() 806 ctx = cctx 807 } 808 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 809 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 810 opts = append((*c.CallOptions).SetMasterAuth[0:len((*c.CallOptions).SetMasterAuth):len((*c.CallOptions).SetMasterAuth)], opts...) 811 var resp *containerpb.Operation 812 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 813 var err error 814 resp, err = c.clusterManagerClient.SetMasterAuth(ctx, req, settings.GRPC...) 815 return err 816 }, opts...) 817 if err != nil { 818 return nil, err 819 } 820 return resp, nil 821} 822 823func (c *clusterManagerGRPCClient) DeleteCluster(ctx context.Context, req *containerpb.DeleteClusterRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 824 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 825 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 826 defer cancel() 827 ctx = cctx 828 } 829 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 830 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 831 opts = append((*c.CallOptions).DeleteCluster[0:len((*c.CallOptions).DeleteCluster):len((*c.CallOptions).DeleteCluster)], opts...) 832 var resp *containerpb.Operation 833 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 834 var err error 835 resp, err = c.clusterManagerClient.DeleteCluster(ctx, req, settings.GRPC...) 836 return err 837 }, opts...) 838 if err != nil { 839 return nil, err 840 } 841 return resp, nil 842} 843 844func (c *clusterManagerGRPCClient) ListOperations(ctx context.Context, req *containerpb.ListOperationsRequest, opts ...gax.CallOption) (*containerpb.ListOperationsResponse, error) { 845 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 846 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 847 defer cancel() 848 ctx = cctx 849 } 850 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v", "parent", url.QueryEscape(req.GetParent()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()))) 851 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 852 opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) 853 var resp *containerpb.ListOperationsResponse 854 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 855 var err error 856 resp, err = c.clusterManagerClient.ListOperations(ctx, req, settings.GRPC...) 857 return err 858 }, opts...) 859 if err != nil { 860 return nil, err 861 } 862 return resp, nil 863} 864 865func (c *clusterManagerGRPCClient) GetOperation(ctx context.Context, req *containerpb.GetOperationRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 866 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 867 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 868 defer cancel() 869 ctx = cctx 870 } 871 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "operation_id", url.QueryEscape(req.GetOperationId()))) 872 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 873 opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) 874 var resp *containerpb.Operation 875 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 876 var err error 877 resp, err = c.clusterManagerClient.GetOperation(ctx, req, settings.GRPC...) 878 return err 879 }, opts...) 880 if err != nil { 881 return nil, err 882 } 883 return resp, nil 884} 885 886func (c *clusterManagerGRPCClient) CancelOperation(ctx context.Context, req *containerpb.CancelOperationRequest, opts ...gax.CallOption) error { 887 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 888 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 889 defer cancel() 890 ctx = cctx 891 } 892 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "operation_id", url.QueryEscape(req.GetOperationId()))) 893 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 894 opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) 895 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 896 var err error 897 _, err = c.clusterManagerClient.CancelOperation(ctx, req, settings.GRPC...) 898 return err 899 }, opts...) 900 return err 901} 902 903func (c *clusterManagerGRPCClient) GetServerConfig(ctx context.Context, req *containerpb.GetServerConfigRequest, opts ...gax.CallOption) (*containerpb.ServerConfig, error) { 904 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 905 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 906 defer cancel() 907 ctx = cctx 908 } 909 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()))) 910 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 911 opts = append((*c.CallOptions).GetServerConfig[0:len((*c.CallOptions).GetServerConfig):len((*c.CallOptions).GetServerConfig)], opts...) 912 var resp *containerpb.ServerConfig 913 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 914 var err error 915 resp, err = c.clusterManagerClient.GetServerConfig(ctx, req, settings.GRPC...) 916 return err 917 }, opts...) 918 if err != nil { 919 return nil, err 920 } 921 return resp, nil 922} 923 924func (c *clusterManagerGRPCClient) GetJSONWebKeys(ctx context.Context, req *containerpb.GetJSONWebKeysRequest, opts ...gax.CallOption) (*containerpb.GetJSONWebKeysResponse, error) { 925 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 926 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 927 opts = append((*c.CallOptions).GetJSONWebKeys[0:len((*c.CallOptions).GetJSONWebKeys):len((*c.CallOptions).GetJSONWebKeys)], opts...) 928 var resp *containerpb.GetJSONWebKeysResponse 929 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 930 var err error 931 resp, err = c.clusterManagerClient.GetJSONWebKeys(ctx, req, settings.GRPC...) 932 return err 933 }, opts...) 934 if err != nil { 935 return nil, err 936 } 937 return resp, nil 938} 939 940func (c *clusterManagerGRPCClient) ListNodePools(ctx context.Context, req *containerpb.ListNodePoolsRequest, opts ...gax.CallOption) (*containerpb.ListNodePoolsResponse, error) { 941 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 942 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 943 defer cancel() 944 ctx = cctx 945 } 946 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "parent", url.QueryEscape(req.GetParent()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 947 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 948 opts = append((*c.CallOptions).ListNodePools[0:len((*c.CallOptions).ListNodePools):len((*c.CallOptions).ListNodePools)], opts...) 949 var resp *containerpb.ListNodePoolsResponse 950 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 951 var err error 952 resp, err = c.clusterManagerClient.ListNodePools(ctx, req, settings.GRPC...) 953 return err 954 }, opts...) 955 if err != nil { 956 return nil, err 957 } 958 return resp, nil 959} 960 961func (c *clusterManagerGRPCClient) GetNodePool(ctx context.Context, req *containerpb.GetNodePoolRequest, opts ...gax.CallOption) (*containerpb.NodePool, error) { 962 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 963 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 964 defer cancel() 965 ctx = cctx 966 } 967 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 968 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 969 opts = append((*c.CallOptions).GetNodePool[0:len((*c.CallOptions).GetNodePool):len((*c.CallOptions).GetNodePool)], opts...) 970 var resp *containerpb.NodePool 971 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 972 var err error 973 resp, err = c.clusterManagerClient.GetNodePool(ctx, req, settings.GRPC...) 974 return err 975 }, opts...) 976 if err != nil { 977 return nil, err 978 } 979 return resp, nil 980} 981 982func (c *clusterManagerGRPCClient) CreateNodePool(ctx context.Context, req *containerpb.CreateNodePoolRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 983 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 984 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 985 defer cancel() 986 ctx = cctx 987 } 988 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "parent", url.QueryEscape(req.GetParent()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 989 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 990 opts = append((*c.CallOptions).CreateNodePool[0:len((*c.CallOptions).CreateNodePool):len((*c.CallOptions).CreateNodePool)], opts...) 991 var resp *containerpb.Operation 992 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 993 var err error 994 resp, err = c.clusterManagerClient.CreateNodePool(ctx, req, settings.GRPC...) 995 return err 996 }, opts...) 997 if err != nil { 998 return nil, err 999 } 1000 return resp, nil 1001} 1002 1003func (c *clusterManagerGRPCClient) DeleteNodePool(ctx context.Context, req *containerpb.DeleteNodePoolRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1004 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1005 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 1006 defer cancel() 1007 ctx = cctx 1008 } 1009 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 1010 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1011 opts = append((*c.CallOptions).DeleteNodePool[0:len((*c.CallOptions).DeleteNodePool):len((*c.CallOptions).DeleteNodePool)], opts...) 1012 var resp *containerpb.Operation 1013 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1014 var err error 1015 resp, err = c.clusterManagerClient.DeleteNodePool(ctx, req, settings.GRPC...) 1016 return err 1017 }, opts...) 1018 if err != nil { 1019 return nil, err 1020 } 1021 return resp, nil 1022} 1023 1024func (c *clusterManagerGRPCClient) RollbackNodePoolUpgrade(ctx context.Context, req *containerpb.RollbackNodePoolUpgradeRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1025 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1026 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1027 defer cancel() 1028 ctx = cctx 1029 } 1030 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 1031 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1032 opts = append((*c.CallOptions).RollbackNodePoolUpgrade[0:len((*c.CallOptions).RollbackNodePoolUpgrade):len((*c.CallOptions).RollbackNodePoolUpgrade)], opts...) 1033 var resp *containerpb.Operation 1034 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1035 var err error 1036 resp, err = c.clusterManagerClient.RollbackNodePoolUpgrade(ctx, req, settings.GRPC...) 1037 return err 1038 }, opts...) 1039 if err != nil { 1040 return nil, err 1041 } 1042 return resp, nil 1043} 1044 1045func (c *clusterManagerGRPCClient) SetNodePoolManagement(ctx context.Context, req *containerpb.SetNodePoolManagementRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1046 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1047 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1048 defer cancel() 1049 ctx = cctx 1050 } 1051 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 1052 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1053 opts = append((*c.CallOptions).SetNodePoolManagement[0:len((*c.CallOptions).SetNodePoolManagement):len((*c.CallOptions).SetNodePoolManagement)], opts...) 1054 var resp *containerpb.Operation 1055 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1056 var err error 1057 resp, err = c.clusterManagerClient.SetNodePoolManagement(ctx, req, settings.GRPC...) 1058 return err 1059 }, opts...) 1060 if err != nil { 1061 return nil, err 1062 } 1063 return resp, nil 1064} 1065 1066func (c *clusterManagerGRPCClient) SetLabels(ctx context.Context, req *containerpb.SetLabelsRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1067 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1068 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1069 defer cancel() 1070 ctx = cctx 1071 } 1072 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 1073 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1074 opts = append((*c.CallOptions).SetLabels[0:len((*c.CallOptions).SetLabels):len((*c.CallOptions).SetLabels)], opts...) 1075 var resp *containerpb.Operation 1076 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1077 var err error 1078 resp, err = c.clusterManagerClient.SetLabels(ctx, req, settings.GRPC...) 1079 return err 1080 }, opts...) 1081 if err != nil { 1082 return nil, err 1083 } 1084 return resp, nil 1085} 1086 1087func (c *clusterManagerGRPCClient) SetLegacyAbac(ctx context.Context, req *containerpb.SetLegacyAbacRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1088 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1089 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1090 defer cancel() 1091 ctx = cctx 1092 } 1093 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 1094 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1095 opts = append((*c.CallOptions).SetLegacyAbac[0:len((*c.CallOptions).SetLegacyAbac):len((*c.CallOptions).SetLegacyAbac)], opts...) 1096 var resp *containerpb.Operation 1097 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1098 var err error 1099 resp, err = c.clusterManagerClient.SetLegacyAbac(ctx, req, settings.GRPC...) 1100 return err 1101 }, opts...) 1102 if err != nil { 1103 return nil, err 1104 } 1105 return resp, nil 1106} 1107 1108func (c *clusterManagerGRPCClient) StartIPRotation(ctx context.Context, req *containerpb.StartIPRotationRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1109 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1110 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1111 defer cancel() 1112 ctx = cctx 1113 } 1114 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 1115 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1116 opts = append((*c.CallOptions).StartIPRotation[0:len((*c.CallOptions).StartIPRotation):len((*c.CallOptions).StartIPRotation)], opts...) 1117 var resp *containerpb.Operation 1118 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1119 var err error 1120 resp, err = c.clusterManagerClient.StartIPRotation(ctx, req, settings.GRPC...) 1121 return err 1122 }, opts...) 1123 if err != nil { 1124 return nil, err 1125 } 1126 return resp, nil 1127} 1128 1129func (c *clusterManagerGRPCClient) CompleteIPRotation(ctx context.Context, req *containerpb.CompleteIPRotationRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1130 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1131 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1132 defer cancel() 1133 ctx = cctx 1134 } 1135 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 1136 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1137 opts = append((*c.CallOptions).CompleteIPRotation[0:len((*c.CallOptions).CompleteIPRotation):len((*c.CallOptions).CompleteIPRotation)], opts...) 1138 var resp *containerpb.Operation 1139 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1140 var err error 1141 resp, err = c.clusterManagerClient.CompleteIPRotation(ctx, req, settings.GRPC...) 1142 return err 1143 }, opts...) 1144 if err != nil { 1145 return nil, err 1146 } 1147 return resp, nil 1148} 1149 1150func (c *clusterManagerGRPCClient) SetNodePoolSize(ctx context.Context, req *containerpb.SetNodePoolSizeRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1151 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1152 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1153 defer cancel() 1154 ctx = cctx 1155 } 1156 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()), "node_pool_id", url.QueryEscape(req.GetNodePoolId()))) 1157 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1158 opts = append((*c.CallOptions).SetNodePoolSize[0:len((*c.CallOptions).SetNodePoolSize):len((*c.CallOptions).SetNodePoolSize)], opts...) 1159 var resp *containerpb.Operation 1160 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1161 var err error 1162 resp, err = c.clusterManagerClient.SetNodePoolSize(ctx, req, settings.GRPC...) 1163 return err 1164 }, opts...) 1165 if err != nil { 1166 return nil, err 1167 } 1168 return resp, nil 1169} 1170 1171func (c *clusterManagerGRPCClient) SetNetworkPolicy(ctx context.Context, req *containerpb.SetNetworkPolicyRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1172 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1173 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1174 defer cancel() 1175 ctx = cctx 1176 } 1177 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 1178 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1179 opts = append((*c.CallOptions).SetNetworkPolicy[0:len((*c.CallOptions).SetNetworkPolicy):len((*c.CallOptions).SetNetworkPolicy)], opts...) 1180 var resp *containerpb.Operation 1181 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1182 var err error 1183 resp, err = c.clusterManagerClient.SetNetworkPolicy(ctx, req, settings.GRPC...) 1184 return err 1185 }, opts...) 1186 if err != nil { 1187 return nil, err 1188 } 1189 return resp, nil 1190} 1191 1192func (c *clusterManagerGRPCClient) SetMaintenancePolicy(ctx context.Context, req *containerpb.SetMaintenancePolicyRequest, opts ...gax.CallOption) (*containerpb.Operation, error) { 1193 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 1194 cctx, cancel := context.WithTimeout(ctx, 45000*time.Millisecond) 1195 defer cancel() 1196 ctx = cctx 1197 } 1198 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v&%s=%v&%s=%v", "name", url.QueryEscape(req.GetName()), "project_id", url.QueryEscape(req.GetProjectId()), "zone", url.QueryEscape(req.GetZone()), "cluster_id", url.QueryEscape(req.GetClusterId()))) 1199 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1200 opts = append((*c.CallOptions).SetMaintenancePolicy[0:len((*c.CallOptions).SetMaintenancePolicy):len((*c.CallOptions).SetMaintenancePolicy)], opts...) 1201 var resp *containerpb.Operation 1202 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1203 var err error 1204 resp, err = c.clusterManagerClient.SetMaintenancePolicy(ctx, req, settings.GRPC...) 1205 return err 1206 }, opts...) 1207 if err != nil { 1208 return nil, err 1209 } 1210 return resp, nil 1211} 1212 1213func (c *clusterManagerGRPCClient) ListUsableSubnetworks(ctx context.Context, req *containerpb.ListUsableSubnetworksRequest, opts ...gax.CallOption) *UsableSubnetworkIterator { 1214 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 1215 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 1216 opts = append((*c.CallOptions).ListUsableSubnetworks[0:len((*c.CallOptions).ListUsableSubnetworks):len((*c.CallOptions).ListUsableSubnetworks)], opts...) 1217 it := &UsableSubnetworkIterator{} 1218 req = proto.Clone(req).(*containerpb.ListUsableSubnetworksRequest) 1219 it.InternalFetch = func(pageSize int, pageToken string) ([]*containerpb.UsableSubnetwork, string, error) { 1220 resp := &containerpb.ListUsableSubnetworksResponse{} 1221 if pageToken != "" { 1222 req.PageToken = pageToken 1223 } 1224 if pageSize > math.MaxInt32 { 1225 req.PageSize = math.MaxInt32 1226 } else if pageSize != 0 { 1227 req.PageSize = int32(pageSize) 1228 } 1229 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 1230 var err error 1231 resp, err = c.clusterManagerClient.ListUsableSubnetworks(ctx, req, settings.GRPC...) 1232 return err 1233 }, opts...) 1234 if err != nil { 1235 return nil, "", err 1236 } 1237 1238 it.Response = resp 1239 return resp.GetSubnetworks(), resp.GetNextPageToken(), nil 1240 } 1241 fetch := func(pageSize int, pageToken string) (string, error) { 1242 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 1243 if err != nil { 1244 return "", err 1245 } 1246 it.items = append(it.items, items...) 1247 return nextPageToken, nil 1248 } 1249 1250 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 1251 it.pageInfo.MaxSize = int(req.GetPageSize()) 1252 it.pageInfo.Token = req.GetPageToken() 1253 1254 return it 1255} 1256 1257// UsableSubnetworkIterator manages a stream of *containerpb.UsableSubnetwork. 1258type UsableSubnetworkIterator struct { 1259 items []*containerpb.UsableSubnetwork 1260 pageInfo *iterator.PageInfo 1261 nextFunc func() error 1262 1263 // Response is the raw response for the current page. 1264 // It must be cast to the RPC response type. 1265 // Calling Next() or InternalFetch() updates this value. 1266 Response interface{} 1267 1268 // InternalFetch is for use by the Google Cloud Libraries only. 1269 // It is not part of the stable interface of this package. 1270 // 1271 // InternalFetch returns results from a single call to the underlying RPC. 1272 // The number of results is no greater than pageSize. 1273 // If there are no more results, nextPageToken is empty and err is nil. 1274 InternalFetch func(pageSize int, pageToken string) (results []*containerpb.UsableSubnetwork, nextPageToken string, err error) 1275} 1276 1277// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 1278func (it *UsableSubnetworkIterator) PageInfo() *iterator.PageInfo { 1279 return it.pageInfo 1280} 1281 1282// Next returns the next result. Its second return value is iterator.Done if there are no more 1283// results. Once Next returns Done, all subsequent calls will return Done. 1284func (it *UsableSubnetworkIterator) Next() (*containerpb.UsableSubnetwork, error) { 1285 var item *containerpb.UsableSubnetwork 1286 if err := it.nextFunc(); err != nil { 1287 return item, err 1288 } 1289 item = it.items[0] 1290 it.items = it.items[1:] 1291 return item, nil 1292} 1293 1294func (it *UsableSubnetworkIterator) bufLen() int { 1295 return len(it.items) 1296} 1297 1298func (it *UsableSubnetworkIterator) takeBuf() interface{} { 1299 b := it.items 1300 it.items = nil 1301 return b 1302} 1303