public static function getArguments()
 {
     $args = array_intersect_key(ClientResolver::getDefaultArguments(), ['service' => true, 'region' => true]);
     $args['region']['required'] = false;
     return $args + ['client_factory' => ['type' => 'config', 'valid' => ['callable'], 'doc' => 'A callable that takes an array of client' . ' configuration arguments and returns a regionalized' . ' client.', 'required' => true, 'internal' => true, 'default' => function (array $args) {
         $namespace = manifest($args['service'])['namespace'];
         $klass = "Aws\\{$namespace}\\{$namespace}Client";
         $region = isset($args['region']) ? $args['region'] : null;
         return function (array $args) use($klass, $region) {
             if ($region && empty($args['region'])) {
                 $args['region'] = $region;
             }
             return new $klass($args);
         };
     }], 'partition' => ['type' => 'config', 'valid' => ['string', PartitionInterface::class], 'doc' => 'AWS partition to connect to. Valid partitions' . ' include "aws," "aws-cn," and "aws-us-gov." Used to' . ' restrict the scope of the mapRegions method.', 'default' => function (array $args) {
         $region = isset($args['region']) ? $args['region'] : '';
         return PartitionEndpointProvider::defaultProvider()->getPartition($region, $args['service']);
     }, 'fn' => function ($value, array &$args) {
         if (is_string($value)) {
             $value = PartitionEndpointProvider::defaultProvider()->getPartitionByName($value);
         }
         if (!$value instanceof PartitionInterface) {
             throw new \InvalidArgumentException('No valid partition' . ' was provided. Provide a concrete partition or' . ' the name of a partition (e.g., "aws," "aws-cn,"' . ' or "aws-us-gov").');
         }
         $args['partition'] = $value;
         $args['endpoint_provider'] = $value;
     }]];
 }
 /**
  * Creates and returns the default SDK endpoint provider.
  *
  * @deprecated Use an instance of \Aws\Endpoint\Partition instead.
  *
  * @return callable
  */
 public static function defaultProvider()
 {
     return PartitionEndpointProvider::defaultProvider();
 }
 public static function _default_signing_region(array &$args)
 {
     if (isset($args['config']['signing_region'])) {
         return $args['config']['signing_region'];
     }
     $args['__partition_result'] = isset($args['__partition_result']) ? isset($args['__partition_result']) : call_user_func(PartitionEndpointProvider::defaultProvider(), ['service' => $args['service'], 'region' => $args['region']]);
     return isset($args['__partition_result']['signingRegion']) ? $args['__partition_result']['signingRegion'] : $args['region'];
 }