code: static TokenLifeCycleManager getInstance(final String iamEndpoint,
              final String apiKey) {
          if (iamEndpoint == null || iamEndpoint.isEmpty()) {
              throw new IllegalArgumentException(
                      "Cannot initialize with null or empty IAM endpoint.");
          }
          if (apiKey == null || apiKey.isEmpty()) {
              throw new IllegalArgumentException(
                      "Cannot initialize with null or empty IAM apiKey.");
          }
          return getInstanceUnchecked(iamEndpoint, apiKey);
      }
docs: Get an instance of TokenLifeCylceManager. Single instance is maintained
  for each unique pair of iamEndpoint and apiKey. The method is thread
  safe.
  
  @param iamEndpoint
  IAM endpoint.
  @param apiKey
  IAM API Key.
  @return Instance of TokenLifeCylceManager