diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/DefaultsMode/Configuration.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/DefaultsMode/Configuration.php | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/DefaultsMode/Configuration.php b/vendor/aws/aws-sdk-php/src/DefaultsMode/Configuration.php new file mode 100644 index 0000000..828bb52 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/DefaultsMode/Configuration.php @@ -0,0 +1,131 @@ +<?php +namespace Aws\DefaultsMode; + +use Aws\DefaultsMode\Exception\ConfigurationException; + +class Configuration implements ConfigurationInterface +{ + private $mode; + private $retryMode; + private $stsRegionalEndpoints; + private $s3UsEast1RegionalEndpoints; + private $connectTimeoutInMillis; + private $httpRequestTimeoutInMillis; + private $validModes = [ + 'legacy', + 'standard', + 'cross-region', + 'in-region', + 'mobile', + 'auto', + ]; + + public function __construct($mode = 'legacy') + { + $mode = strtolower($mode); + if (!in_array($mode, $this->validModes)) { + throw new \InvalidArgumentException("'{$mode}' is not a valid mode." + . " The mode has to be 'legacy', 'standard', 'cross-region', 'in-region'," + . " 'mobile', or 'auto'."); + } + + $this->mode = $mode; + if ($this->mode == 'legacy') { + return; + } + + $data = \Aws\load_compiled_json( + __DIR__ . '/../data/sdk-default-configuration.json' + ); + + $this->retryMode = $data['base']['retryMode']; + $this->stsRegionalEndpoints = $data['base']['stsRegionalEndpoints']; + $this->s3UsEast1RegionalEndpoints = $data['base']['s3UsEast1RegionalEndpoints']; + $this->connectTimeoutInMillis = $data['base']['connectTimeoutInMillis']; + + if (isset($data['modes'][$mode])) { + $modeData = $data['modes'][$mode]; + foreach ($modeData as $settingName => $settingValue) { + if (isset($this->$settingName)) { + if (isset($settingValue['override'])) { + $this->$settingName = $settingValue['override']; + } else if (isset($settingValue['multiply'])) { + $this->$settingName *= $settingValue['multiply']; + } else if (isset($settingValue['add'])) { + $this->$settingName += $settingValue['add']; + } + } else { + if (isset($settingValue['override'])) { + if (property_exists($this, $settingName)) { + $this->$settingName = $settingValue['override']; + } + } + } + } + } + } + + /** + * {@inheritdoc} + */ + public function getMode() + { + return $this->mode; + } + + /** + * {@inheritdoc} + */ + public function getRetryMode() + { + return $this->retryMode; + } + + /** + * {@inheritdoc} + */ + public function getStsRegionalEndpoints() + { + return $this->stsRegionalEndpoints; + } + + /** + * {@inheritdoc} + */ + public function getS3UsEast1RegionalEndpoints() + { + return $this->s3UsEast1RegionalEndpoints; + } + + /** + * {@inheritdoc} + */ + public function getConnectTimeoutInMillis() + { + return $this->connectTimeoutInMillis; + } + + /** + * {@inheritdoc} + */ + public function getHttpRequestTimeoutInMillis() + { + return $this->httpRequestTimeoutInMillis; + } + + /** + * {@inheritdoc} + */ + public function toArray() + { + return [ + 'mode' => $this->getMode(), + 'retry_mode' => $this->getRetryMode(), + 'sts_regional_endpoints' => $this->getStsRegionalEndpoints(), + 's3_us_east_1_regional_endpoint' => $this->getS3UsEast1RegionalEndpoints(), + 'connect_timeout_in_milliseconds' => $this->getConnectTimeoutInMillis(), + 'http_request_timeout_in_milliseconds' => $this->getHttpRequestTimeoutInMillis(), + ]; + } + +} |