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