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 = "ILAB_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; }]]; }
/** * Get an array of client constructor arguments used by the client. * * @return array */ public static function getArguments() { return ClientResolver::getDefaultArguments(); }