/**
   * Constructs a new asynchronous client to invoke service methods on AWS CloudFormation using the
   * provided AWS account credentials provider and client configuration options.
   *
   * <p>Asynchronous methods are delegated to a fixed-size thread pool containing a number of
   * threads equal to the maximum number of concurrent connections configured via {@code
   * ClientConfiguration.getMaxConnections()}.
   *
   * @param awsCredentialsProvider The AWS credentials provider which will provide credentials to
   *     authenticate requests with AWS services.
   * @param clientConfiguration Client configuration options (ex: max retry limit, proxy settings,
   *     etc).
   * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain
   * @see java.util.concurrent.Executors#newFixedThreadPool(int)
   */
  public AmazonCloudFormationAsyncClient(
      com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider,
      com.amazonaws.ClientConfiguration clientConfiguration) {

    this(
        awsCredentialsProvider,
        clientConfiguration,
        java.util.concurrent.Executors.newFixedThreadPool(clientConfiguration.getMaxConnections()));
  }
 /**
  * Constructs a new asynchronous client to invoke service methods on AWS CloudFormation using the
  * specified AWS account credentials provider. Default client settings will be used.
  *
  * <p>Asynchronous methods are delegated to a fixed-size thread pool containing 50 threads (to
  * match the default maximum number of concurrent connections to the service).
  *
  * @param awsCredentialsProvider The AWS credentials provider which will provide credentials to
  *     authenticate requests with AWS services.
  * @see java.util.concurrent.Executors#newFixedThreadPool(int)
  */
 public AmazonCloudFormationAsyncClient(
     com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider) {
   this(
       awsCredentialsProvider,
       java.util.concurrent.Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE));
 }