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; }]]; }
/** * Creates and returns the default SDK endpoint provider. * * @deprecated Use an instance of \ILAB_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']; }