public IAMSettings iAMSettings()

in spring-cloud-previews/google-iam-admin-spring-starter/src/main/java/com/google/cloud/iam/admin/v1/spring/IAMSpringAutoConfiguration.java [114:752]


  public IAMSettings iAMSettings(
      @Qualifier("defaultIAMTransportChannelProvider")
          TransportChannelProvider defaultTransportChannelProvider)
      throws IOException {
    IAMSettings.Builder clientSettingsBuilder = IAMSettings.newBuilder();
    clientSettingsBuilder
        .setCredentialsProvider(this.credentialsProvider)
        .setTransportChannelProvider(defaultTransportChannelProvider)
        .setEndpoint(IAMSettings.getDefaultEndpoint())
        .setHeaderProvider(this.userAgentHeaderProvider());
    if (this.clientProperties.getQuotaProjectId() != null) {
      clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId());
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Quota project id set to "
                + this.clientProperties.getQuotaProjectId()
                + ", this overrides project id from credentials.");
      }
    }
    if (this.clientProperties.getExecutorThreadCount() != null) {
      ExecutorProvider executorProvider =
          IAMSettings.defaultExecutorProviderBuilder()
              .setExecutorThreadCount(this.clientProperties.getExecutorThreadCount())
              .build();
      clientSettingsBuilder.setBackgroundExecutorProvider(executorProvider);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Background executor thread count is "
                + this.clientProperties.getExecutorThreadCount());
      }
    }
    Retry serviceRetry = clientProperties.getRetry();
    if (serviceRetry != null) {
      RetrySettings listServiceAccountsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listServiceAccountsSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .listServiceAccountsSettings()
          .setRetrySettings(listServiceAccountsRetrySettings);

      RetrySettings getServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getServiceAccountSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .getServiceAccountSettings()
          .setRetrySettings(getServiceAccountRetrySettings);

      RetrySettings createServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createServiceAccountSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .createServiceAccountSettings()
          .setRetrySettings(createServiceAccountRetrySettings);

      RetrySettings updateServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.updateServiceAccountSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .updateServiceAccountSettings()
          .setRetrySettings(updateServiceAccountRetrySettings);

      RetrySettings patchServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.patchServiceAccountSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .patchServiceAccountSettings()
          .setRetrySettings(patchServiceAccountRetrySettings);

      RetrySettings deleteServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.deleteServiceAccountSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .deleteServiceAccountSettings()
          .setRetrySettings(deleteServiceAccountRetrySettings);

      RetrySettings undeleteServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.undeleteServiceAccountSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .undeleteServiceAccountSettings()
          .setRetrySettings(undeleteServiceAccountRetrySettings);

      RetrySettings enableServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.enableServiceAccountSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .enableServiceAccountSettings()
          .setRetrySettings(enableServiceAccountRetrySettings);

      RetrySettings disableServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.disableServiceAccountSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .disableServiceAccountSettings()
          .setRetrySettings(disableServiceAccountRetrySettings);

      RetrySettings listServiceAccountKeysRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listServiceAccountKeysSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .listServiceAccountKeysSettings()
          .setRetrySettings(listServiceAccountKeysRetrySettings);

      RetrySettings getServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getServiceAccountKeySettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .getServiceAccountKeySettings()
          .setRetrySettings(getServiceAccountKeyRetrySettings);

      RetrySettings createServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createServiceAccountKeySettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .createServiceAccountKeySettings()
          .setRetrySettings(createServiceAccountKeyRetrySettings);

      RetrySettings uploadServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.uploadServiceAccountKeySettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .uploadServiceAccountKeySettings()
          .setRetrySettings(uploadServiceAccountKeyRetrySettings);

      RetrySettings deleteServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.deleteServiceAccountKeySettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .deleteServiceAccountKeySettings()
          .setRetrySettings(deleteServiceAccountKeyRetrySettings);

      RetrySettings disableServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.disableServiceAccountKeySettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .disableServiceAccountKeySettings()
          .setRetrySettings(disableServiceAccountKeyRetrySettings);

      RetrySettings enableServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.enableServiceAccountKeySettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .enableServiceAccountKeySettings()
          .setRetrySettings(enableServiceAccountKeyRetrySettings);

      RetrySettings signBlobRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.signBlobSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.signBlobSettings().setRetrySettings(signBlobRetrySettings);

      RetrySettings signJwtRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.signJwtSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.signJwtSettings().setRetrySettings(signJwtRetrySettings);

      RetrySettings getIamPolicyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getIamPolicySettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.getIamPolicySettings().setRetrySettings(getIamPolicyRetrySettings);

      RetrySettings setIamPolicyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.setIamPolicySettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.setIamPolicySettings().setRetrySettings(setIamPolicyRetrySettings);

      RetrySettings testIamPermissionsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.testIamPermissionsSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .testIamPermissionsSettings()
          .setRetrySettings(testIamPermissionsRetrySettings);

      RetrySettings queryGrantableRolesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.queryGrantableRolesSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder
          .queryGrantableRolesSettings()
          .setRetrySettings(queryGrantableRolesRetrySettings);

      RetrySettings listRolesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listRolesSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.listRolesSettings().setRetrySettings(listRolesRetrySettings);

      RetrySettings getRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getRoleSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.getRoleSettings().setRetrySettings(getRoleRetrySettings);

      RetrySettings createRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createRoleSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.createRoleSettings().setRetrySettings(createRoleRetrySettings);

      RetrySettings updateRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.updateRoleSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.updateRoleSettings().setRetrySettings(updateRoleRetrySettings);

      RetrySettings deleteRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.deleteRoleSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.deleteRoleSettings().setRetrySettings(deleteRoleRetrySettings);

      RetrySettings undeleteRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.undeleteRoleSettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.undeleteRoleSettings().setRetrySettings(undeleteRoleRetrySettings);

      RetrySettings queryTestablePermissionsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.queryTestablePermissionsSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .queryTestablePermissionsSettings()
          .setRetrySettings(queryTestablePermissionsRetrySettings);

      RetrySettings queryAuditableServicesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.queryAuditableServicesSettings().getRetrySettings(),
              serviceRetry);
      clientSettingsBuilder
          .queryAuditableServicesSettings()
          .setRetrySettings(queryAuditableServicesRetrySettings);

      RetrySettings lintPolicyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.lintPolicySettings().getRetrySettings(), serviceRetry);
      clientSettingsBuilder.lintPolicySettings().setRetrySettings(lintPolicyRetrySettings);

      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured service-level retry settings from properties.");
      }
    }
    Retry listServiceAccountsRetry = clientProperties.getListServiceAccountsRetry();
    if (listServiceAccountsRetry != null) {
      RetrySettings listServiceAccountsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listServiceAccountsSettings().getRetrySettings(),
              listServiceAccountsRetry);
      clientSettingsBuilder
          .listServiceAccountsSettings()
          .setRetrySettings(listServiceAccountsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for listServiceAccounts from properties.");
      }
    }
    Retry getServiceAccountRetry = clientProperties.getGetServiceAccountRetry();
    if (getServiceAccountRetry != null) {
      RetrySettings getServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getServiceAccountSettings().getRetrySettings(),
              getServiceAccountRetry);
      clientSettingsBuilder
          .getServiceAccountSettings()
          .setRetrySettings(getServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for getServiceAccount from properties.");
      }
    }
    Retry createServiceAccountRetry = clientProperties.getCreateServiceAccountRetry();
    if (createServiceAccountRetry != null) {
      RetrySettings createServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createServiceAccountSettings().getRetrySettings(),
              createServiceAccountRetry);
      clientSettingsBuilder
          .createServiceAccountSettings()
          .setRetrySettings(createServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for createServiceAccount from properties.");
      }
    }
    Retry updateServiceAccountRetry = clientProperties.getUpdateServiceAccountRetry();
    if (updateServiceAccountRetry != null) {
      RetrySettings updateServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.updateServiceAccountSettings().getRetrySettings(),
              updateServiceAccountRetry);
      clientSettingsBuilder
          .updateServiceAccountSettings()
          .setRetrySettings(updateServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for updateServiceAccount from properties.");
      }
    }
    Retry patchServiceAccountRetry = clientProperties.getPatchServiceAccountRetry();
    if (patchServiceAccountRetry != null) {
      RetrySettings patchServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.patchServiceAccountSettings().getRetrySettings(),
              patchServiceAccountRetry);
      clientSettingsBuilder
          .patchServiceAccountSettings()
          .setRetrySettings(patchServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for patchServiceAccount from properties.");
      }
    }
    Retry deleteServiceAccountRetry = clientProperties.getDeleteServiceAccountRetry();
    if (deleteServiceAccountRetry != null) {
      RetrySettings deleteServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.deleteServiceAccountSettings().getRetrySettings(),
              deleteServiceAccountRetry);
      clientSettingsBuilder
          .deleteServiceAccountSettings()
          .setRetrySettings(deleteServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for deleteServiceAccount from properties.");
      }
    }
    Retry undeleteServiceAccountRetry = clientProperties.getUndeleteServiceAccountRetry();
    if (undeleteServiceAccountRetry != null) {
      RetrySettings undeleteServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.undeleteServiceAccountSettings().getRetrySettings(),
              undeleteServiceAccountRetry);
      clientSettingsBuilder
          .undeleteServiceAccountSettings()
          .setRetrySettings(undeleteServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for undeleteServiceAccount from properties.");
      }
    }
    Retry enableServiceAccountRetry = clientProperties.getEnableServiceAccountRetry();
    if (enableServiceAccountRetry != null) {
      RetrySettings enableServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.enableServiceAccountSettings().getRetrySettings(),
              enableServiceAccountRetry);
      clientSettingsBuilder
          .enableServiceAccountSettings()
          .setRetrySettings(enableServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for enableServiceAccount from properties.");
      }
    }
    Retry disableServiceAccountRetry = clientProperties.getDisableServiceAccountRetry();
    if (disableServiceAccountRetry != null) {
      RetrySettings disableServiceAccountRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.disableServiceAccountSettings().getRetrySettings(),
              disableServiceAccountRetry);
      clientSettingsBuilder
          .disableServiceAccountSettings()
          .setRetrySettings(disableServiceAccountRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for disableServiceAccount from properties.");
      }
    }
    Retry listServiceAccountKeysRetry = clientProperties.getListServiceAccountKeysRetry();
    if (listServiceAccountKeysRetry != null) {
      RetrySettings listServiceAccountKeysRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listServiceAccountKeysSettings().getRetrySettings(),
              listServiceAccountKeysRetry);
      clientSettingsBuilder
          .listServiceAccountKeysSettings()
          .setRetrySettings(listServiceAccountKeysRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for listServiceAccountKeys from properties.");
      }
    }
    Retry getServiceAccountKeyRetry = clientProperties.getGetServiceAccountKeyRetry();
    if (getServiceAccountKeyRetry != null) {
      RetrySettings getServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getServiceAccountKeySettings().getRetrySettings(),
              getServiceAccountKeyRetry);
      clientSettingsBuilder
          .getServiceAccountKeySettings()
          .setRetrySettings(getServiceAccountKeyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for getServiceAccountKey from properties.");
      }
    }
    Retry createServiceAccountKeyRetry = clientProperties.getCreateServiceAccountKeyRetry();
    if (createServiceAccountKeyRetry != null) {
      RetrySettings createServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createServiceAccountKeySettings().getRetrySettings(),
              createServiceAccountKeyRetry);
      clientSettingsBuilder
          .createServiceAccountKeySettings()
          .setRetrySettings(createServiceAccountKeyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for createServiceAccountKey from properties.");
      }
    }
    Retry uploadServiceAccountKeyRetry = clientProperties.getUploadServiceAccountKeyRetry();
    if (uploadServiceAccountKeyRetry != null) {
      RetrySettings uploadServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.uploadServiceAccountKeySettings().getRetrySettings(),
              uploadServiceAccountKeyRetry);
      clientSettingsBuilder
          .uploadServiceAccountKeySettings()
          .setRetrySettings(uploadServiceAccountKeyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for uploadServiceAccountKey from properties.");
      }
    }
    Retry deleteServiceAccountKeyRetry = clientProperties.getDeleteServiceAccountKeyRetry();
    if (deleteServiceAccountKeyRetry != null) {
      RetrySettings deleteServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.deleteServiceAccountKeySettings().getRetrySettings(),
              deleteServiceAccountKeyRetry);
      clientSettingsBuilder
          .deleteServiceAccountKeySettings()
          .setRetrySettings(deleteServiceAccountKeyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for deleteServiceAccountKey from properties.");
      }
    }
    Retry disableServiceAccountKeyRetry = clientProperties.getDisableServiceAccountKeyRetry();
    if (disableServiceAccountKeyRetry != null) {
      RetrySettings disableServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.disableServiceAccountKeySettings().getRetrySettings(),
              disableServiceAccountKeyRetry);
      clientSettingsBuilder
          .disableServiceAccountKeySettings()
          .setRetrySettings(disableServiceAccountKeyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for disableServiceAccountKey from properties.");
      }
    }
    Retry enableServiceAccountKeyRetry = clientProperties.getEnableServiceAccountKeyRetry();
    if (enableServiceAccountKeyRetry != null) {
      RetrySettings enableServiceAccountKeyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.enableServiceAccountKeySettings().getRetrySettings(),
              enableServiceAccountKeyRetry);
      clientSettingsBuilder
          .enableServiceAccountKeySettings()
          .setRetrySettings(enableServiceAccountKeyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for enableServiceAccountKey from properties.");
      }
    }
    Retry signBlobRetry = clientProperties.getSignBlobRetry();
    if (signBlobRetry != null) {
      RetrySettings signBlobRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.signBlobSettings().getRetrySettings(), signBlobRetry);
      clientSettingsBuilder.signBlobSettings().setRetrySettings(signBlobRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for signBlob from properties.");
      }
    }
    Retry signJwtRetry = clientProperties.getSignJwtRetry();
    if (signJwtRetry != null) {
      RetrySettings signJwtRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.signJwtSettings().getRetrySettings(), signJwtRetry);
      clientSettingsBuilder.signJwtSettings().setRetrySettings(signJwtRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for signJwt from properties.");
      }
    }
    Retry getIamPolicyRetry = clientProperties.getGetIamPolicyRetry();
    if (getIamPolicyRetry != null) {
      RetrySettings getIamPolicyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getIamPolicySettings().getRetrySettings(), getIamPolicyRetry);
      clientSettingsBuilder.getIamPolicySettings().setRetrySettings(getIamPolicyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for getIamPolicy from properties.");
      }
    }
    Retry setIamPolicyRetry = clientProperties.getSetIamPolicyRetry();
    if (setIamPolicyRetry != null) {
      RetrySettings setIamPolicyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.setIamPolicySettings().getRetrySettings(), setIamPolicyRetry);
      clientSettingsBuilder.setIamPolicySettings().setRetrySettings(setIamPolicyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for setIamPolicy from properties.");
      }
    }
    Retry testIamPermissionsRetry = clientProperties.getTestIamPermissionsRetry();
    if (testIamPermissionsRetry != null) {
      RetrySettings testIamPermissionsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.testIamPermissionsSettings().getRetrySettings(),
              testIamPermissionsRetry);
      clientSettingsBuilder
          .testIamPermissionsSettings()
          .setRetrySettings(testIamPermissionsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for testIamPermissions from properties.");
      }
    }
    Retry queryGrantableRolesRetry = clientProperties.getQueryGrantableRolesRetry();
    if (queryGrantableRolesRetry != null) {
      RetrySettings queryGrantableRolesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.queryGrantableRolesSettings().getRetrySettings(),
              queryGrantableRolesRetry);
      clientSettingsBuilder
          .queryGrantableRolesSettings()
          .setRetrySettings(queryGrantableRolesRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for queryGrantableRoles from properties.");
      }
    }
    Retry listRolesRetry = clientProperties.getListRolesRetry();
    if (listRolesRetry != null) {
      RetrySettings listRolesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.listRolesSettings().getRetrySettings(), listRolesRetry);
      clientSettingsBuilder.listRolesSettings().setRetrySettings(listRolesRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for listRoles from properties.");
      }
    }
    Retry getRoleRetry = clientProperties.getGetRoleRetry();
    if (getRoleRetry != null) {
      RetrySettings getRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.getRoleSettings().getRetrySettings(), getRoleRetry);
      clientSettingsBuilder.getRoleSettings().setRetrySettings(getRoleRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for getRole from properties.");
      }
    }
    Retry createRoleRetry = clientProperties.getCreateRoleRetry();
    if (createRoleRetry != null) {
      RetrySettings createRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.createRoleSettings().getRetrySettings(), createRoleRetry);
      clientSettingsBuilder.createRoleSettings().setRetrySettings(createRoleRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for createRole from properties.");
      }
    }
    Retry updateRoleRetry = clientProperties.getUpdateRoleRetry();
    if (updateRoleRetry != null) {
      RetrySettings updateRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.updateRoleSettings().getRetrySettings(), updateRoleRetry);
      clientSettingsBuilder.updateRoleSettings().setRetrySettings(updateRoleRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for updateRole from properties.");
      }
    }
    Retry deleteRoleRetry = clientProperties.getDeleteRoleRetry();
    if (deleteRoleRetry != null) {
      RetrySettings deleteRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.deleteRoleSettings().getRetrySettings(), deleteRoleRetry);
      clientSettingsBuilder.deleteRoleSettings().setRetrySettings(deleteRoleRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for deleteRole from properties.");
      }
    }
    Retry undeleteRoleRetry = clientProperties.getUndeleteRoleRetry();
    if (undeleteRoleRetry != null) {
      RetrySettings undeleteRoleRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.undeleteRoleSettings().getRetrySettings(), undeleteRoleRetry);
      clientSettingsBuilder.undeleteRoleSettings().setRetrySettings(undeleteRoleRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for undeleteRole from properties.");
      }
    }
    Retry queryTestablePermissionsRetry = clientProperties.getQueryTestablePermissionsRetry();
    if (queryTestablePermissionsRetry != null) {
      RetrySettings queryTestablePermissionsRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.queryTestablePermissionsSettings().getRetrySettings(),
              queryTestablePermissionsRetry);
      clientSettingsBuilder
          .queryTestablePermissionsSettings()
          .setRetrySettings(queryTestablePermissionsRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for queryTestablePermissions from properties.");
      }
    }
    Retry queryAuditableServicesRetry = clientProperties.getQueryAuditableServicesRetry();
    if (queryAuditableServicesRetry != null) {
      RetrySettings queryAuditableServicesRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.queryAuditableServicesSettings().getRetrySettings(),
              queryAuditableServicesRetry);
      clientSettingsBuilder
          .queryAuditableServicesSettings()
          .setRetrySettings(queryAuditableServicesRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(
            "Configured method-level retry settings for queryAuditableServices from properties.");
      }
    }
    Retry lintPolicyRetry = clientProperties.getLintPolicyRetry();
    if (lintPolicyRetry != null) {
      RetrySettings lintPolicyRetrySettings =
          RetryUtil.updateRetrySettings(
              clientSettingsBuilder.lintPolicySettings().getRetrySettings(), lintPolicyRetry);
      clientSettingsBuilder.lintPolicySettings().setRetrySettings(lintPolicyRetrySettings);
      if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Configured method-level retry settings for lintPolicy from properties.");
      }
    }
    return clientSettingsBuilder.build();
  }