public function __construct()

in src/AwsClient.php [238:286]


    public function __construct(array $args)
    {
        list($service, $exceptionClass) = $this->parseClass();
        if (!isset($args['service'])) {
            $args['service'] = manifest($service)['endpoint'];
        }
        if (!isset($args['exception_class'])) {
            $args['exception_class'] = $exceptionClass;
        }
        $this->handlerList = new HandlerList();
        $resolver = new ClientResolver(static::getArguments());
        $config = $resolver->resolve($args, $this->handlerList);
        $this->api = $config['api'];
        $this->signatureProvider = $config['signature_provider'];
        $this->authSchemeResolver = $config['auth_scheme_resolver'];
        $this->endpoint = new Uri($config['endpoint']);
        $this->credentialProvider = $config['credentials'];
        $this->tokenProvider = $config['token'];
        $this->region = $config['region'] ?? null;
        $this->signingRegionSet = $config['sigv4a_signing_region_set'] ?? null;
        $this->config = $config['config'];
        $this->setClientBuiltIns($args, $config);
        $this->clientContextParams = $this->setClientContextParams($args);
        $this->defaultRequestOptions = $config['http'];
        $this->endpointProvider = $config['endpoint_provider'];
        $this->serializer = $config['serializer'];
        $this->addSignatureMiddleware($args);
        $this->addInvocationId();
        $this->addEndpointParameterMiddleware($args);
        $this->addEndpointDiscoveryMiddleware($config, $args);
        $this->addRequestCompressionMiddleware($config);
        $this->loadAliases();
        $this->addStreamRequestPayload();
        $this->addRecursionDetection();
        if ($this->isUseEndpointV2()) {
            $this->addEndpointV2Middleware();
        }
        $this->addAuthSelectionMiddleware();

        if (!is_null($this->api->getMetadata('awsQueryCompatible'))) {
            $this->addQueryCompatibleInputMiddleware($this->api);
            $this->addQueryModeHeader();
        }

        if (isset($args['with_resolved'])) {
            $args['with_resolved']($config);
        }
        $this->addUserAgentMiddleware($config);
    }