1 /* 2 * Copyright 2022 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.cloud.compute.v1.stub; 18 19 import static com.google.cloud.compute.v1.ImagesClient.ListPagedResponse; 20 21 import com.google.api.core.ApiFunction; 22 import com.google.api.core.ApiFuture; 23 import com.google.api.core.BetaApi; 24 import com.google.api.gax.core.GaxProperties; 25 import com.google.api.gax.core.GoogleCredentialsProvider; 26 import com.google.api.gax.core.InstantiatingExecutorProvider; 27 import com.google.api.gax.httpjson.GaxHttpJsonProperties; 28 import com.google.api.gax.httpjson.HttpJsonTransportChannel; 29 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; 30 import com.google.api.gax.httpjson.ProtoOperationTransformers; 31 import com.google.api.gax.longrunning.OperationSnapshot; 32 import com.google.api.gax.longrunning.OperationTimedPollAlgorithm; 33 import com.google.api.gax.retrying.RetrySettings; 34 import com.google.api.gax.rpc.ApiCallContext; 35 import com.google.api.gax.rpc.ApiClientHeaderProvider; 36 import com.google.api.gax.rpc.ClientContext; 37 import com.google.api.gax.rpc.OperationCallSettings; 38 import com.google.api.gax.rpc.PageContext; 39 import com.google.api.gax.rpc.PagedCallSettings; 40 import com.google.api.gax.rpc.PagedListDescriptor; 41 import com.google.api.gax.rpc.PagedListResponseFactory; 42 import com.google.api.gax.rpc.StatusCode; 43 import com.google.api.gax.rpc.StubSettings; 44 import com.google.api.gax.rpc.TransportChannelProvider; 45 import com.google.api.gax.rpc.UnaryCallSettings; 46 import com.google.api.gax.rpc.UnaryCallable; 47 import com.google.cloud.compute.v1.DeleteImageRequest; 48 import com.google.cloud.compute.v1.DeprecateImageRequest; 49 import com.google.cloud.compute.v1.GetFromFamilyImageRequest; 50 import com.google.cloud.compute.v1.GetIamPolicyImageRequest; 51 import com.google.cloud.compute.v1.GetImageRequest; 52 import com.google.cloud.compute.v1.Image; 53 import com.google.cloud.compute.v1.ImageList; 54 import com.google.cloud.compute.v1.InsertImageRequest; 55 import com.google.cloud.compute.v1.ListImagesRequest; 56 import com.google.cloud.compute.v1.Operation; 57 import com.google.cloud.compute.v1.PatchImageRequest; 58 import com.google.cloud.compute.v1.Policy; 59 import com.google.cloud.compute.v1.SetIamPolicyImageRequest; 60 import com.google.cloud.compute.v1.SetLabelsImageRequest; 61 import com.google.cloud.compute.v1.TestIamPermissionsImageRequest; 62 import com.google.cloud.compute.v1.TestPermissionsResponse; 63 import com.google.common.collect.ImmutableList; 64 import com.google.common.collect.ImmutableMap; 65 import com.google.common.collect.ImmutableSet; 66 import com.google.common.collect.Lists; 67 import java.io.IOException; 68 import java.util.List; 69 import javax.annotation.Generated; 70 import org.threeten.bp.Duration; 71 72 // AUTO-GENERATED DOCUMENTATION AND CLASS. 73 /** 74 * Settings class to configure an instance of {@link ImagesStub}. 75 * 76 * <p>The default instance has everything set to sensible defaults: 77 * 78 * <ul> 79 * <li>The default service address (compute.googleapis.com) and default port (443) are used. 80 * <li>Credentials are acquired automatically through Application Default Credentials. 81 * <li>Retries are configured for idempotent methods but not for non-idempotent methods. 82 * </ul> 83 * 84 * <p>The builder of this class is recursive, so contained classes are themselves builders. When 85 * build() is called, the tree of builders is called to create the complete settings object. 86 * 87 * <p>For example, to set the total timeout of get to 30 seconds: 88 * 89 * <pre>{@code 90 * // This snippet has been automatically generated and should be regarded as a code template only. 91 * // It will require modifications to work: 92 * // - It may require correct/in-range values for request initialization. 93 * // - It may require specifying regional endpoints when creating the service client as shown in 94 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 95 * ImagesStubSettings.Builder imagesSettingsBuilder = ImagesStubSettings.newBuilder(); 96 * imagesSettingsBuilder 97 * .getSettings() 98 * .setRetrySettings( 99 * imagesSettingsBuilder 100 * .getSettings() 101 * .getRetrySettings() 102 * .toBuilder() 103 * .setTotalTimeout(Duration.ofSeconds(30)) 104 * .build()); 105 * ImagesStubSettings imagesSettings = imagesSettingsBuilder.build(); 106 * }</pre> 107 */ 108 @Generated("by gapic-generator-java") 109 public class ImagesStubSettings extends StubSettings<ImagesStubSettings> { 110 /** The default scopes of the service. */ 111 private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES = 112 ImmutableList.<String>builder() 113 .add("https://www.googleapis.com/auth/compute") 114 .add("https://www.googleapis.com/auth/cloud-platform") 115 .build(); 116 117 private final UnaryCallSettings<DeleteImageRequest, Operation> deleteSettings; 118 private final OperationCallSettings<DeleteImageRequest, Operation, Operation> 119 deleteOperationSettings; 120 private final UnaryCallSettings<DeprecateImageRequest, Operation> deprecateSettings; 121 private final OperationCallSettings<DeprecateImageRequest, Operation, Operation> 122 deprecateOperationSettings; 123 private final UnaryCallSettings<GetImageRequest, Image> getSettings; 124 private final UnaryCallSettings<GetFromFamilyImageRequest, Image> getFromFamilySettings; 125 private final UnaryCallSettings<GetIamPolicyImageRequest, Policy> getIamPolicySettings; 126 private final UnaryCallSettings<InsertImageRequest, Operation> insertSettings; 127 private final OperationCallSettings<InsertImageRequest, Operation, Operation> 128 insertOperationSettings; 129 private final PagedCallSettings<ListImagesRequest, ImageList, ListPagedResponse> listSettings; 130 private final UnaryCallSettings<PatchImageRequest, Operation> patchSettings; 131 private final OperationCallSettings<PatchImageRequest, Operation, Operation> 132 patchOperationSettings; 133 private final UnaryCallSettings<SetIamPolicyImageRequest, Policy> setIamPolicySettings; 134 private final UnaryCallSettings<SetLabelsImageRequest, Operation> setLabelsSettings; 135 private final OperationCallSettings<SetLabelsImageRequest, Operation, Operation> 136 setLabelsOperationSettings; 137 private final UnaryCallSettings<TestIamPermissionsImageRequest, TestPermissionsResponse> 138 testIamPermissionsSettings; 139 140 private static final PagedListDescriptor<ListImagesRequest, ImageList, Image> LIST_PAGE_STR_DESC = 141 new PagedListDescriptor<ListImagesRequest, ImageList, Image>() { 142 @Override 143 public String emptyToken() { 144 return ""; 145 } 146 147 @Override 148 public ListImagesRequest injectToken(ListImagesRequest payload, String token) { 149 return ListImagesRequest.newBuilder(payload).setPageToken(token).build(); 150 } 151 152 @Override 153 public ListImagesRequest injectPageSize(ListImagesRequest payload, int pageSize) { 154 return ListImagesRequest.newBuilder(payload).setMaxResults(pageSize).build(); 155 } 156 157 @Override 158 public Integer extractPageSize(ListImagesRequest payload) { 159 return payload.getMaxResults(); 160 } 161 162 @Override 163 public String extractNextToken(ImageList payload) { 164 return payload.getNextPageToken(); 165 } 166 167 @Override 168 public Iterable<Image> extractResources(ImageList payload) { 169 return payload.getItemsList() == null 170 ? ImmutableList.<Image>of() 171 : payload.getItemsList(); 172 } 173 }; 174 175 private static final PagedListResponseFactory<ListImagesRequest, ImageList, ListPagedResponse> 176 LIST_PAGE_STR_FACT = 177 new PagedListResponseFactory<ListImagesRequest, ImageList, ListPagedResponse>() { 178 @Override 179 public ApiFuture<ListPagedResponse> getFuturePagedResponse( 180 UnaryCallable<ListImagesRequest, ImageList> callable, 181 ListImagesRequest request, 182 ApiCallContext context, 183 ApiFuture<ImageList> futureResponse) { 184 PageContext<ListImagesRequest, ImageList, Image> pageContext = 185 PageContext.create(callable, LIST_PAGE_STR_DESC, request, context); 186 return ListPagedResponse.createAsync(pageContext, futureResponse); 187 } 188 }; 189 190 /** Returns the object with the settings used for calls to delete. */ deleteSettings()191 public UnaryCallSettings<DeleteImageRequest, Operation> deleteSettings() { 192 return deleteSettings; 193 } 194 195 /** Returns the object with the settings used for calls to delete. */ deleteOperationSettings()196 public OperationCallSettings<DeleteImageRequest, Operation, Operation> deleteOperationSettings() { 197 return deleteOperationSettings; 198 } 199 200 /** Returns the object with the settings used for calls to deprecate. */ deprecateSettings()201 public UnaryCallSettings<DeprecateImageRequest, Operation> deprecateSettings() { 202 return deprecateSettings; 203 } 204 205 /** Returns the object with the settings used for calls to deprecate. */ 206 public OperationCallSettings<DeprecateImageRequest, Operation, Operation> deprecateOperationSettings()207 deprecateOperationSettings() { 208 return deprecateOperationSettings; 209 } 210 211 /** Returns the object with the settings used for calls to get. */ getSettings()212 public UnaryCallSettings<GetImageRequest, Image> getSettings() { 213 return getSettings; 214 } 215 216 /** Returns the object with the settings used for calls to getFromFamily. */ getFromFamilySettings()217 public UnaryCallSettings<GetFromFamilyImageRequest, Image> getFromFamilySettings() { 218 return getFromFamilySettings; 219 } 220 221 /** Returns the object with the settings used for calls to getIamPolicy. */ getIamPolicySettings()222 public UnaryCallSettings<GetIamPolicyImageRequest, Policy> getIamPolicySettings() { 223 return getIamPolicySettings; 224 } 225 226 /** Returns the object with the settings used for calls to insert. */ insertSettings()227 public UnaryCallSettings<InsertImageRequest, Operation> insertSettings() { 228 return insertSettings; 229 } 230 231 /** Returns the object with the settings used for calls to insert. */ insertOperationSettings()232 public OperationCallSettings<InsertImageRequest, Operation, Operation> insertOperationSettings() { 233 return insertOperationSettings; 234 } 235 236 /** Returns the object with the settings used for calls to list. */ listSettings()237 public PagedCallSettings<ListImagesRequest, ImageList, ListPagedResponse> listSettings() { 238 return listSettings; 239 } 240 241 /** Returns the object with the settings used for calls to patch. */ patchSettings()242 public UnaryCallSettings<PatchImageRequest, Operation> patchSettings() { 243 return patchSettings; 244 } 245 246 /** Returns the object with the settings used for calls to patch. */ patchOperationSettings()247 public OperationCallSettings<PatchImageRequest, Operation, Operation> patchOperationSettings() { 248 return patchOperationSettings; 249 } 250 251 /** Returns the object with the settings used for calls to setIamPolicy. */ setIamPolicySettings()252 public UnaryCallSettings<SetIamPolicyImageRequest, Policy> setIamPolicySettings() { 253 return setIamPolicySettings; 254 } 255 256 /** Returns the object with the settings used for calls to setLabels. */ setLabelsSettings()257 public UnaryCallSettings<SetLabelsImageRequest, Operation> setLabelsSettings() { 258 return setLabelsSettings; 259 } 260 261 /** Returns the object with the settings used for calls to setLabels. */ 262 public OperationCallSettings<SetLabelsImageRequest, Operation, Operation> setLabelsOperationSettings()263 setLabelsOperationSettings() { 264 return setLabelsOperationSettings; 265 } 266 267 /** Returns the object with the settings used for calls to testIamPermissions. */ 268 public UnaryCallSettings<TestIamPermissionsImageRequest, TestPermissionsResponse> testIamPermissionsSettings()269 testIamPermissionsSettings() { 270 return testIamPermissionsSettings; 271 } 272 createStub()273 public ImagesStub createStub() throws IOException { 274 if (getTransportChannelProvider() 275 .getTransportName() 276 .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { 277 return HttpJsonImagesStub.create(this); 278 } 279 throw new UnsupportedOperationException( 280 String.format( 281 "Transport not supported: %s", getTransportChannelProvider().getTransportName())); 282 } 283 284 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()285 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 286 return InstantiatingExecutorProvider.newBuilder(); 287 } 288 289 /** Returns the default service endpoint. */ getDefaultEndpoint()290 public static String getDefaultEndpoint() { 291 return "compute.googleapis.com:443"; 292 } 293 294 /** Returns the default mTLS service endpoint. */ getDefaultMtlsEndpoint()295 public static String getDefaultMtlsEndpoint() { 296 return "compute.mtls.googleapis.com:443"; 297 } 298 299 /** Returns the default service scopes. */ getDefaultServiceScopes()300 public static List<String> getDefaultServiceScopes() { 301 return DEFAULT_SERVICE_SCOPES; 302 } 303 304 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()305 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 306 return GoogleCredentialsProvider.newBuilder() 307 .setScopesToApply(DEFAULT_SERVICE_SCOPES) 308 .setUseJwtAccessWithScope(true); 309 } 310 311 /** Returns a builder for the default ChannelProvider for this service. */ 312 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()313 defaultHttpJsonTransportProviderBuilder() { 314 return InstantiatingHttpJsonChannelProvider.newBuilder(); 315 } 316 defaultTransportChannelProvider()317 public static TransportChannelProvider defaultTransportChannelProvider() { 318 return defaultHttpJsonTransportProviderBuilder().build(); 319 } 320 321 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultApiClientHeaderProviderBuilder()322 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 323 return ApiClientHeaderProvider.newBuilder() 324 .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(ImagesStubSettings.class)) 325 .setTransportToken( 326 GaxHttpJsonProperties.getHttpJsonTokenName(), 327 GaxHttpJsonProperties.getHttpJsonVersion()); 328 } 329 330 /** Returns a new builder for this class. */ newBuilder()331 public static Builder newBuilder() { 332 return Builder.createDefault(); 333 } 334 335 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)336 public static Builder newBuilder(ClientContext clientContext) { 337 return new Builder(clientContext); 338 } 339 340 /** Returns a builder containing all the values of this settings class. */ toBuilder()341 public Builder toBuilder() { 342 return new Builder(this); 343 } 344 ImagesStubSettings(Builder settingsBuilder)345 protected ImagesStubSettings(Builder settingsBuilder) throws IOException { 346 super(settingsBuilder); 347 348 deleteSettings = settingsBuilder.deleteSettings().build(); 349 deleteOperationSettings = settingsBuilder.deleteOperationSettings().build(); 350 deprecateSettings = settingsBuilder.deprecateSettings().build(); 351 deprecateOperationSettings = settingsBuilder.deprecateOperationSettings().build(); 352 getSettings = settingsBuilder.getSettings().build(); 353 getFromFamilySettings = settingsBuilder.getFromFamilySettings().build(); 354 getIamPolicySettings = settingsBuilder.getIamPolicySettings().build(); 355 insertSettings = settingsBuilder.insertSettings().build(); 356 insertOperationSettings = settingsBuilder.insertOperationSettings().build(); 357 listSettings = settingsBuilder.listSettings().build(); 358 patchSettings = settingsBuilder.patchSettings().build(); 359 patchOperationSettings = settingsBuilder.patchOperationSettings().build(); 360 setIamPolicySettings = settingsBuilder.setIamPolicySettings().build(); 361 setLabelsSettings = settingsBuilder.setLabelsSettings().build(); 362 setLabelsOperationSettings = settingsBuilder.setLabelsOperationSettings().build(); 363 testIamPermissionsSettings = settingsBuilder.testIamPermissionsSettings().build(); 364 } 365 366 /** Builder for ImagesStubSettings. */ 367 public static class Builder extends StubSettings.Builder<ImagesStubSettings, Builder> { 368 private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders; 369 private final UnaryCallSettings.Builder<DeleteImageRequest, Operation> deleteSettings; 370 private final OperationCallSettings.Builder<DeleteImageRequest, Operation, Operation> 371 deleteOperationSettings; 372 private final UnaryCallSettings.Builder<DeprecateImageRequest, Operation> deprecateSettings; 373 private final OperationCallSettings.Builder<DeprecateImageRequest, Operation, Operation> 374 deprecateOperationSettings; 375 private final UnaryCallSettings.Builder<GetImageRequest, Image> getSettings; 376 private final UnaryCallSettings.Builder<GetFromFamilyImageRequest, Image> getFromFamilySettings; 377 private final UnaryCallSettings.Builder<GetIamPolicyImageRequest, Policy> getIamPolicySettings; 378 private final UnaryCallSettings.Builder<InsertImageRequest, Operation> insertSettings; 379 private final OperationCallSettings.Builder<InsertImageRequest, Operation, Operation> 380 insertOperationSettings; 381 private final PagedCallSettings.Builder<ListImagesRequest, ImageList, ListPagedResponse> 382 listSettings; 383 private final UnaryCallSettings.Builder<PatchImageRequest, Operation> patchSettings; 384 private final OperationCallSettings.Builder<PatchImageRequest, Operation, Operation> 385 patchOperationSettings; 386 private final UnaryCallSettings.Builder<SetIamPolicyImageRequest, Policy> setIamPolicySettings; 387 private final UnaryCallSettings.Builder<SetLabelsImageRequest, Operation> setLabelsSettings; 388 private final OperationCallSettings.Builder<SetLabelsImageRequest, Operation, Operation> 389 setLabelsOperationSettings; 390 private final UnaryCallSettings.Builder<TestIamPermissionsImageRequest, TestPermissionsResponse> 391 testIamPermissionsSettings; 392 private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>> 393 RETRYABLE_CODE_DEFINITIONS; 394 395 static { 396 ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions = 397 ImmutableMap.builder(); 398 definitions.put( 399 "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList())); 400 definitions.put( 401 "retry_policy_0_codes", 402 ImmutableSet.copyOf( 403 Lists.<StatusCode.Code>newArrayList( 404 StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); 405 RETRYABLE_CODE_DEFINITIONS = definitions.build(); 406 } 407 408 private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS; 409 410 static { 411 ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder(); 412 RetrySettings settings = null; 413 settings = 414 RetrySettings.newBuilder() 415 .setInitialRpcTimeout(Duration.ofMillis(600000L)) 416 .setRpcTimeoutMultiplier(1.0) 417 .setMaxRpcTimeout(Duration.ofMillis(600000L)) 418 .setTotalTimeout(Duration.ofMillis(600000L)) 419 .build(); 420 definitions.put("no_retry_1_params", settings); 421 settings = 422 RetrySettings.newBuilder() 423 .setInitialRetryDelay(Duration.ofMillis(100L)) 424 .setRetryDelayMultiplier(1.3) 425 .setMaxRetryDelay(Duration.ofMillis(60000L)) 426 .setInitialRpcTimeout(Duration.ofMillis(600000L)) 427 .setRpcTimeoutMultiplier(1.0) 428 .setMaxRpcTimeout(Duration.ofMillis(600000L)) 429 .setTotalTimeout(Duration.ofMillis(600000L)) 430 .build(); 431 definitions.put("retry_policy_0_params", settings); 432 RETRY_PARAM_DEFINITIONS = definitions.build(); 433 } 434 Builder()435 protected Builder() { 436 this(((ClientContext) null)); 437 } 438 Builder(ClientContext clientContext)439 protected Builder(ClientContext clientContext) { 440 super(clientContext); 441 442 deleteSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 443 deleteOperationSettings = OperationCallSettings.newBuilder(); 444 deprecateSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 445 deprecateOperationSettings = OperationCallSettings.newBuilder(); 446 getSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 447 getFromFamilySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 448 getIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 449 insertSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 450 insertOperationSettings = OperationCallSettings.newBuilder(); 451 listSettings = PagedCallSettings.newBuilder(LIST_PAGE_STR_FACT); 452 patchSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 453 patchOperationSettings = OperationCallSettings.newBuilder(); 454 setIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 455 setLabelsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 456 setLabelsOperationSettings = OperationCallSettings.newBuilder(); 457 testIamPermissionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 458 459 unaryMethodSettingsBuilders = 460 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of( 461 deleteSettings, 462 deprecateSettings, 463 getSettings, 464 getFromFamilySettings, 465 getIamPolicySettings, 466 insertSettings, 467 listSettings, 468 patchSettings, 469 setIamPolicySettings, 470 setLabelsSettings, 471 testIamPermissionsSettings); 472 initDefaults(this); 473 } 474 Builder(ImagesStubSettings settings)475 protected Builder(ImagesStubSettings settings) { 476 super(settings); 477 478 deleteSettings = settings.deleteSettings.toBuilder(); 479 deleteOperationSettings = settings.deleteOperationSettings.toBuilder(); 480 deprecateSettings = settings.deprecateSettings.toBuilder(); 481 deprecateOperationSettings = settings.deprecateOperationSettings.toBuilder(); 482 getSettings = settings.getSettings.toBuilder(); 483 getFromFamilySettings = settings.getFromFamilySettings.toBuilder(); 484 getIamPolicySettings = settings.getIamPolicySettings.toBuilder(); 485 insertSettings = settings.insertSettings.toBuilder(); 486 insertOperationSettings = settings.insertOperationSettings.toBuilder(); 487 listSettings = settings.listSettings.toBuilder(); 488 patchSettings = settings.patchSettings.toBuilder(); 489 patchOperationSettings = settings.patchOperationSettings.toBuilder(); 490 setIamPolicySettings = settings.setIamPolicySettings.toBuilder(); 491 setLabelsSettings = settings.setLabelsSettings.toBuilder(); 492 setLabelsOperationSettings = settings.setLabelsOperationSettings.toBuilder(); 493 testIamPermissionsSettings = settings.testIamPermissionsSettings.toBuilder(); 494 495 unaryMethodSettingsBuilders = 496 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of( 497 deleteSettings, 498 deprecateSettings, 499 getSettings, 500 getFromFamilySettings, 501 getIamPolicySettings, 502 insertSettings, 503 listSettings, 504 patchSettings, 505 setIamPolicySettings, 506 setLabelsSettings, 507 testIamPermissionsSettings); 508 } 509 createDefault()510 private static Builder createDefault() { 511 Builder builder = new Builder(((ClientContext) null)); 512 513 builder.setTransportChannelProvider(defaultTransportChannelProvider()); 514 builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); 515 builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); 516 builder.setEndpoint(getDefaultEndpoint()); 517 builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); 518 builder.setSwitchToMtlsEndpointAllowed(true); 519 520 return initDefaults(builder); 521 } 522 initDefaults(Builder builder)523 private static Builder initDefaults(Builder builder) { 524 builder 525 .deleteSettings() 526 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 527 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 528 529 builder 530 .deprecateSettings() 531 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 532 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 533 534 builder 535 .getSettings() 536 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 537 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 538 539 builder 540 .getFromFamilySettings() 541 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 542 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 543 544 builder 545 .getIamPolicySettings() 546 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 547 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 548 549 builder 550 .insertSettings() 551 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 552 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 553 554 builder 555 .listSettings() 556 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 557 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 558 559 builder 560 .patchSettings() 561 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 562 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 563 564 builder 565 .setIamPolicySettings() 566 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 567 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 568 569 builder 570 .setLabelsSettings() 571 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 572 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 573 574 builder 575 .testIamPermissionsSettings() 576 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 577 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 578 579 builder 580 .deleteOperationSettings() 581 .setInitialCallSettings( 582 UnaryCallSettings.<DeleteImageRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 583 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 584 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 585 .build()) 586 .setResponseTransformer( 587 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 588 .setMetadataTransformer( 589 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 590 .setPollingAlgorithm( 591 OperationTimedPollAlgorithm.create( 592 RetrySettings.newBuilder() 593 .setInitialRetryDelay(Duration.ofMillis(500L)) 594 .setRetryDelayMultiplier(1.5) 595 .setMaxRetryDelay(Duration.ofMillis(20000L)) 596 .setInitialRpcTimeout(Duration.ZERO) 597 .setRpcTimeoutMultiplier(1.0) 598 .setMaxRpcTimeout(Duration.ZERO) 599 .setTotalTimeout(Duration.ofMillis(600000L)) 600 .build())); 601 602 builder 603 .deprecateOperationSettings() 604 .setInitialCallSettings( 605 UnaryCallSettings 606 .<DeprecateImageRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 607 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 608 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 609 .build()) 610 .setResponseTransformer( 611 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 612 .setMetadataTransformer( 613 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 614 .setPollingAlgorithm( 615 OperationTimedPollAlgorithm.create( 616 RetrySettings.newBuilder() 617 .setInitialRetryDelay(Duration.ofMillis(500L)) 618 .setRetryDelayMultiplier(1.5) 619 .setMaxRetryDelay(Duration.ofMillis(20000L)) 620 .setInitialRpcTimeout(Duration.ZERO) 621 .setRpcTimeoutMultiplier(1.0) 622 .setMaxRpcTimeout(Duration.ZERO) 623 .setTotalTimeout(Duration.ofMillis(600000L)) 624 .build())); 625 626 builder 627 .insertOperationSettings() 628 .setInitialCallSettings( 629 UnaryCallSettings.<InsertImageRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 630 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 631 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 632 .build()) 633 .setResponseTransformer( 634 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 635 .setMetadataTransformer( 636 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 637 .setPollingAlgorithm( 638 OperationTimedPollAlgorithm.create( 639 RetrySettings.newBuilder() 640 .setInitialRetryDelay(Duration.ofMillis(500L)) 641 .setRetryDelayMultiplier(1.5) 642 .setMaxRetryDelay(Duration.ofMillis(20000L)) 643 .setInitialRpcTimeout(Duration.ZERO) 644 .setRpcTimeoutMultiplier(1.0) 645 .setMaxRpcTimeout(Duration.ZERO) 646 .setTotalTimeout(Duration.ofMillis(600000L)) 647 .build())); 648 649 builder 650 .patchOperationSettings() 651 .setInitialCallSettings( 652 UnaryCallSettings.<PatchImageRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 653 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 654 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 655 .build()) 656 .setResponseTransformer( 657 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 658 .setMetadataTransformer( 659 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 660 .setPollingAlgorithm( 661 OperationTimedPollAlgorithm.create( 662 RetrySettings.newBuilder() 663 .setInitialRetryDelay(Duration.ofMillis(500L)) 664 .setRetryDelayMultiplier(1.5) 665 .setMaxRetryDelay(Duration.ofMillis(20000L)) 666 .setInitialRpcTimeout(Duration.ZERO) 667 .setRpcTimeoutMultiplier(1.0) 668 .setMaxRpcTimeout(Duration.ZERO) 669 .setTotalTimeout(Duration.ofMillis(600000L)) 670 .build())); 671 672 builder 673 .setLabelsOperationSettings() 674 .setInitialCallSettings( 675 UnaryCallSettings 676 .<SetLabelsImageRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 677 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 678 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 679 .build()) 680 .setResponseTransformer( 681 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 682 .setMetadataTransformer( 683 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 684 .setPollingAlgorithm( 685 OperationTimedPollAlgorithm.create( 686 RetrySettings.newBuilder() 687 .setInitialRetryDelay(Duration.ofMillis(500L)) 688 .setRetryDelayMultiplier(1.5) 689 .setMaxRetryDelay(Duration.ofMillis(20000L)) 690 .setInitialRpcTimeout(Duration.ZERO) 691 .setRpcTimeoutMultiplier(1.0) 692 .setMaxRpcTimeout(Duration.ZERO) 693 .setTotalTimeout(Duration.ofMillis(600000L)) 694 .build())); 695 696 return builder; 697 } 698 699 /** 700 * Applies the given settings updater function to all of the unary API methods in this service. 701 * 702 * <p>Note: This method does not support applying settings to streaming methods. 703 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)704 public Builder applyToAllUnaryMethods( 705 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 706 super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); 707 return this; 708 } 709 unaryMethodSettingsBuilders()710 public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() { 711 return unaryMethodSettingsBuilders; 712 } 713 714 /** Returns the builder for the settings used for calls to delete. */ deleteSettings()715 public UnaryCallSettings.Builder<DeleteImageRequest, Operation> deleteSettings() { 716 return deleteSettings; 717 } 718 719 /** Returns the builder for the settings used for calls to delete. */ 720 @BetaApi( 721 "The surface for use by generated code is not stable yet and may change in the future.") 722 public OperationCallSettings.Builder<DeleteImageRequest, Operation, Operation> deleteOperationSettings()723 deleteOperationSettings() { 724 return deleteOperationSettings; 725 } 726 727 /** Returns the builder for the settings used for calls to deprecate. */ deprecateSettings()728 public UnaryCallSettings.Builder<DeprecateImageRequest, Operation> deprecateSettings() { 729 return deprecateSettings; 730 } 731 732 /** Returns the builder for the settings used for calls to deprecate. */ 733 @BetaApi( 734 "The surface for use by generated code is not stable yet and may change in the future.") 735 public OperationCallSettings.Builder<DeprecateImageRequest, Operation, Operation> deprecateOperationSettings()736 deprecateOperationSettings() { 737 return deprecateOperationSettings; 738 } 739 740 /** Returns the builder for the settings used for calls to get. */ getSettings()741 public UnaryCallSettings.Builder<GetImageRequest, Image> getSettings() { 742 return getSettings; 743 } 744 745 /** Returns the builder for the settings used for calls to getFromFamily. */ getFromFamilySettings()746 public UnaryCallSettings.Builder<GetFromFamilyImageRequest, Image> getFromFamilySettings() { 747 return getFromFamilySettings; 748 } 749 750 /** Returns the builder for the settings used for calls to getIamPolicy. */ getIamPolicySettings()751 public UnaryCallSettings.Builder<GetIamPolicyImageRequest, Policy> getIamPolicySettings() { 752 return getIamPolicySettings; 753 } 754 755 /** Returns the builder for the settings used for calls to insert. */ insertSettings()756 public UnaryCallSettings.Builder<InsertImageRequest, Operation> insertSettings() { 757 return insertSettings; 758 } 759 760 /** Returns the builder for the settings used for calls to insert. */ 761 @BetaApi( 762 "The surface for use by generated code is not stable yet and may change in the future.") 763 public OperationCallSettings.Builder<InsertImageRequest, Operation, Operation> insertOperationSettings()764 insertOperationSettings() { 765 return insertOperationSettings; 766 } 767 768 /** Returns the builder for the settings used for calls to list. */ 769 public PagedCallSettings.Builder<ListImagesRequest, ImageList, ListPagedResponse> listSettings()770 listSettings() { 771 return listSettings; 772 } 773 774 /** Returns the builder for the settings used for calls to patch. */ patchSettings()775 public UnaryCallSettings.Builder<PatchImageRequest, Operation> patchSettings() { 776 return patchSettings; 777 } 778 779 /** Returns the builder for the settings used for calls to patch. */ 780 @BetaApi( 781 "The surface for use by generated code is not stable yet and may change in the future.") 782 public OperationCallSettings.Builder<PatchImageRequest, Operation, Operation> patchOperationSettings()783 patchOperationSettings() { 784 return patchOperationSettings; 785 } 786 787 /** Returns the builder for the settings used for calls to setIamPolicy. */ setIamPolicySettings()788 public UnaryCallSettings.Builder<SetIamPolicyImageRequest, Policy> setIamPolicySettings() { 789 return setIamPolicySettings; 790 } 791 792 /** Returns the builder for the settings used for calls to setLabels. */ setLabelsSettings()793 public UnaryCallSettings.Builder<SetLabelsImageRequest, Operation> setLabelsSettings() { 794 return setLabelsSettings; 795 } 796 797 /** Returns the builder for the settings used for calls to setLabels. */ 798 @BetaApi( 799 "The surface for use by generated code is not stable yet and may change in the future.") 800 public OperationCallSettings.Builder<SetLabelsImageRequest, Operation, Operation> setLabelsOperationSettings()801 setLabelsOperationSettings() { 802 return setLabelsOperationSettings; 803 } 804 805 /** Returns the builder for the settings used for calls to testIamPermissions. */ 806 public UnaryCallSettings.Builder<TestIamPermissionsImageRequest, TestPermissionsResponse> testIamPermissionsSettings()807 testIamPermissionsSettings() { 808 return testIamPermissionsSettings; 809 } 810 811 @Override build()812 public ImagesStubSettings build() throws IOException { 813 return new ImagesStubSettings(this); 814 } 815 } 816 } 817