code: public ConfigurationAsyncClient build() {
          Objects.requireNonNull(serviceEndpoint);
  
          if (pipeline != null) {
              return new ConfigurationAsyncClient(serviceEndpoint, pipeline);
          }
  
          if (credentials == null) {
              throw new IllegalStateException("'credentials' is required.");
          }
  
          // Closest to API goes first, closest to wire goes last.
          final List<HttpPipelinePolicy> policies = new ArrayList<>();
  
          policies.add(new UserAgentPolicy(AzureConfiguration.NAME, AzureConfiguration.VERSION));
          policies.add(new RequestIdPolicy());
          policies.add(new AddHeadersPolicy(headers));
          policies.add(new AddDatePolicy());
          policies.add(new ConfigurationCredentialsPolicy());
          policies.add(new AsyncCredentialsPolicy(credentials));
          policies.add(retryPolicy);
  
          policies.addAll(this.policies);
  
          policies.add(new HttpLoggingPolicy(httpLogDetailLevel));
  
          HttpPipeline pipeline = httpClient == null
              ? new HttpPipeline(policies)
              : new HttpPipeline(httpClient, policies);
  
          return new ConfigurationAsyncClient(serviceEndpoint, pipeline);
      }
docs: Creates a {@link ConfigurationAsyncClient} based on options set in the Builder. Every time {@code build()} is
  called, a new instance of {@link ConfigurationAsyncClient} is created.
  
  <p>
  If {@link ConfigurationAsyncClientBuilder#pipeline(HttpPipeline) pipeline} is set, then the {@code pipeline} and
  {@link ConfigurationAsyncClientBuilder#serviceEndpoint(String) serviceEndpoint} are used to create the
  {@link ConfigurationAsyncClient client}. All other builder settings are ignored.
  </p>
  
  @return A ConfigurationAsyncClient with the options set from the builder.
  @throws NullPointerException If {@code serviceEndpoint} has not been set. This setting is automatically set when
  {@link ConfigurationAsyncClientBuilder#credentials(ConfigurationClientCredentials) credentials} are set through
  the builder. Or can be set explicitly by calling {@link ConfigurationAsyncClientBuilder#serviceEndpoint(String)}.
  @throws IllegalStateException If {@link ConfigurationAsyncClientBuilder#credentials(ConfigurationClientCredentials)}
  has not been set.