static ClientSettings createApiConnectionSettings(Configuration conf) {

    Duration apiCallTimeout = getDuration(conf, REQUEST_TIMEOUT,
        DEFAULT_REQUEST_TIMEOUT_DURATION, TimeUnit.MILLISECONDS, Duration.ZERO);

    // if the API call timeout is set, it must be at least the minimum duration
    if (apiCallTimeout.compareTo(Duration.ZERO) > 0) {
      apiCallTimeout = enforceMinimumDuration(REQUEST_TIMEOUT,
          apiCallTimeout, minimumOperationDuration);
    }
    return new ClientSettings(apiCallTimeout);
  }
@Test
  public void testCreateApiConnectionSettings() {
    final Configuration conf = conf();
    conf.set(REQUEST_TIMEOUT, "1h");
    final AWSClientConfig.ClientSettings settings =
        createApiConnectionSettings(conf);
    Assertions.assertThat(settings.getApiCallTimeout())
        .describedAs("%s in %s", REQUEST_TIMEOUT, settings)
        .isEqualTo(Duration.ofHours(1));
  }