code: public GrpcChannel build() throws AlluxioStatusException {
      ManagedChannel underlyingChannel =
          GrpcManagedChannelPool.INSTANCE().acquireManagedChannel(mChannelKey,
              mConfiguration.getMs(PropertyKey.NETWORK_CONNECTION_HEALTH_CHECK_TIMEOUT_MS),
              mConfiguration.getMs(PropertyKey.MASTER_GRPC_CHANNEL_SHUTDOWN_TIMEOUT));
      try {
        Channel clientChannel = underlyingChannel;
  
        if (mAuthenticateChannel) {
          // Create channel authenticator based on provided content.
          ChannelAuthenticator channelAuthenticator;
          if (mUseSubject) {
            channelAuthenticator = new ChannelAuthenticator(mParentSubject, mConfiguration);
          } else {
            channelAuthenticator =
                new ChannelAuthenticator(mUserName, mPassword, mImpersonationUser,
                    mConfiguration.getEnum(PropertyKey.SECURITY_AUTHENTICATION_TYPE, AuthType.class),
                    mConfiguration.getMs(PropertyKey.MASTER_GRPC_CHANNEL_AUTH_TIMEOUT));
          }
          // Get an authenticated wrapper channel over given managed channel.
          clientChannel = channelAuthenticator.authenticate(mServerAddress, underlyingChannel);
        }
        // Create the channel after authentication with the target.
        return new GrpcChannel(mChannelKey, clientChannel,
            mConfiguration.getMs(PropertyKey.MASTER_GRPC_CHANNEL_SHUTDOWN_TIMEOUT));
      } catch (Exception exc) {
        // Release the managed channel to the pool before throwing.
        GrpcManagedChannelPool.INSTANCE().releaseManagedChannel(mChannelKey,
            mConfiguration.getMs(PropertyKey.MASTER_GRPC_CHANNEL_SHUTDOWN_TIMEOUT));
        throw exc;
      }
    }
docs: Creates an authenticated channel of type {@link GrpcChannel}.
  
  @return the built {@link GrpcChannel}