+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const DEFAULT_CLIENT_ID = '';
+ const DEFAULT_ENABLED = false;
+ const DEFAULT_HOST = '127.0.0.1';
+ const DEFAULT_PORT = 31000;
+ const ENV_CLIENT_ID = 'AWS_CSM_CLIENT_ID';
+ const ENV_ENABLED = 'AWS_CSM_ENABLED';
+ const ENV_HOST = 'AWS_CSM_HOST';
+ const ENV_PORT = 'AWS_CSM_PORT';
+ const ENV_PROFILE = 'AWS_PROFILE';
+
+ public static $cacheKey = 'aws_cached_csm_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback();
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['csm']) && $config['csm'] instanceof CacheInterface) {
+ return self::cache($memo, $config['csm'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates CSM config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use credentials from environment variables, if available
+ $enabled = getenv(self::ENV_ENABLED);
+ if ($enabled !== false) {
+ return Promise\Create::promiseFor(
+ new Configuration(
+ $enabled,
+ getenv(self::ENV_HOST) ?: self::DEFAULT_HOST,
+ getenv(self::ENV_PORT) ?: self::DEFAULT_PORT,
+ getenv(self:: ENV_CLIENT_ID) ?: self::DEFAULT_CLIENT_ID
+ )
+ );
+ }
+
+ return self::reject('Could not find environment variable CSM config'
+ . ' in ' . self::ENV_ENABLED. '/' . self::ENV_HOST . '/'
+ . self::ENV_PORT . '/' . self::ENV_CLIENT_ID);
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback()
+ {
+ return function() {
+ return Promise\Create::promiseFor(
+ new Configuration(
+ self::DEFAULT_ENABLED,
+ self::DEFAULT_HOST,
+ self::DEFAULT_PORT,
+ self::DEFAULT_CLIENT_ID
+ )
+ );
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini($profile = null, $filename = null)
+ {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'aws_csm');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read CSM config from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile]['csm_enabled'])) {
+ return self::reject("Required CSM config values not present in
+ INI profile '{$profile}' ({$filename})");
+ }
+
+ // host is optional
+ if (empty($data[$profile]['csm_host'])) {
+ $data[$profile]['csm_host'] = self::DEFAULT_HOST;
+ }
+
+ // port is optional
+ if (!filter_var($data[$profile]['csm_port'] ?? null, FILTER_VALIDATE_INT)) {
+ $data[$profile]['csm_port'] = self::DEFAULT_PORT;
+ }
+
+ // client_id is optional
+ if (empty($data[$profile]['csm_client_id'])) {
+ $data[$profile]['csm_client_id'] = self::DEFAULT_CLIENT_ID;
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration(
+ $data[$profile]['csm_enabled'],
+ $data[$profile]['csm_host'],
+ $data[$profile]['csm_port'],
+ $data[$profile]['csm_client_id']
+ )
+ );
+ };
+ }
+
+ /**
+ * Unwraps a configuration object in whatever valid form it is in,
+ * always returning a ConfigurationInterface object.
+ *
+ * @param mixed $config
+ * @return ConfigurationInterface
+ * @throws \InvalidArgumentException
+ */
+ public static function unwrap($config)
+ {
+ if (is_callable($config)) {
+ $config = $config();
+ }
+ if ($config instanceof PromiseInterface) {
+ $config = $config->wait();
+ }
+ if ($config instanceof ConfigurationInterface) {
+ return $config;
+ } elseif (is_array($config) && isset($config['enabled'])) {
+ $client_id = isset($config['client_id']) ? $config['client_id']
+ : self::DEFAULT_CLIENT_ID;
+ $host = isset($config['host']) ? $config['host']
+ : self::DEFAULT_HOST;
+ $port = isset($config['port']) ? $config['port']
+ : self::DEFAULT_PORT;
+ return new Configuration($config['enabled'], $host, $port, $client_id);
+ }
+
+ throw new \InvalidArgumentException('Not a valid CSM configuration '
+ . 'argument.');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/ClientSideMonitoring/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/ClientSideMonitoring/Exception/ConfigurationException.php
new file mode 100644
index 000000000..827743e26
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/ClientSideMonitoring/Exception/ConfigurationException.php
@@ -0,0 +1,15 @@
+name = $name;
+ $this->data = $args;
+ $this->handlerList = $list ?: new HandlerList();
+
+ if (!isset($this->data['@http'])) {
+ $this->data['@http'] = [];
+ }
+ if (!isset($this->data['@context'])) {
+ $this->data['@context'] = [];
+ }
+ $this->metricsBuilder = $metricsBuilder ?: new MetricsBuilder();
+ }
+
+ public function __clone()
+ {
+ $this->handlerList = clone $this->handlerList;
+ }
+
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ public function hasParam($name)
+ {
+ return array_key_exists($name, $this->data);
+ }
+
+ public function getHandlerList()
+ {
+ return $this->handlerList;
+ }
+
+ /**
+ * For overriding auth schemes on a per endpoint basis when using
+ * EndpointV2 provider. Intended for internal use only.
+ *
+ * @param array $authSchemes
+ *
+ * @deprecated In favor of using the @context property bag.
+ * Auth Schemes are now accessible via the `signature_version` key
+ * in a Command's context, if applicable. Auth Schemes set using
+ * This method are no longer consumed.
+ *
+ * @internal
+ */
+ public function setAuthSchemes(array $authSchemes)
+ {
+ trigger_error(__METHOD__ . ' is deprecated. Auth schemes '
+ . 'resolved using the service `auth` trait or via endpoint resolution '
+ . 'are now set in the command `@context` property.`'
+ , E_USER_WARNING
+ );
+
+ $this->authSchemes = $authSchemes;
+ }
+
+ /**
+ * Get auth schemes added to command as required
+ * for endpoint resolution
+ *
+ * @returns array
+ *
+ * @deprecated In favor of using the @context property bag.
+ * Auth schemes are now accessible via the `signature_version` key
+ * in a Command's context, if applicable.
+ */
+ public function getAuthSchemes()
+ {
+ trigger_error(__METHOD__ . ' is deprecated. Auth schemes '
+ . 'resolved using the service `auth` trait or via endpoint resolution '
+ . 'can now be found in the command `@context` property.`'
+ , E_USER_WARNING
+ );
+
+ return $this->authSchemes ?: [];
+ }
+
+ /** @deprecated */
+ public function get($name)
+ {
+ return $this[$name];
+ }
+
+ /**
+ * Returns the metrics builder instance tied up to this command.
+ *
+ * @internal
+ *
+ * @return MetricsBuilder
+ */
+ public function getMetricsBuilder(): MetricsBuilder
+ {
+ return $this->metricsBuilder;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/CommandInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/CommandInterface.php
new file mode 100644
index 000000000..b35c75d37
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/CommandInterface.php
@@ -0,0 +1,42 @@
+getBefore($config);
+ $mapFn = function ($commands) use ($client, $before, $config) {
+ foreach ($commands as $key => $command) {
+ if (!($command instanceof CommandInterface)) {
+ throw new \InvalidArgumentException('Each value yielded by '
+ . 'the iterator must be an Aws\CommandInterface.');
+ }
+ if ($before) {
+ $before($command, $key);
+ }
+ if (!empty($config['preserve_iterator_keys'])) {
+ yield $key => $client->executeAsync($command);
+ } else {
+ yield $client->executeAsync($command);
+ }
+ }
+ };
+
+ $this->each = new EachPromise($mapFn($commands), $config);
+ }
+
+ /**
+ * @return PromiseInterface
+ */
+ public function promise(): PromiseInterface
+ {
+ return $this->each->promise();
+ }
+
+ /**
+ * Executes a pool synchronously and aggregates the results of the pool
+ * into an indexed array in the same order as the passed in array.
+ *
+ * @param AwsClientInterface $client Client used to execute commands.
+ * @param mixed $commands Iterable that yields commands.
+ * @param array $config Configuration options.
+ *
+ * @return array
+ * @see \Aws\CommandPool::__construct for available configuration options.
+ */
+ public static function batch(
+ AwsClientInterface $client,
+ $commands,
+ array $config = []
+ ) {
+ $results = [];
+ self::cmpCallback($config, 'fulfilled', $results);
+ self::cmpCallback($config, 'rejected', $results);
+
+ return (new self($client, $commands, $config))
+ ->promise()
+ ->then(static function () use (&$results) {
+ ksort($results);
+ return $results;
+ })
+ ->wait();
+ }
+
+ /**
+ * @return callable
+ */
+ private function getBefore(array $config)
+ {
+ if (!isset($config['before'])) {
+ return null;
+ }
+
+ if (is_callable($config['before'])) {
+ return $config['before'];
+ }
+
+ throw new \InvalidArgumentException('before must be callable');
+ }
+
+ /**
+ * Adds an onFulfilled or onRejected callback that aggregates results into
+ * an array. If a callback is already present, it is replaced with the
+ * composed function.
+ *
+ * @param array $config
+ * @param $name
+ * @param array $results
+ */
+ private static function cmpCallback(array &$config, $name, array &$results)
+ {
+ if (!isset($config[$name])) {
+ $config[$name] = function ($v, $k) use (&$results) {
+ $results[$k] = $v;
+ };
+ } else {
+ $currentFn = $config[$name];
+ $config[$name] = function ($v, $k) use (&$results, $currentFn) {
+ $currentFn($v, $k);
+ $results[$k] = $v;
+ };
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php
new file mode 100644
index 000000000..a08595a75
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php
@@ -0,0 +1,250 @@
+client = $config['client'];
+ $this->assumeRoleParams = $config['assume_role_params'];
+ }
+
+ /**
+ * Loads assume role credentials.
+ *
+ * @return PromiseInterface
+ */
+ public function __invoke()
+ {
+ $client = $this->client;
+ return $client->assumeRoleAsync($this->assumeRoleParams)
+ ->then(function (Result $result) {
+ return $this->client->createCredentials(
+ $result,
+ CredentialSources::STS_ASSUME_ROLE
+ );
+ })->otherwise(function (\RuntimeException $exception) {
+ throw new CredentialsException(
+ "Error in retrieving assume role credentials.",
+ 0,
+ $exception
+ );
+ });
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php
new file mode 100644
index 000000000..ea7052236
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php
@@ -0,0 +1,170 @@
+arn = $config['RoleArn'];
+
+ if (!isset($config['WebIdentityTokenFile'])) {
+ throw new \InvalidArgumentException(self::ERROR_MSG . "'WebIdentityTokenFile'.");
+ }
+ $this->tokenFile = $config['WebIdentityTokenFile'];
+
+ if (!preg_match("/^\w\:|^\/|^\\\/", $this->tokenFile)) {
+ throw new \InvalidArgumentException("'WebIdentityTokenFile' must be an absolute path.");
+ }
+
+ $this->retries = (int) getenv(self::ENV_RETRIES) ?: (isset($config['retries']) ? $config['retries'] : 3);
+ $this->authenticationAttempts = 0;
+ $this->tokenFileReadAttempts = 0;
+ $this->session = $config['SessionName']
+ ?? 'aws-sdk-php-' . round(microtime(true) * 1000);
+ $region = $config['region'] ?? 'us-east-1';
+ if (isset($config['client'])) {
+ $this->client = $config['client'];
+ } else {
+ $this->client = new StsClient([
+ 'credentials' => false,
+ 'region' => $region,
+ 'version' => 'latest'
+ ]);
+ }
+
+ $this->source = $config['source']
+ ?? CredentialSources::STS_WEB_ID_TOKEN;
+ }
+
+ /**
+ * Loads assume role with web identity credentials.
+ *
+ * @return Promise\PromiseInterface
+ */
+ public function __invoke()
+ {
+ return Promise\Coroutine::of(function () {
+ $client = $this->client;
+ $result = null;
+ while ($result == null) {
+ try {
+ $token = @file_get_contents($this->tokenFile);
+ if (false === $token) {
+ clearstatcache(true, dirname($this->tokenFile) . "/" . readlink($this->tokenFile));
+ clearstatcache(true, dirname($this->tokenFile) . "/" . dirname(readlink($this->tokenFile)));
+ clearstatcache(true, $this->tokenFile);
+ if (!@is_readable($this->tokenFile)) {
+ throw new CredentialsException(
+ "Unreadable tokenfile at location {$this->tokenFile}"
+ );
+ }
+
+ $token = @file_get_contents($this->tokenFile);
+ }
+ if (empty($token)) {
+ if ($this->tokenFileReadAttempts < $this->retries) {
+ sleep((int) pow(1.2, $this->tokenFileReadAttempts));
+ $this->tokenFileReadAttempts++;
+ continue;
+ }
+ throw new CredentialsException("InvalidIdentityToken from file: {$this->tokenFile}");
+ }
+ } catch (\Exception $exception) {
+ throw new CredentialsException(
+ "Error reading WebIdentityTokenFile from " . $this->tokenFile,
+ 0,
+ $exception
+ );
+ }
+
+ $assumeParams = [
+ 'RoleArn' => $this->arn,
+ 'RoleSessionName' => $this->session,
+ 'WebIdentityToken' => $token
+ ];
+
+ try {
+ $result = $client->assumeRoleWithWebIdentity($assumeParams);
+ } catch (AwsException $e) {
+ if ($e->getAwsErrorCode() == 'InvalidIdentityToken') {
+ if ($this->authenticationAttempts < $this->retries) {
+ sleep((int) pow(1.2, $this->authenticationAttempts));
+ } else {
+ throw new CredentialsException(
+ "InvalidIdentityToken, retries exhausted"
+ );
+ }
+ } else {
+ throw new CredentialsException(
+ "Error assuming role from web identity credentials",
+ 0,
+ $e
+ );
+ }
+ } catch (\Exception $e) {
+ throw new CredentialsException(
+ "Error retrieving web identity credentials: " . $e->getMessage()
+ . " (" . $e->getCode() . ")"
+ );
+ }
+ $this->authenticationAttempts++;
+ }
+
+ yield $this->client->createCredentials(
+ $result,
+ $this->source
+ );
+ });
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/CredentialProvider.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/CredentialProvider.php
new file mode 100644
index 000000000..698e60956
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/CredentialProvider.php
@@ -0,0 +1,1025 @@
+
+ * use Aws\Credentials\CredentialProvider;
+ * $provider = CredentialProvider::defaultProvider();
+ * // Returns a CredentialsInterface or throws.
+ * $creds = $provider()->wait();
+ *
+ *
+ * Credential providers can be composed to create credentials using conditional
+ * logic that can create different credentials in different environments. You
+ * can compose multiple providers into a single provider using
+ * {@see Aws\Credentials\CredentialProvider::chain}. This function accepts
+ * providers as variadic arguments and returns a new function that will invoke
+ * each provider until a successful set of credentials is returned.
+ *
+ *
+ * // First try an INI file at this location.
+ * $a = CredentialProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = CredentialProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = CredentialProvider::env();
+ * // Combine the three providers together.
+ * $composed = CredentialProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with credentials or throws.
+ * $promise = $composed();
+ * // Wait on the credentials to resolve.
+ * $creds = $promise->wait();
+ *
+ */
+class CredentialProvider
+{
+ const ENV_ARN = 'AWS_ROLE_ARN';
+ const ENV_KEY = 'AWS_ACCESS_KEY_ID';
+ const ENV_PROFILE = 'AWS_PROFILE';
+ const ENV_ROLE_SESSION_NAME = 'AWS_ROLE_SESSION_NAME';
+ const ENV_SECRET = 'AWS_SECRET_ACCESS_KEY';
+ const ENV_ACCOUNT_ID = 'AWS_ACCOUNT_ID';
+ const ENV_SESSION = 'AWS_SESSION_TOKEN';
+ const ENV_TOKEN_FILE = 'AWS_WEB_IDENTITY_TOKEN_FILE';
+ const ENV_SHARED_CREDENTIALS_FILE = 'AWS_SHARED_CREDENTIALS_FILE';
+
+ /**
+ * Create a default credential provider that
+ * first checks for environment variables,
+ * then checks for assumed role via web identity,
+ * then checks for cached SSO credentials from the CLI,
+ * then check for credential_process in the "default" profile in ~/.aws/credentials,
+ * then checks for the "default" profile in ~/.aws/credentials,
+ * then for credential_process in the "default profile" profile in ~/.aws/config,
+ * then checks for "profile default" profile in ~/.aws/config (which is
+ * the default profile of AWS CLI),
+ * then tries to make a GET Request to fetch credentials if ECS environment variable is presented,
+ * finally checks for EC2 instance profile credentials.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided credentials.
+ *
+ * @param array $config Optional array of ecs/instance profile credentials
+ * provider options.
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $cacheable = [
+ 'web_identity',
+ 'sso',
+ 'process_credentials',
+ 'process_config',
+ 'ecs',
+ 'instance'
+ ];
+
+ $profileName = getenv(self::ENV_PROFILE) ?: 'default';
+
+ $defaultChain = [
+ 'env' => self::env(),
+ 'web_identity' => self::assumeRoleWithWebIdentityCredentialProvider($config),
+ ];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] !== false
+ ) {
+ $defaultChain['sso'] = self::sso(
+ $profileName,
+ self::getHomeDir() . '/.aws/config',
+ $config
+ );
+ $defaultChain['process_credentials'] = self::process();
+ $defaultChain['ini'] = self::ini();
+ $defaultChain['process_config'] = self::process(
+ 'profile ' . $profileName,
+ self::getHomeDir() . '/.aws/config'
+ );
+ $defaultChain['ini_config'] = self::ini(
+ 'profile '. $profileName,
+ self::getHomeDir() . '/.aws/config'
+ );
+ }
+
+ if (self::shouldUseEcs()) {
+ $defaultChain['ecs'] = self::ecsCredentials($config);
+ } else {
+ $defaultChain['instance'] = self::instanceProfile($config);
+ }
+
+ if (isset($config['credentials'])
+ && $config['credentials'] instanceof CacheInterface
+ ) {
+ foreach ($cacheable as $provider) {
+ if (isset($defaultChain[$provider])) {
+ $defaultChain[$provider] = self::cache(
+ $defaultChain[$provider],
+ $config['credentials'],
+ 'aws_cached_' . $provider . '_credentials'
+ );
+ }
+ }
+ }
+
+ return self::memoize(
+ call_user_func_array(
+ [CredentialProvider::class, 'chain'],
+ array_values($defaultChain)
+ )
+ );
+ }
+
+ /**
+ * Create a credential provider function from a set of static credentials.
+ *
+ * @param CredentialsInterface $creds
+ *
+ * @return callable
+ */
+ public static function fromCredentials(CredentialsInterface $creds)
+ {
+ $promise = Promise\Create::promiseFor($creds);
+
+ return function () use ($promise) {
+ return $promise;
+ };
+ }
+
+ /**
+ * Creates an aggregate credentials provider that invokes the provided
+ * variadic providers one after the other until a provider returns
+ * credentials.
+ *
+ * @return callable
+ */
+ public static function chain()
+ {
+ $links = func_get_args();
+ if (empty($links)) {
+ throw new \InvalidArgumentException('No providers in chain');
+ }
+
+ return function ($previousCreds = null) use ($links) {
+ /** @var callable $parent */
+ $parent = array_shift($links);
+ $promise = $parent();
+ while ($next = array_shift($links)) {
+ if ($next instanceof InstanceProfileProvider
+ && $previousCreds instanceof Credentials
+ ) {
+ $promise = $promise->otherwise(
+ function () use ($next, $previousCreds) {return $next($previousCreds);}
+ );
+ } else {
+ $promise = $promise->otherwise($next);
+ }
+ }
+ return $promise;
+ };
+ }
+
+ /**
+ * Wraps a credential provider and caches previously provided credentials.
+ *
+ * Ensures that cached credentials are refreshed when they expire.
+ *
+ * @param callable $provider Credentials provider function to wrap.
+ *
+ * @return callable
+ */
+ public static function memoize(callable $provider)
+ {
+ return function () use ($provider) {
+ static $result;
+ static $isConstant;
+
+ // Constant credentials will be returned constantly.
+ if ($isConstant) {
+ return $result;
+ }
+
+ // Create the initial promise that will be used as the cached value
+ // until it expires.
+ if (null === $result) {
+ $result = $provider();
+ }
+
+ // Return credentials that could expire and refresh when needed.
+ return $result
+ ->then(function (CredentialsInterface $creds) use ($provider, &$isConstant, &$result) {
+ // Determine if these are constant credentials.
+ if (!$creds->getExpiration()) {
+ $isConstant = true;
+ return $creds;
+ }
+
+ // Refresh expired credentials.
+ if (!$creds->isExpired()) {
+ return $creds;
+ }
+ // Refresh the result and forward the promise.
+ return $result = $provider($creds);
+ })
+ ->otherwise(function($reason) use (&$result) {
+ // Cleanup rejected promise.
+ $result = null;
+ return new Promise\RejectedPromise($reason);
+ });
+ };
+ }
+
+ /**
+ * Wraps a credential provider and saves provided credentials in an
+ * instance of Aws\CacheInterface. Forwards calls when no credentials found
+ * in cache and updates cache with the results.
+ *
+ * @param callable $provider Credentials provider function to wrap
+ * @param CacheInterface $cache Cache to store credentials
+ * @param string|null $cacheKey (optional) Cache key to use
+ *
+ * @return callable
+ */
+ public static function cache(
+ callable $provider,
+ CacheInterface $cache,
+ $cacheKey = null
+ ) {
+ $cacheKey = $cacheKey ?: 'aws_cached_credentials';
+
+ return function () use ($provider, $cache, $cacheKey) {
+ $found = $cache->get($cacheKey);
+ if ($found instanceof CredentialsInterface && !$found->isExpired()) {
+ return Promise\Create::promiseFor($found);
+ }
+
+ return $provider()
+ ->then(function (CredentialsInterface $creds) use (
+ $cache,
+ $cacheKey
+ ) {
+ $cache->set(
+ $cacheKey,
+ $creds,
+ null === $creds->getExpiration() ?
+ 0 : $creds->getExpiration() - time()
+ );
+
+ return $creds;
+ });
+ };
+ }
+
+ /**
+ * Provider that creates credentials from environment variables
+ * AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use credentials from environment variables, if available
+ $key = getenv(self::ENV_KEY);
+ $secret = getenv(self::ENV_SECRET);
+ $accountId = getenv(self::ENV_ACCOUNT_ID) ?: null;
+ $token = getenv(self::ENV_SESSION) ?: null;
+
+ if ($key && $secret) {
+ return Promise\Create::promiseFor(
+ new Credentials(
+ $key,
+ $secret,
+ $token,
+ null,
+ $accountId,
+ CredentialSources::ENVIRONMENT
+ )
+ );
+ }
+
+ return self::reject('Could not find environment variable '
+ . 'credentials in ' . self::ENV_KEY . '/' . self::ENV_SECRET);
+ };
+ }
+
+ /**
+ * Credential provider that creates credentials using instance profile
+ * credentials.
+ *
+ * @param array $config Array of configuration data.
+ *
+ * @return InstanceProfileProvider
+ * @see Aws\Credentials\InstanceProfileProvider for $config details.
+ */
+ public static function instanceProfile(array $config = [])
+ {
+ return new InstanceProfileProvider($config);
+ }
+
+ /**
+ * Credential provider that retrieves cached SSO credentials from the CLI
+ *
+ * @return callable
+ */
+ public static function sso($ssoProfileName = 'default',
+ $filename = null,
+ $config = []
+ ) {
+ $filename = $filename ?: (self::getHomeDir() . '/.aws/config');
+
+ return function () use ($ssoProfileName, $filename, $config) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read credentials from $filename");
+ }
+ $profiles = self::loadProfiles($filename);
+
+ if (isset($profiles[$ssoProfileName])) {
+ $ssoProfile = $profiles[$ssoProfileName];
+ } elseif (isset($profiles['profile ' . $ssoProfileName])) {
+ $ssoProfileName = 'profile ' . $ssoProfileName;
+ $ssoProfile = $profiles[$ssoProfileName];
+ } else {
+ return self::reject("Profile {$ssoProfileName} does not exist in {$filename}.");
+ }
+
+ if (!empty($ssoProfile['sso_session'])) {
+ return CredentialProvider::getSsoCredentials($profiles, $ssoProfileName, $filename, $config);
+ } else {
+ return CredentialProvider::getSsoCredentialsLegacy($profiles, $ssoProfileName, $filename, $config);
+ }
+ };
+ }
+
+ /**
+ * Credential provider that creates credentials using
+ * ecs credentials by a GET request, whose uri is specified
+ * by environment variable
+ *
+ * @param array $config Array of configuration data.
+ *
+ * @return EcsCredentialProvider
+ * @see Aws\Credentials\EcsCredentialProvider for $config details.
+ */
+ public static function ecsCredentials(array $config = [])
+ {
+ return new EcsCredentialProvider($config);
+ }
+
+ /**
+ * Credential provider that creates credentials using assume role
+ *
+ * @param array $config Array of configuration data
+ * @return callable
+ * @see Aws\Credentials\AssumeRoleCredentialProvider for $config details.
+ */
+ public static function assumeRole(array $config=[])
+ {
+ return new AssumeRoleCredentialProvider($config);
+ }
+
+ /**
+ * Credential provider that creates credentials by assuming role from a
+ * Web Identity Token
+ *
+ * @param array $config Array of configuration data
+ * @return callable
+ * @see Aws\Credentials\AssumeRoleWithWebIdentityCredentialProvider for
+ * $config details.
+ */
+ public static function assumeRoleWithWebIdentityCredentialProvider(array $config = [])
+ {
+ return function () use ($config) {
+ $arnFromEnv = getenv(self::ENV_ARN);
+ $tokenFromEnv = getenv(self::ENV_TOKEN_FILE);
+ $stsClient = isset($config['stsClient'])
+ ? $config['stsClient']
+ : null;
+ $region = isset($config['region'])
+ ? $config['region']
+ : null;
+
+ if ($tokenFromEnv && $arnFromEnv) {
+ $sessionName = getenv(self::ENV_ROLE_SESSION_NAME)
+ ? getenv(self::ENV_ROLE_SESSION_NAME)
+ : null;
+ $provider = new AssumeRoleWithWebIdentityCredentialProvider([
+ 'RoleArn' => $arnFromEnv,
+ 'WebIdentityTokenFile' => $tokenFromEnv,
+ 'SessionName' => $sessionName,
+ 'client' => $stsClient,
+ 'region' => $region,
+ 'source' => CredentialSources::ENVIRONMENT_STS_WEB_ID_TOKEN
+ ]);
+
+ return $provider();
+ }
+
+ $profileName = getenv(self::ENV_PROFILE) ?: 'default';
+ if (isset($config['filename'])) {
+ $profiles = self::loadProfiles($config['filename']);
+ } else {
+ $profiles = self::loadDefaultProfiles();
+ }
+
+ if (isset($profiles[$profileName])) {
+ $profile = $profiles[$profileName];
+ if (isset($profile['region'])) {
+ $region = $profile['region'];
+ }
+ if (isset($profile['web_identity_token_file'])
+ && isset($profile['role_arn'])
+ ) {
+ $sessionName = isset($profile['role_session_name'])
+ ? $profile['role_session_name']
+ : null;
+ $provider = new AssumeRoleWithWebIdentityCredentialProvider([
+ 'RoleArn' => $profile['role_arn'],
+ 'WebIdentityTokenFile' => $profile['web_identity_token_file'],
+ 'SessionName' => $sessionName,
+ 'client' => $stsClient,
+ 'region' => $region,
+ 'source' => CredentialSources::PROFILE_STS_WEB_ID_TOKEN
+ ]);
+
+ return $provider();
+ }
+ } else {
+ return self::reject("Unknown profile: $profileName");
+ }
+ return self::reject("No RoleArn or WebIdentityTokenFile specified");
+ };
+ }
+
+ /**
+ * Credentials provider that creates credentials using an ini file stored
+ * in the current user's home directory. A source can be provided
+ * in this file for assuming a role using the credential_source config option.
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile in "~/.aws/credentials".
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the home directory.
+ * @param array|null $config If provided, may contain the following:
+ * preferStaticCredentials: If true, prefer static
+ * credentials to role_arn if both are present
+ * disableAssumeRole: If true, disable support for
+ * roles that assume an IAM role. If true and role profile
+ * is selected, an error is raised.
+ * stsClient: StsClient used to assume role specified in profile
+ *
+ * @return callable
+ */
+ public static function ini($profile = null, $filename = null, array $config = [])
+ {
+ $filename = self::getFileName($filename);
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename, $config) {
+ $preferStaticCredentials = isset($config['preferStaticCredentials'])
+ ? $config['preferStaticCredentials']
+ : false;
+ $disableAssumeRole = isset($config['disableAssumeRole'])
+ ? $config['disableAssumeRole']
+ : false;
+ $stsClient = isset($config['stsClient']) ? $config['stsClient'] : null;
+
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read credentials from $filename");
+ }
+ $data = self::loadProfiles($filename);
+ if ($data === false) {
+ return self::reject("Invalid credentials file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in credentials file");
+ }
+
+ /*
+ In the CLI, the presence of both a role_arn and static credentials have
+ different meanings depending on how many profiles have been visited. For
+ the first profile processed, role_arn takes precedence over any static
+ credentials, but for all subsequent profiles, static credentials are
+ used if present, and only in their absence will the profile's
+ source_profile and role_arn keys be used to load another set of
+ credentials. This bool is intended to yield compatible behaviour in this
+ sdk.
+ */
+ $preferStaticCredentialsToRoleArn = ($preferStaticCredentials
+ && isset($data[$profile]['aws_access_key_id'])
+ && isset($data[$profile]['aws_secret_access_key']));
+
+ if (isset($data[$profile]['role_arn'])
+ && !$preferStaticCredentialsToRoleArn
+ ) {
+ if ($disableAssumeRole) {
+ return self::reject(
+ "Role assumption profiles are disabled. "
+ . "Failed to load profile " . $profile);
+ }
+ return self::loadRoleProfile(
+ $data,
+ $profile,
+ $filename,
+ $stsClient,
+ $config
+ );
+ }
+
+ if (!isset($data[$profile]['aws_access_key_id'])
+ || !isset($data[$profile]['aws_secret_access_key'])
+ ) {
+ return self::reject("No credentials present in INI profile "
+ . "'$profile' ($filename)");
+ }
+
+ if (empty($data[$profile]['aws_session_token'])) {
+ $data[$profile]['aws_session_token']
+ = isset($data[$profile]['aws_security_token'])
+ ? $data[$profile]['aws_security_token']
+ : null;
+ }
+
+ return Promise\Create::promiseFor(
+ new Credentials(
+ $data[$profile]['aws_access_key_id'],
+ $data[$profile]['aws_secret_access_key'],
+ $data[$profile]['aws_session_token'],
+ null,
+ $data[$profile]['aws_account_id'] ?? null,
+ CredentialSources::PROFILE
+ )
+ );
+ };
+ }
+
+ /**
+ * Credentials provider that creates credentials using a process configured in
+ * ini file stored in the current user's home directory.
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile in "~/.aws/credentials".
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the home directory.
+ *
+ * @return callable
+ */
+ public static function process($profile = null, $filename = null)
+ {
+ $filename = self::getFileName($filename);
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read process credentials from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true, INI_SCANNER_RAW);
+ if ($data === false) {
+ return self::reject("Invalid credentials file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in credentials file");
+ }
+ if (!isset($data[$profile]['credential_process'])) {
+ return self::reject("No credential_process present in INI profile "
+ . "'$profile' ($filename)");
+ }
+
+ $credentialProcess = $data[$profile]['credential_process'];
+ $json = shell_exec($credentialProcess);
+
+ $processData = json_decode($json, true);
+
+ // Only support version 1
+ if (isset($processData['Version'])) {
+ if ($processData['Version'] !== 1) {
+ return self::reject("credential_process does not return Version == 1");
+ }
+ }
+
+ if (!isset($processData['AccessKeyId'])
+ || !isset($processData['SecretAccessKey']))
+ {
+ return self::reject("credential_process does not return valid credentials");
+ }
+
+ if (isset($processData['Expiration'])) {
+ try {
+ $expiration = new DateTimeResult($processData['Expiration']);
+ } catch (\Exception $e) {
+ return self::reject("credential_process returned invalid expiration");
+ }
+ $now = new DateTimeResult();
+ if ($expiration < $now) {
+ return self::reject("credential_process returned expired credentials");
+ }
+ $expires = $expiration->getTimestamp();
+ } else {
+ $expires = null;
+ }
+
+ if (empty($processData['SessionToken'])) {
+ $processData['SessionToken'] = null;
+ }
+
+ $accountId = null;
+ if (!empty($processData['AccountId'])) {
+ $accountId = $processData['AccountId'];
+ } elseif (!empty($data[$profile]['aws_account_id'])) {
+ $accountId = $data[$profile]['aws_account_id'];
+ }
+
+ return Promise\Create::promiseFor(
+ new Credentials(
+ $processData['AccessKeyId'],
+ $processData['SecretAccessKey'],
+ $processData['SessionToken'],
+ $expires,
+ $accountId,
+ CredentialSources::PROFILE_PROCESS
+ )
+ );
+ };
+ }
+
+ /**
+ * Assumes role for profile that includes role_arn
+ *
+ * @return callable
+ */
+ private static function loadRoleProfile(
+ $profiles,
+ $profileName,
+ $filename,
+ $stsClient,
+ $config = []
+ ) {
+ $roleProfile = $profiles[$profileName];
+ $roleArn = isset($roleProfile['role_arn']) ? $roleProfile['role_arn'] : '';
+ $roleSessionName = isset($roleProfile['role_session_name'])
+ ? $roleProfile['role_session_name']
+ : 'aws-sdk-php-' . round(microtime(true) * 1000);
+
+ if (
+ empty($roleProfile['source_profile'])
+ == empty($roleProfile['credential_source'])
+ ) {
+ return self::reject("Either source_profile or credential_source must be set " .
+ "using profile " . $profileName . ", but not both."
+ );
+ }
+
+ $sourceProfileName = "";
+ if (!empty($roleProfile['source_profile'])) {
+ $sourceProfileName = $roleProfile['source_profile'];
+ if (!isset($profiles[$sourceProfileName])) {
+ return self::reject("source_profile " . $sourceProfileName
+ . " using profile " . $profileName . " does not exist"
+ );
+ }
+ if (isset($config['visited_profiles']) &&
+ in_array($roleProfile['source_profile'], $config['visited_profiles'])
+ ) {
+ return self::reject("Circular source_profile reference found.");
+ }
+ $config['visited_profiles'] [] = $roleProfile['source_profile'];
+ } else {
+ if (empty($roleArn)) {
+ return self::reject(
+ "A role_arn must be provided with credential_source in " .
+ "file {$filename} under profile {$profileName} "
+ );
+ }
+ }
+
+ if (empty($stsClient)) {
+ $sourceRegion = isset($profiles[$sourceProfileName]['region'])
+ ? $profiles[$sourceProfileName]['region']
+ : 'us-east-1';
+ $config['preferStaticCredentials'] = true;
+ $sourceCredentials = null;
+ if (!empty($roleProfile['source_profile'])){
+ $sourceCredentials = call_user_func(
+ CredentialProvider::ini($sourceProfileName, $filename, $config)
+ )->wait();
+ } else {
+ $sourceCredentials = self::getCredentialsFromSource(
+ $profileName,
+ $filename
+ );
+ }
+ $stsClient = new StsClient([
+ 'credentials' => $sourceCredentials,
+ 'region' => $sourceRegion,
+ 'version' => '2011-06-15',
+ ]);
+ }
+
+ $result = $stsClient->assumeRole([
+ 'RoleArn' => $roleArn,
+ 'RoleSessionName' => $roleSessionName
+ ]);
+ $credentials = $stsClient->createCredentials(
+ $result,
+ CredentialSources::STS_ASSUME_ROLE
+ );
+
+ return Promise\Create::promiseFor($credentials);
+ }
+
+ /**
+ * Gets the environment's HOME directory if available.
+ *
+ * @return null|string
+ */
+ private static function getHomeDir()
+ {
+ // On Linux/Unix-like systems, use the HOME environment variable
+ if ($homeDir = getenv('HOME')) {
+ return $homeDir;
+ }
+
+ // Get the HOMEDRIVE and HOMEPATH values for Windows hosts
+ $homeDrive = getenv('HOMEDRIVE');
+ $homePath = getenv('HOMEPATH');
+
+ return ($homeDrive && $homePath) ? $homeDrive . $homePath : null;
+ }
+
+ /**
+ * Gets profiles from specified $filename, or default ini files.
+ */
+ private static function loadProfiles($filename)
+ {
+ $profileData = \Aws\parse_ini_file($filename, true, INI_SCANNER_RAW);
+
+ // If loading .aws/credentials, also load .aws/config when AWS_SDK_LOAD_NONDEFAULT_CONFIG is set
+ if ($filename === self::getHomeDir() . '/.aws/credentials'
+ && getenv('AWS_SDK_LOAD_NONDEFAULT_CONFIG')
+ ) {
+ $configFilename = self::getHomeDir() . '/.aws/config';
+ $configProfileData = \Aws\parse_ini_file($configFilename, true, INI_SCANNER_RAW);
+ foreach ($configProfileData as $name => $profile) {
+ // standardize config profile names
+ $name = str_replace('profile ', '', $name);
+ if (!isset($profileData[$name])) {
+ $profileData[$name] = $profile;
+ }
+ }
+ }
+
+ return $profileData;
+ }
+
+ /**
+ * Gets profiles from ~/.aws/credentials and ~/.aws/config ini files
+ */
+ private static function loadDefaultProfiles() {
+ $profiles = [];
+ $credFile = self::getHomeDir() . '/.aws/credentials';
+ $configFile = self::getHomeDir() . '/.aws/config';
+ if (file_exists($credFile)) {
+ $profiles = \Aws\parse_ini_file($credFile, true, INI_SCANNER_RAW);
+ }
+
+ if (file_exists($configFile)) {
+ $configProfileData = \Aws\parse_ini_file($configFile, true, INI_SCANNER_RAW);
+ foreach ($configProfileData as $name => $profile) {
+ // standardize config profile names
+ $name = str_replace('profile ', '', $name);
+ if (!isset($profiles[$name])) {
+ $profiles[$name] = $profile;
+ }
+ }
+ }
+
+ return $profiles;
+ }
+
+ public static function getCredentialsFromSource(
+ $profileName = '',
+ $filename = '',
+ $config = []
+ ) {
+ $data = self::loadProfiles($filename);
+ $credentialSource = !empty($data[$profileName]['credential_source'])
+ ? $data[$profileName]['credential_source']
+ : null;
+ $credentialsPromise = null;
+
+ switch ($credentialSource) {
+ case 'Environment':
+ $credentialsPromise = self::env();
+ break;
+ case 'Ec2InstanceMetadata':
+ $credentialsPromise = self::instanceProfile($config);
+ break;
+ case 'EcsContainer':
+ $credentialsPromise = self::ecsCredentials($config);
+ break;
+ default:
+ throw new CredentialsException(
+ "Invalid credential_source found in config file: {$credentialSource}. Valid inputs "
+ . "include Environment, Ec2InstanceMetadata, and EcsContainer."
+ );
+ }
+
+ $credentialsResult = null;
+ try {
+ $credentialsResult = $credentialsPromise()->wait();
+ } catch (\Exception $reason) {
+ return self::reject(
+ "Unable to successfully retrieve credentials from the source specified in the"
+ . " credentials file: {$credentialSource}; failure message was: "
+ . $reason->getMessage()
+ );
+ }
+ return function () use ($credentialsResult) {
+ return Promise\Create::promiseFor($credentialsResult);
+ };
+ }
+
+ private static function reject($msg)
+ {
+ return new Promise\RejectedPromise(new CredentialsException($msg));
+ }
+
+ /**
+ * @param $filename
+ * @return string
+ */
+ private static function getFileName($filename)
+ {
+ if (!isset($filename)) {
+ $filename = getenv(self::ENV_SHARED_CREDENTIALS_FILE) ?:
+ (self::getHomeDir() . '/.aws/credentials');
+ }
+ return $filename;
+ }
+
+ /**
+ * @return boolean
+ */
+ public static function shouldUseEcs()
+ {
+ //Check for relative uri. if not, then full uri.
+ //fall back to server for each as getenv is not thread-safe.
+ return !empty(getenv(EcsCredentialProvider::ENV_URI))
+ || !empty($_SERVER[EcsCredentialProvider::ENV_URI])
+ || !empty(getenv(EcsCredentialProvider::ENV_FULL_URI))
+ || !empty($_SERVER[EcsCredentialProvider::ENV_FULL_URI]);
+ }
+
+ /**
+ * @param $profiles
+ * @param $ssoProfileName
+ * @param $filename
+ * @param $config
+ * @return Promise\PromiseInterface
+ */
+ private static function getSsoCredentials($profiles, $ssoProfileName, $filename, $config)
+ {
+ if (empty($config['ssoOidcClient'])) {
+ $ssoProfile = $profiles[$ssoProfileName];
+ $sessionName = $ssoProfile['sso_session'];
+ if (empty($profiles['sso-session ' . $sessionName])) {
+ return self::reject(
+ "Could not find sso-session {$sessionName} in {$filename}"
+ );
+ }
+ $ssoSession = $profiles['sso-session ' . $ssoProfile['sso_session']];
+ $ssoOidcClient = new Aws\SSOOIDC\SSOOIDCClient([
+ 'region' => $ssoSession['sso_region'],
+ 'version' => '2019-06-10',
+ 'credentials' => false
+ ]);
+ } else {
+ $ssoOidcClient = $config['ssoClient'];
+ }
+
+ $tokenPromise = new Aws\Token\SsoTokenProvider(
+ $ssoProfileName,
+ $filename,
+ $ssoOidcClient
+ );
+ $token = $tokenPromise()->wait();
+ $ssoCredentials = CredentialProvider::getCredentialsFromSsoService(
+ $ssoProfile,
+ $ssoSession['sso_region'],
+ $token->getToken(),
+ $config
+ );
+
+ //Expiration value is returned in epoch milliseconds. Conversion to seconds
+ $expiration = intdiv($ssoCredentials['expiration'], 1000);
+ return Promise\Create::promiseFor(
+ new Credentials(
+ $ssoCredentials['accessKeyId'],
+ $ssoCredentials['secretAccessKey'],
+ $ssoCredentials['sessionToken'],
+ $expiration,
+ $ssoProfile['sso_account_id'],
+ CredentialSources::PROFILE_SSO
+ )
+ );
+ }
+
+ /**
+ * @param $profiles
+ * @param $ssoProfileName
+ * @param $filename
+ * @param $config
+ * @return Promise\PromiseInterface
+ */
+ private static function getSsoCredentialsLegacy($profiles, $ssoProfileName, $filename, $config)
+ {
+ $ssoProfile = $profiles[$ssoProfileName];
+ if (empty($ssoProfile['sso_start_url'])
+ || empty($ssoProfile['sso_region'])
+ || empty($ssoProfile['sso_account_id'])
+ || empty($ssoProfile['sso_role_name'])
+ ) {
+ return self::reject(
+ "Profile {$ssoProfileName} in {$filename} must contain the following keys: "
+ . "sso_start_url, sso_region, sso_account_id, and sso_role_name."
+ );
+ }
+ $tokenLocation = self::getHomeDir()
+ . '/.aws/sso/cache/'
+ . sha1($ssoProfile['sso_start_url'])
+ . ".json";
+
+ if (!@is_readable($tokenLocation)) {
+ return self::reject("Unable to read token file at $tokenLocation");
+ }
+ $tokenData = json_decode(file_get_contents($tokenLocation), true);
+ if (empty($tokenData['accessToken']) || empty($tokenData['expiresAt'])) {
+ return self::reject(
+ "Token file at {$tokenLocation} must contain an access token and an expiration"
+ );
+ }
+ try {
+ $expiration = (new DateTimeResult($tokenData['expiresAt']))->getTimestamp();
+ } catch (\Exception $e) {
+ return self::reject("Cached SSO credentials returned an invalid expiration");
+ }
+ $now = time();
+ if ($expiration < $now) {
+ return self::reject("Cached SSO credentials returned expired credentials");
+ }
+ $ssoCredentials = CredentialProvider::getCredentialsFromSsoService(
+ $ssoProfile,
+ $ssoProfile['sso_region'],
+ $tokenData['accessToken'],
+ $config
+ );
+ return Promise\Create::promiseFor(
+ new Credentials(
+ $ssoCredentials['accessKeyId'],
+ $ssoCredentials['secretAccessKey'],
+ $ssoCredentials['sessionToken'],
+ $expiration,
+ $ssoProfile['sso_account_id'],
+ CredentialSources::PROFILE_SSO_LEGACY
+ )
+ );
+ }
+ /**
+ * @param array $ssoProfile
+ * @param string $clientRegion
+ * @param string $accessToken
+ * @param array $config
+ * @return array|null
+ */
+ private static function getCredentialsFromSsoService($ssoProfile, $clientRegion, $accessToken, $config)
+ {
+ if (empty($config['ssoClient'])) {
+ $ssoClient = new Aws\SSO\SSOClient([
+ 'region' => $clientRegion,
+ 'version' => '2019-06-10',
+ 'credentials' => false
+ ]);
+ } else {
+ $ssoClient = $config['ssoClient'];
+ }
+ $ssoResponse = $ssoClient->getRoleCredentials([
+ 'accessToken' => $accessToken,
+ 'accountId' => $ssoProfile['sso_account_id'],
+ 'roleName' => $ssoProfile['sso_role_name']
+ ]);
+
+ $ssoCredentials = $ssoResponse['roleCredentials'];
+ return $ssoCredentials;
+ }
+}
+
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/CredentialSources.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/CredentialSources.php
new file mode 100644
index 000000000..829aa919c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Credentials/CredentialSources.php
@@ -0,0 +1,22 @@
+key = trim((string) $key);
+ $this->secret = trim((string) $secret);
+ $this->token = $token;
+ $this->expires = $expires;
+ $this->accountId = $accountId;
+ $this->source = $source ?? CredentialSources::STATIC;
+ }
+
+ public static function __set_state(array $state)
+ {
+ return new self(
+ $state['key'],
+ $state['secret'],
+ $state['token'],
+ $state['expires'],
+ $state['accountId'],
+ $state['source'] ?? null
+ );
+ }
+
+ public function getAccessKeyId()
+ {
+ return $this->key;
+ }
+
+ public function getSecretKey()
+ {
+ return $this->secret;
+ }
+
+ public function getSecurityToken()
+ {
+ return $this->token;
+ }
+
+ public function getExpiration()
+ {
+ return $this->expires;
+ }
+
+ public function isExpired()
+ {
+ return $this->expires !== null && time() >= $this->expires;
+ }
+
+ public function getAccountId()
+ {
+ return $this->accountId;
+ }
+
+ public function getSource()
+ {
+ return $this->source;
+ }
+
+ public function toArray()
+ {
+ return [
+ 'key' => $this->key,
+ 'secret' => $this->secret,
+ 'token' => $this->token,
+ 'expires' => $this->expires,
+ 'accountId' => $this->accountId,
+ 'source' => $this->source
+ ];
+ }
+
+ public function serialize()
+ {
+ return json_encode($this->__serialize());
+ }
+
+ public function unserialize($serialized)
+ {
+ $data = json_decode($serialized, true);
+
+ $this->__unserialize($data);
+ }
+
+ public function __serialize()
+ {
+ return $this->toArray();
+ }
+
+ public function __unserialize($data)
+ {
+ $this->key = $data['key'];
+ $this->secret = $data['secret'];
+ $this->token = $data['token'];
+ $this->expires = $data['expires'];
+ $this->accountId = $data['accountId'] ?? null;
+ $this->source = $data['source'] ?? null;
+ }
+
+ /**
+ * Internal-only. Used when IMDS is unreachable
+ * or returns expires credentials.
+ *
+ * @internal
+ */
+ public function extendExpiration() {
+ $extension = mt_rand(5, 10);
+ $this->expires = time() + $extension * 60;
+
+ $message = <<
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const DEFAULT_MODE = 'legacy';
+ const ENV_MODE = 'AWS_DEFAULTS_MODE';
+ const ENV_PROFILE = 'AWS_PROFILE';
+ const INI_MODE = 'defaults_mode';
+
+ public static $cacheKey = 'aws_defaults_mode';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback();
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['defaultsMode'])
+ && $config['defaultsMode'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['defaultsMode'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use config from environment variables, if available
+ $mode = getenv(self::ENV_MODE);
+ if (!empty($mode)) {
+ return Promise\Create::promiseFor(
+ new Configuration($mode)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_MODE);
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback()
+ {
+ return function () {
+ return Promise\Create::promiseFor(
+ new Configuration( self::DEFAULT_MODE)
+ );
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini(
+ $profile = null,
+ $filename = null
+ ) {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_MODE])) {
+ return self::reject("Required defaults mode config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+ return Promise\Create::promiseFor(
+ new Configuration(
+ $data[$profile][self::INI_MODE]
+ )
+ );
+ };
+ }
+
+ /**
+ * Unwraps a configuration object in whatever valid form it is in,
+ * always returning a ConfigurationInterface object.
+ *
+ * @param mixed $config
+ * @return ConfigurationInterface
+ * @throws \InvalidArgumentException
+ */
+ public static function unwrap($config)
+ {
+ if (is_callable($config)) {
+ $config = $config();
+ }
+ if ($config instanceof PromiseInterface) {
+ $config = $config->wait();
+ }
+ if ($config instanceof ConfigurationInterface) {
+ return $config;
+ }
+
+ if (is_string($config)) {
+ return new Configuration($config);
+ }
+
+ throw new \InvalidArgumentException('Not a valid defaults mode configuration'
+ . ' argument.');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/DefaultsMode/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/DefaultsMode/Exception/ConfigurationException.php
new file mode 100644
index 000000000..b7186a5b8
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/DefaultsMode/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+cache = $cache;
+ }
+
+ public function get($key)
+ {
+ return $this->cache->fetch($key);
+ }
+
+ /**
+ * @return mixed
+ */
+ public function fetch($key)
+ {
+ return $this->get($key);
+ }
+
+ public function set($key, $value, $ttl = 0)
+ {
+ return $this->cache->save($key, $value, $ttl);
+ }
+
+ /**
+ * @return bool
+ */
+ public function save($key, $value, $ttl = 0)
+ {
+ return $this->set($key, $value, $ttl);
+ }
+
+ public function remove($key)
+ {
+ return $this->cache->delete($key);
+ }
+
+ /**
+ * @return bool
+ */
+ public function delete($key)
+ {
+ return $this->remove($key);
+ }
+
+ /**
+ * @return bool
+ */
+ public function contains($key)
+ {
+ return $this->cache->contains($key);
+ }
+
+ /**
+ * @return mixed[]|null
+ */
+ public function getStats()
+ {
+ return $this->cache->getStats();
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/EndpointProvider.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/EndpointProvider.php
new file mode 100644
index 000000000..ba5357421
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/EndpointProvider.php
@@ -0,0 +1,96 @@
+ 'ec2', 'region' => 'us-west-2']);
+ * // Returns an endpoint array or throws.
+ * $endpoint = EndpointProvider::resolve($provider, [
+ * 'service' => 'ec2',
+ * 'region' => 'us-west-2'
+ * ]);
+ *
+ * You can compose multiple providers into a single provider using
+ * {@see Aws\or_chain}. This function accepts providers as arguments and
+ * returns a new function that will invoke each provider until a non-null value
+ * is returned.
+ *
+ * $a = function (array $args) {
+ * if ($args['region'] === 'my-test-region') {
+ * return ['endpoint' => 'http://localhost:123/api'];
+ * }
+ * };
+ * $b = EndpointProvider::defaultProvider();
+ * $c = \Aws\or_chain($a, $b);
+ * $config = ['service' => 'ec2', 'region' => 'my-test-region'];
+ * $res = $c($config); // $a handles this.
+ * $config['region'] = 'us-west-2';
+ * $res = $c($config); // $b handles this.
+ */
+class EndpointProvider
+{
+ /**
+ * Resolves and endpoint provider and ensures a non-null return value.
+ *
+ * @param callable $provider Provider function to invoke.
+ * @param array $args Endpoint arguments to pass to the provider.
+ *
+ * @return array
+ * @throws UnresolvedEndpointException
+ */
+ public static function resolve(callable $provider, array $args = [])
+ {
+ $result = $provider($args);
+ if (is_array($result)) {
+ return $result;
+ }
+
+ throw new UnresolvedEndpointException(
+ 'Unable to resolve an endpoint using the provider arguments: '
+ . json_encode($args) . '. Note: you can provide an "endpoint" '
+ . 'option to a client constructor to bypass invoking an endpoint '
+ . 'provider.');
+ }
+
+ /**
+ * 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();
+ }
+
+ /**
+ * Creates and returns an endpoint provider that uses patterns from an
+ * array.
+ *
+ * @param array $patterns Endpoint patterns
+ *
+ * @return callable
+ */
+ public static function patterns(array $patterns)
+ {
+ return new PatternEndpointProvider($patterns);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/Partition.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/Partition.php
new file mode 100644
index 000000000..46d23712f
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/Partition.php
@@ -0,0 +1,322 @@
+data = $definition;
+ }
+
+ public function getName()
+ {
+ return $this->data['partition'];
+ }
+
+ /**
+ * @internal
+ * @return mixed
+ */
+ public function getDnsSuffix()
+ {
+ return $this->data['dnsSuffix'];
+ }
+
+ public function isRegionMatch($region, $service)
+ {
+ if (isset($this->data['regions'][$region])
+ || isset($this->data['services'][$service]['endpoints'][$region])
+ ) {
+ return true;
+ }
+
+ if (isset($this->data['regionRegex'])) {
+ return (bool) preg_match(
+ "@{$this->data['regionRegex']}@",
+ $region
+ );
+ }
+
+ return false;
+ }
+
+ public function getAvailableEndpoints(
+ $service,
+ $allowNonRegionalEndpoints = false
+ ) {
+ if ($this->isServicePartitionGlobal($service)) {
+ return [$this->getPartitionEndpoint($service)];
+ }
+
+ if (isset($this->data['services'][$service]['endpoints'])) {
+ $serviceRegions = array_keys(
+ $this->data['services'][$service]['endpoints']
+ );
+
+ return $allowNonRegionalEndpoints
+ ? $serviceRegions
+ : array_intersect($serviceRegions, array_keys(
+ $this->data['regions']
+ ));
+ }
+
+ return [];
+ }
+
+ public function __invoke(array $args = [])
+ {
+ $service = isset($args['service']) ? $args['service'] : '';
+ $region = isset($args['region']) ? $args['region'] : '';
+ $scheme = isset($args['scheme']) ? $args['scheme'] : 'https';
+ $options = isset($args['options']) ? $args['options'] : [];
+ $data = $this->getEndpointData($service, $region, $options);
+ $variant = $this->getVariant($options, $data);
+ if (isset($variant['hostname'])) {
+ $template = $variant['hostname'];
+ } else {
+ $template = isset($data['hostname']) ? $data['hostname'] : '';
+ }
+ $dnsSuffix = isset($variant['dnsSuffix'])
+ ? $variant['dnsSuffix']
+ : $this->data['dnsSuffix'];
+ return [
+ 'endpoint' => "{$scheme}://" . $this->formatEndpoint(
+ $template,
+ $service,
+ $region,
+ $dnsSuffix
+ ),
+ 'signatureVersion' => $this->getSignatureVersion($data),
+ 'signingRegion' => isset($data['credentialScope']['region'])
+ ? $data['credentialScope']['region']
+ : $region,
+ 'signingName' => isset($data['credentialScope']['service'])
+ ? $data['credentialScope']['service']
+ : $service,
+ ];
+ }
+
+ private function getEndpointData($service, $region, $options)
+ {
+ $defaultRegion = $this->resolveRegion($service, $region, $options);
+ $data = isset($this->data['services'][$service]['endpoints'][$defaultRegion])
+ ? $this->data['services'][$service]['endpoints'][$defaultRegion]
+ : [];
+ $data += isset($this->data['services'][$service]['defaults'])
+ ? $this->data['services'][$service]['defaults']
+ : [];
+ $data += isset($this->data['defaults'])
+ ? $this->data['defaults']
+ : [];
+
+ return $data;
+ }
+
+ private function getSignatureVersion(array $data)
+ {
+ static $supportedBySdk = [
+ 's3v4',
+ 'v4',
+ 'anonymous',
+ ];
+
+ $possibilities = array_intersect(
+ $supportedBySdk,
+ isset($data['signatureVersions'])
+ ? $data['signatureVersions']
+ : ['v4']
+ );
+
+ return array_shift($possibilities);
+ }
+
+ private function resolveRegion($service, $region, $options)
+ {
+ if (isset($this->data['services'][$service]['endpoints'][$region])
+ && $this->isFipsEndpointUsed($region)
+ ) {
+ return $region;
+ }
+
+ if ($this->isServicePartitionGlobal($service)
+ || $this->isStsLegacyEndpointUsed($service, $region, $options)
+ || $this->isS3LegacyEndpointUsed($service, $region, $options)
+ ) {
+ return $this->getPartitionEndpoint($service);
+ }
+
+ return $region;
+ }
+
+ private function isServicePartitionGlobal($service)
+ {
+ return isset($this->data['services'][$service]['isRegionalized'])
+ && false === $this->data['services'][$service]['isRegionalized']
+ && isset($this->data['services'][$service]['partitionEndpoint']);
+ }
+
+ /**
+ * STS legacy endpoints used for valid regions unless option is explicitly
+ * set to 'regional'
+ *
+ * @param string $service
+ * @param string $region
+ * @param array $options
+ * @return bool
+ */
+ private function isStsLegacyEndpointUsed($service, $region, $options)
+ {
+ return $service === 'sts'
+ && in_array($region, $this->stsLegacyGlobalRegions)
+ && (empty($options['sts_regional_endpoints'])
+ || ConfigurationProvider::unwrap(
+ $options['sts_regional_endpoints']
+ )->getEndpointsType() !== 'regional'
+ );
+ }
+
+ /**
+ * S3 legacy us-east-1 endpoint used for valid regions unless option is explicitly
+ * set to 'regional'
+ *
+ * @param string $service
+ * @param string $region
+ * @param array $options
+ * @return bool
+ */
+ private function isS3LegacyEndpointUsed($service, $region, $options)
+ {
+ return $service === 's3'
+ && $region === 'us-east-1'
+ && (empty($options['s3_us_east_1_regional_endpoint'])
+ || S3ConfigurationProvider::unwrap(
+ $options['s3_us_east_1_regional_endpoint']
+ )->getEndpointsType() !== 'regional'
+ );
+ }
+
+ private function getPartitionEndpoint($service)
+ {
+ return $this->data['services'][$service]['partitionEndpoint'];
+ }
+
+ private function formatEndpoint($template, $service, $region, $dnsSuffix)
+ {
+ return strtr($template, [
+ '{service}' => $service,
+ '{region}' => $region,
+ '{dnsSuffix}' => $dnsSuffix,
+ ]);
+ }
+
+ /**
+ * @param $region
+ * @return bool
+ */
+ private function isFipsEndpointUsed($region)
+ {
+ return strpos($region, "fips") !== false;
+ }
+
+ /**
+ * @param array $options
+ * @param array $data
+ * @return array
+ */
+ private function getVariant(array $options, array $data)
+ {
+ $variantTags = [];
+ if (isset($options['use_fips_endpoint'])) {
+ $useFips = $options['use_fips_endpoint'];
+ if (is_bool($useFips)) {
+ $useFips && $variantTags[] = 'fips';
+ } elseif ($useFips->isUseFipsEndpoint()) {
+ $variantTags[] = 'fips';
+ }
+ }
+ if (isset($options['use_dual_stack_endpoint'])) {
+ $useDualStack = $options['use_dual_stack_endpoint'];
+ if (is_bool($useDualStack)) {
+ $useDualStack && $variantTags[] = 'dualstack';
+ } elseif ($useDualStack->isUseDualStackEndpoint()) {
+ $variantTags[] = 'dualstack';
+ }
+ }
+ if (!empty($variantTags)) {
+ if (isset($data['variants'])) {
+ foreach ($data['variants'] as $variant) {
+ if (array_count_values($variant['tags']) == array_count_values($variantTags)) {
+ return $variant;
+ }
+ }
+ }
+ if (isset($this->data['defaults']['variants'])) {
+ foreach ($this->data['defaults']['variants'] as $variant) {
+ if (array_count_values($variant['tags']) == array_count_values($variantTags)) {
+ return $variant;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/PartitionEndpointProvider.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/PartitionEndpointProvider.php
new file mode 100644
index 000000000..21ca2c838
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/PartitionEndpointProvider.php
@@ -0,0 +1,130 @@
+partitions = array_map(function (array $definition) {
+ return new Partition($definition);
+ }, array_values($partitions));
+ $this->defaultPartition = $defaultPartition;
+ $this->options = $options;
+ }
+
+ public function __invoke(array $args = [])
+ {
+ $partition = $this->getPartition(
+ isset($args['region']) ? $args['region'] : '',
+ isset($args['service']) ? $args['service'] : ''
+ );
+ $args['options'] = $this->options;
+
+ return $partition($args);
+ }
+
+ /**
+ * Returns the partition containing the provided region or the default
+ * partition if no match is found.
+ *
+ * @param string $region
+ * @param string $service
+ *
+ * @return Partition
+ */
+ public function getPartition($region, $service)
+ {
+ foreach ($this->partitions as $partition) {
+ if ($partition->isRegionMatch($region, $service)) {
+ return $partition;
+ }
+ }
+
+ return $this->getPartitionByName($this->defaultPartition);
+ }
+
+ /**
+ * Returns the partition with the provided name or null if no partition with
+ * the provided name can be found.
+ *
+ * @param string $name
+ *
+ * @return Partition|null
+ */
+ public function getPartitionByName($name)
+ {
+ foreach ($this->partitions as $partition) {
+ if ($name === $partition->getName()) {
+ return $partition;
+ }
+ }
+ }
+
+ /**
+ * Creates and returns the default SDK partition provider.
+ *
+ * @param array $options
+ * @return PartitionEndpointProvider
+ */
+ public static function defaultProvider($options = [])
+ {
+ $data = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints.json');
+ $prefixData = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints_prefix_history.json');
+ $mergedData = self::mergePrefixData($data, $prefixData);
+
+ return new self($mergedData['partitions'], 'aws', $options);
+ }
+
+ /**
+ * Copy endpoint data for other prefixes used by a given service
+ *
+ * @param $data
+ * @param $prefixData
+ * @return array
+ */
+ public static function mergePrefixData($data, $prefixData)
+ {
+ $prefixGroups = $prefixData['prefix-groups'];
+
+ foreach ($data["partitions"] as $index => $partition) {
+ foreach ($prefixGroups as $current => $old) {
+ $serviceData = Env::search("services.\"{$current}\"", $partition);
+ if (!empty($serviceData)) {
+ foreach ($old as $prefix) {
+ if (empty(Env::search("services.\"{$prefix}\"", $partition))) {
+ $data["partitions"][$index]["services"][$prefix] = $serviceData;
+ }
+ }
+ }
+ }
+ }
+
+ return $data;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/PartitionInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/PartitionInterface.php
new file mode 100644
index 000000000..0f2572d93
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/PartitionInterface.php
@@ -0,0 +1,56 @@
+patterns = $patterns;
+ }
+
+ public function __invoke(array $args = [])
+ {
+ $service = isset($args['service']) ? $args['service'] : '';
+ $region = isset($args['region']) ? $args['region'] : '';
+ $keys = ["{$region}/{$service}", "{$region}/*", "*/{$service}", "*/*"];
+
+ foreach ($keys as $key) {
+ if (isset($this->patterns[$key])) {
+ return $this->expand(
+ $this->patterns[$key],
+ isset($args['scheme']) ? $args['scheme'] : 'https',
+ $service,
+ $region
+ );
+ }
+ }
+
+ return null;
+ }
+
+ private function expand(array $config, $scheme, $service, $region)
+ {
+ $config['endpoint'] = $scheme . '://'
+ . strtr($config['endpoint'], [
+ '{service}' => $service,
+ '{region}' => $region
+ ]);
+
+ return $config;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/Configuration.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/Configuration.php
new file mode 100644
index 000000000..5506fca98
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/Configuration.php
@@ -0,0 +1,41 @@
+useDualstackEndpoint = Aws\boolean_value($useDualstackEndpoint);
+ if (is_null($this->useDualstackEndpoint)) {
+ throw new ConfigurationException("'use_dual_stack_endpoint' config option"
+ . " must be a boolean value.");
+ }
+ if ($this->useDualstackEndpoint == true
+ && (strpos($region, "iso-") !== false || strpos($region, "-iso") !== false)
+ ) {
+ throw new ConfigurationException("Dual-stack is not supported in ISO regions"); }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function isUseDualstackEndpoint()
+ {
+ return $this->useDualstackEndpoint;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function toArray()
+ {
+ return [
+ 'use_dual_stack_endpoint' => $this->isUseDualstackEndpoint(),
+ ];
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/ConfigurationInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/ConfigurationInterface.php
new file mode 100644
index 000000000..e1c7d5e86
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/ConfigurationInterface.php
@@ -0,0 +1,19 @@
+
+ * use Aws\Endpoint\UseDualstackEndpoint\ConfigurationProvider;
+ * $provider = ConfigurationProvider::defaultProvider();
+ * // Returns a ConfigurationInterface or throws.
+ * $config = $provider()->wait();
+ *
+ *
+ * Configuration providers can be composed to create configuration using
+ * conditional logic that can create different configurations in different
+ * environments. You can compose multiple providers into a single provider using
+ * {@see Aws\Endpoint\UseDualstackEndpoint\ConfigurationProvider::chain}. This function
+ * accepts providers as variadic arguments and returns a new function that will
+ * invoke each provider until a successful configuration is returned.
+ *
+ *
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const ENV_USE_DUAL_STACK_ENDPOINT = 'AWS_USE_DUALSTACK_ENDPOINT';
+ const INI_USE_DUAL_STACK_ENDPOINT = 'use_dualstack_endpoint';
+
+ public static $cacheKey = 'aws_cached_use_dualstack_endpoint_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $region = $config['region'];
+ $configProviders = [self::env($region)];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini($region);
+ }
+ $configProviders[] = self::fallback($region);
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['use_dual_stack_endpoint'])
+ && $config['use_dual_stack_endpoint'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['use_dual_stack_endpoint'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env($region)
+ {
+ return function () use ($region) {
+ // Use config from environment variables, if available
+ $useDualstackEndpoint = getenv(self::ENV_USE_DUAL_STACK_ENDPOINT);
+ if (!empty($useDualstackEndpoint)) {
+ return Promise\Create::promiseFor(
+ new Configuration($useDualstackEndpoint, $region)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_USE_DUAL_STACK_ENDPOINT);
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini($region, $profile = null, $filename = null)
+ {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($region, $profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+
+ // Use INI_SCANNER_NORMAL instead of INI_SCANNER_TYPED for PHP 5.5 compatibility
+ $data = \Aws\parse_ini_file($filename, true, INI_SCANNER_NORMAL);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_USE_DUAL_STACK_ENDPOINT])) {
+ return self::reject("Required use dualstack endpoint config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ // INI_SCANNER_NORMAL parses false-y values as an empty string
+ if ($data[$profile][self::INI_USE_DUAL_STACK_ENDPOINT] === "") {
+ $data[$profile][self::INI_USE_DUAL_STACK_ENDPOINT] = false;
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration($data[$profile][self::INI_USE_DUAL_STACK_ENDPOINT], $region)
+ );
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback($region)
+ {
+ return function () use ($region) {
+ return Promise\Create::promiseFor(new Configuration(false, $region));
+ };
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/Exception/ConfigurationException.php
new file mode 100644
index 000000000..796adc945
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseDualstackEndpoint/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+useFipsEndpoint = Aws\boolean_value($useFipsEndpoint);
+ if (is_null($this->useFipsEndpoint)) {
+ throw new ConfigurationException("'use_fips_endpoint' config option"
+ . " must be a boolean value.");
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function isUseFipsEndpoint()
+ {
+ return $this->useFipsEndpoint;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function toArray()
+ {
+ return [
+ 'use_fips_endpoint' => $this->isUseFipsEndpoint(),
+ ];
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseFipsEndpoint/ConfigurationInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseFipsEndpoint/ConfigurationInterface.php
new file mode 100644
index 000000000..da23f872f
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseFipsEndpoint/ConfigurationInterface.php
@@ -0,0 +1,19 @@
+
+ * use Aws\Endpoint\UseFipsEndpoint\ConfigurationProvider;
+ * $provider = ConfigurationProvider::defaultProvider();
+ * // Returns a ConfigurationInterface or throws.
+ * $config = $provider()->wait();
+ *
+ *
+ * Configuration providers can be composed to create configuration using
+ * conditional logic that can create different configurations in different
+ * environments. You can compose multiple providers into a single provider using
+ * {@see Aws\Endpoint\UseFipsEndpoint\ConfigurationProvider::chain}. This function
+ * accepts providers as variadic arguments and returns a new function that will
+ * invoke each provider until a successful configuration is returned.
+ *
+ *
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const ENV_USE_FIPS_ENDPOINT = 'AWS_USE_FIPS_ENDPOINT';
+ const INI_USE_FIPS_ENDPOINT = 'use_fips_endpoint';
+
+ public static $cacheKey = 'aws_cached_use_fips_endpoint_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback($config['region']);
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['use_fips_endpoint'])
+ && $config['use_fips_endpoint'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['use_fips_endpoint'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use config from environment variables, if available
+ $useFipsEndpoint = getenv(self::ENV_USE_FIPS_ENDPOINT);
+ if (!empty($useFipsEndpoint)) {
+ return Promise\Create::promiseFor(
+ new Configuration($useFipsEndpoint)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_USE_FIPS_ENDPOINT);
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini($profile = null, $filename = null)
+ {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+
+ // Use INI_SCANNER_NORMAL instead of INI_SCANNER_TYPED for PHP 5.5 compatibility
+ $data = \Aws\parse_ini_file($filename, true, INI_SCANNER_NORMAL);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_USE_FIPS_ENDPOINT])) {
+ return self::reject("Required use fips endpoint config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ // INI_SCANNER_NORMAL parses false-y values as an empty string
+ if ($data[$profile][self::INI_USE_FIPS_ENDPOINT] === "") {
+ $data[$profile][self::INI_USE_FIPS_ENDPOINT] = false;
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration($data[$profile][self::INI_USE_FIPS_ENDPOINT])
+ );
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback($region)
+ {
+ return function () use ($region) {
+ $isFipsPseudoRegion = strpos($region, 'fips-') !== false
+ || strpos($region, '-fips') !== false;
+ if ($isFipsPseudoRegion){
+ $configuration = new Configuration(true);
+ } else {
+ $configuration = new Configuration(false);
+ }
+ return Promise\Create::promiseFor($configuration);
+ };
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseFipsEndpoint/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseFipsEndpoint/Exception/ConfigurationException.php
new file mode 100644
index 000000000..468aa650a
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Endpoint/UseFipsEndpoint/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+cacheLimit = filter_var($cacheLimit, FILTER_VALIDATE_INT);
+ if ($this->cacheLimit == false || $this->cacheLimit < 1) {
+ throw new \InvalidArgumentException(
+ "'cache_limit' value must be a positive integer."
+ );
+ }
+
+ // Unparsable $enabled flag errs on the side of disabling endpoint discovery
+ $this->enabled = filter_var($enabled, FILTER_VALIDATE_BOOLEAN);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function isEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getCacheLimit()
+ {
+ return $this->cacheLimit;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function toArray()
+ {
+ return [
+ 'enabled' => $this->isEnabled(),
+ 'cache_limit' => $this->getCacheLimit()
+ ];
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/ConfigurationInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/ConfigurationInterface.php
new file mode 100644
index 000000000..3228d1d86
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/ConfigurationInterface.php
@@ -0,0 +1,30 @@
+
+ * use Aws\EndpointDiscovery\ConfigurationProvider;
+ * $provider = ConfigurationProvider::defaultProvider();
+ * // Returns a ConfigurationInterface or throws.
+ * $config = $provider()->wait();
+ *
+ *
+ * Configuration providers can be composed to create configuration using
+ * conditional logic that can create different configurations in different
+ * environments. You can compose multiple providers into a single provider using
+ * {@see Aws\EndpointDiscovery\ConfigurationProvider::chain}. This function
+ * accepts providers as variadic arguments and returns a new function that will
+ * invoke each provider until a successful configuration is returned.
+ *
+ *
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const DEFAULT_ENABLED = false;
+ const DEFAULT_CACHE_LIMIT = 1000;
+ const ENV_ENABLED = 'AWS_ENDPOINT_DISCOVERY_ENABLED';
+ const ENV_ENABLED_ALT = 'AWS_ENABLE_ENDPOINT_DISCOVERY';
+ const ENV_PROFILE = 'AWS_PROFILE';
+
+ public static $cacheKey = 'aws_cached_endpoint_discovery_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback($config);
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['endpoint_discovery'])
+ && $config['endpoint_discovery'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['endpoint_discovery'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @param $cacheLimit
+ * @return callable
+ */
+ public static function env($cacheLimit = self::DEFAULT_CACHE_LIMIT)
+ {
+ return function () use ($cacheLimit) {
+ // Use config from environment variables, if available
+ $enabled = getenv(self::ENV_ENABLED);
+ if ($enabled === false || $enabled === '') {
+ $enabled = getenv(self::ENV_ENABLED_ALT);
+ }
+ if ($enabled !== false && $enabled !== '') {
+ return Promise\Create::promiseFor(
+ new Configuration($enabled, $cacheLimit)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_ENABLED);
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set. Will check the
+ * service model for any endpoint discovery required operations, and enable
+ * endpoint discovery in that case. If no required operations found, will use
+ * the class default values.
+ *
+ * @param array $config
+ * @return callable
+ */
+ public static function fallback($config = [])
+ {
+ $enabled = self::DEFAULT_ENABLED;
+ if (!empty($config['api_provider'])
+ && !empty($config['service'])
+ && !empty($config['version'])
+ ) {
+ $provider = $config['api_provider'];
+ $apiData = $provider('api', $config['service'], $config['version']);
+ if (!empty($apiData['operations'])) {
+ foreach ($apiData['operations'] as $operation) {
+ if (!empty($operation['endpointdiscovery']['required'])) {
+ $enabled = true;
+ }
+ }
+ }
+ }
+
+ return function () use ($enabled) {
+ return Promise\Create::promiseFor(
+ new Configuration(
+ $enabled,
+ self::DEFAULT_CACHE_LIMIT
+ )
+ );
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ * @param int $cacheLimit
+ *
+ * @return callable
+ */
+ public static function ini(
+ $profile = null,
+ $filename = null,
+ $cacheLimit = self::DEFAULT_CACHE_LIMIT
+ ) {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename, $cacheLimit) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile]['endpoint_discovery_enabled'])) {
+ return self::reject("Required endpoint discovery config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration(
+ $data[$profile]['endpoint_discovery_enabled'],
+ $cacheLimit
+ )
+ );
+ };
+ }
+
+ /**
+ * Unwraps a configuration object in whatever valid form it is in,
+ * always returning a ConfigurationInterface object.
+ *
+ * @param mixed $config
+ * @return ConfigurationInterface
+ * @throws \InvalidArgumentException
+ */
+ public static function unwrap($config)
+ {
+ if (is_callable($config)) {
+ $config = $config();
+ }
+ if ($config instanceof PromiseInterface) {
+ $config = $config->wait();
+ }
+ if ($config instanceof ConfigurationInterface) {
+ return $config;
+ } elseif (is_array($config) && isset($config['enabled'])) {
+ if (isset($config['cache_limit'])) {
+ return new Configuration(
+ $config['enabled'],
+ $config['cache_limit']
+ );
+ }
+ return new Configuration(
+ $config['enabled'],
+ self::DEFAULT_CACHE_LIMIT
+ );
+ }
+
+ throw new \InvalidArgumentException('Not a valid endpoint_discovery '
+ . 'configuration argument.');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php
new file mode 100644
index 000000000..30f18200e
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php
@@ -0,0 +1,423 @@
+nextHandler = $handler;
+ $this->client = $client;
+ $this->args = $args;
+ $this->service = $client->getApi();
+ $this->config = $config;
+ }
+
+ public function __invoke(CommandInterface $cmd, RequestInterface $request)
+ {
+ $nextHandler = $this->nextHandler;
+ $op = $this->service->getOperation($cmd->getName())->toArray();
+
+ // Continue only if endpointdiscovery trait is set
+ if (isset($op['endpointdiscovery'])) {
+ $config = ConfigurationProvider::unwrap($this->config);
+ $isRequired = !empty($op['endpointdiscovery']['required']);
+
+ if ($isRequired && !($config->isEnabled())) {
+ throw new UnresolvedEndpointException('This operation '
+ . 'requires the use of endpoint discovery, but this has '
+ . 'been disabled in the configuration. Enable endpoint '
+ . 'discovery or use a different operation.');
+ }
+
+ // Continue only if enabled by config
+ if ($config->isEnabled()) {
+ if (isset($op['endpointoperation'])) {
+ throw new UnresolvedEndpointException('This operation is '
+ . 'contradictorily marked both as using endpoint discovery '
+ . 'and being the endpoint discovery operation. Please '
+ . 'verify the accuracy of your model files.');
+ }
+
+ // Original endpoint may be used if discovery optional
+ $originalUri = $request->getUri();
+
+ $identifiers = $this->getIdentifiers($op);
+
+ $cacheKey = $this->getCacheKey(
+ $this->client->getCredentials()->wait(),
+ $cmd,
+ $identifiers
+ );
+
+ // Check/create cache
+ if (!isset(self::$cache)) {
+ self::$cache = new LruArrayCache($config->getCacheLimit());
+ }
+
+ if (empty($endpointList = self::$cache->get($cacheKey))) {
+ $endpointList = new EndpointList([]);
+ }
+ $endpoint = $endpointList->getActive();
+
+ // Retrieve endpoints if there is no active endpoint
+ if (empty($endpoint)) {
+ try {
+ $endpoint = $this->discoverEndpoint(
+ $cacheKey,
+ $cmd,
+ $identifiers
+ );
+ } catch (\Exception $e) {
+ // Use cached endpoint, expired or active, if any remain
+ $endpoint = $endpointList->getEndpoint();
+
+ if (empty($endpoint)) {
+ return $this->handleDiscoveryException(
+ $isRequired,
+ $originalUri,
+ $e,
+ $cmd,
+ $request
+ );
+ }
+ }
+ }
+
+ $request = $this->modifyRequest($request, $endpoint);
+
+ $g = function ($value) use (
+ $cacheKey,
+ $cmd,
+ $identifiers,
+ $isRequired,
+ $originalUri,
+ $request,
+ &$endpoint,
+ &$g
+ ) {
+ if ($value instanceof AwsException
+ && (
+ $value->getAwsErrorCode() == 'InvalidEndpointException'
+ || $value->getStatusCode() == 421
+ )
+ ) {
+ return $this->handleInvalidEndpoint(
+ $cacheKey,
+ $cmd,
+ $identifiers,
+ $isRequired,
+ $originalUri,
+ $request,
+ $value,
+ $endpoint,
+ $g
+ );
+ }
+
+ return $value;
+ };
+
+ return $nextHandler($cmd, $request)->otherwise($g);
+ }
+ }
+
+ return $nextHandler($cmd, $request);
+ }
+
+ private function discoverEndpoint(
+ $cacheKey,
+ CommandInterface $cmd,
+ array $identifiers
+ ) {
+ $discCmd = $this->getDiscoveryCommand($cmd, $identifiers);
+ $this->discoveryTimes[$cacheKey] = time();
+ $result = $this->client->execute($discCmd);
+
+ if (isset($result['Endpoints'])) {
+ $endpointData = [];
+ foreach ($result['Endpoints'] as $datum) {
+ $endpointData[$datum['Address']] = time()
+ + ($datum['CachePeriodInMinutes'] * 60);
+ }
+ $endpointList = new EndpointList($endpointData);
+ self::$cache->set($cacheKey, $endpointList);
+ return $endpointList->getEndpoint();
+ }
+
+ throw new UnresolvedEndpointException('The endpoint discovery operation '
+ . 'yielded a response that did not contain properly formatted '
+ . 'endpoint data.');
+ }
+
+ private function getCacheKey(
+ CredentialsInterface $creds,
+ CommandInterface $cmd,
+ array $identifiers
+ ) {
+ $key = $this->service->getServiceName() . '_' . $creds->getAccessKeyId();
+ if (!empty($identifiers)) {
+ $key .= '_' . $cmd->getName();
+ foreach ($identifiers as $identifier) {
+ $key .= "_{$cmd[$identifier]}";
+ }
+ }
+
+ return $key;
+ }
+
+ private function getDiscoveryCommand(
+ CommandInterface $cmd,
+ array $identifiers
+ ) {
+ foreach ($this->service->getOperations() as $op) {
+ if (isset($op['endpointoperation'])) {
+ $endpointOperation = $op->toArray()['name'];
+ break;
+ }
+ }
+
+ if (!isset($endpointOperation)) {
+ throw new UnresolvedEndpointException('This command is set to use '
+ . 'endpoint discovery, but no endpoint discovery operation was '
+ . 'found. Please verify the accuracy of your model files.');
+ }
+
+ $params = [];
+ if (!empty($identifiers)) {
+ $params['Operation'] = $cmd->getName();
+ $params['Identifiers'] = [];
+ foreach ($identifiers as $identifier) {
+ $params['Identifiers'][$identifier] = $cmd[$identifier];
+ }
+ }
+ $command = $this->client->getCommand($endpointOperation, $params);
+ $command->getHandlerList()->appendBuild(
+ Middleware::mapRequest(function (RequestInterface $r) {
+ return $r->withHeader(
+ 'x-amz-api-version',
+ $this->service->getApiVersion()
+ );
+ }),
+ 'x-amz-api-version-header'
+ );
+
+ return $command;
+ }
+
+ private function getIdentifiers(array $operation)
+ {
+ $inputShape = $this->service->getShapeMap()
+ ->resolve($operation['input'])
+ ->toArray();
+ $identifiers = [];
+ foreach ($inputShape['members'] as $key => $member) {
+ if (!empty($member['endpointdiscoveryid'])) {
+ $identifiers[] = $key;
+ }
+ }
+ return $identifiers;
+ }
+
+ private function handleDiscoveryException(
+ $isRequired,
+ $originalUri,
+ \Exception $e,
+ CommandInterface $cmd,
+ RequestInterface $request
+ ) {
+ // If no cached endpoints and discovery required,
+ // throw exception
+ if ($isRequired) {
+ $message = 'The endpoint required for this service is currently '
+ . 'unable to be retrieved, and your request can not be fulfilled '
+ . 'unless you manually specify an endpoint.';
+ throw new AwsException(
+ $message,
+ $cmd,
+ [
+ 'code' => 'EndpointDiscoveryException',
+ 'message' => $message
+ ],
+ $e
+ );
+ }
+
+ // If discovery isn't required, use original endpoint
+ return $this->useOriginalUri(
+ $originalUri,
+ $cmd,
+ $request
+ );
+ }
+
+ private function handleInvalidEndpoint(
+ $cacheKey,
+ $cmd,
+ $identifiers,
+ $isRequired,
+ $originalUri,
+ $request,
+ $value,
+ &$endpoint,
+ &$g
+ ) {
+ $nextHandler = $this->nextHandler;
+ $endpointList = self::$cache->get($cacheKey);
+ if ($endpointList instanceof EndpointList) {
+
+ // Remove invalid endpoint from cached list
+ $endpointList->remove($endpoint);
+
+ // If possible, get another cached endpoint
+ $newEndpoint = $endpointList->getEndpoint();
+ }
+ if (empty($newEndpoint)) {
+
+ // If no more cached endpoints, make discovery call
+ // if none made within cooldown for given key
+ if (time() - $this->discoveryTimes[$cacheKey]
+ < self::$discoveryCooldown
+ ) {
+
+ // If no more cached endpoints and it's required,
+ // fail with original exception
+ if ($isRequired) {
+ return $value;
+ }
+
+ // Use original endpoint if not required
+ return $this->useOriginalUri(
+ $originalUri,
+ $cmd,
+ $request
+ );
+ }
+
+ $newEndpoint = $this->discoverEndpoint(
+ $cacheKey,
+ $cmd,
+ $identifiers
+ );
+ }
+ $endpoint = $newEndpoint;
+ $request = $this->modifyRequest($request, $endpoint);
+ return $nextHandler($cmd, $request)->otherwise($g);
+ }
+
+ private function modifyRequest(RequestInterface $request, $endpoint)
+ {
+ $parsed = $this->parseEndpoint($endpoint);
+ if (!empty($request->getHeader('User-Agent'))) {
+ $userAgent = $request->getHeader('User-Agent')[0];
+ if (strpos($userAgent, 'endpoint-discovery') === false) {
+ $userAgent = $userAgent . ' endpoint-discovery';
+ }
+ } else {
+ $userAgent = 'endpoint-discovery';
+ }
+
+ return $request
+ ->withUri(
+ $request->getUri()
+ ->withHost($parsed['host'])
+ ->withPath($parsed['path'])
+ )
+ ->withHeader('User-Agent', $userAgent);
+ }
+
+ /**
+ * Parses an endpoint returned from the discovery API into an array with
+ * 'host' and 'path' keys.
+ *
+ * @param $endpoint
+ * @return array
+ */
+ private function parseEndpoint($endpoint)
+ {
+ $parsed = parse_url($endpoint);
+
+ // parse_url() will correctly parse full URIs with schemes
+ if (isset($parsed['host'])) {
+ return $parsed;
+ }
+
+ // parse_url() will put host & path in 'path' if scheme is not provided
+ if (isset($parsed['path'])) {
+ $split = explode('/', $parsed['path'], 2);
+ $parsed['host'] = $split[0];
+ if (isset($split[1])) {
+ if (substr($split[1], 0 , 1) !== '/') {
+ $split[1] = '/' . $split[1];
+ }
+ $parsed['path'] = $split[1];
+ } else {
+ $parsed['path'] = '';
+ }
+ return $parsed;
+ }
+
+ throw new UnresolvedEndpointException("The supplied endpoint '"
+ . "{$endpoint}' is invalid.");
+ }
+
+ private function useOriginalUri(
+ UriInterface $uri,
+ CommandInterface $cmd,
+ RequestInterface $request
+ ) {
+ $nextHandler = $this->nextHandler;
+ $endpoint = $uri->getHost() . $uri->getPath();
+ $request = $this->modifyRequest(
+ $request,
+ $endpoint
+ );
+ return $nextHandler($cmd, $request);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/EndpointList.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/EndpointList.php
new file mode 100644
index 000000000..80ccc4729
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/EndpointList.php
@@ -0,0 +1,85 @@
+active = $endpoints;
+ reset($this->active);
+ }
+
+ /**
+ * Gets an active (unexpired) endpoint. Returns null if none found.
+ *
+ * @return null|string
+ */
+ public function getActive()
+ {
+ if (count($this->active) < 1) {
+ return null;
+ }
+ while (time() > current($this->active)) {
+ $key = key($this->active);
+ $this->expired[$key] = current($this->active);
+ $this->increment($this->active);
+ unset($this->active[$key]);
+ if (count($this->active) < 1) {
+ return null;
+ }
+ }
+ $active = key($this->active);
+ $this->increment($this->active);
+ return $active;
+ }
+
+ /**
+ * Gets an active endpoint if possible, then an expired endpoint if possible.
+ * Returns null if no endpoints found.
+ *
+ * @return null|string
+ */
+ public function getEndpoint()
+ {
+ if (!empty($active = $this->getActive())) {
+ return $active;
+ }
+ return $this->getExpired();
+ }
+
+ /**
+ * Removes an endpoint from both lists.
+ *
+ * @param string $key
+ */
+ public function remove($key)
+ {
+ unset($this->active[$key]);
+ unset($this->expired[$key]);
+ }
+
+ /**
+ * Get an expired endpoint. Returns null if none found.
+ *
+ * @return null|string
+ */
+ private function getExpired()
+ {
+ if (count($this->expired) < 1) {
+ return null;
+ }
+ $expired = key($this->expired);
+ $this->increment($this->expired);
+ return $expired;
+ }
+
+ private function increment(&$array)
+ {
+ if (next($array) === false) {
+ reset($array);
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/Exception/ConfigurationException.php
new file mode 100644
index 000000000..f87cdbfa4
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointDiscovery/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+nextHandler = $nextHandler;
+ $this->service = $service;
+ }
+
+ public function __invoke(CommandInterface $command, RequestInterface $request)
+ {
+ $nextHandler = $this->nextHandler;
+
+ $operation = $this->service->getOperation($command->getName());
+
+ if (!empty($operation['endpoint']['hostPrefix'])) {
+ $prefix = $operation['endpoint']['hostPrefix'];
+
+ // Captures endpoint parameters stored in the modeled host.
+ // These are denoted by enclosure in braces, i.e. '{param}'
+ preg_match_all("/\{([a-zA-Z0-9]+)}/", $prefix, $parameters);
+
+ if (!empty($parameters[1])) {
+
+ // Captured parameters without braces stored in $parameters[1],
+ // which should correspond to members in the Command object
+ foreach ($parameters[1] as $index => $parameter) {
+ if (empty($command[$parameter])) {
+ throw new \InvalidArgumentException(
+ "The parameter '{$parameter}' must be set and not empty."
+ );
+ }
+
+ // Captured parameters with braces stored in $parameters[0],
+ // which are replaced by their corresponding Command value
+ $prefix = str_replace(
+ $parameters[0][$index],
+ $command[$parameter],
+ $prefix
+ );
+ }
+ }
+
+ $uri = $request->getUri();
+ $host = $prefix . $uri->getHost();
+ if (!\Aws\is_valid_hostname($host)) {
+ throw new \InvalidArgumentException(
+ "The supplied parameters result in an invalid hostname: '{$host}'."
+ );
+ }
+ $request = $request->withUri($uri->withHost($host));
+ }
+
+ return $nextHandler($command, $request);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointDefinitionProvider.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointDefinitionProvider.php
new file mode 100644
index 000000000..6da2685ce
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointDefinitionProvider.php
@@ -0,0 +1,71 @@
+ruleset = new Ruleset($ruleset, $partitions);
+ $this->cache = new LruArrayCache(100);
+ }
+
+ /**
+ * @return Ruleset
+ */
+ public function getRuleset()
+ {
+ return $this->ruleset;
+ }
+
+ /**
+ * Given a Ruleset and input parameters, determines the correct endpoint
+ * or an error to be thrown for a given request.
+ *
+ * @return RulesetEndpoint
+ * @throws UnresolvedEndpointException
+ */
+ public function resolveEndpoint(array $inputParameters)
+ {
+ $hashedParams = $this->hashInputParameters($inputParameters);
+ $match = $this->cache->get($hashedParams);
+
+ if (!is_null($match)) {
+ return $match;
+ }
+
+ $endpoint = $this->ruleset->evaluate($inputParameters);
+ if ($endpoint === false) {
+ throw new UnresolvedEndpointException(
+ 'Unable to resolve an endpoint using the provider arguments: '
+ . json_encode($inputParameters)
+ );
+ }
+ $this->cache->set($hashedParams, $endpoint);
+
+ return $endpoint;
+ }
+
+ private function hashInputParameters($inputParameters)
+ {
+ return md5(serialize($inputParameters));
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointV2Middleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointV2Middleware.php
new file mode 100644
index 000000000..d9fe44316
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointV2Middleware.php
@@ -0,0 +1,427 @@
+ 'v4',
+ 'sigv4a' => 'v4a',
+ 'none' => 'anonymous',
+ 'bearer' => 'bearer',
+ 'sigv4-s3express' => 'v4-s3express'
+ ];
+
+ /** @var callable */
+ private $nextHandler;
+
+ /** @var EndpointProviderV2 */
+ private $endpointProvider;
+
+ /** @var Service */
+ private $api;
+
+ /** @var array */
+ private $clientArgs;
+
+ /** @var Closure */
+ private $credentialProvider;
+
+ /**
+ * Create a middleware wrapper function
+ *
+ * @param EndpointProviderV2 $endpointProvider
+ * @param Service $api
+ * @param array $args
+ * @param callable $credentialProvider
+ *
+ * @return Closure
+ */
+ public static function wrap(
+ EndpointProviderV2 $endpointProvider,
+ Service $api,
+ array $args,
+ callable $credentialProvider
+ ) : Closure
+ {
+ return function (callable $handler) use ($endpointProvider, $api, $args, $credentialProvider) {
+ return new self($handler, $endpointProvider, $api, $args, $credentialProvider);
+ };
+ }
+
+ /**
+ * @param callable $nextHandler
+ * @param EndpointProviderV2 $endpointProvider
+ * @param Service $api
+ * @param array $args
+ */
+ public function __construct(
+ callable $nextHandler,
+ EndpointProviderV2 $endpointProvider,
+ Service $api,
+ array $args,
+ ?callable $credentialProvider = null
+ )
+ {
+ $this->nextHandler = $nextHandler;
+ $this->endpointProvider = $endpointProvider;
+ $this->api = $api;
+ $this->clientArgs = $args;
+ $this->credentialProvider = $credentialProvider;
+ }
+
+ /**
+ * @param CommandInterface $command
+ *
+ * @return Promise
+ */
+ public function __invoke(CommandInterface $command)
+ {
+ $nextHandler = $this->nextHandler;
+ $operation = $this->api->getOperation($command->getName());
+ $commandArgs = $command->toArray();
+ $providerArgs = $this->resolveArgs($commandArgs, $operation);
+
+ $endpoint = $this->endpointProvider->resolveEndpoint($providerArgs);
+
+ $this->appendEndpointMetrics($providerArgs, $endpoint, $command);
+
+ if (!empty($authSchemes = $endpoint->getProperty('authSchemes'))) {
+ $this->applyAuthScheme(
+ $authSchemes,
+ $command
+ );
+ }
+
+ return $nextHandler($command, $endpoint);
+ }
+
+ /**
+ * Resolves client, context params, static context params and endpoint provider
+ * arguments provided at the command level.
+ *
+ * @param array $commandArgs
+ * @param Operation $operation
+ *
+ * @return array
+ */
+ private function resolveArgs(array $commandArgs, Operation $operation): array
+ {
+ $rulesetParams = $this->endpointProvider->getRuleset()->getParameters();
+
+ if (isset($rulesetParams[self::ACCOUNT_ID_PARAM])
+ && isset($rulesetParams[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM])) {
+ $this->clientArgs[self::ACCOUNT_ID_PARAM] = $this->resolveAccountId();
+ }
+
+ $endpointCommandArgs = $this->filterEndpointCommandArgs(
+ $rulesetParams,
+ $commandArgs
+ );
+ $staticContextParams = $this->bindStaticContextParams(
+ $operation->getStaticContextParams()
+ );
+ $contextParams = $this->bindContextParams(
+ $commandArgs, $operation->getContextParams()
+ );
+ $operationContextParams = $this->bindOperationContextParams(
+ $commandArgs,
+ $operation->getOperationContextParams()
+ );
+
+ return array_merge(
+ $this->clientArgs,
+ $operationContextParams,
+ $contextParams,
+ $staticContextParams,
+ $endpointCommandArgs
+ );
+ }
+
+ /**
+ * Compares Ruleset parameters against Command arguments
+ * to create a mapping of arguments to pass into the
+ * endpoint provider for endpoint resolution.
+ *
+ * @param array $rulesetParams
+ * @param array $commandArgs
+ * @return array
+ */
+ private function filterEndpointCommandArgs(
+ array $rulesetParams,
+ array $commandArgs
+ ): array
+ {
+ $endpointMiddlewareOpts = [
+ '@use_dual_stack_endpoint' => 'UseDualStack',
+ '@use_accelerate_endpoint' => 'Accelerate',
+ '@use_path_style_endpoint' => 'ForcePathStyle'
+ ];
+
+ $filteredArgs = [];
+
+ foreach($rulesetParams as $name => $value) {
+ if (isset($commandArgs[$name])) {
+ if (!empty($value->getBuiltIn())) {
+ continue;
+ }
+ $filteredArgs[$name] = $commandArgs[$name];
+ }
+ }
+
+ if ($this->api->getServiceName() === 's3') {
+ foreach($endpointMiddlewareOpts as $optionName => $newValue) {
+ if (isset($commandArgs[$optionName])) {
+ $filteredArgs[$newValue] = $commandArgs[$optionName];
+ }
+ }
+ }
+
+ return $filteredArgs;
+ }
+
+ /**
+ * Binds static context params to their corresponding values.
+ *
+ * @param $staticContextParams
+ *
+ * @return array
+ */
+ private function bindStaticContextParams($staticContextParams): array
+ {
+ $scopedParams = [];
+
+ forEach($staticContextParams as $paramName => $paramValue) {
+ $scopedParams[$paramName] = $paramValue['value'];
+ }
+
+ return $scopedParams;
+ }
+
+ /**
+ * Binds context params to their corresponding values found in
+ * command arguments.
+ *
+ * @param array $commandArgs
+ * @param array $contextParams
+ *
+ * @return array
+ */
+ private function bindContextParams(
+ array $commandArgs,
+ array $contextParams
+ ): array
+ {
+ $scopedParams = [];
+
+ foreach($contextParams as $name => $spec) {
+ if (isset($commandArgs[$spec['shape']])) {
+ $scopedParams[$name] = $commandArgs[$spec['shape']];
+ }
+ }
+
+ return $scopedParams;
+ }
+
+ /**
+ * Binds context params to their corresponding values found in
+ * command arguments.
+ *
+ * @param array $commandArgs
+ * @param array $contextParams
+ *
+ * @return array
+ */
+ private function bindOperationContextParams(
+ array $commandArgs,
+ array $operationContextParams
+ ): array
+ {
+ $scopedParams = [];
+
+ foreach($operationContextParams as $name => $spec) {
+ $scopedValue = search($spec['path'], $commandArgs);
+
+ if ($scopedValue) {
+ $scopedParams[$name] = $scopedValue;
+ }
+ }
+
+ return $scopedParams;
+ }
+
+ /**
+ * Applies resolved auth schemes to the command object.
+ *
+ * @param $authSchemes
+ * @param $command
+ *
+ * @return void
+ */
+ private function applyAuthScheme(
+ array $authSchemes,
+ CommandInterface $command
+ ): void
+ {
+ $authScheme = $this->resolveAuthScheme($authSchemes);
+
+ $command['@context']['signature_version'] = $authScheme['version'];
+
+ if (isset($authScheme['name'])) {
+ $command['@context']['signing_service'] = $authScheme['name'];
+ }
+
+ if (isset($authScheme['region'])) {
+ $command['@context']['signing_region'] = $authScheme['region'];
+ } elseif (isset($authScheme['signingRegionSet'])) {
+ $command['@context']['signing_region_set'] = $authScheme['signingRegionSet'];
+ }
+ }
+
+ /**
+ * Returns the first compatible auth scheme in an endpoint object's
+ * auth schemes.
+ *
+ * @param array $authSchemes
+ *
+ * @return array
+ */
+ private function resolveAuthScheme(array $authSchemes): array
+ {
+ $invalidAuthSchemes = [];
+
+ foreach($authSchemes as $authScheme) {
+ if ($this->isValidAuthScheme($authScheme['name'])) {
+ return $this->normalizeAuthScheme($authScheme);
+ }
+ $invalidAuthSchemes[$authScheme['name']] = false;
+ }
+
+ $invalidAuthSchemesString = '`' . implode(
+ '`, `',
+ array_keys($invalidAuthSchemes))
+ . '`';
+ $validAuthSchemesString = '`'
+ . implode('`, `', array_keys(
+ array_diff_key(self::$validAuthSchemes, $invalidAuthSchemes))
+ )
+ . '`';
+ throw new UnresolvedAuthSchemeException(
+ "This operation requests {$invalidAuthSchemesString}"
+ . " auth schemes, but the client currently supports {$validAuthSchemesString}."
+ );
+ }
+
+ /**
+ * Normalizes an auth scheme's name, signing region or signing region set
+ * to the auth keys recognized by the SDK.
+ *
+ * @param array $authScheme
+ * @return array
+ */
+ private function normalizeAuthScheme(array $authScheme): array
+ {
+ /*
+ sigv4a will contain a regionSet property. which is guaranteed to be `*`
+ for now. The SigV4 class handles this automatically for now. It seems
+ complexity will be added here in the future.
+ */
+ $normalizedAuthScheme = [];
+
+ if (isset($authScheme['disableDoubleEncoding'])
+ && $authScheme['disableDoubleEncoding'] === true
+ && $authScheme['name'] !== 'sigv4a'
+ && $authScheme['name'] !== 'sigv4-s3express'
+ ) {
+ $normalizedAuthScheme['version'] = 's3v4';
+ } else {
+ $normalizedAuthScheme['version'] = self::$validAuthSchemes[$authScheme['name']];
+ }
+
+ $normalizedAuthScheme['name'] = $authScheme['signingName'] ?? null;
+ $normalizedAuthScheme['region'] = $authScheme['signingRegion'] ?? null;
+ $normalizedAuthScheme['signingRegionSet'] = $authScheme['signingRegionSet'] ?? null;
+
+ return $normalizedAuthScheme;
+ }
+
+ private function isValidAuthScheme($signatureVersion): bool
+ {
+ if (isset(self::$validAuthSchemes[$signatureVersion])) {
+ if ($signatureVersion === 'sigv4a') {
+ return extension_loaded('awscrt');
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * This method tries to resolve an `AccountId` parameter from a resolved identity.
+ * We will just perform this operation if the parameter `AccountId` is part of the ruleset parameters and
+ * `AccountIdEndpointMode` is not disabled, otherwise, we will ignore it.
+ *
+ * @return null|string
+ */
+ private function resolveAccountId(): ?string
+ {
+ if (isset($this->clientArgs[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM])
+ && $this->clientArgs[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM] === 'disabled') {
+ return null;
+ }
+
+ if (is_null($this->credentialProvider)) {
+ return null;
+ }
+
+ $identityProviderFn = $this->credentialProvider;
+ $identity = $identityProviderFn()->wait();
+
+ return $identity->getAccountId();
+ }
+
+ private function appendEndpointMetrics(
+ array $providerArgs,
+ RulesetEndpoint $endpoint,
+ CommandInterface $command
+ ): void
+ {
+ // Resolved AccountId Metric
+ if (!empty($providerArgs[self::ACCOUNT_ID_PARAM])) {
+ $command->getMetricsBuilder()->append(MetricsBuilder::RESOLVED_ACCOUNT_ID);
+ }
+ // AccountIdMode Metric
+ if(!empty($providerArgs[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM])) {
+ $command->getMetricsBuilder()->identifyMetricByValueAndAppend(
+ 'account_id_endpoint_mode',
+ $providerArgs[self::ACCOUNT_ID_ENDPOINT_MODE_PARAM]
+ );
+ }
+
+ // AccountId Endpoint Metric
+ $command->getMetricsBuilder()->identifyMetricByValueAndAppend(
+ 'account_id_endpoint',
+ $endpoint->getUrl()
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointV2SerializerTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointV2SerializerTrait.php
new file mode 100644
index 000000000..951cbcbc3
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/EndpointV2SerializerTrait.php
@@ -0,0 +1,77 @@
+applyHeaders($endpoint, $headers);
+ $resolvedUrl = $endpoint->getUrl();
+ $this->applyScheme($resolvedUrl);
+ $this->endpoint = $this instanceof RestSerializer
+ ? new Uri($resolvedUrl)
+ : $resolvedUrl;
+ }
+
+ /**
+ * Combines modeled headers and headers resolved from an endpoint object.
+ *
+ * @param $endpoint
+ * @param $headers
+ * @return void
+ */
+ private function applyHeaders(RulesetEndpoint $endpoint, array &$headers): void
+ {
+ if (!is_null($endpoint->getHeaders())) {
+ $headers = array_merge(
+ $headers,
+ $endpoint->getHeaders()
+ );
+ }
+ }
+
+ /**
+ * Applies custom HTTP schemes provided in client configuration.
+ *
+ * @param $resolvedUrl
+ * @return void
+ */
+ private function applyScheme(&$resolvedUrl): void
+ {
+ $resolvedEndpointScheme = parse_url($resolvedUrl, PHP_URL_SCHEME);
+ $scheme = $this->endpoint instanceof Uri
+ ? $this->endpoint->getScheme()
+ : parse_url($this->endpoint, PHP_URL_SCHEME);
+
+ if (!empty($scheme) && $scheme !== $resolvedEndpointScheme) {
+ $resolvedUrl = str_replace(
+ $resolvedEndpointScheme,
+ $scheme,
+ $resolvedUrl
+ );
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php
new file mode 100644
index 000000000..adedb4e19
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php
@@ -0,0 +1,62 @@
+conditions = $definition['conditions'];
+ $this->documentation = isset($definition['documentation']) ?
+ $definition['documentation'] : null;
+ }
+
+ /**
+ * @return array
+ */
+ public function getConditions()
+ {
+ return $this->conditions;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getDocumentation()
+ {
+ return $this->documentation;
+ }
+
+ /**
+ * Determines if all conditions for a given rule are met.
+ *
+ * @return boolean
+ */
+ protected function evaluateConditions(
+ array &$inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ )
+ {
+ foreach($this->getConditions() as $condition) {
+ $result = $standardLibrary->callFunction($condition, $inputParameters);
+ if (is_null($result) || $result === false) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ abstract public function evaluate(
+ array $inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ );
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/EndpointRule.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/EndpointRule.php
new file mode 100644
index 000000000..c3a0e9b7e
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/EndpointRule.php
@@ -0,0 +1,111 @@
+endpoint = $definition['endpoint'];
+ }
+
+ /**
+ * @return array
+ */
+ public function getEndpoint()
+ {
+ return $this->endpoint;
+ }
+
+ /**
+ * If all the rule's conditions are met, return the resolved
+ * endpoint object.
+ *
+ * @return RulesetEndpoint | null
+ */
+ public function evaluate(array $inputParameters, RulesetStandardLibrary $standardLibrary)
+ {
+ if ($this->evaluateConditions($inputParameters, $standardLibrary)) {
+ return $this->resolve($inputParameters, $standardLibrary);
+ }
+ return false;
+ }
+
+ /**
+ * Given input parameters, resolve an endpoint in its entirety.
+ *
+ * @return RulesetEndpoint
+ */
+ private function resolve(
+ array $inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ )
+ {
+ $uri = $standardLibrary->resolveValue($this->endpoint['url'], $inputParameters);
+ $properties = isset($this->endpoint['properties'])
+ ? $this->resolveProperties($this->endpoint['properties'], $inputParameters, $standardLibrary)
+ : null;
+ $headers = $this->resolveHeaders($inputParameters, $standardLibrary);
+
+ return new RulesetEndpoint($uri, $properties, $headers);
+ }
+
+ /**
+ * Recurse through an endpoint's `properties` attribute, resolving template
+ * strings when found. Return the fully resolved attribute.
+ *
+ * @return array
+ */
+ private function resolveProperties(
+ $properties,
+ array $inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ )
+ {
+ if (is_array($properties)) {
+ $propertiesArr = [];
+ foreach($properties as $key => $val) {
+ $propertiesArr[$key] = $this->resolveProperties($val, $inputParameters, $standardLibrary);
+ }
+ return $propertiesArr;
+ } elseif ($standardLibrary->isTemplate($properties)) {
+ return $standardLibrary->resolveTemplateString($properties, $inputParameters);
+ }
+ return $properties;
+ }
+
+ /**
+ * If present, iterate through an endpoint's headers attribute resolving
+ * values along the way. Return the fully resolved attribute.
+ *
+ * @return array
+ */
+ private function resolveHeaders(
+ array $inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ )
+ {
+ $headers = isset($this->endpoint['headers']) ? $this->endpoint['headers'] : null;
+ if (is_null($headers)) {
+ return null;
+ }
+ $resolvedHeaders = [];
+
+ foreach($headers as $headerName => $headerValues) {
+ $resolvedValues = [];
+ foreach($headerValues as $value) {
+ $resolvedValue = $standardLibrary->resolveValue($value, $inputParameters, $standardLibrary);
+ $resolvedValues[] = $resolvedValue;
+ }
+ $resolvedHeaders[$headerName] = $resolvedValues;
+ }
+ return $resolvedHeaders;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/ErrorRule.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/ErrorRule.php
new file mode 100644
index 000000000..941624a12
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/ErrorRule.php
@@ -0,0 +1,45 @@
+error = $definition['error'];
+ }
+
+ /**
+ * @return array
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ /**
+ * If an error rule's conditions are met, raise an
+ * UnresolvedEndpointError containing the fully resolved error string.
+ *
+ * @return null
+ * @throws UnresolvedEndpointException
+ */
+ public function evaluate(
+ array $inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ )
+ {
+ if ($this->evaluateConditions($inputParameters, $standardLibrary)) {
+ $message = $standardLibrary->resolveValue($this->error, $inputParameters);
+ throw new UnresolvedEndpointException($message);
+ }
+ return false;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/RuleCreator.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/RuleCreator.php
new file mode 100644
index 000000000..279477e81
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Rule/RuleCreator.php
@@ -0,0 +1,26 @@
+rules = $this->createRules($definition['rules']);
+ }
+
+ /**
+ * @return array
+ */
+ public function getRules()
+ {
+ return $this->rules;
+ }
+
+ /**
+ * If a tree rule's conditions evaluate successfully, iterate over its
+ * subordinate rules and return a result if there is one. If any of the
+ * subsequent rules are trees, the function will recurse until it reaches
+ * an error or an endpoint rule
+ *
+ * @return mixed
+ */
+ public function evaluate(
+ array $inputParameters,
+ RulesetStandardLibrary $standardLibrary
+ )
+ {
+ if ($this->evaluateConditions($inputParameters, $standardLibrary)) {
+ foreach($this->rules as $rule) {
+ $inputParametersCopy = $inputParameters;
+ $evaluation = $rule->evaluate($inputParametersCopy, $standardLibrary);
+ if ($evaluation !== false) {
+ return $evaluation;
+ }
+ }
+ }
+ return false;
+ }
+
+ private function createRules(array $rules)
+ {
+ $rulesList = [];
+
+ forEach($rules as $rule) {
+ $ruleType = RuleCreator::create($rule['type'], $rule);
+ $rulesList[] = $ruleType;
+ }
+ return $rulesList;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/Ruleset.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/Ruleset.php
new file mode 100644
index 000000000..21828c195
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/Ruleset.php
@@ -0,0 +1,117 @@
+version = $ruleset['version'];
+ $this->parameters = $this->createParameters($ruleset['parameters']);
+ $this->rules = $this->createRules($ruleset['rules']);
+ $this->standardLibrary = new RulesetStandardLibrary($partitions);
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * @return array
+ */
+ public function getParameters()
+ {
+ return $this->parameters;
+ }
+
+ /**
+ * @return array
+ */
+ public function getRules()
+ {
+ return $this->rules;
+ }
+
+ /**
+ * Evaluate the ruleset against the input parameters.
+ * Return the first rule the parameters match against.
+ *
+ * @return mixed
+ */
+ public function evaluate(array $inputParameters)
+ {
+ $this->validateInputParameters($inputParameters);
+
+ foreach($this->rules as $rule) {
+ $evaluation = $rule->evaluate($inputParameters, $this->standardLibrary);
+ if ($evaluation !== false) {
+ return $evaluation;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Ensures all corresponding client-provided parameters match
+ * the Ruleset parameter's specified type.
+ *
+ * @return void
+ */
+ private function validateInputParameters(array &$inputParameters)
+ {
+ foreach($this->parameters as $paramName => $param) {
+ $inputParam = isset($inputParameters[$paramName]) ? $inputParameters[$paramName] : null;
+
+ if (is_null($inputParam) && !is_null($param->getDefault())) {
+ $inputParameters[$paramName] = $param->getDefault();
+ } elseif (!is_null($inputParam)) {
+ $param->validateInputParam($inputParam);
+ }
+ }
+ }
+
+ private function createParameters(array $parameters)
+ {
+ $parameterList = [];
+
+ foreach($parameters as $name => $definition) {
+ $parameterList[$name] = new RulesetParameter($name, $definition);
+ }
+
+ return $parameterList;
+ }
+
+ private function createRules(array $rules)
+ {
+ $rulesList = [];
+
+ forEach($rules as $rule) {
+ $ruleObj = RuleCreator::create($rule['type'], $rule);
+ $rulesList[] = $ruleObj;
+ }
+ return $rulesList;
+ }
+}
+
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetEndpoint.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetEndpoint.php
new file mode 100644
index 000000000..46f844e46
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetEndpoint.php
@@ -0,0 +1,63 @@
+url = $url;
+ $this->properties = $properties;
+ $this->headers = $headers;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getUrl()
+ {
+ return $this->url;
+ }
+
+ /**
+ * @param $property
+ * @return mixed
+ */
+ public function getProperty($property)
+ {
+ if (isset($this->properties[$property])) {
+ return $this->properties[$property];
+ }
+
+ return null;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getProperties()
+ {
+ return $this->properties;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetParameter.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetParameter.php
new file mode 100644
index 000000000..1a3322cd1
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetParameter.php
@@ -0,0 +1,179 @@
+ */
+ private static $typeMap = [
+ 'String' => 'is_string',
+ 'Boolean' => 'is_bool',
+ 'StringArray' => 'isStringArray'
+ ];
+
+ public function __construct($name, array $definition)
+ {
+ $type = ucfirst($definition['type']);
+ if ($this->isValidType($type)) {
+ $this->type = $type;
+ } else {
+ throw new UnresolvedEndpointException(
+ 'Unknown parameter type ' . "`{$type}`" .
+ '. Parameters must be of type `String`, `Boolean` or `StringArray.'
+ );
+ }
+
+ $this->name = $name;
+ $this->builtIn = $definition['builtIn'] ?? null;
+ $this->default = $definition['default'] ?? null;
+ $this->required = $definition['required'] ?? false;
+ $this->documentation = $definition['documentation'] ?? null;
+ $this->deprecated = $definition['deprecated'] ?? false;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getBuiltIn()
+ {
+ return $this->builtIn;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getDefault()
+ {
+ return $this->default;
+ }
+
+ /**
+ * @return boolean
+ */
+ public function getRequired()
+ {
+ return $this->required;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDocumentation()
+ {
+ return $this->documentation;
+ }
+
+ /**
+ * @return boolean
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
+ }
+
+ /**
+ * Validates that an input parameter matches the type provided in its definition.
+ *
+ * @return void
+ * @throws InvalidArgumentException
+ */
+ public function validateInputParam($inputParam)
+ {
+ if (!$this->isValidInput($inputParam)) {
+ throw new UnresolvedEndpointException(
+ "Input parameter `{$this->name}` is the wrong type. Must be a {$this->type}."
+ );
+ }
+
+ if ($this->deprecated) {
+ $deprecated = $this->deprecated;
+ $deprecationString = "{$this->name} has been deprecated ";
+ $msg = $deprecated['message'] ?? null;
+ $since = $deprecated['since'] ?? null;
+
+ if (!is_null($since)){
+ $deprecationString .= 'since ' . $since . '. ';
+ }
+ if (!is_null($msg)) {
+ $deprecationString .= $msg;
+ }
+
+ trigger_error($deprecationString, E_USER_WARNING);
+ }
+ }
+
+ private function isValidType($type)
+ {
+ return isset(self::$typeMap[$type]);
+ }
+
+ private function isValidInput($inputParam): bool
+ {
+ $method = self::$typeMap[$this->type];
+ if (is_callable($method)) {
+ return $method($inputParam);
+ } elseif (method_exists($this, $method)) {
+ return $this->$method($inputParam);
+ }
+
+ return false;
+ }
+
+ private function isStringArray(array $array): bool
+ {
+ if (is_associative($array)) {
+ return false;
+ }
+
+ foreach($array as $value) {
+ if (!is_string($value)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetStandardLibrary.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetStandardLibrary.php
new file mode 100644
index 000000000..910bc5a47
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/EndpointV2/Ruleset/RulesetStandardLibrary.php
@@ -0,0 +1,434 @@
+[^\{\}]+)|(?R))*\}#x';
+ const HOST_LABEL_RE = '/^(?!-)[a-zA-Z\d-]{1,63}(?partitions = $partitions;
+ }
+
+ /**
+ * Determines if a value is set.
+ *
+ * @return boolean
+ */
+ public function is_set($value)
+ {
+ return isset($value);
+ }
+
+ /**
+ * Function implementation of logical operator `not`
+ *
+ * @return boolean
+ */
+ public function not($value)
+ {
+ return !$value;
+ }
+
+ /**
+ * Find an attribute within a value given a path string.
+ *
+ * @return mixed
+ */
+ public function getAttr($from, $path)
+ {
+ // Handles the case where "[
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const DEFAULT_MAX_ATTEMPTS = 3;
+ const DEFAULT_MODE = 'legacy';
+ const ENV_MAX_ATTEMPTS = 'AWS_MAX_ATTEMPTS';
+ const ENV_MODE = 'AWS_RETRY_MODE';
+ const ENV_PROFILE = 'AWS_PROFILE';
+ const INI_MAX_ATTEMPTS = 'max_attempts';
+ const INI_MODE = 'retry_mode';
+
+ public static $cacheKey = 'aws_retries_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback();
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['retries'])
+ && $config['retries'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['retries'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use config from environment variables, if available
+ $mode = getenv(self::ENV_MODE);
+ $maxAttempts = getenv(self::ENV_MAX_ATTEMPTS)
+ ? getenv(self::ENV_MAX_ATTEMPTS)
+ : self::DEFAULT_MAX_ATTEMPTS;
+ if (!empty($mode)) {
+ return Promise\Create::promiseFor(
+ new Configuration($mode, $maxAttempts)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_MODE);
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback()
+ {
+ return function () {
+ return Promise\Create::promiseFor(
+ new Configuration(self::DEFAULT_MODE, self::DEFAULT_MAX_ATTEMPTS)
+ );
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini(
+ $profile = null,
+ $filename = null
+ ) {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_MODE])) {
+ return self::reject("Required retry config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ $maxAttempts = isset($data[$profile][self::INI_MAX_ATTEMPTS])
+ ? $data[$profile][self::INI_MAX_ATTEMPTS]
+ : self::DEFAULT_MAX_ATTEMPTS;
+
+ return Promise\Create::promiseFor(
+ new Configuration(
+ $data[$profile][self::INI_MODE],
+ $maxAttempts
+ )
+ );
+ };
+ }
+
+ /**
+ * Unwraps a configuration object in whatever valid form it is in,
+ * always returning a ConfigurationInterface object.
+ *
+ * @param mixed $config
+ * @return ConfigurationInterface
+ * @throws \InvalidArgumentException
+ */
+ public static function unwrap($config)
+ {
+ if (is_callable($config)) {
+ $config = $config();
+ }
+ if ($config instanceof PromiseInterface) {
+ $config = $config->wait();
+ }
+ if ($config instanceof ConfigurationInterface) {
+ return $config;
+ }
+
+ // An integer value for this config indicates the legacy 'retries'
+ // config option, which is incremented to translate to max attempts
+ if (is_int($config)) {
+ return new Configuration('legacy', $config + 1);
+ }
+
+ if (is_array($config) && isset($config['mode'])) {
+ $maxAttempts = isset($config['max_attempts'])
+ ? $config['max_attempts']
+ : self::DEFAULT_MAX_ATTEMPTS;
+ return new Configuration($config['mode'], $maxAttempts);
+ }
+
+ throw new \InvalidArgumentException('Not a valid retry configuration'
+ . ' argument.');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/Exception/ConfigurationException.php
new file mode 100644
index 000000000..0705c2ee9
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+initialRetryTokens = isset($config['initial_retry_tokens'])
+ ? $config['initial_retry_tokens']
+ : 500;
+ $this->noRetryIncrement = isset($config['no_retry_increment'])
+ ? $config['no_retry_increment']
+ : 1;
+ $this->retryCost = isset($config['retry_cost'])
+ ? $config['retry_cost']
+ : 5;
+ $this->timeoutRetryCost = isset($config['timeout_retry_cost'])
+ ? $config['timeout_retry_cost']
+ : 10;
+ $this->maxCapacity = $this->initialRetryTokens;
+ $this->availableCapacity = $this->initialRetryTokens;
+ }
+
+ public function hasRetryQuota($result)
+ {
+ if ($result instanceof AwsException && $result->isConnectionError()) {
+ $this->capacityAmount = $this->timeoutRetryCost;
+ } else {
+ $this->capacityAmount = $this->retryCost;
+ }
+
+ if ($this->capacityAmount > $this->availableCapacity) {
+ return false;
+ }
+
+ $this->availableCapacity -= $this->capacityAmount;
+ return true;
+ }
+
+ public function releaseToQuota($result)
+ {
+ if ($result instanceof AwsException) {
+ $statusCode = (int) $result->getStatusCode();
+ } elseif ($result instanceof ResultInterface) {
+ $statusCode = isset($result['@metadata']['statusCode'])
+ ? (int) $result['@metadata']['statusCode']
+ : null;
+ }
+
+ if (!empty($statusCode) && $statusCode >= 200 && $statusCode < 300) {
+ if (isset($this->capacityAmount)) {
+ $amount = $this->capacityAmount;
+ $this->availableCapacity += $amount;
+ unset($this->capacityAmount);
+ } else {
+ $amount = $this->noRetryIncrement;
+ $this->availableCapacity += $amount;
+ }
+ $this->availableCapacity = min(
+ $this->availableCapacity,
+ $this->maxCapacity
+ );
+ }
+
+ return (isset($amount) ? $amount : 0);
+ }
+
+ public function getAvailableCapacity()
+ {
+ return $this->availableCapacity;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/RateLimiter.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/RateLimiter.php
new file mode 100644
index 000000000..b58cc5929
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/RateLimiter.php
@@ -0,0 +1,182 @@
+beta = isset($options['beta'])
+ ? $options['beta']
+ : 0.7;
+ $this->minCapacity = isset($options['min_capacity'])
+ ? $options['min_capacity']
+ : 1;
+ $this->minFillRate = isset($options['min_fill_rate'])
+ ? $options['min_fill_rate']
+ : 0.5;
+ $this->scaleConstant = isset($options['scale_constant'])
+ ? $options['scale_constant']
+ : 0.4;
+ $this->smooth = isset($options['smooth'])
+ ? $options['smooth']
+ : 0.8;
+ $this->timeProvider = isset($options['time_provider'])
+ ? $options['time_provider']
+ : null;
+
+ $this->lastTxRateBucket = floor($this->time());
+ $this->lastThrottleTime = $this->time();
+ }
+
+ public function isEnabled()
+ {
+ return $this->enabled;
+ }
+
+ public function getSendToken()
+ {
+ $this->acquireToken(1);
+ }
+
+ public function updateSendingRate($isThrottled)
+ {
+ $this->updateMeasuredRate();
+
+ if ($isThrottled) {
+ if (!$this->isEnabled()) {
+ $rateToUse = $this->measuredTxRate;
+ } else {
+ $rateToUse = min($this->measuredTxRate, $this->fillRate);
+ }
+
+ $this->lastMaxRate = $rateToUse;
+ $this->calculateTimeWindow();
+ $this->lastThrottleTime = $this->time();
+ $calculatedRate = $this->cubicThrottle($rateToUse);
+ $this->enableTokenBucket();
+ } else {
+ $this->calculateTimeWindow();
+ $calculatedRate = $this->cubicSuccess($this->time());
+ }
+ $newRate = min($calculatedRate, 2 * $this->measuredTxRate);
+ $this->updateTokenBucketRate($newRate);
+ return $newRate;
+ }
+
+ private function acquireToken($amount)
+ {
+ if (!$this->enabled) {
+ return true;
+ }
+
+ $this->refillTokenBucket();
+
+ if ($amount > $this->currentCapacity) {
+ usleep((int) (1000000 * ($amount - $this->currentCapacity) / $this->fillRate));
+ }
+
+ $this->currentCapacity -= $amount;
+ return true;
+ }
+
+ private function calculateTimeWindow()
+ {
+ $this->timeWindow = pow(($this->lastMaxRate * (1 - $this->beta) / $this->scaleConstant), 0.333);
+ }
+
+ private function cubicSuccess($timestamp)
+ {
+ $dt = $timestamp - $this->lastThrottleTime;
+ return $this->scaleConstant * pow($dt - $this->timeWindow, 3) + $this->lastMaxRate;
+ }
+
+ private function cubicThrottle($rateToUse)
+ {
+ return $rateToUse * $this->beta;
+ }
+
+ private function enableTokenBucket()
+ {
+ $this->enabled = true;
+ }
+
+ private function refillTokenBucket()
+ {
+ $timestamp = $this->time();
+ if (!isset($this->lastTimestamp)) {
+ $this->lastTimestamp = $timestamp;
+ return;
+ }
+ $fillAmount = ($timestamp - $this->lastTimestamp) * $this->fillRate;
+ $this->currentCapacity = $this->currentCapacity + $fillAmount;
+ if (!is_null($this->maxCapacity)) {
+ $this->currentCapacity = min(
+ $this->maxCapacity,
+ $this->currentCapacity
+ );
+ }
+
+ $this->lastTimestamp = $timestamp;
+ }
+
+ private function time()
+ {
+ if (is_callable($this->timeProvider)) {
+ $provider = $this->timeProvider;
+ $time = $provider();
+ return $time;
+ }
+ return microtime(true);
+ }
+
+ private function updateMeasuredRate()
+ {
+ $timestamp = $this->time();
+ $timeBucket = floor(round($timestamp, 3) * 2) / 2;
+ $this->requestCount++;
+ if ($timeBucket > $this->lastTxRateBucket) {
+ $currentRate = $this->requestCount / ($timeBucket - $this->lastTxRateBucket);
+ $this->measuredTxRate = ($currentRate * $this->smooth)
+ + ($this->measuredTxRate * (1 - $this->smooth));
+ $this->requestCount = 0;
+ $this->lastTxRateBucket = $timeBucket;
+ }
+ }
+
+ private function updateTokenBucketRate($newRps)
+ {
+ $this->refillTokenBucket();
+ $this->fillRate = max($newRps, $this->minFillRate);
+ $this->maxCapacity = max($newRps, $this->minCapacity);
+ $this->currentCapacity = min($this->currentCapacity, $this->maxCapacity);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/RetryHelperTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/RetryHelperTrait.php
new file mode 100644
index 000000000..a7edb72b5
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Retry/RetryHelperTrait.php
@@ -0,0 +1,56 @@
+withHeader('aws-sdk-retry', "{$retries}/{$delayBy}");
+ }
+
+
+ private function updateStats($retries, $delay, array &$stats)
+ {
+ if (!isset($stats['total_retry_delay'])) {
+ $stats['total_retry_delay'] = 0;
+ }
+
+ $stats['total_retry_delay'] += $delay;
+ $stats['retries_attempted'] = $retries;
+ }
+
+ private function updateHttpStats($value, array &$stats)
+ {
+ if (empty($stats['http'])) {
+ $stats['http'] = [];
+ }
+
+ if ($value instanceof AwsException) {
+ $resultStats = $value->getTransferInfo();
+ $stats['http'] []= $resultStats;
+ } elseif ($value instanceof ResultInterface) {
+ $resultStats = isset($value['@metadata']['transferStats']['http'][0])
+ ? $value['@metadata']['transferStats']['http'][0]
+ : [];
+ $stats['http'] []= $resultStats;
+ }
+ }
+
+ private function bindStatsToReturn($return, array $stats)
+ {
+ if ($return instanceof ResultInterface) {
+ if (!isset($return['@metadata'])) {
+ $return['@metadata'] = [];
+ }
+
+ $return['@metadata']['transferStats'] = $stats;
+ } elseif ($return instanceof AwsException) {
+ $return->setTransferInfo($stats);
+ }
+
+ return $return;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/RetryMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/RetryMiddleware.php
new file mode 100644
index 000000000..bb550df97
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/RetryMiddleware.php
@@ -0,0 +1,277 @@
+ true,
+ 502 => true,
+ 503 => true,
+ 504 => true
+ ];
+
+ private static $retryCodes = [
+ // Throttling error
+ 'RequestLimitExceeded' => true,
+ 'Throttling' => true,
+ 'ThrottlingException' => true,
+ 'ThrottledException' => true,
+ 'ProvisionedThroughputExceededException' => true,
+ 'RequestThrottled' => true,
+ 'BandwidthLimitExceeded' => true,
+ 'RequestThrottledException' => true,
+ 'TooManyRequestsException' => true,
+ 'IDPCommunicationError' => true,
+ 'EC2ThrottledException' => true,
+ ];
+
+ private $decider;
+ private $delay;
+ private $nextHandler;
+ private $collectStats;
+
+ public function __construct(
+ callable $decider,
+ callable $delay,
+ callable $nextHandler,
+ $collectStats = false
+ ) {
+ $this->decider = $decider;
+ $this->delay = $delay;
+ $this->nextHandler = $nextHandler;
+ $this->collectStats = (bool) $collectStats;
+ }
+
+ /**
+ * Creates a default AWS retry decider function.
+ *
+ * The optional $extraConfig parameter is an associative array
+ * that specifies additional retry conditions on top of the ones specified
+ * by default by the Aws\RetryMiddleware class, with the following keys:
+ *
+ * - errorCodes: (string[]) An indexed array of AWS exception codes to retry.
+ * Optional.
+ * - statusCodes: (int[]) An indexed array of HTTP status codes to retry.
+ * Optional.
+ * - curlErrors: (int[]) An indexed array of Curl error codes to retry. Note
+ * these should be valid Curl constants. Optional.
+ *
+ * @param int $maxRetries
+ * @param array $extraConfig
+ * @return callable
+ */
+ public static function createDefaultDecider(
+ $maxRetries = 3,
+ $extraConfig = []
+ ) {
+ $retryCurlErrors = [];
+ if (extension_loaded('curl')) {
+ $retryCurlErrors[CURLE_RECV_ERROR] = true;
+ }
+
+ return function (
+ $retries,
+ CommandInterface $command,
+ RequestInterface $request,
+ ?ResultInterface $result = null,
+ $error = null
+ ) use ($maxRetries, $retryCurlErrors, $extraConfig) {
+ // Allow command-level options to override this value
+ $maxRetries = null !== $command['@retries'] ?
+ $command['@retries']
+ : $maxRetries;
+
+ $isRetryable = self::isRetryable(
+ $result,
+ $error,
+ $retryCurlErrors,
+ $extraConfig
+ );
+
+ if ($retries >= $maxRetries) {
+ if (!empty($error)
+ && $error instanceof AwsException
+ && $isRetryable
+ ) {
+ $error->setMaxRetriesExceeded();
+ }
+ return false;
+ }
+
+ return $isRetryable;
+ };
+ }
+
+ private static function isRetryable(
+ $result,
+ $error,
+ $retryCurlErrors,
+ $extraConfig = []
+ ) {
+ $errorCodes = self::$retryCodes;
+ if (!empty($extraConfig['error_codes'])
+ && is_array($extraConfig['error_codes'])
+ ) {
+ foreach($extraConfig['error_codes'] as $code) {
+ $errorCodes[$code] = true;
+ }
+ }
+
+ $statusCodes = self::$retryStatusCodes;
+ if (!empty($extraConfig['status_codes'])
+ && is_array($extraConfig['status_codes'])
+ ) {
+ foreach($extraConfig['status_codes'] as $code) {
+ $statusCodes[$code] = true;
+ }
+ }
+
+ if (!empty($extraConfig['curl_errors'])
+ && is_array($extraConfig['curl_errors'])
+ ) {
+ foreach($extraConfig['curl_errors'] as $code) {
+ $retryCurlErrors[$code] = true;
+ }
+ }
+
+ if (!$error) {
+ if (!isset($result['@metadata']['statusCode'])) {
+ return false;
+ }
+ return isset($statusCodes[$result['@metadata']['statusCode']]);
+ }
+
+ if (!($error instanceof AwsException)) {
+ return false;
+ }
+
+ if ($error->isConnectionError()) {
+ return true;
+ }
+
+ if (isset($errorCodes[$error->getAwsErrorCode()])) {
+ return true;
+ }
+
+ if (isset($statusCodes[$error->getStatusCode()])) {
+ return true;
+ }
+
+ if (count($retryCurlErrors)
+ && ($previous = $error->getPrevious())
+ && $previous instanceof RequestException
+ ) {
+ if (method_exists($previous, 'getHandlerContext')) {
+ $context = $previous->getHandlerContext();
+ return !empty($context['errno'])
+ && isset($retryCurlErrors[$context['errno']]);
+ }
+
+ $message = $previous->getMessage();
+ foreach (array_keys($retryCurlErrors) as $curlError) {
+ if (strpos($message, 'cURL error ' . $curlError . ':') === 0) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Delay function that calculates an exponential delay.
+ *
+ * Exponential backoff with jitter, 100ms base, 20 sec ceiling
+ *
+ * @param $retries - The number of retries that have already been attempted
+ *
+ * @return int
+ *
+ * @link https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/
+ */
+ public static function exponentialDelay($retries)
+ {
+ return mt_rand(0, (int) min(20000, (int) pow(2, $retries) * 100));
+ }
+
+ /**
+ * @param CommandInterface $command
+ * @param RequestInterface $request
+ *
+ * @return PromiseInterface
+ */
+ public function __invoke(
+ CommandInterface $command,
+ ?RequestInterface $request = null
+ ) {
+ $retries = 0;
+ $requestStats = [];
+ $monitoringEvents = [];
+ $handler = $this->nextHandler;
+ $decider = $this->decider;
+ $delay = $this->delay;
+
+ $request = $this->addRetryHeader($request, 0, 0);
+
+ $g = function ($value) use (
+ $handler,
+ $decider,
+ $delay,
+ $command,
+ $request,
+ &$retries,
+ &$requestStats,
+ &$monitoringEvents,
+ &$g
+ ) {
+ $this->updateHttpStats($value, $requestStats);
+
+ if ($value instanceof MonitoringEventsInterface) {
+ $reversedEvents = array_reverse($monitoringEvents);
+ $monitoringEvents = array_merge($monitoringEvents, $value->getMonitoringEvents());
+ foreach ($reversedEvents as $event) {
+ $value->prependMonitoringEvent($event);
+ }
+ }
+ if ($value instanceof \Exception || $value instanceof \Throwable) {
+ if (!$decider($retries, $command, $request, null, $value)) {
+ return Promise\Create::rejectionFor(
+ $this->bindStatsToReturn($value, $requestStats)
+ );
+ }
+ } elseif ($value instanceof ResultInterface
+ && !$decider($retries, $command, $request, $value, null)
+ ) {
+ return $this->bindStatsToReturn($value, $requestStats);
+ }
+
+ // Delay fn is called with 0, 1, ... so increment after the call.
+ $delayBy = $delay($retries++);
+ $command['@http']['delay'] = $delayBy;
+ if ($this->collectStats) {
+ $this->updateStats($retries, $delayBy, $requestStats);
+ }
+
+ // Update retry header with retry count and delayBy
+ $request = $this->addRetryHeader($request, $retries, $delayBy);
+
+ return $handler($command, $request)->then($g, $g);
+ };
+
+ return $handler($command, $request)->then($g, $g);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/RetryMiddlewareV2.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/RetryMiddlewareV2.php
new file mode 100644
index 000000000..ba989ad6c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/RetryMiddlewareV2.php
@@ -0,0 +1,377 @@
+ true,
+ 'ThrottlingException' => true,
+ 'ThrottledException' => true,
+ 'RequestThrottledException' => true,
+ 'TooManyRequestsException' => true,
+ 'ProvisionedThroughputExceededException' => true,
+ 'TransactionInProgressException' => true,
+ 'RequestLimitExceeded' => true,
+ 'BandwidthLimitExceeded' => true,
+ 'LimitExceededException' => true,
+ 'RequestThrottled' => true,
+ 'SlowDown' => true,
+ 'PriorRequestNotComplete' => true,
+ 'EC2ThrottledException' => true,
+ ];
+
+ private static $standardTransientErrors = [
+ 'RequestTimeout' => true,
+ 'RequestTimeoutException' => true,
+ ];
+
+ private static $standardTransientStatusCodes = [
+ 500 => true,
+ 502 => true,
+ 503 => true,
+ 504 => true,
+ ];
+
+ private $collectStats;
+ private $decider;
+ private $delayer;
+ private $maxAttempts;
+ private $maxBackoff;
+ private $mode;
+ private $nextHandler;
+ private $options;
+ private $quotaManager;
+ private $rateLimiter;
+
+ public static function wrap($config, $options)
+ {
+ return function (callable $handler) use (
+ $config,
+ $options
+ ) {
+ return new static(
+ $config,
+ $handler,
+ $options
+ );
+ };
+ }
+
+ public static function createDefaultDecider(
+ QuotaManager $quotaManager,
+ $maxAttempts = 3,
+ $options = []
+ ) {
+ $retryCurlErrors = [];
+ if (extension_loaded('curl')) {
+ $retryCurlErrors[CURLE_RECV_ERROR] = true;
+ }
+
+ return function(
+ $attempts,
+ CommandInterface $command,
+ $result
+ ) use ($options, $quotaManager, $retryCurlErrors, $maxAttempts) {
+
+ // Release retry tokens back to quota on a successful result
+ $quotaManager->releaseToQuota($result);
+
+ // Allow command-level option to override this value
+ // # of attempts = # of retries + 1
+ $maxAttempts = (null !== $command['@retries'])
+ ? $command['@retries'] + 1
+ : $maxAttempts;
+
+ $isRetryable = self::isRetryable(
+ $result,
+ $retryCurlErrors,
+ $options
+ );
+
+ if ($isRetryable) {
+
+ // Retrieve retry tokens and check if quota has been exceeded
+ if (!$quotaManager->hasRetryQuota($result)) {
+ return false;
+ }
+
+ if ($attempts >= $maxAttempts) {
+ if (!empty($result) && $result instanceof AwsException) {
+ $result->setMaxRetriesExceeded();
+ }
+ return false;
+ }
+ }
+
+ return $isRetryable;
+ };
+ }
+
+ public function __construct(
+ ConfigurationInterface $config,
+ callable $handler,
+ $options = []
+ ) {
+ $this->options = $options;
+ $this->maxAttempts = $config->getMaxAttempts();
+ $this->mode = $config->getMode();
+ $this->nextHandler = $handler;
+ $this->quotaManager = new QuotaManager();
+
+ $this->maxBackoff = isset($options['max_backoff'])
+ ? $options['max_backoff']
+ : 20000;
+
+ $this->collectStats = isset($options['collect_stats'])
+ ? (bool) $options['collect_stats']
+ : false;
+
+ $this->decider = isset($options['decider'])
+ ? $options['decider']
+ : self::createDefaultDecider(
+ $this->quotaManager,
+ $this->maxAttempts,
+ $options
+ );
+
+ $this->delayer = isset($options['delayer'])
+ ? $options['delayer']
+ : function ($attempts) {
+ return $this->exponentialDelayWithJitter($attempts);
+ };
+
+ if ($this->mode === 'adaptive') {
+ $this->rateLimiter = isset($options['rate_limiter'])
+ ? $options['rate_limiter']
+ : new RateLimiter();
+ }
+ }
+
+ public function __invoke(CommandInterface $cmd, RequestInterface $req)
+ {
+ $decider = $this->decider;
+ $delayer = $this->delayer;
+ $handler = $this->nextHandler;
+
+ $attempts = 1;
+ $monitoringEvents = [];
+ $requestStats = [];
+
+ $req = $this->addRetryHeader($req, 0, 0);
+
+ $callback = function ($value) use (
+ $handler,
+ $cmd,
+ $req,
+ $decider,
+ $delayer,
+ &$attempts,
+ &$requestStats,
+ &$monitoringEvents,
+ &$callback
+ ) {
+ if ($this->mode === 'adaptive') {
+ $this->rateLimiter->updateSendingRate($this->isThrottlingError($value));
+ }
+
+ $this->updateHttpStats($value, $requestStats);
+
+ if ($value instanceof MonitoringEventsInterface) {
+ $reversedEvents = array_reverse($monitoringEvents);
+ $monitoringEvents = array_merge($monitoringEvents, $value->getMonitoringEvents());
+ foreach ($reversedEvents as $event) {
+ $value->prependMonitoringEvent($event);
+ }
+ }
+ if ($value instanceof \Exception || $value instanceof \Throwable) {
+ if (!$decider($attempts, $cmd, $value)) {
+ return Promise\Create::rejectionFor(
+ $this->bindStatsToReturn($value, $requestStats)
+ );
+ }
+ } elseif ($value instanceof ResultInterface
+ && !$decider($attempts, $cmd, $value)
+ ) {
+ return $this->bindStatsToReturn($value, $requestStats);
+ }
+
+ $delayBy = $delayer($attempts++);
+ $cmd['@http']['delay'] = $delayBy;
+ if ($this->collectStats) {
+ $this->updateStats($attempts - 1, $delayBy, $requestStats);
+ }
+
+ // Update retry header with retry count and delayBy
+ $req = $this->addRetryHeader($req, $attempts - 1, $delayBy);
+
+ // Get token from rate limiter, which will sleep if necessary
+ if ($this->mode === 'adaptive') {
+ $this->rateLimiter->getSendToken();
+ }
+
+ return $handler($cmd, $req)->then($callback, $callback);
+ };
+
+ // Get token from rate limiter, which will sleep if necessary
+ if ($this->mode === 'adaptive') {
+ $this->rateLimiter->getSendToken();
+ }
+
+ return $handler($cmd, $req)->then($callback, $callback);
+ }
+
+ /**
+ * Amount of milliseconds to delay as a function of attempt number
+ *
+ * @param $attempts
+ * @return mixed
+ */
+ public function exponentialDelayWithJitter($attempts)
+ {
+ $rand = mt_rand() / mt_getrandmax();
+ return min(1000 * $rand * pow(2, $attempts) , $this->maxBackoff);
+ }
+
+ private static function isRetryable(
+ $result,
+ $retryCurlErrors,
+ $options = []
+ ) {
+ $errorCodes = self::$standardThrottlingErrors + self::$standardTransientErrors;
+ if (!empty($options['transient_error_codes'])
+ && is_array($options['transient_error_codes'])
+ ) {
+ foreach($options['transient_error_codes'] as $code) {
+ $errorCodes[$code] = true;
+ }
+ }
+ if (!empty($options['throttling_error_codes'])
+ && is_array($options['throttling_error_codes'])
+ ) {
+ foreach($options['throttling_error_codes'] as $code) {
+ $errorCodes[$code] = true;
+ }
+ }
+
+ $statusCodes = self::$standardTransientStatusCodes;
+ if (!empty($options['status_codes'])
+ && is_array($options['status_codes'])
+ ) {
+ foreach($options['status_codes'] as $code) {
+ $statusCodes[$code] = true;
+ }
+ }
+
+ if (!empty($options['curl_errors'])
+ && is_array($options['curl_errors'])
+ ) {
+ foreach($options['curl_errors'] as $code) {
+ $retryCurlErrors[$code] = true;
+ }
+ }
+
+ if ($result instanceof \Exception || $result instanceof \Throwable) {
+ $isError = true;
+ } else {
+ $isError = false;
+ }
+
+ if (!$isError) {
+ if (!isset($result['@metadata']['statusCode'])) {
+ return false;
+ }
+ return isset($statusCodes[$result['@metadata']['statusCode']]);
+ }
+
+ if (!($result instanceof AwsException)) {
+ return false;
+ }
+
+ if ($result->isConnectionError()) {
+ return true;
+ }
+
+ if (!empty($errorCodes[$result->getAwsErrorCode()])) {
+ return true;
+ }
+
+ if (!empty($statusCodes[$result->getStatusCode()])) {
+ return true;
+ }
+
+ if (count($retryCurlErrors)
+ && ($previous = $result->getPrevious())
+ && $previous instanceof RequestException
+ ) {
+ if (method_exists($previous, 'getHandlerContext')) {
+ $context = $previous->getHandlerContext();
+ return !empty($context['errno'])
+ && isset($retryCurlErrors[$context['errno']]);
+ }
+
+ $message = $previous->getMessage();
+ foreach (array_keys($retryCurlErrors) as $curlError) {
+ if (strpos($message, 'cURL error ' . $curlError . ':') === 0) {
+ return true;
+ }
+ }
+ }
+
+ // Check error shape for the retryable trait
+ if (!empty($errorShape = $result->getAwsErrorShape())) {
+ $definition = $errorShape->toArray();
+ if (!empty($definition['retryable'])) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private function isThrottlingError($result)
+ {
+ if ($result instanceof AwsException) {
+ // Check pre-defined throttling errors
+ $throttlingErrors = self::$standardThrottlingErrors;
+ if (!empty($this->options['throttling_error_codes'])
+ && is_array($this->options['throttling_error_codes'])
+ ) {
+ foreach($this->options['throttling_error_codes'] as $code) {
+ $throttlingErrors[$code] = true;
+ }
+ }
+ if (!empty($result->getAwsErrorCode())
+ && !empty($throttlingErrors[$result->getAwsErrorCode()])
+ ) {
+ return true;
+ }
+
+ // Check error shape for the throttling trait
+ if (!empty($errorShape = $result->getAwsErrorShape())) {
+ $definition = $errorShape->toArray();
+ if (!empty($definition['retryable']['throttling'])) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/AmbiguousSuccessParser.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/AmbiguousSuccessParser.php
new file mode 100644
index 000000000..18d3a174d
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/AmbiguousSuccessParser.php
@@ -0,0 +1,79 @@
+ true,
+ 'UploadPartCopy' => true,
+ 'CopyObject' => true,
+ 'CompleteMultipartUpload' => true,
+ ];
+
+ /** @var callable */
+ private $errorParser;
+ /** @var string */
+ private $exceptionClass;
+
+ public function __construct(
+ callable $parser,
+ callable $errorParser,
+ $exceptionClass = AwsException::class
+ ) {
+ $this->parser = $parser;
+ $this->errorParser = $errorParser;
+ $this->exceptionClass = $exceptionClass;
+ }
+
+ public function __invoke(
+ CommandInterface $command,
+ ResponseInterface $response
+ ) {
+ if (200 === $response->getStatusCode()
+ && isset(self::$ambiguousSuccesses[$command->getName()])
+ ) {
+ $errorParser = $this->errorParser;
+ try {
+ $parsed = $errorParser($response);
+ } catch (ParserException $e) {
+ $parsed = [
+ 'code' => 'ConnectionError',
+ 'message' => "An error connecting to the service occurred"
+ . " while performing the " . $command->getName()
+ . " operation."
+ ];
+ }
+ if (isset($parsed['code']) && isset($parsed['message'])) {
+ throw new $this->exceptionClass(
+ $parsed['message'],
+ $command,
+ ['connection_error' => true]
+ );
+ }
+ }
+
+ $fn = $this->parser;
+ return $fn($command, $response);
+ }
+
+ public function parseMemberFromStream(
+ StreamInterface $stream,
+ StructureShape $member,
+ $response
+ ) {
+ return $this->parser->parseMemberFromStream($stream, $member, $response);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php
new file mode 100644
index 000000000..2ed451927
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php
@@ -0,0 +1,242 @@
+ true,
+ 'UploadPart' => true,
+ ];
+
+ /** @var Service */
+ private $api;
+
+ /** @var array */
+ private $config;
+
+ /** @var callable */
+ private $nextHandler;
+
+ /**
+ * Create a middleware wrapper function.
+ *
+ * @param Service $api
+ * @return callable
+ */
+ public static function wrap(Service $api, array $config = [])
+ {
+ return function (callable $handler) use ($api, $config) {
+ return new self($handler, $api, $config);
+ };
+ }
+
+ public function __construct(
+ callable $nextHandler,
+ Service $api,
+ array $config = []
+ )
+ {
+ $this->api = $api;
+ $this->nextHandler = $nextHandler;
+ $this->config = $config;
+ }
+
+ public function __invoke(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ $next = $this->nextHandler;
+ $name = $command->getName();
+ $body = $request->getBody();
+ $operation = $this->api->getOperation($name);
+ $mode = $this->config['request_checksum_calculation']
+ ?? self::DEFAULT_CALCULATION_MODE;
+
+ $command->getMetricsBuilder()->identifyMetricByValueAndAppend(
+ 'request_checksum_calculation',
+ $mode
+ );
+
+ // Trigger warning if AddContentMD5 is specified for PutObject or UploadPart
+ $this->handleDeprecatedAddContentMD5($command);
+
+ $checksumInfo = $operation['httpChecksum'] ?? [];
+ $checksumMemberName = $checksumInfo['requestAlgorithmMember'] ?? '';
+ $checksumMember = !empty($checksumMemberName)
+ ? $operation->getInput()->getMember($checksumMemberName)
+ : null;
+ $checksumRequired = $checksumInfo['requestChecksumRequired'] ?? false;
+ $requestedAlgorithm = $command[$checksumMemberName] ?? null;
+
+ $shouldAddChecksum = $this->shouldAddChecksum(
+ $mode,
+ $checksumRequired,
+ $checksumMember,
+ $requestedAlgorithm
+ );
+ if ($shouldAddChecksum) {
+ if (!$this->hasAlgorithmHeader($request)) {
+ $supportedAlgorithms = array_map('strtolower', $checksumMember['enum'] ?? []);
+ $algorithm = $this->determineChecksumAlgorithm(
+ $supportedAlgorithms,
+ $requestedAlgorithm,
+ $checksumMemberName
+ );
+ $request = $this->addAlgorithmHeader($algorithm, $request, $body);
+
+ $command->getMetricsBuilder()->identifyMetricByValueAndAppend(
+ 'request_checksum',
+ $algorithm
+ );
+ }
+ }
+
+ // Set the content hash header if ContentSHA256 is provided
+ if (isset(self::$sha256[$name]) && $command['ContentSHA256']) {
+ $request = $request->withHeader(
+ 'X-Amz-Content-Sha256',
+ $command['ContentSHA256']
+ );
+ $command->getMetricsBuilder()->append(
+ MetricsBuilder::FLEXIBLE_CHECKSUMS_REQ_SHA256
+ );
+ }
+
+ return $next($command, $request);
+ }
+
+ /**
+ * @param CommandInterface $command
+ *
+ * @return void
+ */
+ private function handleDeprecatedAddContentMD5(CommandInterface $command): void
+ {
+ if (!empty($command['AddContentMD5'])) {
+ trigger_error(
+ 'S3 no longer supports MD5 checksums. ' .
+ 'A CRC32 checksum will be computed and applied on your behalf.',
+ E_USER_DEPRECATED
+ );
+ $command['ChecksumAlgorithm'] = self::DEFAULT_ALGORITHM;
+ }
+ }
+
+ /**
+ * @param string $mode
+ * @param Shape|null $checksumMember
+ * @param string $name
+ * @param bool $checksumRequired
+ * @param string|null $requestedAlgorithm
+ *
+ * @return bool
+ */
+ private function shouldAddChecksum(
+ string $mode,
+ bool $checksumRequired,
+ ?Shape $checksumMember,
+ ?string $requestedAlgorithm
+ ): bool
+ {
+ return ($mode === 'when_supported' && $checksumMember)
+ || ($mode === 'when_required'
+ && ($checksumRequired || ($checksumMember && $requestedAlgorithm)));
+ }
+
+ /**
+ * @param Shape|null $checksumMember
+ * @param string|null $requestedAlgorithm
+ * @param string|null $checksumMemberName
+ *
+ * @return string
+ */
+ private function determineChecksumAlgorithm(
+ array $supportedAlgorithms,
+ ?string $requestedAlgorithm,
+ ?string $checksumMemberName
+ ): string
+ {
+ $algorithm = self::DEFAULT_ALGORITHM;
+
+ if ($requestedAlgorithm) {
+ $requestedAlgorithm = strtolower($requestedAlgorithm);
+ if (!in_array($requestedAlgorithm, $supportedAlgorithms)) {
+ throw new InvalidArgumentException(
+ "Unsupported algorithm supplied for input variable {$checksumMemberName}. " .
+ "Supported checksums for this operation include: "
+ . implode(", ", $supportedAlgorithms) . "."
+ );
+ }
+ $algorithm = $requestedAlgorithm;
+ }
+
+ return $algorithm;
+ }
+
+ /**
+ * @param string $requestedAlgorithm
+ * @param RequestInterface $request
+ * @param StreamInterface $body
+ *
+ * @return RequestInterface
+ */
+ private function addAlgorithmHeader(
+ string $requestedAlgorithm,
+ RequestInterface $request,
+ StreamInterface $body
+ ): RequestInterface
+ {
+ $headerName = "x-amz-checksum-{$requestedAlgorithm}";
+ if (!$request->hasHeader($headerName)) {
+ $encoded = self::getEncodedValue($requestedAlgorithm, $body);
+ $request = $request->withHeader($headerName, $encoded);
+ }
+
+ return $request;
+ }
+
+ /**
+ * @param RequestInterface $request
+ *
+ * @return bool
+ */
+ private function hasAlgorithmHeader(RequestInterface $request): bool
+ {
+ $headers = $request->getHeaders();
+
+ foreach ($headers as $name => $values) {
+ if (stripos($name, 'x-amz-checksum-') === 0) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BatchDelete.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BatchDelete.php
new file mode 100644
index 000000000..db81bebc5
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BatchDelete.php
@@ -0,0 +1,240 @@
+ 'us-west-2',
+ * 'version' => 'latest'
+ * ]);
+ *
+ * $listObjectsParams = ['Bucket' => 'foo', 'Prefix' => 'starts/with/'];
+ * $delete = Aws\S3\BatchDelete::fromListObjects($s3, $listObjectsParams);
+ * // Asynchronously delete
+ * $promise = $delete->promise();
+ * // Force synchronous completion
+ * $delete->delete();
+ *
+ * When using one of the batch delete creational static methods, you can supply
+ * an associative array of options:
+ *
+ * - before: Function invoked before executing a command. The function is
+ * passed the command that is about to be executed. This can be useful
+ * for logging, adding custom request headers, etc.
+ * - batch_size: The size of each delete batch. Defaults to 1000.
+ *
+ * @link http://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html
+ */
+class BatchDelete implements PromisorInterface
+{
+ private $bucket;
+ /** @var AwsClientInterface */
+ private $client;
+ /** @var callable */
+ private $before;
+ /** @var PromiseInterface */
+ private $cachedPromise;
+ /** @var callable */
+ private $promiseCreator;
+ private $batchSize = 1000;
+ private $queue = [];
+
+ /**
+ * Creates a BatchDelete object from all of the paginated results of a
+ * ListObjects operation. Each result that is returned by the ListObjects
+ * operation will be deleted.
+ *
+ * @param AwsClientInterface $client AWS Client to use.
+ * @param array $listObjectsParams ListObjects API parameters
+ * @param array $options BatchDelete options.
+ *
+ * @return BatchDelete
+ */
+ public static function fromListObjects(
+ AwsClientInterface $client,
+ array $listObjectsParams,
+ array $options = []
+ ) {
+ $iter = $client->getPaginator('ListObjects', $listObjectsParams);
+ $bucket = $listObjectsParams['Bucket'];
+ $fn = function (BatchDelete $that) use ($iter) {
+ return $iter->each(function ($result) use ($that) {
+ $promises = [];
+ if (is_array($result['Contents'])) {
+ foreach ($result['Contents'] as $object) {
+ if ($promise = $that->enqueue($object)) {
+ $promises[] = $promise;
+ }
+ }
+ }
+ return $promises ? Promise\Utils::all($promises) : null;
+ });
+ };
+
+ return new self($client, $bucket, $fn, $options);
+ }
+
+ /**
+ * Creates a BatchDelete object from an iterator that yields results.
+ *
+ * @param AwsClientInterface $client AWS Client to use to execute commands
+ * @param string $bucket Bucket where the objects are stored
+ * @param \Iterator $iter Iterator that yields assoc arrays
+ * @param array $options BatchDelete options
+ *
+ * @return BatchDelete
+ */
+ public static function fromIterator(
+ AwsClientInterface $client,
+ $bucket,
+ \Iterator $iter,
+ array $options = []
+ ) {
+ $fn = function (BatchDelete $that) use ($iter) {
+ return Promise\Coroutine::of(function () use ($that, $iter) {
+ foreach ($iter as $obj) {
+ if ($promise = $that->enqueue($obj)) {
+ yield $promise;
+ }
+ }
+ });
+ };
+
+ return new self($client, $bucket, $fn, $options);
+ }
+
+ /**
+ * @return PromiseInterface
+ */
+ public function promise(): PromiseInterface
+ {
+ if (!$this->cachedPromise) {
+ $this->cachedPromise = $this->createPromise();
+ }
+
+ return $this->cachedPromise;
+ }
+
+ /**
+ * Synchronously deletes all of the objects.
+ *
+ * @throws DeleteMultipleObjectsException on error.
+ */
+ public function delete()
+ {
+ $this->promise()->wait();
+ }
+
+ /**
+ * @param AwsClientInterface $client Client used to transfer the requests
+ * @param string $bucket Bucket to delete from.
+ * @param callable $promiseFn Creates a promise.
+ * @param array $options Hash of options used with the batch
+ *
+ * @throws \InvalidArgumentException if the provided batch_size is <= 0
+ */
+ private function __construct(
+ AwsClientInterface $client,
+ $bucket,
+ callable $promiseFn,
+ array $options = []
+ ) {
+ $this->client = $client;
+ $this->bucket = $bucket;
+ $this->promiseCreator = $promiseFn;
+
+ if (isset($options['before'])) {
+ if (!is_callable($options['before'])) {
+ throw new \InvalidArgumentException('before must be callable');
+ }
+ $this->before = $options['before'];
+ }
+
+ if (isset($options['batch_size'])) {
+ if ($options['batch_size'] <= 0) {
+ throw new \InvalidArgumentException('batch_size is not > 0');
+ }
+ $this->batchSize = min($options['batch_size'], 1000);
+ }
+ }
+
+ private function enqueue(array $obj)
+ {
+ $this->queue[] = $obj;
+ return count($this->queue) >= $this->batchSize
+ ? $this->flushQueue()
+ : null;
+ }
+
+ private function flushQueue()
+ {
+ static $validKeys = ['Key' => true, 'VersionId' => true];
+
+ if (count($this->queue) === 0) {
+ return null;
+ }
+
+ $batch = [];
+ while ($obj = array_shift($this->queue)) {
+ $batch[] = array_intersect_key($obj, $validKeys);
+ }
+
+ $command = $this->client->getCommand('DeleteObjects', [
+ 'Bucket' => $this->bucket,
+ 'Delete' => ['Objects' => $batch]
+ ]);
+
+ if ($this->before) {
+ call_user_func($this->before, $command);
+ }
+
+ return $this->client->executeAsync($command)
+ ->then(function ($result) {
+ if (!empty($result['Errors'])) {
+ throw new DeleteMultipleObjectsException(
+ $result['Deleted'] ?: [],
+ $result['Errors']
+ );
+ }
+ return $result;
+ });
+ }
+
+ /**
+ * Returns a promise that will clean up any references when it completes.
+ *
+ * @return PromiseInterface
+ */
+ private function createPromise()
+ {
+ // Create the promise
+ $promise = call_user_func($this->promiseCreator, $this);
+ $this->promiseCreator = null;
+
+ // Cleans up the promise state and references.
+ $cleanup = function () {
+ $this->before = $this->client = $this->queue = null;
+ };
+
+ // When done, ensure cleanup and that any remaining are processed.
+ return $promise->then(
+ function () use ($cleanup) {
+ return Promise\Create::promiseFor($this->flushQueue())
+ ->then($cleanup);
+ },
+ function ($reason) use ($cleanup) {
+ $cleanup();
+ return Promise\Create::rejectionFor($reason);
+ }
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BucketEndpointArnMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BucketEndpointArnMiddleware.php
new file mode 100644
index 000000000..becfded6f
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BucketEndpointArnMiddleware.php
@@ -0,0 +1,355 @@
+partitionProvider = PartitionEndpointProvider::defaultProvider();
+ $this->region = $region;
+ $this->service = $service;
+ $this->config = $config;
+ $this->nextHandler = $nextHandler;
+ $this->isUseEndpointV2 = $isUseEndpointV2;
+ }
+
+ public function __invoke(CommandInterface $cmd, RequestInterface $req)
+ {
+ $nextHandler = $this->nextHandler;
+
+ $op = $this->service->getOperation($cmd->getName())->toArray();
+ if (!empty($op['input']['shape'])) {
+ $service = $this->service->toArray();
+ if (!empty($input = $service['shapes'][$op['input']['shape']])) {
+ foreach ($input['members'] as $key => $member) {
+ if ($member['shape'] === 'BucketName') {
+ $arnableKey = $key;
+ break;
+ }
+ }
+
+ if (!empty($arnableKey) && ArnParser::isArn($cmd[$arnableKey])) {
+
+ try {
+ // Throw for commands that do not support ARN inputs
+ if (in_array($cmd->getName(), $this->nonArnableCommands)) {
+ throw new S3Exception(
+ 'ARN values cannot be used in the bucket field for'
+ . ' the ' . $cmd->getName() . ' operation.',
+ $cmd
+ );
+ }
+
+ if (!$this->isUseEndpointV2) {
+ $arn = ArnParser::parse($cmd[$arnableKey]);
+ $partition = $this->validateArn($arn);
+ $host = $this->generateAccessPointHost($arn, $req);
+ }
+ // Remove encoded bucket string from path
+ $path = $req->getUri()->getPath();
+ $encoded = rawurlencode($cmd[$arnableKey]);
+ $len = strlen($encoded) + 1;
+ if (trim(substr($path, 0, $len), '/') === "{$encoded}") {
+ $path = substr($path, $len);
+ if (substr($path, 0, 1) !== "/") {
+ $path = '/' . $path;
+ }
+ }
+ if (empty($path)) {
+ $path = '';
+ }
+
+ // Set modified request
+ if ($this->isUseEndpointV2) {
+ $req = $req->withUri(
+ $req->getUri()->withPath($path)
+
+ );
+ goto next;
+ }
+
+ $req = $req->withUri(
+ $req->getUri()->withPath($path)->withHost($host)
+ );
+
+ // Update signing region based on ARN data if configured to do so
+ if ($this->config['use_arn_region']->isUseArnRegion()
+ && !$this->config['use_fips_endpoint']->isUseFipsEndpoint()
+ ) {
+ $region = $arn->getRegion();
+ } else {
+ $region = $this->region;
+ }
+ $endpointData = $partition([
+ 'region' => $region,
+ 'service' => $arn->getService()
+ ]);
+ $cmd['@context']['signing_region'] = $endpointData['signingRegion'];
+
+ // Update signing service for Outposts and Lambda ARNs
+ if ($arn instanceof OutpostsArnInterface
+ || $arn instanceof ObjectLambdaAccessPointArn
+ ) {
+ $cmd['@context']['signing_service'] = $arn->getService();
+ }
+ } catch (InvalidArnException $e) {
+ // Add context to ARN exception
+ throw new S3Exception(
+ 'Bucket parameter parsed as ARN and failed with: '
+ . $e->getMessage(),
+ $cmd,
+ [],
+ $e
+ );
+ }
+ }
+ }
+ }
+ next:
+ return $nextHandler($cmd, $req);
+ }
+
+
+ private function generateAccessPointHost(
+ BaseAccessPointArn $arn,
+ RequestInterface $req
+ ) {
+ if ($arn instanceof OutpostsAccessPointArn) {
+ $accesspointName = $arn->getAccesspointName();
+ } else {
+ $accesspointName = $arn->getResourceId();
+ }
+
+ if ($arn instanceof MultiRegionAccessPointArn) {
+ $partition = $this->partitionProvider->getPartitionByName(
+ $arn->getPartition(),
+ 's3'
+ );
+ $dnsSuffix = $partition->getDnsSuffix();
+ return "{$accesspointName}.accesspoint.s3-global.{$dnsSuffix}";
+ }
+
+ $host = "{$accesspointName}-" . $arn->getAccountId();
+
+ $useFips = $this->config['use_fips_endpoint']->isUseFipsEndpoint();
+ $fipsString = $useFips ? "-fips" : "";
+
+ if ($arn instanceof OutpostsAccessPointArn) {
+ $host .= '.' . $arn->getOutpostId() . '.s3-outposts';
+ } else if ($arn instanceof ObjectLambdaAccessPointArn) {
+ if (!empty($this->config['endpoint'])) {
+ return $host . '.' . $this->config['endpoint'];
+ } else {
+ $host .= ".s3-object-lambda{$fipsString}";
+ }
+ } else {
+ $host .= ".s3-accesspoint{$fipsString}";
+ if (!empty($this->config['dual_stack'])) {
+ $host .= '.dualstack';
+ }
+ }
+
+ if (!empty($this->config['use_arn_region']->isUseArnRegion())) {
+ $region = $arn->getRegion();
+ } else {
+ $region = $this->region;
+ }
+ $region = \Aws\strip_fips_pseudo_regions($region);
+ $host .= '.' . $region . '.' . $this->getPartitionSuffix($arn, $this->partitionProvider);
+ return $host;
+ }
+
+ /**
+ * Validates an ARN, returning a partition object corresponding to the ARN
+ * if successful
+ *
+ * @param $arn
+ * @return \Aws\Endpoint\Partition
+ */
+ private function validateArn($arn)
+ {
+ if ($arn instanceof AccessPointArnInterface) {
+
+ // Dualstack is not supported with Outposts access points
+ if ($arn instanceof OutpostsAccessPointArn
+ && !empty($this->config['dual_stack'])
+ ) {
+ throw new UnresolvedEndpointException(
+ 'Dualstack is currently not supported with S3 Outposts access'
+ . ' points. Please disable dualstack or do not supply an'
+ . ' access point ARN.');
+ }
+ if ($arn instanceof MultiRegionAccessPointArn) {
+ if (!empty($this->config['disable_multiregion_access_points'])) {
+ throw new UnresolvedEndpointException(
+ 'Multi-Region Access Point ARNs are disabled, but one was provided. Please'
+ . ' enable them or provide a different ARN.'
+ );
+ }
+ if (!empty($this->config['dual_stack'])) {
+ throw new UnresolvedEndpointException(
+ 'Multi-Region Access Point ARNs do not currently support dual stack. Please'
+ . ' disable dual stack or provide a different ARN.'
+ );
+ }
+ }
+ // Accelerate is not supported with access points
+ if (!empty($this->config['accelerate'])) {
+ throw new UnresolvedEndpointException(
+ 'Accelerate is currently not supported with access points.'
+ . ' Please disable accelerate or do not supply an access'
+ . ' point ARN.');
+ }
+
+ // Path-style is not supported with access points
+ if (!empty($this->config['path_style'])) {
+ throw new UnresolvedEndpointException(
+ 'Path-style addressing is currently not supported with'
+ . ' access points. Please disable path-style or do not'
+ . ' supply an access point ARN.');
+ }
+
+ // Custom endpoint is not supported with access points
+ if (!is_null($this->config['endpoint'])
+ && !$arn instanceof ObjectLambdaAccessPointArn
+ ) {
+ throw new UnresolvedEndpointException(
+ 'A custom endpoint has been supplied along with an access'
+ . ' point ARN, and these are not compatible with each other.'
+ . ' Please only use one or the other.');
+ }
+
+ // Dualstack is not supported with object lambda access points
+ if ($arn instanceof ObjectLambdaAccessPointArn
+ && !empty($this->config['dual_stack'])
+ ) {
+ throw new UnresolvedEndpointException(
+ 'Dualstack is currently not supported with Object Lambda access'
+ . ' points. Please disable dualstack or do not supply an'
+ . ' access point ARN.');
+ }
+ // Global endpoints do not support cross-region requests
+ if ($this->isGlobal($this->region)
+ && $this->config['use_arn_region']->isUseArnRegion() == false
+ && $arn->getRegion() != $this->region
+ && !$arn instanceof MultiRegionAccessPointArn
+ ) {
+ throw new UnresolvedEndpointException(
+ 'Global endpoints do not support cross region requests.'
+ . ' Please enable use_arn_region or do not supply a global region'
+ . ' with a different region in the ARN.');
+ }
+
+ // Get partitions for ARN and client region
+ $arnPart = $this->partitionProvider->getPartition(
+ $arn->getRegion(),
+ 's3'
+ );
+ $clientPart = $this->partitionProvider->getPartition(
+ $this->region,
+ 's3'
+ );
+
+ // If client partition not found, try removing pseudo-region qualifiers
+ if (!($clientPart->isRegionMatch($this->region, 's3'))) {
+ $clientPart = $this->partitionProvider->getPartition(
+ \Aws\strip_fips_pseudo_regions($this->region),
+ 's3'
+ );
+ }
+ if (!$arn instanceof MultiRegionAccessPointArn) {
+ // Verify that the partition matches for supplied partition and region
+ if ($arn->getPartition() !== $clientPart->getName()) {
+ throw new InvalidRegionException('The supplied ARN partition'
+ . " does not match the client's partition.");
+ }
+ if ($clientPart->getName() !== $arnPart->getName()) {
+ throw new InvalidRegionException('The corresponding partition'
+ . ' for the supplied ARN region does not match the'
+ . " client's partition.");
+ }
+
+ // Ensure ARN region matches client region unless
+ // configured for using ARN region over client region
+ $this->validateMatchingRegion($arn);
+
+ // Ensure it is not resolved to fips pseudo-region for S3 Outposts
+ $this->validateFipsConfigurations($arn);
+ }
+
+ return $arnPart;
+ }
+
+ throw new InvalidArnException('Provided ARN was not a valid S3 access'
+ . ' point ARN or S3 Outposts access point ARN.');
+ }
+
+ /**
+ * Checks if a region is global
+ *
+ * @param $region
+ * @return bool
+ */
+ private function isGlobal($region)
+ {
+ return $region == 's3-external-1' || $region == 'aws-global';
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php
new file mode 100644
index 000000000..1a915ca58
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php
@@ -0,0 +1,120 @@
+ true];
+ private $nextHandler;
+
+ /**
+ * Create a middleware wrapper function.
+ *
+ * @return callable
+ */
+ public static function wrap()
+ {
+ return function (callable $handler) {
+ return new self($handler);
+ };
+ }
+
+ public function __construct(callable $nextHandler)
+ {
+ $this->nextHandler = $nextHandler;
+ }
+
+ public function __invoke(CommandInterface $command, RequestInterface $request)
+ {
+ $nextHandler = $this->nextHandler;
+ $bucket = $command['Bucket'];
+
+ if ($bucket && !isset(self::$exclusions[$command->getName()])) {
+ $request = $this->modifyRequest($request, $command);
+ }
+
+ return $nextHandler($command, $request);
+ }
+
+ /**
+ * Performs a one-time removal of Bucket from path, then if
+ * the bucket name is duplicated in the path, performs additional
+ * removal which is dependent on the number of occurrences of the bucket
+ * name in a path-like format in the key name.
+ *
+ * @return string
+ */
+ private function removeBucketFromPath($path, $bucket, $key)
+ {
+ $occurrencesInKey = $this->getBucketNameOccurrencesInKey($key, $bucket);
+ do {
+ $len = strlen($bucket) + 1;
+ if (substr($path, 0, $len) === "/{$bucket}") {
+ $path = substr($path, $len);
+ }
+ } while (substr_count($path, "/{$bucket}") > $occurrencesInKey + 1);
+
+ return $path ?: '/';
+ }
+
+ private function removeDuplicateBucketFromHost($host, $bucket)
+ {
+ if (substr_count($host, $bucket) > 1) {
+ while (strpos($host, "{$bucket}.{$bucket}") === 0) {
+ $hostArr = explode('.', $host);
+ array_shift($hostArr);
+ $host = implode('.', $hostArr);
+ }
+ }
+ return $host;
+ }
+
+ private function getBucketNameOccurrencesInKey($key, $bucket)
+ {
+ $occurrences = 0;
+ if (empty($key)) {
+ return $occurrences;
+ }
+
+ $segments = explode('/', $key);
+ foreach($segments as $segment) {
+ if (strpos($segment, $bucket) === 0) {
+ $occurrences++;
+ }
+ }
+ return $occurrences;
+ }
+
+ private function modifyRequest(
+ RequestInterface $request,
+ CommandInterface $command
+ ) {
+ $key = isset($command['Key']) ? $command['Key'] : null;
+ $uri = $request->getUri();
+ $path = $uri->getPath();
+ $host = $uri->getHost();
+ $bucket = $command['Bucket'];
+ $path = $this->removeBucketFromPath($path, $bucket, $key);
+ $host = $this->removeDuplicateBucketFromHost($host, $bucket);
+
+ // Modify the Key to make sure the key is encoded, but slashes are not.
+ if ($key) {
+ $path = S3Client::encodeKey(rawurldecode($path));
+ }
+
+ return $request->withUri(
+ $uri->withHost($host)
+ ->withPath($path)
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/CalculatesChecksumTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/CalculatesChecksumTrait.php
new file mode 100644
index 000000000..6b2b19413
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/CalculatesChecksumTrait.php
@@ -0,0 +1,59 @@
+ true,
+ 'crc32' => true,
+ 'sha256' => true,
+ 'sha1' => true
+ ];
+
+ /**
+ * @param string $requestedAlgorithm the algorithm to encode with
+ * @param string $value the value to be encoded
+ * @return string
+ */
+ public static function getEncodedValue($requestedAlgorithm, $value) {
+ $requestedAlgorithm = strtolower($requestedAlgorithm);
+ $useCrt = extension_loaded('awscrt');
+
+ if (isset(self::$supportedAlgorithms[$requestedAlgorithm])) {
+ if ($useCrt) {
+ $crt = new Crt();
+ switch ($requestedAlgorithm) {
+ case 'crc32c':
+ return base64_encode(pack('N*',($crt::crc32c($value))));
+ case 'crc32':
+ return base64_encode(pack('N*',($crt::crc32($value))));
+ default:
+ break;
+ }
+ }
+
+ if ($requestedAlgorithm === 'crc32c') {
+ throw new CommonRuntimeException("crc32c is not supported for checksums "
+ . "without use of the common runtime for php. Please enable the CRT or choose "
+ . "a different algorithm."
+ );
+ }
+
+ if ($requestedAlgorithm === "crc32") {
+ $requestedAlgorithm = "crc32b";
+ }
+ return base64_encode(Psr7\Utils::hash($value, $requestedAlgorithm, true));
+ }
+
+ $validAlgorithms = implode(', ', array_keys(self::$supportedAlgorithms));
+ throw new InvalidArgumentException(
+ "Invalid checksum requested: {$requestedAlgorithm}."
+ . " Valid algorithms supported by the runtime are {$validAlgorithms}."
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php
new file mode 100644
index 000000000..57253a4d3
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php
@@ -0,0 +1,75 @@
+instructionFileSuffix;
+ }
+
+ protected function determineGetObjectStrategy(
+ $result,
+ $instructionFileSuffix
+ ) {
+ if (isset($result['Metadata'][MetadataEnvelope::CONTENT_KEY_V2_HEADER])) {
+ return new HeadersMetadataStrategy();
+ }
+
+ return new InstructionFileMetadataStrategy(
+ $this->client,
+ $instructionFileSuffix
+ );
+ }
+
+ protected function getMetadataStrategy(array $args, $instructionFileSuffix)
+ {
+ if (!empty($args['@MetadataStrategy'])) {
+ if ($args['@MetadataStrategy'] instanceof MetadataStrategyInterface) {
+ return $args['@MetadataStrategy'];
+ }
+
+ if (is_string($args['@MetadataStrategy'])) {
+ switch ($args['@MetadataStrategy']) {
+ case HeadersMetadataStrategy::class:
+ return new HeadersMetadataStrategy();
+ case InstructionFileMetadataStrategy::class:
+ return new InstructionFileMetadataStrategy(
+ $this->client,
+ $instructionFileSuffix
+ );
+ default:
+ throw new \InvalidArgumentException('Could not match the'
+ . ' specified string in "MetadataStrategy" to a'
+ . ' predefined strategy.');
+ }
+ } else {
+ throw new \InvalidArgumentException('The metadata strategy that'
+ . ' was passed to "MetadataStrategy" was unrecognized.');
+ }
+ } elseif ($instructionFileSuffix) {
+ return new InstructionFileMetadataStrategy(
+ $this->client,
+ $instructionFileSuffix
+ );
+ }
+
+ return null;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php
new file mode 100644
index 000000000..05498176c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php
@@ -0,0 +1,19 @@
+$value) {
+ $args['Metadata'][$header] = $value;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Generates a MetadataEnvelope according to the metadata headers from the
+ * GetObject result.
+ *
+ * @param array $args Arguments from Command and Result that contains
+ * S3 Object information, relevant headers, and command
+ * configuration.
+ *
+ * @return MetadataEnvelope
+ */
+ public function load(array $args)
+ {
+ $envelope = new MetadataEnvelope();
+ $constantValues = MetadataEnvelope::getConstantValues();
+
+ foreach ($constantValues as $constant) {
+ if (!empty($args['Metadata'][$constant])) {
+ $envelope[$constant] = $args['Metadata'][$constant];
+ }
+ }
+
+ return $envelope;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/InstructionFileMetadataStrategy.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/InstructionFileMetadataStrategy.php
new file mode 100644
index 000000000..5065928c7
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/InstructionFileMetadataStrategy.php
@@ -0,0 +1,90 @@
+suffix = empty($suffix)
+ ? self::DEFAULT_FILE_SUFFIX
+ : $suffix;
+ $this->client = $client;
+ }
+
+ /**
+ * Places the information in the MetadataEnvelope to a location on S3.
+ *
+ * @param MetadataEnvelope $envelope Encryption data to save according to
+ * the strategy.
+ * @param array $args Starting arguments for PutObject, used for saving
+ * extra the instruction file.
+ *
+ * @return array Updated arguments for PutObject.
+ */
+ public function save(MetadataEnvelope $envelope, array $args)
+ {
+ $this->client->putObject([
+ 'Bucket' => $args['Bucket'],
+ 'Key' => $args['Key'] . $this->suffix,
+ 'Body' => json_encode($envelope)
+ ]);
+
+ return $args;
+ }
+
+ /**
+ * Uses the strategy's client to retrieve the instruction file from S3 and generates
+ * a MetadataEnvelope from its contents.
+ *
+ * @param array $args Arguments from Command and Result that contains
+ * S3 Object information, relevant headers, and command
+ * configuration.
+ *
+ * @return MetadataEnvelope
+ */
+ public function load(array $args)
+ {
+ $result = $this->client->getObject([
+ 'Bucket' => $args['Bucket'],
+ 'Key' => $args['Key'] . $this->suffix
+ ]);
+
+ $metadataHeaders = json_decode($result['Body'], true);
+ $envelope = new MetadataEnvelope();
+ $constantValues = MetadataEnvelope::getConstantValues();
+
+ foreach ($constantValues as $constant) {
+ if (!empty($metadataHeaders[$constant])) {
+ $envelope[$constant] = $metadataHeaders[$constant];
+ }
+ }
+
+ return $envelope;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php
new file mode 100644
index 000000000..96cb152a3
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php
@@ -0,0 +1,344 @@
+client = $client;
+ $this->instructionFileSuffix = $instructionFileSuffix;
+ MetricsBuilder::appendMetricsCaptureMiddleware(
+ $this->client->getHandlerList(),
+ MetricsBuilder::S3_CRYPTO_V1N
+ );
+ }
+
+ private static function getDefaultStrategy()
+ {
+ return new HeadersMetadataStrategy();
+ }
+
+ /**
+ * Encrypts the data in the 'Body' field of $args and promises to upload it
+ * to the specified location on S3.
+ *
+ * @param array $args Arguments for encrypting an object and uploading it
+ * to S3 via PutObject.
+ *
+ * The required configuration arguments are as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for encryption metadata.
+ * - @CipherOptions: (array) Cipher options for encrypting data. Only the
+ * Cipher option is required. Accepts the following:
+ * - Cipher: (string) cbc|gcm
+ * See also: AbstractCryptoClient::$supportedCiphers. Note that
+ * cbc is deprecated and gcm should be used when possible.
+ * - KeySize: (int) 128|192|256
+ * See also: MaterialsProvider::$supportedKeySizes
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. It is ignored when
+ * using cbc. Note if you pass in Aad for gcm encryption, the
+ * PHP SDK will be able to decrypt the resulting object, but other
+ * AWS SDKs may not be able to do so.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
+ * MetadataEnvelope information. Defaults to using a
+ * HeadersMetadataStrategy. Can either be a class implementing
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
+ * to default.
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
+ * instruction file if using an InstructionFileMetadataHandler.
+ *
+ * @return PromiseInterface
+ *
+ * @throws \InvalidArgumentException Thrown when arguments above are not
+ * passed or are passed incorrectly.
+ */
+ public function putObjectAsync(array $args)
+ {
+ $provider = $this->getMaterialsProvider($args);
+ unset($args['@MaterialsProvider']);
+
+ $instructionFileSuffix = $this->getInstructionFileSuffix($args);
+ unset($args['@InstructionFileSuffix']);
+
+ $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix);
+ unset($args['@MetadataStrategy']);
+
+ $envelope = new MetadataEnvelope();
+
+ return Promise\Create::promiseFor($this->encrypt(
+ Psr7\Utils::streamFor($args['Body']),
+ $args['@CipherOptions'] ?: [],
+ $provider,
+ $envelope
+ ))->then(
+ function ($encryptedBodyStream) use ($args) {
+ $hash = new PhpHash('sha256');
+ $hashingEncryptedBodyStream = new HashingStream(
+ $encryptedBodyStream,
+ $hash,
+ self::getContentShaDecorator($args)
+ );
+ return [$hashingEncryptedBodyStream, $args];
+ }
+ )->then(
+ function ($putObjectContents) use ($strategy, $envelope) {
+ list($bodyStream, $args) = $putObjectContents;
+ if ($strategy === null) {
+ $strategy = self::getDefaultStrategy();
+ }
+
+ $updatedArgs = $strategy->save($envelope, $args);
+ $updatedArgs['Body'] = $bodyStream;
+ return $updatedArgs;
+ }
+ )->then(
+ function ($args) {
+ unset($args['@CipherOptions']);
+ return $this->client->putObjectAsync($args);
+ }
+ );
+ }
+
+ private static function getContentShaDecorator(&$args)
+ {
+ return function ($hash) use (&$args) {
+ $args['ContentSHA256'] = bin2hex($hash);
+ };
+ }
+
+ /**
+ * Encrypts the data in the 'Body' field of $args and uploads it to the
+ * specified location on S3.
+ *
+ * @param array $args Arguments for encrypting an object and uploading it
+ * to S3 via PutObject.
+ *
+ * The required configuration arguments are as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for encryption metadata.
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
+ * is required. Accepts the following options:
+ * - Cipher: (string) cbc|gcm
+ * See also: AbstractCryptoClient::$supportedCiphers. Note that
+ * cbc is deprecated and gcm should be used when possible.
+ * - KeySize: (int) 128|192|256
+ * See also: MaterialsProvider::$supportedKeySizes
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. It is ignored when
+ * using cbc. Note if you pass in Aad for gcm encryption, the
+ * PHP SDK will be able to decrypt the resulting object, but other
+ * AWS SDKs may not be able to do so.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
+ * MetadataEnvelope information. Defaults to using a
+ * HeadersMetadataStrategy. Can either be a class implementing
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
+ * to default.
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
+ * instruction file if an using an InstructionFileMetadataHandler was
+ * determined.
+ *
+ * @return \Aws\Result PutObject call result with the details of uploading
+ * the encrypted file.
+ *
+ * @throws \InvalidArgumentException Thrown when arguments above are not
+ * passed or are passed incorrectly.
+ */
+ public function putObject(array $args)
+ {
+ return $this->putObjectAsync($args)->wait();
+ }
+
+ /**
+ * Promises to retrieve an object from S3 and decrypt the data in the
+ * 'Body' field.
+ *
+ * @param array $args Arguments for retrieving an object from S3 via
+ * GetObject and decrypting it.
+ *
+ * The required configuration argument is as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for decryption metadata. May have data loaded
+ * from the MetadataEnvelope upon decryption.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - SaveAs: (string) The path to a file on disk to save the decrypted
+ * object data. This will be handled by file_put_contents instead of the
+ * Guzzle sink.
+ *
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for reading
+ * MetadataEnvelope information. Defaults to determining based on object
+ * response headers. Can either be a class implementing MetadataStrategy,
+ * a class name of a predefined strategy, or empty/null to default.
+ * - @InstructionFileSuffix: (string) Suffix used when looking for an
+ * instruction file if an InstructionFileMetadataHandler is being used.
+ * - @CipherOptions: (array) Cipher options for decrypting data. A Cipher
+ * is required. Accepts the following options:
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. It is ignored when
+ * using cbc.
+ *
+ * @return PromiseInterface
+ *
+ * @throws \InvalidArgumentException Thrown when required arguments are not
+ * passed or are passed incorrectly.
+ */
+ public function getObjectAsync(array $args)
+ {
+ $provider = $this->getMaterialsProvider($args);
+ unset($args['@MaterialsProvider']);
+
+ $instructionFileSuffix = $this->getInstructionFileSuffix($args);
+ unset($args['@InstructionFileSuffix']);
+
+ $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix);
+ unset($args['@MetadataStrategy']);
+
+ $saveAs = null;
+ if (!empty($args['SaveAs'])) {
+ $saveAs = $args['SaveAs'];
+ }
+
+ $promise = $this->client->getObjectAsync($args)
+ ->then(
+ function ($result) use (
+ $provider,
+ $instructionFileSuffix,
+ $strategy,
+ $args
+ ) {
+ if ($strategy === null) {
+ $strategy = $this->determineGetObjectStrategy(
+ $result,
+ $instructionFileSuffix
+ );
+ }
+
+ $envelope = $strategy->load($args + [
+ 'Metadata' => $result['Metadata']
+ ]);
+
+ $provider = $provider->fromDecryptionEnvelope($envelope);
+
+ $result['Body'] = $this->decrypt(
+ $result['Body'],
+ $provider,
+ $envelope,
+ isset($args['@CipherOptions'])
+ ? $args['@CipherOptions']
+ : []
+ );
+ return $result;
+ }
+ )->then(
+ function ($result) use ($saveAs) {
+ if (!empty($saveAs)) {
+ file_put_contents(
+ $saveAs,
+ (string)$result['Body'],
+ LOCK_EX
+ );
+ }
+ return $result;
+ }
+ );
+
+ return $promise;
+ }
+
+ /**
+ * Retrieves an object from S3 and decrypts the data in the 'Body' field.
+ *
+ * @param array $args Arguments for retrieving an object from S3 via
+ * GetObject and decrypting it.
+ *
+ * The required configuration argument is as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for decryption metadata. May have data loaded
+ * from the MetadataEnvelope upon decryption.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - SaveAs: (string) The path to a file on disk to save the decrypted
+ * object data. This will be handled by file_put_contents instead of the
+ * Guzzle sink.
+ * - @InstructionFileSuffix: (string|null) Suffix used when looking for an
+ * instruction file if an InstructionFileMetadataHandler was detected.
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
+ * is required. Accepts the following options:
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. It is ignored when
+ * using cbc.
+ *
+ * @return \Aws\Result GetObject call result with the 'Body' field
+ * wrapped in a decryption stream with its metadata
+ * information.
+ *
+ * @throws \InvalidArgumentException Thrown when arguments above are not
+ * passed or are passed incorrectly.
+ */
+ public function getObject(array $args)
+ {
+ return $this->getObjectAsync($args)->wait();
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php
new file mode 100644
index 000000000..fe917800f
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php
@@ -0,0 +1,450 @@
+
+ * use Aws\Crypto\KmsMaterialsProviderV2;
+ * use Aws\S3\Crypto\S3EncryptionClientV2;
+ * use Aws\S3\S3Client;
+ *
+ * $encryptionClient = new S3EncryptionClientV2(
+ * new S3Client([
+ * 'region' => 'us-west-2',
+ * 'version' => 'latest'
+ * ])
+ * );
+ * $materialsProvider = new KmsMaterialsProviderV2(
+ * new KmsClient([
+ * 'profile' => 'default',
+ * 'region' => 'us-east-1',
+ * 'version' => 'latest',
+ * ],
+ * 'your-kms-key-id'
+ * );
+ *
+ * $encryptionClient->putObject([
+ * '@MaterialsProvider' => $materialsProvider,
+ * '@CipherOptions' => [
+ * 'Cipher' => 'gcm',
+ * 'KeySize' => 256,
+ * ],
+ * '@KmsEncryptionContext' => ['foo' => 'bar'],
+ * 'Bucket' => 'your-bucket',
+ * 'Key' => 'your-key',
+ * 'Body' => 'your-encrypted-data',
+ * ]);
+ *
+ *
+ * Example read call (using objects from previous example):
+ *
+ *
+ * $encryptionClient->getObject([
+ * '@MaterialsProvider' => $materialsProvider,
+ * '@CipherOptions' => [
+ * 'Cipher' => 'gcm',
+ * 'KeySize' => 256,
+ * ],
+ * 'Bucket' => 'your-bucket',
+ * 'Key' => 'your-key',
+ * ]);
+ *
+ */
+class S3EncryptionClientV2 extends AbstractCryptoClientV2
+{
+ use CipherBuilderTrait;
+ use CryptoParamsTraitV2;
+ use DecryptionTraitV2;
+ use EncryptionTraitV2;
+ use UserAgentTrait;
+
+ const CRYPTO_VERSION = '2.1';
+
+ private $client;
+ private $instructionFileSuffix;
+ private $legacyWarningCount;
+
+ /**
+ * @param S3Client $client The S3Client to be used for true uploading and
+ * retrieving objects from S3 when using the
+ * encryption client.
+ * @param string|null $instructionFileSuffix Suffix for a client wide
+ * default when using instruction
+ * files for metadata storage.
+ */
+ public function __construct(
+ S3Client $client,
+ $instructionFileSuffix = null
+ ) {
+ $this->client = $client;
+ $this->instructionFileSuffix = $instructionFileSuffix;
+ $this->legacyWarningCount = 0;
+ MetricsBuilder::appendMetricsCaptureMiddleware(
+ $this->client->getHandlerList(),
+ MetricsBuilder::S3_CRYPTO_V2
+ );
+ }
+
+ private static function getDefaultStrategy()
+ {
+ return new HeadersMetadataStrategy();
+ }
+
+ /**
+ * Encrypts the data in the 'Body' field of $args and promises to upload it
+ * to the specified location on S3.
+ *
+ * Note that for PHP versions of < 7.1, this operation uses an AES-GCM
+ * polyfill for encryption since there is no native PHP support. The
+ * performance for large inputs will be a lot slower than for PHP 7.1+, so
+ * upgrading older PHP version environments may be necessary to use this
+ * effectively.
+ *
+ * @param array $args Arguments for encrypting an object and uploading it
+ * to S3 via PutObject.
+ *
+ * The required configuration arguments are as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProviderV2) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for encryption metadata.
+ * - @CipherOptions: (array) Cipher options for encrypting data. Only the
+ * Cipher option is required. Accepts the following:
+ * - Cipher: (string) gcm
+ * See also: AbstractCryptoClientV2::$supportedCiphers
+ * - KeySize: (int) 128|256
+ * See also: MaterialsProvider::$supportedKeySizes
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. Note if you pass in
+ * Aad, the PHP SDK will be able to decrypt the resulting object,
+ * but other AWS SDKs may not be able to do so.
+ * - @KmsEncryptionContext: (array) Only required if using
+ * KmsMaterialsProviderV2. An associative array of key-value
+ * pairs to be added to the encryption context for KMS key encryption. An
+ * empty array may be passed if no additional context is desired.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
+ * MetadataEnvelope information. Defaults to using a
+ * HeadersMetadataStrategy. Can either be a class implementing
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
+ * to default.
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
+ * instruction file if using an InstructionFileMetadataHandler.
+ *
+ * @return PromiseInterface
+ *
+ * @throws \InvalidArgumentException Thrown when arguments above are not
+ * passed or are passed incorrectly.
+ */
+ public function putObjectAsync(array $args)
+ {
+ $provider = $this->getMaterialsProvider($args);
+ unset($args['@MaterialsProvider']);
+
+ $instructionFileSuffix = $this->getInstructionFileSuffix($args);
+ unset($args['@InstructionFileSuffix']);
+
+ $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix);
+ unset($args['@MetadataStrategy']);
+
+ $envelope = new MetadataEnvelope();
+
+ return Promise\Create::promiseFor($this->encrypt(
+ Psr7\Utils::streamFor($args['Body']),
+ $args,
+ $provider,
+ $envelope
+ ))->then(
+ function ($encryptedBodyStream) use ($args) {
+ $hash = new PhpHash('sha256');
+ $hashingEncryptedBodyStream = new HashingStream(
+ $encryptedBodyStream,
+ $hash,
+ self::getContentShaDecorator($args)
+ );
+ return [$hashingEncryptedBodyStream, $args];
+ }
+ )->then(
+ function ($putObjectContents) use ($strategy, $envelope) {
+ list($bodyStream, $args) = $putObjectContents;
+ if ($strategy === null) {
+ $strategy = self::getDefaultStrategy();
+ }
+
+ $updatedArgs = $strategy->save($envelope, $args);
+ $updatedArgs['Body'] = $bodyStream;
+ return $updatedArgs;
+ }
+ )->then(
+ function ($args) {
+ unset($args['@CipherOptions']);
+ return $this->client->putObjectAsync($args);
+ }
+ );
+ }
+
+ private static function getContentShaDecorator(&$args)
+ {
+ return function ($hash) use (&$args) {
+ $args['ContentSHA256'] = bin2hex($hash);
+ };
+ }
+
+ /**
+ * Encrypts the data in the 'Body' field of $args and uploads it to the
+ * specified location on S3.
+ *
+ * Note that for PHP versions of < 7.1, this operation uses an AES-GCM
+ * polyfill for encryption since there is no native PHP support. The
+ * performance for large inputs will be a lot slower than for PHP 7.1+, so
+ * upgrading older PHP version environments may be necessary to use this
+ * effectively.
+ *
+ * @param array $args Arguments for encrypting an object and uploading it
+ * to S3 via PutObject.
+ *
+ * The required configuration arguments are as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProvider) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for encryption metadata.
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
+ * is required. Accepts the following options:
+ * - Cipher: (string) gcm
+ * See also: AbstractCryptoClientV2::$supportedCiphers
+ * - KeySize: (int) 128|256
+ * See also: MaterialsProvider::$supportedKeySizes
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. Note if you pass in
+ * Aad, the PHP SDK will be able to decrypt the resulting object,
+ * but other AWS SDKs may not be able to do so.
+ * - @KmsEncryptionContext: (array) Only required if using
+ * KmsMaterialsProviderV2. An associative array of key-value
+ * pairs to be added to the encryption context for KMS key encryption. An
+ * empty array may be passed if no additional context is desired.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for storing
+ * MetadataEnvelope information. Defaults to using a
+ * HeadersMetadataStrategy. Can either be a class implementing
+ * MetadataStrategy, a class name of a predefined strategy, or empty/null
+ * to default.
+ * - @InstructionFileSuffix: (string|null) Suffix used when writing to an
+ * instruction file if an using an InstructionFileMetadataHandler was
+ * determined.
+ *
+ * @return \Aws\Result PutObject call result with the details of uploading
+ * the encrypted file.
+ *
+ * @throws \InvalidArgumentException Thrown when arguments above are not
+ * passed or are passed incorrectly.
+ */
+ public function putObject(array $args)
+ {
+ return $this->putObjectAsync($args)->wait();
+ }
+
+ /**
+ * Promises to retrieve an object from S3 and decrypt the data in the
+ * 'Body' field.
+ *
+ * @param array $args Arguments for retrieving an object from S3 via
+ * GetObject and decrypting it.
+ *
+ * The required configuration argument is as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProviderInterface) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for decryption metadata. May have data loaded
+ * from the MetadataEnvelope upon decryption.
+ * - @SecurityProfile: (string) Must be set to 'V2' or 'V2_AND_LEGACY'.
+ * - 'V2' indicates that only objects encrypted with S3EncryptionClientV2
+ * content encryption and key wrap schemas are able to be decrypted.
+ * - 'V2_AND_LEGACY' indicates that objects encrypted with both
+ * S3EncryptionClientV2 and older legacy encryption clients are able
+ * to be decrypted.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - SaveAs: (string) The path to a file on disk to save the decrypted
+ * object data. This will be handled by file_put_contents instead of the
+ * Guzzle sink.
+ *
+ * - @MetadataStrategy: (MetadataStrategy|string|null) Strategy for reading
+ * MetadataEnvelope information. Defaults to determining based on object
+ * response headers. Can either be a class implementing MetadataStrategy,
+ * a class name of a predefined strategy, or empty/null to default.
+ * - @InstructionFileSuffix: (string) Suffix used when looking for an
+ * instruction file if an InstructionFileMetadataHandler is being used.
+ * - @CipherOptions: (array) Cipher options for decrypting data. A Cipher
+ * is required. Accepts the following options:
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. It is ignored when
+ * using cbc.
+ * - @KmsAllowDecryptWithAnyCmk: (bool) This allows decryption with
+ * KMS materials for any KMS key ID, instead of needing the KMS key ID to
+ * be specified and provided to the decrypt operation. Ignored for non-KMS
+ * materials providers. Defaults to false.
+ *
+ * @return PromiseInterface
+ *
+ * @throws \InvalidArgumentException Thrown when required arguments are not
+ * passed or are passed incorrectly.
+ */
+ public function getObjectAsync(array $args)
+ {
+ $provider = $this->getMaterialsProvider($args);
+ unset($args['@MaterialsProvider']);
+
+ $instructionFileSuffix = $this->getInstructionFileSuffix($args);
+ unset($args['@InstructionFileSuffix']);
+
+ $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix);
+ unset($args['@MetadataStrategy']);
+
+ if (!isset($args['@SecurityProfile'])
+ || !in_array($args['@SecurityProfile'], self::$supportedSecurityProfiles)
+ ) {
+ throw new CryptoException("@SecurityProfile is required and must be"
+ . " set to 'V2' or 'V2_AND_LEGACY'");
+ }
+
+ // Only throw this legacy warning once per client
+ if (in_array($args['@SecurityProfile'], self::$legacySecurityProfiles)
+ && $this->legacyWarningCount < 1
+ ) {
+ $this->legacyWarningCount++;
+ trigger_error(
+ "This S3 Encryption Client operation is configured to"
+ . " read encrypted data with legacy encryption modes. If you"
+ . " don't have objects encrypted with these legacy modes,"
+ . " you should disable support for them to enhance security. ",
+ E_USER_WARNING
+ );
+ }
+
+ $saveAs = null;
+ if (!empty($args['SaveAs'])) {
+ $saveAs = $args['SaveAs'];
+ }
+
+ $promise = $this->client->getObjectAsync($args)
+ ->then(
+ function ($result) use (
+ $provider,
+ $instructionFileSuffix,
+ $strategy,
+ $args
+ ) {
+ if ($strategy === null) {
+ $strategy = $this->determineGetObjectStrategy(
+ $result,
+ $instructionFileSuffix
+ );
+ }
+
+ $envelope = $strategy->load($args + [
+ 'Metadata' => $result['Metadata']
+ ]);
+
+ $result['Body'] = $this->decrypt(
+ $result['Body'],
+ $provider,
+ $envelope,
+ $args
+ );
+ return $result;
+ }
+ )->then(
+ function ($result) use ($saveAs) {
+ if (!empty($saveAs)) {
+ file_put_contents(
+ $saveAs,
+ (string)$result['Body'],
+ LOCK_EX
+ );
+ }
+ return $result;
+ }
+ );
+
+ return $promise;
+ }
+
+ /**
+ * Retrieves an object from S3 and decrypts the data in the 'Body' field.
+ *
+ * @param array $args Arguments for retrieving an object from S3 via
+ * GetObject and decrypting it.
+ *
+ * The required configuration argument is as follows:
+ *
+ * - @MaterialsProvider: (MaterialsProviderInterface) Provides Cek, Iv, and Cek
+ * encrypting/decrypting for decryption metadata. May have data loaded
+ * from the MetadataEnvelope upon decryption.
+ * - @SecurityProfile: (string) Must be set to 'V2' or 'V2_AND_LEGACY'.
+ * - 'V2' indicates that only objects encrypted with S3EncryptionClientV2
+ * content encryption and key wrap schemas are able to be decrypted.
+ * - 'V2_AND_LEGACY' indicates that objects encrypted with both
+ * S3EncryptionClientV2 and older legacy encryption clients are able
+ * to be decrypted.
+ *
+ * The optional configuration arguments are as follows:
+ *
+ * - SaveAs: (string) The path to a file on disk to save the decrypted
+ * object data. This will be handled by file_put_contents instead of the
+ * Guzzle sink.
+ * - @InstructionFileSuffix: (string|null) Suffix used when looking for an
+ * instruction file if an InstructionFileMetadataHandler was detected.
+ * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher
+ * is required. Accepts the following options:
+ * - Aad: (string) Additional authentication data. This option is
+ * passed directly to OpenSSL when using gcm. It is ignored when
+ * using cbc.
+ * - @KmsAllowDecryptWithAnyCmk: (bool) This allows decryption with
+ * KMS materials for any KMS key ID, instead of needing the KMS key ID to
+ * be specified and provided to the decrypt operation. Ignored for non-KMS
+ * materials providers. Defaults to false.
+ *
+ * @return \Aws\Result GetObject call result with the 'Body' field
+ * wrapped in a decryption stream with its metadata
+ * information.
+ *
+ * @throws \InvalidArgumentException Thrown when arguments above are not
+ * passed or are passed incorrectly.
+ */
+ public function getObject(array $args)
+ {
+ return $this->getObjectAsync($args)->wait();
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploader.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploader.php
new file mode 100644
index 000000000..ddf1d2df9
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploader.php
@@ -0,0 +1,169 @@
+appendUserAgent($client, 'feat/s3-encrypt/' . self::CRYPTO_VERSION);
+ $this->client = $client;
+ $config['params'] = [];
+ if (!empty($config['bucket'])) {
+ $config['params']['Bucket'] = $config['bucket'];
+ }
+ if (!empty($config['key'])) {
+ $config['params']['Key'] = $config['key'];
+ }
+
+ $this->provider = $this->getMaterialsProvider($config);
+ unset($config['@MaterialsProvider']);
+
+ $this->instructionFileSuffix = $this->getInstructionFileSuffix($config);
+ unset($config['@InstructionFileSuffix']);
+ $this->strategy = $this->getMetadataStrategy(
+ $config,
+ $this->instructionFileSuffix
+ );
+ if ($this->strategy === null) {
+ $this->strategy = self::getDefaultStrategy();
+ }
+ unset($config['@MetadataStrategy']);
+
+ $config['prepare_data_source'] = $this->getEncryptingDataPreparer();
+
+ parent::__construct($client, $source, $config);
+ }
+
+ private static function getDefaultStrategy()
+ {
+ return new HeadersMetadataStrategy();
+ }
+
+ private function getEncryptingDataPreparer()
+ {
+ return function() {
+ // Defer encryption work until promise is executed
+ $envelope = new MetadataEnvelope();
+
+ list($this->source, $params) = Promise\Create::promiseFor($this->encrypt(
+ $this->source,
+ $this->config['@cipheroptions'] ?: [],
+ $this->provider,
+ $envelope
+ ))->then(
+ function ($bodyStream) use ($envelope) {
+ $params = $this->strategy->save(
+ $envelope,
+ $this->config['params']
+ );
+ return [$bodyStream, $params];
+ }
+ )->wait();
+
+ $this->source->rewind();
+ $this->config['params'] = $params;
+ };
+ }
+}
\ No newline at end of file
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV2.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV2.php
new file mode 100644
index 000000000..1bdbccf37
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV2.php
@@ -0,0 +1,176 @@
+appendUserAgent($client, 'feat/s3-encrypt/' . self::CRYPTO_VERSION);
+ $this->client = $client;
+ $config['params'] = [];
+ if (!empty($config['bucket'])) {
+ $config['params']['Bucket'] = $config['bucket'];
+ }
+ if (!empty($config['key'])) {
+ $config['params']['Key'] = $config['key'];
+ }
+
+ $this->provider = $this->getMaterialsProvider($config);
+ unset($config['@MaterialsProvider']);
+
+ $this->instructionFileSuffix = $this->getInstructionFileSuffix($config);
+ unset($config['@InstructionFileSuffix']);
+ $this->strategy = $this->getMetadataStrategy(
+ $config,
+ $this->instructionFileSuffix
+ );
+ if ($this->strategy === null) {
+ $this->strategy = self::getDefaultStrategy();
+ }
+ unset($config['@MetadataStrategy']);
+
+ $config['prepare_data_source'] = $this->getEncryptingDataPreparer();
+
+ parent::__construct($client, $source, $config);
+ }
+
+ private static function getDefaultStrategy()
+ {
+ return new HeadersMetadataStrategy();
+ }
+
+ private function getEncryptingDataPreparer()
+ {
+ return function() {
+ // Defer encryption work until promise is executed
+ $envelope = new MetadataEnvelope();
+
+ list($this->source, $params) = Promise\Create::promiseFor($this->encrypt(
+ $this->source,
+ $this->config ?: [],
+ $this->provider,
+ $envelope
+ ))->then(
+ function ($bodyStream) use ($envelope) {
+ $params = $this->strategy->save(
+ $envelope,
+ $this->config['params']
+ );
+ return [$bodyStream, $params];
+ }
+ )->wait();
+
+ $this->source->rewind();
+ $this->config['params'] = $params;
+ };
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/UserAgentTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/UserAgentTrait.php
new file mode 100644
index 000000000..45662758c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Crypto/UserAgentTrait.php
@@ -0,0 +1,31 @@
+getHandlerList();
+ $list->appendBuild(Middleware::mapRequest(
+ function(RequestInterface $req) use ($agentString) {
+ if (!empty($req->getHeader('User-Agent'))
+ && !empty($req->getHeader('User-Agent')[0])
+ ) {
+ $userAgent = $req->getHeader('User-Agent')[0];
+ if (strpos($userAgent, $agentString) === false) {
+ $userAgent .= " {$agentString}";
+ };
+ } else {
+ $userAgent = $agentString;
+ }
+
+ $req = $req->withHeader('User-Agent', $userAgent);
+ return $req;
+ }
+ ));
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/EndpointRegionHelperTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/EndpointRegionHelperTrait.php
new file mode 100644
index 000000000..3c35c4b97
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/EndpointRegionHelperTrait.php
@@ -0,0 +1,106 @@
+getPartition(
+ $arn->getRegion(),
+ $arn->getService()
+ );
+ return $partition->getDnsSuffix();
+ }
+
+ private function getSigningRegion(
+ $region,
+ $service,
+ PartitionEndpointProvider $provider
+ ) {
+ $partition = $provider->getPartition($region, $service);
+ $data = $partition->toArray();
+ if (isset($data['services'][$service]['endpoints'][$region]['credentialScope']['region'])) {
+ return $data['services'][$service]['endpoints'][$region]['credentialScope']['region'];
+ }
+ return $region;
+ }
+
+ private function isMatchingSigningRegion(
+ $arnRegion,
+ $clientRegion,
+ $service,
+ PartitionEndpointProvider $provider
+ ) {
+ $arnRegion = \Aws\strip_fips_pseudo_regions(strtolower($arnRegion));
+ $clientRegion = strtolower($clientRegion);
+ if ($arnRegion === $clientRegion) {
+ return true;
+ }
+ if ($this->getSigningRegion($clientRegion, $service, $provider) === $arnRegion) {
+ return true;
+ }
+ return false;
+ }
+
+ private function validateFipsConfigurations(ArnInterface $arn)
+ {
+ $useFipsEndpoint = !empty($this->config['use_fips_endpoint']);
+ if ($arn instanceof OutpostsArnInterface) {
+ if (empty($this->config['use_arn_region'])
+ || !($this->config['use_arn_region']->isUseArnRegion())
+ ) {
+ $region = $this->region;
+ } else {
+ $region = $arn->getRegion();
+ }
+ if (\Aws\is_fips_pseudo_region($region)) {
+ throw new InvalidRegionException(
+ 'Fips is currently not supported with S3 Outposts access'
+ . ' points. Please provide a non-fips region or do not supply an'
+ . ' access point ARN.');
+ }
+ }
+ }
+
+ private function validateMatchingRegion(ArnInterface $arn)
+ {
+ if (!($this->isMatchingSigningRegion(
+ $arn->getRegion(),
+ $this->region,
+ $this->service->getEndpointPrefix(),
+ $this->partitionProvider)
+ )) {
+ if (empty($this->config['use_arn_region'])
+ || !($this->config['use_arn_region']->isUseArnRegion())
+ ) {
+ throw new InvalidRegionException('The region'
+ . " specified in the ARN (" . $arn->getRegion()
+ . ") does not match the client region ("
+ . "{$this->region}).");
+ }
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php
new file mode 100644
index 000000000..5b4c28903
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php
@@ -0,0 +1,68 @@
+deleted = array_values($deleted);
+ $this->errors = array_values($errors);
+ parent::__construct('Unable to delete certain keys when executing a'
+ . ' DeleteMultipleObjects request: '
+ . self::createMessageFromErrors($errors));
+ }
+
+ /**
+ * Create a single error message from multiple errors.
+ *
+ * @param array $errors Errors encountered
+ *
+ * @return string
+ */
+ public static function createMessageFromErrors(array $errors)
+ {
+ return "\n- " . implode("\n- ", array_map(function ($key) {
+ return json_encode($key);
+ }, $errors));
+ }
+
+ /**
+ * Get the errored objects
+ *
+ * @return array Returns an array of associative arrays, each containing
+ * a 'Code', 'Message', and 'Key' key.
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * Get the successfully deleted objects
+ *
+ * @return array Returns an array of associative arrays, each containing
+ * a 'Key' and optionally 'DeleteMarker' and
+ * 'DeleterMarkerVersionId'
+ */
+ public function getDeleted()
+ {
+ return $this->deleted;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Exception/PermanentRedirectException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Exception/PermanentRedirectException.php
new file mode 100644
index 000000000..67d916e89
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/Exception/PermanentRedirectException.php
@@ -0,0 +1,4 @@
+collectPathInfo($error->getCommand());
+ } elseif ($prev instanceof AwsException) {
+ $this->collectPathInfo($prev->getCommand());
+ }
+ parent::__construct($state, $prev);
+ }
+
+ /**
+ * Get the Bucket information of the transfer object
+ *
+ * @return string|null Returns null when 'Bucket' information
+ * is unavailable.
+ */
+ public function getBucket()
+ {
+ return $this->bucket;
+ }
+
+ /**
+ * Get the Key information of the transfer object
+ *
+ * @return string|null Returns null when 'Key' information
+ * is unavailable.
+ */
+ public function getKey()
+ {
+ return $this->key;
+ }
+
+ /**
+ * Get the source file name of the transfer object
+ *
+ * @return string|null Returns null when metadata of the stream
+ * wrapped in 'Body' parameter is unavailable.
+ */
+ public function getSourceFileName()
+ {
+ return $this->filename;
+ }
+
+ /**
+ * Collect file path information when accessible. (Bucket, Key)
+ *
+ * @param CommandInterface $cmd
+ */
+ private function collectPathInfo(CommandInterface $cmd)
+ {
+ if (empty($this->bucket) && isset($cmd['Bucket'])) {
+ $this->bucket = $cmd['Bucket'];
+ }
+ if (empty($this->key) && isset($cmd['Key'])) {
+ $this->key = $cmd['Key'];
+ }
+ if (empty($this->filename) && isset($cmd['Body'])) {
+ $this->filename = $cmd['Body']->getMetadata('uri');
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/ExpiresParsingMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/ExpiresParsingMiddleware.php
new file mode 100644
index 000000000..5bdb34a70
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/ExpiresParsingMiddleware.php
@@ -0,0 +1,56 @@
+nextHandler = $nextHandler;
+ }
+
+ public function __invoke(CommandInterface $command, ?RequestInterface $request = null)
+ {
+ $next = $this->nextHandler;
+ return $next($command, $request)->then(
+ function (ResultInterface $result) {
+ if (empty($result['Expires']) && !empty($result['ExpiresString'])) {
+ trigger_error(
+ "Failed to parse the `expires` header as a timestamp due to "
+ . " an invalid timestamp format.\nPlease refer to `ExpiresString` "
+ . "for the unparsed string format of this header.\n"
+ , E_USER_WARNING
+ );
+ }
+ return $result;
+ }
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/GetBucketLocationParser.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/GetBucketLocationParser.php
new file mode 100644
index 000000000..94aee6967
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/GetBucketLocationParser.php
@@ -0,0 +1,49 @@
+parser = $parser;
+ }
+
+ public function __invoke(
+ CommandInterface $command,
+ ResponseInterface $response
+ ) {
+ $fn = $this->parser;
+ $result = $fn($command, $response);
+
+ if ($command->getName() === 'GetBucketLocation') {
+ $location = 'us-east-1';
+ if (preg_match('/>(.+?)<\/LocationConstraint>/', $response->getBody(), $matches)) {
+ $location = $matches[1] === 'EU' ? 'eu-west-1' : $matches[1];
+ }
+ $result['LocationConstraint'] = $location;
+ }
+
+ return $result;
+ }
+
+ public function parseMemberFromStream(
+ StreamInterface $stream,
+ StructureShape $member,
+ $response
+ ) {
+ return $this->parser->parseMemberFromStream($stream, $member, $response);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/MultipartCopy.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/MultipartCopy.php
new file mode 100644
index 000000000..6a7bc04dd
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/MultipartCopy.php
@@ -0,0 +1,249 @@
+/
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const ENV_ENDPOINTS_TYPE = 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT';
+ const INI_ENDPOINTS_TYPE = 's3_us_east_1_regional_endpoint';
+ const DEFAULT_ENDPOINTS_TYPE = 'legacy';
+
+ public static $cacheKey = 'aws_s3_us_east_1_regional_endpoint_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback();
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['s3_us_east_1_regional_endpoint'])
+ && $config['s3_us_east_1_regional_endpoint'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['s3_us_east_1_regional_endpoint'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ public static function env()
+ {
+ return function () {
+ // Use config from environment variables, if available
+ $endpointsType = getenv(self::ENV_ENDPOINTS_TYPE);
+ if (!empty($endpointsType)) {
+ return Promise\Create::promiseFor(
+ new Configuration($endpointsType)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_ENDPOINTS_TYPE);
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini(
+ $profile = null,
+ $filename = null
+ ) {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_ENDPOINTS_TYPE])) {
+ return self::reject("Required S3 regional endpoint config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration($data[$profile][self::INI_ENDPOINTS_TYPE])
+ );
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback()
+ {
+ return function () {
+ return Promise\Create::promiseFor(
+ new Configuration(self::DEFAULT_ENDPOINTS_TYPE, true)
+ );
+ };
+ }
+
+ /**
+ * Unwraps a configuration object in whatever valid form it is in,
+ * always returning a ConfigurationInterface object.
+ *
+ * @param mixed $config
+ * @return ConfigurationInterface
+ * @throws \InvalidArgumentException
+ */
+ public static function unwrap($config)
+ {
+ if (is_callable($config)) {
+ $config = $config();
+ }
+ if ($config instanceof Promise\PromiseInterface) {
+ $config = $config->wait();
+ }
+ if ($config instanceof ConfigurationInterface) {
+ return $config;
+ }
+ if (is_string($config)) {
+ return new Configuration($config);
+ }
+ if (is_array($config) && isset($config['endpoints_type'])) {
+ return new Configuration($config['endpoints_type']);
+ }
+
+ throw new \InvalidArgumentException('Not a valid S3 regional endpoint '
+ . 'configuration argument.');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/RegionalEndpoint/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/RegionalEndpoint/Exception/ConfigurationException.php
new file mode 100644
index 000000000..29e211f55
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/RegionalEndpoint/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+parser = $parser;
+ $this->exceptionClass = $exceptionClass;
+ }
+
+ public function __invoke(
+ CommandInterface $command,
+ ResponseInterface $response
+ ) {
+ $fn = $this->parser;
+
+ try {
+ return $fn($command, $response);
+ } catch (ParserException $e) {
+ throw new $this->exceptionClass(
+ "Error parsing response for {$command->getName()}:"
+ . " AWS parsing error: {$e->getMessage()}",
+ $command,
+ ['connection_error' => true, 'exception' => $e],
+ $e
+ );
+ }
+ }
+
+ public function parseMemberFromStream(
+ StreamInterface $stream,
+ StructureShape $member,
+ $response
+ ) {
+ return $this->parser->parseMemberFromStream($stream, $member, $response);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3Client.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3Client.php
new file mode 100644
index 000000000..585de5bfe
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3Client.php
@@ -0,0 +1,1302 @@
+ true,
+ 'when_required' => true
+ ];
+
+ public static function getArguments()
+ {
+ $args = parent::getArguments();
+ $args['retries']['fn'] = [__CLASS__, '_applyRetryConfig'];
+ $args['api_provider']['fn'] = [__CLASS__, '_applyApiProvider'];
+
+ return
+ [
+ 'request_checksum_calculation' => [
+ 'type' => 'config',
+ 'valid' => ['string'],
+ 'doc' => 'Valid values are `when_supported` and `when_required`. Default is `when_supported`.'
+ . ' `when_supported` results in checksum calculation when an operation has modeled checksum support.'
+ . ' `when_required` results in checksum calculation when an operation has modeled checksum support and'
+ . ' request checksums are modeled as required.',
+ 'fn' => [__CLASS__, '_apply_request_checksum_calculation'],
+ 'default' => [__CLASS__, '_default_request_checksum_calculation'],
+ ],
+ 'response_checksum_validation' => [
+ 'type' => 'config',
+ 'valid' => ['string'],
+ 'doc' => 'Valid values are `when_supported` and `when_required`. Default is `when_supported`.'
+ . ' `when_supported` results in checksum validation when an operation has modeled checksum support.'
+ . ' `when_required` results in checksum validation when an operation has modeled checksum support and'
+ . ' `CheckSumMode` is set to `enabled`.',
+ 'fn' => [__CLASS__, '_apply_response_checksum_validation'],
+ 'default' => [__CLASS__, '_default_response_checksum_validation'],
+ ]
+ ]
+ + $args + [
+ 'bucket_endpoint' => [
+ 'type' => 'config',
+ 'valid' => ['bool'],
+ 'doc' => 'Set to true to send requests to a hardcoded '
+ . 'bucket endpoint rather than create an endpoint as a '
+ . 'result of injecting the bucket into the URL. This '
+ . 'option is useful for interacting with CNAME endpoints.',
+ ],
+ 'use_arn_region' => [
+ 'type' => 'config',
+ 'valid' => [
+ 'bool',
+ Configuration::class,
+ CacheInterface::class,
+ 'callable'
+ ],
+ 'doc' => 'Set to true to allow passed in ARNs to override'
+ . ' client region. Accepts...',
+ 'fn' => [__CLASS__, '_apply_use_arn_region'],
+ 'default' => [UseArnRegionConfigurationProvider::class, 'defaultProvider'],
+ ],
+ 'use_accelerate_endpoint' => [
+ 'type' => 'config',
+ 'valid' => ['bool'],
+ 'doc' => 'Set to true to send requests to an S3 Accelerate'
+ . ' endpoint by default. Can be enabled or disabled on'
+ . ' individual operations by setting'
+ . ' \'@use_accelerate_endpoint\' to true or false. Note:'
+ . ' you must enable S3 Accelerate on a bucket before it can'
+ . ' be accessed via an Accelerate endpoint.',
+ 'default' => false,
+ ],
+ 'use_path_style_endpoint' => [
+ 'type' => 'config',
+ 'valid' => ['bool'],
+ 'doc' => 'Set to true to send requests to an S3 path style'
+ . ' endpoint by default.'
+ . ' Can be enabled or disabled on individual operations by setting'
+ . ' \'@use_path_style_endpoint\' to true or false.',
+ 'default' => false,
+ ],
+ 'disable_multiregion_access_points' => [
+ 'type' => 'config',
+ 'valid' => ['bool'],
+ 'doc' => 'Set to true to disable the usage of'
+ . ' multi region access points. These are enabled by default.'
+ . ' Can be enabled or disabled on individual operations by setting'
+ . ' \'@disable_multiregion_access_points\' to true or false.',
+ 'default' => false,
+ ],
+ 'disable_express_session_auth' => [
+ 'type' => 'config',
+ 'valid' => ['bool'],
+ 'doc' => 'Set to true to disable the usage of'
+ . ' s3 express session authentication. This is enabled by default.',
+ 'default' => [__CLASS__, '_default_disable_express_session_auth'],
+ ],
+ 's3_express_identity_provider' => [
+ 'type' => 'config',
+ 'valid' => [
+ 'bool',
+ 'callable'
+ ],
+ 'doc' => 'Specifies the provider used to generate identities to sign s3 express requests. '
+ . 'Set to `false` to disable s3 express auth, or a callable provider used to create s3 express '
+ . 'identities or return null.',
+ 'default' => [__CLASS__, '_default_s3_express_identity_provider'],
+ ],
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * In addition to the options available to
+ * {@see Aws\AwsClient::__construct}, S3Client accepts the following
+ * options:
+ *
+ * - bucket_endpoint: (bool) Set to true to send requests to a
+ * hardcoded bucket endpoint rather than create an endpoint as a result
+ * of injecting the bucket into the URL. This option is useful for
+ * interacting with CNAME endpoints. Note: if you are using version 2.243.0
+ * and above and do not expect the bucket name to appear in the host, you will
+ * also need to set `use_path_style_endpoint` to `true`.
+ * - calculate_md5: (bool) Set to false to disable calculating an MD5
+ * for all Amazon S3 signed uploads.
+ * - s3_us_east_1_regional_endpoint:
+ * (Aws\S3\RegionalEndpoint\ConfigurationInterface|Aws\CacheInterface\|callable|string|array)
+ * Specifies whether to use regional or legacy endpoints for the us-east-1
+ * region. Provide an Aws\S3\RegionalEndpoint\ConfigurationInterface object, an
+ * instance of Aws\CacheInterface, a callable configuration provider used
+ * to create endpoint configuration, a string value of `legacy` or
+ * `regional`, or an associative array with the following keys:
+ * endpoint_types: (string) Set to `legacy` or `regional`, defaults to
+ * `legacy`
+ * - use_accelerate_endpoint: (bool) Set to true to send requests to an S3
+ * Accelerate endpoint by default. Can be enabled or disabled on
+ * individual operations by setting '@use_accelerate_endpoint' to true or
+ * false. Note: you must enable S3 Accelerate on a bucket before it can be
+ * accessed via an Accelerate endpoint.
+ * - use_arn_region: (Aws\S3\UseArnRegion\ConfigurationInterface,
+ * Aws\CacheInterface, bool, callable) Set to true to enable the client
+ * to use the region from a supplied ARN argument instead of the client's
+ * region. Provide an instance of Aws\S3\UseArnRegion\ConfigurationInterface,
+ * an instance of Aws\CacheInterface, a callable that provides a promise for
+ * a Configuration object, or a boolean value. Defaults to false (i.e.
+ * the SDK will not follow the ARN region if it conflicts with the client
+ * region and instead throw an error).
+ * - use_dual_stack_endpoint: (bool) Set to true to send requests to an S3
+ * Dual Stack endpoint by default, which enables IPv6 Protocol.
+ * Can be enabled or disabled on individual operations by setting
+ * '@use_dual_stack_endpoint\' to true or false. Note:
+ * you cannot use it together with an accelerate endpoint.
+ * - use_path_style_endpoint: (bool) Set to true to send requests to an S3
+ * path style endpoint by default.
+ * Can be enabled or disabled on individual operations by setting
+ * '@use_path_style_endpoint\' to true or false. Note:
+ * you cannot use it together with an accelerate endpoint.
+ * - disable_multiregion_access_points: (bool) Set to true to disable
+ * sending multi region requests. They are enabled by default.
+ * Can be enabled or disabled on individual operations by setting
+ * '@disable_multiregion_access_points\' to true or false. Note:
+ * you cannot use it together with an accelerate or dualstack endpoint.
+ *
+ * @param array $args
+ */
+ public function __construct(array $args)
+ {
+ if (
+ !isset($args['s3_us_east_1_regional_endpoint'])
+ || $args['s3_us_east_1_regional_endpoint'] instanceof CacheInterface
+ ) {
+ $args['s3_us_east_1_regional_endpoint'] = ConfigurationProvider::defaultProvider($args);
+ }
+ $this->addBuiltIns($args);
+ parent::__construct($args);
+ $stack = $this->getHandlerList();
+ $stack->appendInit(SSECMiddleware::wrap($this->getEndpoint()->getScheme()), 's3.ssec');
+ $stack->appendBuild(
+ ApplyChecksumMiddleware::wrap($this->getApi(), $this->getConfig()),
+ 's3.checksum'
+ );
+ $stack->appendBuild(
+ Middleware::contentType(['PutObject', 'UploadPart']),
+ 's3.content_type'
+ );
+
+ if ($this->getConfig('bucket_endpoint')) {
+ $stack->appendBuild(BucketEndpointMiddleware::wrap(), 's3.bucket_endpoint');
+ } elseif (!$this->isUseEndpointV2()) {
+ $stack->appendBuild(
+ S3EndpointMiddleware::wrap(
+ $this->getRegion(),
+ $this->getConfig('endpoint_provider'),
+ [
+ 'accelerate' => $this->getConfig('use_accelerate_endpoint'),
+ 'path_style' => $this->getConfig('use_path_style_endpoint'),
+ 'use_fips_endpoint' => $this->getConfig('use_fips_endpoint'),
+ 'dual_stack' =>
+ $this->getConfig('use_dual_stack_endpoint')->isUseDualStackEndpoint(),
+
+ ]
+ ),
+ 's3.endpoint_middleware'
+ );
+ }
+
+ $stack->appendBuild(
+ BucketEndpointArnMiddleware::wrap(
+ $this->getApi(),
+ $this->getRegion(),
+ [
+ 'use_arn_region' => $this->getConfig('use_arn_region'),
+ 'accelerate' => $this->getConfig('use_accelerate_endpoint'),
+ 'path_style' => $this->getConfig('use_path_style_endpoint'),
+ 'dual_stack' =>
+ $this->getConfig('use_dual_stack_endpoint')->isUseDualStackEndpoint(),
+ 'use_fips_endpoint' => $this->getConfig('use_fips_endpoint'),
+ 'disable_multiregion_access_points' =>
+ $this->getConfig('disable_multiregion_access_points'),
+ 'endpoint' => $args['endpoint'] ?? null
+ ],
+ $this->isUseEndpointV2()
+ ),
+ 's3.bucket_endpoint_arn'
+ );
+ if ($this->getConfig('disable_express_session_auth')) {
+ $stack->prependSign(
+ $this->getDisableExpressSessionAuthMiddleware(),
+ 's3.disable_express_session_auth'
+ );
+ }
+
+ $stack->appendValidate(
+ InputValidationMiddleware::wrap($this->getApi(), self::$mandatoryAttributes),
+ 'input_validation_middleware'
+ );
+ $stack->appendSign(ExpiresParsingMiddleware::wrap(), 's3.expires_parsing');
+ $stack->appendSign(PutObjectUrlMiddleware::wrap(), 's3.put_object_url');
+ $stack->appendSign(PermanentRedirectMiddleware::wrap(), 's3.permanent_redirect');
+ $stack->appendInit(Middleware::sourceFile($this->getApi()), 's3.source_file');
+ $stack->appendInit($this->getSaveAsParameter(), 's3.save_as');
+ $stack->appendInit($this->getLocationConstraintMiddleware(), 's3.location');
+ $stack->appendInit($this->getEncodingTypeMiddleware(), 's3.auto_encode');
+ $stack->appendInit($this->getHeadObjectMiddleware(), 's3.head_object');
+ $this->processModel($this->isUseEndpointV2());
+ if ($this->isUseEndpointV2()) {
+ $stack->after('builder',
+ 's3.check_empty_path_with_query',
+ $this->getEmptyPathWithQuery());
+ }
+ }
+
+ /**
+ * Determine if a string is a valid name for a DNS compatible Amazon S3
+ * bucket.
+ *
+ * DNS compatible bucket names can be used as a subdomain in a URL (e.g.,
+ * "Additional info on response behavior: if there is"
+ . " an internal error in S3 after the request was successfully recieved,"
+ . " a 200 response will be returned with an S3Exception
embedded"
+ . " in it; this will still be caught and retried by"
+ . " RetryMiddleware.
Additional info on behavior of the stream"
+ . " parameters: Psr7 takes ownership of streams and will automatically close"
+ . " streams when this method is called with a stream as the Body
"
+ . " parameter. To prevent this, set the Body
using"
+ . " GuzzleHttp\Psr7\stream_for
method with a is an instance of"
+ . " Psr\Http\Message\StreamInterface
, and it will be returned"
+ . " unmodified. This will allow you to keep the stream in scope.
This output shape has been deprecated. Please refer to ExpiresString
instead.
Expires
output member.';
+ $api['shapes']['Expires']['type'] = 'timestamp';
+
+ return [
+ new Service($api, ApiProvider::defaultProvider()),
+ new DocModel($docs)
+ ];
+ }
+
+ /**
+ * @internal
+ * @codeCoverageIgnore
+ */
+ public static function addDocExamples($examples)
+ {
+ $getObjectExample = [
+ 'input' => [
+ 'Bucket' => 'arn:aws:s3:us-east-1:123456789012:accesspoint:myaccesspoint',
+ 'Key' => 'my-key'
+ ],
+ 'output' => [
+ 'Body' => 'class GuzzleHttp\Psr7\Stream#208 (7) {...}',
+ 'ContentLength' => '11',
+ 'ContentType' => 'application/octet-stream',
+ ],
+ 'comments' => [
+ 'input' => '',
+ 'output' => 'Simplified example output'
+ ],
+ 'description' => 'The following example retrieves an object by referencing the bucket via an S3 accesss point ARN. Result output is simplified for the example.',
+ 'id' => '',
+ 'title' => 'To get an object via an S3 access point ARN'
+ ];
+ if (isset($examples['GetObject'])) {
+ $examples['GetObject'] []= $getObjectExample;
+ } else {
+ $examples['GetObject'] = [$getObjectExample];
+ }
+
+ $putObjectExample = [
+ 'input' => [
+ 'Bucket' => 'arn:aws:s3:us-east-1:123456789012:accesspoint:myaccesspoint',
+ 'Key' => 'my-key',
+ 'Body' => 'my-body',
+ ],
+ 'output' => [
+ 'ObjectURL' => 'https://my-bucket.s3.us-east-1.amazonaws.com/my-key'
+ ],
+ 'comments' => [
+ 'input' => '',
+ 'output' => 'Simplified example output'
+ ],
+ 'description' => 'The following example uploads an object by referencing the bucket via an S3 accesss point ARN. Result output is simplified for the example.',
+ 'id' => '',
+ 'title' => 'To upload an object via an S3 access point ARN'
+ ];
+ if (isset($examples['PutObject'])) {
+ $examples['PutObject'] []= $putObjectExample;
+ } else {
+ $examples['PutObject'] = [$putObjectExample];
+ }
+
+ return $examples;
+ }
+
+ /**
+ * @param CommandInterface $command
+ * @return array|mixed|null
+ */
+ private function getSignatureVersionFromCommand(CommandInterface $command)
+ {
+ return $command['@context']['signature_version']
+ ?? $this->getConfig('signature_version');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3ClientInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3ClientInterface.php
new file mode 100644
index 000000000..261d7dd3c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3ClientInterface.php
@@ -0,0 +1,369 @@
+uploadAsync($bucket, $key, $body, $acl, $options)
+ ->wait();
+ }
+
+ /**
+ * @see S3ClientInterface::uploadAsync()
+ */
+ public function uploadAsync(
+ $bucket,
+ $key,
+ $body,
+ $acl = 'private',
+ array $options = []
+ ) {
+ return (new ObjectUploader($this, $bucket, $key, $body, $acl, $options))
+ ->promise();
+ }
+
+ /**
+ * @see S3ClientInterface::copy()
+ */
+ public function copy(
+ $fromB,
+ $fromK,
+ $destB,
+ $destK,
+ $acl = 'private',
+ array $opts = []
+ ) {
+ return $this->copyAsync($fromB, $fromK, $destB, $destK, $acl, $opts)
+ ->wait();
+ }
+
+ /**
+ * @see S3ClientInterface::copyAsync()
+ */
+ public function copyAsync(
+ $fromB,
+ $fromK,
+ $destB,
+ $destK,
+ $acl = 'private',
+ array $opts = []
+ ) {
+ $source = [
+ 'Bucket' => $fromB,
+ 'Key' => $fromK,
+ ];
+ if (isset($opts['version_id'])) {
+ $source['VersionId'] = $opts['version_id'];
+ }
+ $destination = [
+ 'Bucket' => $destB,
+ 'Key' => $destK
+ ];
+
+ return (new ObjectCopier($this, $source, $destination, $acl, $opts))
+ ->promise();
+ }
+
+ /**
+ * @see S3ClientInterface::registerStreamWrapper()
+ */
+ public function registerStreamWrapper()
+ {
+ StreamWrapper::register($this);
+ }
+
+ /**
+ * @see S3ClientInterface::registerStreamWrapperV2()
+ */
+ public function registerStreamWrapperV2()
+ {
+ StreamWrapper::register(
+ $this,
+ 's3',
+ null,
+ true
+ );
+ }
+
+ /**
+ * @see S3ClientInterface::deleteMatchingObjects()
+ */
+ public function deleteMatchingObjects(
+ $bucket,
+ $prefix = '',
+ $regex = '',
+ array $options = []
+ ) {
+ $this->deleteMatchingObjectsAsync($bucket, $prefix, $regex, $options)
+ ->wait();
+ }
+
+ /**
+ * @see S3ClientInterface::deleteMatchingObjectsAsync()
+ */
+ public function deleteMatchingObjectsAsync(
+ $bucket,
+ $prefix = '',
+ $regex = '',
+ array $options = []
+ ) {
+ if (!$prefix && !$regex) {
+ return new RejectedPromise(
+ new \RuntimeException('A prefix or regex is required.')
+ );
+ }
+
+ $params = ['Bucket' => $bucket, 'Prefix' => $prefix];
+ $iter = $this->getIterator('ListObjects', $params);
+
+ if ($regex) {
+ $iter = \Aws\filter($iter, function ($c) use ($regex) {
+ return preg_match($regex, $c['Key']);
+ });
+ }
+
+ return BatchDelete::fromIterator($this, $bucket, $iter, $options)
+ ->promise();
+ }
+
+ /**
+ * @see S3ClientInterface::uploadDirectory()
+ */
+ public function uploadDirectory(
+ $directory,
+ $bucket,
+ $keyPrefix = null,
+ array $options = []
+ ) {
+ $this->uploadDirectoryAsync($directory, $bucket, $keyPrefix, $options)
+ ->wait();
+ }
+
+ /**
+ * @see S3ClientInterface::uploadDirectoryAsync()
+ */
+ public function uploadDirectoryAsync(
+ $directory,
+ $bucket,
+ $keyPrefix = null,
+ array $options = []
+ ) {
+ $d = "s3://$bucket" . ($keyPrefix ? '/' . ltrim($keyPrefix, '/') : '');
+ return (new Transfer($this, $directory, $d, $options))->promise();
+ }
+
+ /**
+ * @see S3ClientInterface::downloadBucket()
+ */
+ public function downloadBucket(
+ $directory,
+ $bucket,
+ $keyPrefix = '',
+ array $options = []
+ ) {
+ $this->downloadBucketAsync($directory, $bucket, $keyPrefix, $options)
+ ->wait();
+ }
+
+ /**
+ * @see S3ClientInterface::downloadBucketAsync()
+ */
+ public function downloadBucketAsync(
+ $directory,
+ $bucket,
+ $keyPrefix = '',
+ array $options = []
+ ) {
+ $s = "s3://$bucket" . ($keyPrefix ? '/' . ltrim($keyPrefix, '/') : '');
+ return (new Transfer($this, $s, $directory, $options))->promise();
+ }
+
+ /**
+ * @see S3ClientInterface::determineBucketRegion()
+ */
+ public function determineBucketRegion($bucketName)
+ {
+ return $this->determineBucketRegionAsync($bucketName)->wait();
+ }
+
+ /**
+ * @see S3ClientInterface::determineBucketRegionAsync()
+ *
+ * @param string $bucketName
+ *
+ * @return PromiseInterface
+ */
+ public function determineBucketRegionAsync($bucketName)
+ {
+ $command = $this->getCommand('HeadBucket', ['Bucket' => $bucketName]);
+ $handlerList = clone $this->getHandlerList();
+ $handlerList->remove('s3.permanent_redirect');
+ $handlerList->remove('signer');
+ $handler = $handlerList->resolve();
+
+ return $handler($command)
+ ->then(static function (ResultInterface $result) {
+ return $result['@metadata']['headers']['x-amz-bucket-region'];
+ }, function (AwsException $e) {
+ $response = $e->getResponse();
+ if ($response === null) {
+ throw $e;
+ }
+
+ if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') {
+ $region = $this->determineBucketRegionFromExceptionBody(
+ $response
+ );
+ if (!empty($region)) {
+ return $region;
+ }
+ throw $e;
+ }
+
+ return $response->getHeaderLine('x-amz-bucket-region');
+ });
+ }
+
+ private function determineBucketRegionFromExceptionBody(ResponseInterface $response)
+ {
+ try {
+ $element = $this->parseXml($response->getBody(), $response);
+ if (!empty($element->Region)) {
+ return (string)$element->Region;
+ }
+ } catch (\Exception $e) {
+ // Fallthrough on exceptions from parsing
+ }
+ return false;
+ }
+
+ /**
+ * @see S3ClientInterface::doesBucketExist()
+ */
+ public function doesBucketExist($bucket)
+ {
+ return $this->checkExistenceWithCommand(
+ $this->getCommand('HeadBucket', ['Bucket' => $bucket])
+ );
+ }
+
+ /**
+ * @see S3ClientInterface::doesBucketExistV2()
+ */
+ public function doesBucketExistV2($bucket, $accept403 = false)
+ {
+ $command = $this->getCommand('HeadBucket', ['Bucket' => $bucket]);
+
+ try {
+ $this->execute($command);
+ return true;
+ } catch (S3Exception $e) {
+ if (
+ ($accept403 && $e->getStatusCode() === 403)
+ || $e instanceof PermanentRedirectException
+ ) {
+ return true;
+ }
+ if ($e->getStatusCode() === 404) {
+ return false;
+ }
+ throw $e;
+ }
+ }
+
+ /**
+ * @see S3ClientInterface::doesObjectExist()
+ */
+ public function doesObjectExist($bucket, $key, array $options = [])
+ {
+ return $this->checkExistenceWithCommand(
+ $this->getCommand('HeadObject', [
+ 'Bucket' => $bucket,
+ 'Key' => $key
+ ] + $options)
+ );
+ }
+
+ /**
+ * @see S3ClientInterface::doesObjectExistV2()
+ */
+ public function doesObjectExistV2(
+ $bucket,
+ $key,
+ $includeDeleteMarkers = false,
+ array $options = []
+ ){
+ $command = $this->getCommand('HeadObject', [
+ 'Bucket' => $bucket,
+ 'Key' => $key
+ ] + $options
+ );
+
+ try {
+ $this->execute($command);
+ return true;
+ } catch (S3Exception $e) {
+ if ($includeDeleteMarkers
+ && $this->useDeleteMarkers($e)
+ ) {
+ return true;
+ }
+ if ($e->getStatusCode() === 404) {
+ return false;
+ }
+ throw $e;
+ }
+ }
+
+ private function useDeleteMarkers($exception)
+ {
+ $response = $exception->getResponse();
+ return !empty($response)
+ && $response->getHeader('x-amz-delete-marker');
+ }
+
+ /**
+ * Determines whether or not a resource exists using a command
+ *
+ * @param CommandInterface $command Command used to poll for the resource
+ *
+ * @return bool
+ * @throws S3Exception|\Exception if there is an unhandled exception
+ */
+ private function checkExistenceWithCommand(CommandInterface $command)
+ {
+ try {
+ $this->execute($command);
+ return true;
+ } catch (S3Exception $e) {
+ if ($e->getAwsErrorCode() == 'AccessDenied') {
+ return true;
+ }
+ if ($e->getStatusCode() >= 500) {
+ throw $e;
+ }
+ return false;
+ }
+ }
+
+ /**
+ * @see S3ClientInterface::execute()
+ */
+ abstract public function execute(CommandInterface $command);
+
+ /**
+ * @see S3ClientInterface::getCommand()
+ */
+ abstract public function getCommand($name, array $args = []);
+
+ /**
+ * @see S3ClientInterface::getHandlerList()
+ *
+ * @return HandlerList
+ */
+ abstract public function getHandlerList();
+
+ /**
+ * @see S3ClientInterface::getIterator()
+ *
+ * @return \Iterator
+ */
+ abstract public function getIterator($name, array $args = []);
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3EndpointMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3EndpointMiddleware.php
new file mode 100644
index 000000000..c8dd00703
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3EndpointMiddleware.php
@@ -0,0 +1,343 @@
+ true,
+ 'DeleteBucket' => true,
+ 'ListBuckets' => true,
+ ];
+
+ const NO_PATTERN = 0;
+ const DUALSTACK = 1;
+ const ACCELERATE = 2;
+ const ACCELERATE_DUALSTACK = 3;
+ const PATH_STYLE = 4;
+ const HOST_STYLE = 5;
+
+ /** @var bool */
+ private $accelerateByDefault;
+ /** @var bool */
+ private $dualStackByDefault;
+ /** @var bool */
+ private $pathStyleByDefault;
+ /** @var string */
+ private $region;
+ /** @var callable */
+ private $endpointProvider;
+ /** @var callable */
+ private $nextHandler;
+ /** @var string */
+ private $endpoint;
+
+ /**
+ * Create a middleware wrapper function
+ *
+ * @param string $region
+ * @param EndpointProvider $endpointProvider
+ * @param array $options
+ *
+ * @return callable
+ */
+ public static function wrap($region, $endpointProvider, array $options)
+ {
+ return function (callable $handler) use ($region, $endpointProvider, $options) {
+ return new self($handler, $region, $options, $endpointProvider);
+ };
+ }
+
+ public function __construct(
+ callable $nextHandler,
+ $region,
+ array $options,
+ $endpointProvider = null
+ ) {
+ $this->pathStyleByDefault = isset($options['path_style'])
+ ? (bool) $options['path_style'] : false;
+ $this->dualStackByDefault = isset($options['dual_stack'])
+ ? (bool) $options['dual_stack'] : false;
+ $this->accelerateByDefault = isset($options['accelerate'])
+ ? (bool) $options['accelerate'] : false;
+ $this->region = (string) $region;
+ $this->endpoint = isset($options['endpoint'])
+ ? $options['endpoint'] : "";
+ $this->endpointProvider = is_null($endpointProvider)
+ ? PartitionEndpointProvider::defaultProvider()
+ : $endpointProvider;
+ $this->nextHandler = $nextHandler;
+ }
+
+ public function __invoke(CommandInterface $command, RequestInterface $request)
+ {
+ if (!empty($this->endpoint)) {
+ $request = $this->applyEndpoint($command, $request);
+ } else {
+ switch ($this->endpointPatternDecider($command, $request)) {
+ case self::HOST_STYLE:
+ $request = $this->applyHostStyleEndpoint($command, $request);
+ break;
+ case self::NO_PATTERN:
+ break;
+ case self::PATH_STYLE:
+ $request = $this->applyPathStyleEndpointCustomizations($command, $request);
+ break;
+ case self::DUALSTACK:
+ $request = $this->applyDualStackEndpoint($command, $request);
+ break;
+ case self::ACCELERATE:
+ $request = $this->applyAccelerateEndpoint(
+ $command,
+ $request,
+ 's3-accelerate'
+ );
+ break;
+ case self::ACCELERATE_DUALSTACK:
+ $request = $this->applyAccelerateEndpoint(
+ $command,
+ $request,
+ 's3-accelerate.dualstack'
+ );
+ break;
+ }
+ }
+ $nextHandler = $this->nextHandler;
+ return $nextHandler($command, $request);
+ }
+
+ private static function isRequestHostStyleCompatible(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ return S3Client::isBucketDnsCompatible($command['Bucket'])
+ && (
+ $request->getUri()->getScheme() === 'http'
+ || strpos($command['Bucket'], '.') === false
+ )
+ && filter_var($request->getUri()->getHost(), FILTER_VALIDATE_IP) === false;
+ }
+
+ private function endpointPatternDecider(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ $accelerate = isset($command['@use_accelerate_endpoint'])
+ ? $command['@use_accelerate_endpoint'] : $this->accelerateByDefault;
+ $dualStack = isset($command['@use_dual_stack_endpoint'])
+ ? $command['@use_dual_stack_endpoint'] : $this->dualStackByDefault;
+ $pathStyle = isset($command['@use_path_style_endpoint'])
+ ? $command['@use_path_style_endpoint'] : $this->pathStyleByDefault;
+
+ if ($accelerate && $dualStack) {
+ // When try to enable both for operations excluded from s3-accelerate,
+ // only dualstack endpoints will be enabled.
+ return $this->canAccelerate($command)
+ ? self::ACCELERATE_DUALSTACK
+ : self::DUALSTACK;
+ }
+
+ if ($accelerate && $this->canAccelerate($command)) {
+ return self::ACCELERATE;
+ }
+
+ if ($dualStack) {
+ return self::DUALSTACK;
+ }
+
+ if (!$pathStyle
+ && self::isRequestHostStyleCompatible($command, $request)
+ ) {
+ return self::HOST_STYLE;
+ }
+
+ return self::PATH_STYLE;
+ }
+
+ private function canAccelerate(CommandInterface $command)
+ {
+ return empty(self::$exclusions[$command->getName()])
+ && S3Client::isBucketDnsCompatible($command['Bucket']);
+ }
+
+ private function getBucketStyleHost(CommandInterface $command, $host)
+ {
+ // For operations on the base host (e.g. ListBuckets)
+ if (!isset($command['Bucket'])) {
+ return $host;
+ }
+
+ return "{$command['Bucket']}.{$host}";
+ }
+
+ private function applyHostStyleEndpoint(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ $uri = $request->getUri();
+ $request = $request->withUri(
+ $uri->withHost($this->getBucketStyleHost(
+ $command,
+ $uri->getHost()
+ ))
+ ->withPath($this->getBucketlessPath(
+ $uri->getPath(),
+ $command
+ ))
+ );
+ return $request;
+ }
+
+ private function applyPathStyleEndpointCustomizations(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ if ($command->getName() == 'WriteGetObjectResponse') {
+ $dnsSuffix = $this->endpointProvider
+ ->getPartition($this->region, 's3')
+ ->getDnsSuffix();
+ $fips = \Aws\is_fips_pseudo_region($this->region) ? "-fips" : "";
+ $region = \Aws\strip_fips_pseudo_regions($this->region);
+ $host =
+ "{$command['RequestRoute']}.s3-object-lambda{$fips}.{$region}.{$dnsSuffix}";
+
+ $uri = $request->getUri();
+ $request = $request->withUri(
+ $uri->withHost($host)
+ ->withPath($this->getBucketlessPath(
+ $uri->getPath(),
+ $command
+ ))
+ );
+ }
+ return $request;
+ }
+
+
+ private function applyDualStackEndpoint(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ $request = $request->withUri(
+ $request->getUri()->withHost($this->getDualStackHost())
+ );
+
+ if (empty($command['@use_path_style_endpoint'])
+ && !$this->pathStyleByDefault
+ && self::isRequestHostStyleCompatible($command, $request)
+ ) {
+ $request = $this->applyHostStyleEndpoint($command, $request);
+ }
+ return $request;
+ }
+
+ private function getDualStackHost()
+ {
+ $dnsSuffix = $this->endpointProvider
+ ->getPartition($this->region, 's3')
+ ->getDnsSuffix();
+ return "s3.dualstack.{$this->region}.{$dnsSuffix}";
+ }
+
+ private function applyAccelerateEndpoint(
+ CommandInterface $command,
+ RequestInterface $request,
+ $pattern
+ ) {
+ $request = $request->withUri(
+ $request->getUri()
+ ->withHost($this->getAccelerateHost($command, $pattern))
+ ->withPath($this->getBucketlessPath(
+ $request->getUri()->getPath(),
+ $command
+ ))
+ );
+ return $request;
+ }
+
+ private function getAccelerateHost(CommandInterface $command, $pattern)
+ {
+ $dnsSuffix = $this->endpointProvider
+ ->getPartition($this->region, 's3')
+ ->getDnsSuffix();
+ return "{$command['Bucket']}.{$pattern}.{$dnsSuffix}";
+ }
+
+ private function getBucketlessPath($path, CommandInterface $command)
+ {
+ $pattern = '/^\\/' . preg_quote($command['Bucket'], '/') . '/';
+ $path = preg_replace($pattern, '', $path) ?: '/';
+ if (substr($path, 0 , 1) !== '/') {
+ $path = '/' . $path;
+ }
+ return $path;
+ }
+
+ private function applyEndpoint(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ $dualStack = isset($command['@use_dual_stack_endpoint'])
+ ? $command['@use_dual_stack_endpoint'] : $this->dualStackByDefault;
+ if (ArnParser::isArn($command['Bucket'])) {
+ $arn = ArnParser::parse($command['Bucket']);
+ $outpost = $arn->getService() == 's3-outposts';
+ if ($outpost && $dualStack) {
+ throw new InvalidArgumentException("Outposts + dualstack is not supported");
+ }
+ if ($arn instanceof ObjectLambdaAccessPointArn) {
+ return $request;
+ }
+ }
+ if ($dualStack) {
+ throw new InvalidArgumentException("Custom Endpoint + Dualstack not supported");
+ }
+ if ($command->getName() == 'WriteGetObjectResponse') {
+ $host = "{$command['RequestRoute']}.{$this->endpoint}";
+ $uri = $request->getUri();
+ return $request = $request->withUri(
+ $uri->withHost($host)
+ ->withPath($this->getBucketlessPath(
+ $uri->getPath(),
+ $command
+ ))
+ );
+ }
+ $host = ($this->pathStyleByDefault) ?
+ $this->endpoint :
+ $this->getBucketStyleHost(
+ $command,
+ $this->endpoint
+ );
+ $uri = $request->getUri();
+ $scheme = $uri->getScheme();
+ if(empty($scheme)){
+ $request = $request->withUri(
+ $uri->withHost($host)
+ );
+ } else {
+ $request = $request->withUri($uri);
+ }
+
+ return $request;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php
new file mode 100644
index 000000000..c6ca323e4
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php
@@ -0,0 +1,370 @@
+ function (array &$args) {
+ $availableRegions = array_keys($args['partition']['regions']);
+ return end($availableRegions);
+ }];
+ unset($args['region']);
+
+ return $args + [
+ 'bucket_region_cache' => [
+ 'type' => 'config',
+ 'valid' => [CacheInterface::class],
+ 'doc' => 'Cache of regions in which given buckets are located.',
+ 'default' => function () { return new LruArrayCache; },
+ ],
+ 'region' => $regionDef,
+ ];
+ }
+
+ public function __construct(array $args)
+ {
+ parent::__construct($args);
+ $this->cache = $this->getConfig('bucket_region_cache');
+
+ $this->getHandlerList()->prependInit(
+ $this->determineRegionMiddleware(),
+ 'determine_region'
+ );
+ }
+
+ private function determineRegionMiddleware()
+ {
+ return function (callable $handler) {
+ return function (CommandInterface $command) use ($handler) {
+ $cacheKey = $this->getCacheKey($command['Bucket']);
+ if (
+ empty($command['@region']) &&
+ $region = $this->cache->get($cacheKey)
+ ) {
+ $command['@region'] = $region;
+ }
+
+ return Promise\Coroutine::of(function () use (
+ $handler,
+ $command,
+ $cacheKey
+ ) {
+ try {
+ yield $handler($command);
+ } catch (PermanentRedirectException $e) {
+ if (empty($command['Bucket'])) {
+ throw $e;
+ }
+ $result = $e->getResult();
+ $region = null;
+ if (isset($result['@metadata']['headers']['x-amz-bucket-region'])) {
+ $region = $result['@metadata']['headers']['x-amz-bucket-region'];
+ $this->cache->set($cacheKey, $region);
+ } else {
+ $region = (yield $this->determineBucketRegionAsync(
+ $command['Bucket']
+ ));
+ }
+
+ $command['@region'] = $region;
+ yield $handler($command);
+ } catch (AwsException $e) {
+ if ($e->getAwsErrorCode() === 'AuthorizationHeaderMalformed') {
+ $region = $this->determineBucketRegionFromExceptionBody(
+ $e->getResponse()
+ );
+ if (!empty($region)) {
+ $this->cache->set($cacheKey, $region);
+
+ $command['@region'] = $region;
+ yield $handler($command);
+ } else {
+ throw $e;
+ }
+ } else {
+ throw $e;
+ }
+ }
+ });
+ };
+ };
+ }
+
+ public function createPresignedRequest(CommandInterface $command, $expires, array $options = [])
+ {
+ if (empty($command['Bucket'])) {
+ throw new \InvalidArgumentException('The S3\\MultiRegionClient'
+ . ' cannot create presigned requests for commands without a'
+ . ' specified bucket.');
+ }
+
+ /** @var S3ClientInterface $client */
+ $client = $this->getClientFromPool(
+ $this->determineBucketRegion($command['Bucket'])
+ );
+ return $client->createPresignedRequest(
+ $client->getCommand($command->getName(), $command->toArray()),
+ $expires,
+ $options
+ );
+ }
+
+ public function getObjectUrl($bucket, $key)
+ {
+ /** @var S3Client $regionalClient */
+ $regionalClient = $this->getClientFromPool(
+ $this->determineBucketRegion($bucket)
+ );
+
+ return $regionalClient->getObjectUrl($bucket, $key);
+ }
+
+ public function determineBucketRegionAsync($bucketName)
+ {
+ $cacheKey = $this->getCacheKey($bucketName);
+ if ($cached = $this->cache->get($cacheKey)) {
+ return Promise\Create::promiseFor($cached);
+ }
+
+ /** @var S3ClientInterface $regionalClient */
+ $regionalClient = $this->getClientFromPool();
+ return $regionalClient->determineBucketRegionAsync($bucketName)
+ ->then(
+ function ($region) use ($cacheKey) {
+ $this->cache->set($cacheKey, $region);
+
+ return $region;
+ }
+ );
+ }
+
+ private function getCacheKey($bucketName)
+ {
+ return "aws:s3:{$bucketName}:location";
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3UriParser.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3UriParser.php
new file mode 100644
index 000000000..508bff14c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/S3UriParser.php
@@ -0,0 +1,163 @@
+ true,
+ 'bucket' => null,
+ 'key' => null,
+ 'region' => null
+ ];
+
+ /**
+ * Parses a URL or S3 StreamWrapper Uri (s3://) into an associative array
+ * of Amazon S3 data including:
+ *
+ * - bucket: The Amazon S3 bucket (null if none)
+ * - key: The Amazon S3 key (null if none)
+ * - path_style: Set to true if using path style, or false if not
+ * - region: Set to a string if a non-class endpoint is used or null.
+ *
+ * @param string|UriInterface $uri
+ *
+ * @return array
+ * @throws \InvalidArgumentException|InvalidArnException
+ */
+ public function parse($uri)
+ {
+ // Attempt to parse host component of uri as an ARN
+ $components = $this->parseS3UrlComponents($uri);
+ if (!empty($components)) {
+ if (ArnParser::isArn($components['host'])) {
+ $arn = new AccessPointArn($components['host']);
+ return [
+ 'bucket' => $components['host'],
+ 'key' => $components['path'],
+ 'path_style' => false,
+ 'region' => $arn->getRegion()
+ ];
+ }
+ }
+
+ $url = Psr7\Utils::uriFor($uri);
+
+ if ($url->getScheme() == $this->streamWrapperScheme) {
+ return $this->parseStreamWrapper($url);
+ }
+
+ if (!$url->getHost()) {
+ throw new \InvalidArgumentException('No hostname found in URI: '
+ . $uri);
+ }
+
+ if (!preg_match($this->pattern, $url->getHost(), $matches)) {
+ return $this->parseCustomEndpoint($url);
+ }
+
+ // Parse the URI based on the matched format (path / virtual)
+ $result = empty($matches[1])
+ ? $this->parsePathStyle($url)
+ : $this->parseVirtualHosted($url, $matches);
+
+ // Add the region if one was found and not the classic endpoint
+ $result['region'] = $matches[2] == 'amazonaws' ? null : $matches[2];
+
+ return $result;
+ }
+
+ private function parseS3UrlComponents($uri)
+ {
+ preg_match("/^([a-zA-Z0-9]*):\/\/([a-zA-Z0-9:-]*)\/(.*)/", $uri, $components);
+ if (empty($components)) {
+ return [];
+ }
+ return [
+ 'scheme' => $components[1],
+ 'host' => $components[2],
+ 'path' => $components[3],
+ ];
+ }
+
+ private function parseStreamWrapper(UriInterface $url)
+ {
+ $result = self::$defaultResult;
+ $result['path_style'] = false;
+
+ $result['bucket'] = $url->getHost();
+ if ($url->getPath()) {
+ $key = ltrim($url->getPath(), '/ ');
+ if (!empty($key)) {
+ $result['key'] = $key;
+ }
+ }
+
+ return $result;
+ }
+
+ private function parseCustomEndpoint(UriInterface $url)
+ {
+ $result = self::$defaultResult;
+ $path = ltrim($url->getPath(), '/ ');
+ $segments = explode('/', $path, 2);
+
+ if (isset($segments[0])) {
+ $result['bucket'] = $segments[0];
+ if (isset($segments[1])) {
+ $result['key'] = $segments[1];
+ }
+ }
+
+ return $result;
+ }
+
+ private function parsePathStyle(UriInterface $url)
+ {
+ $result = self::$defaultResult;
+
+ if ($url->getPath() != '/') {
+ $path = ltrim($url->getPath(), '/');
+ if ($path) {
+ $pathPos = strpos($path, '/');
+ if ($pathPos === false) {
+ // https://s3.amazonaws.com/bucket
+ $result['bucket'] = $path;
+ } elseif ($pathPos == strlen($path) - 1) {
+ // https://s3.amazonaws.com/bucket/
+ $result['bucket'] = substr($path, 0, -1);
+ } else {
+ // https://s3.amazonaws.com/bucket/key
+ $result['bucket'] = substr($path, 0, $pathPos);
+ $result['key'] = substr($path, $pathPos + 1) ?: null;
+ }
+ }
+ }
+
+ return $result;
+ }
+
+ private function parseVirtualHosted(UriInterface $url, array $matches)
+ {
+ $result = self::$defaultResult;
+ $result['path_style'] = false;
+ // Remove trailing "." from the prefix to get the bucket
+ $result['bucket'] = substr($matches[1], 0, -1);
+ $path = $url->getPath();
+ // Check if a key was present, and if so, removing the leading "/"
+ $result['key'] = !$path || $path == '/' ? null : substr($path, 1);
+
+ return $result;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/SSECMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/SSECMiddleware.php
new file mode 100644
index 000000000..628ddef15
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/SSECMiddleware.php
@@ -0,0 +1,75 @@
+nextHandler = $nextHandler;
+ $this->endpointScheme = $endpointScheme;
+ }
+
+ public function __invoke(
+ CommandInterface $command,
+ ?RequestInterface $request = null
+ ) {
+ // Allows only HTTPS connections when using SSE-C
+ if (($command['SSECustomerKey'] || $command['CopySourceSSECustomerKey'])
+ && $this->endpointScheme !== 'https'
+ ) {
+ throw new \RuntimeException('You must configure your S3 client to '
+ . 'use HTTPS in order to use the SSE-C features.');
+ }
+
+ // Prepare the normal SSE-CPK headers
+ if ($command['SSECustomerKey']) {
+ $this->prepareSseParams($command);
+ }
+
+ // If it's a copy operation, prepare the SSE-CPK headers for the source.
+ if ($command['CopySourceSSECustomerKey']) {
+ $this->prepareSseParams($command, 'CopySource');
+ }
+
+ $f = $this->nextHandler;
+ return $f($command, $request);
+ }
+
+ private function prepareSseParams(CommandInterface $command, $prefix = '')
+ {
+ // Base64 encode the provided key
+ $key = $command[$prefix . 'SSECustomerKey'];
+ $command[$prefix . 'SSECustomerKey'] = base64_encode($key);
+
+ // Base64 the provided MD5 or, generate an MD5 if not provided
+ if ($md5 = $command[$prefix . 'SSECustomerKeyMD5']) {
+ $command[$prefix . 'SSECustomerKeyMD5'] = base64_encode($md5);
+ } else {
+ $command[$prefix . 'SSECustomerKeyMD5'] = base64_encode(md5($key, true));
+ }
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/StreamWrapper.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/StreamWrapper.php
new file mode 100644
index 000000000..47861435b
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/StreamWrapper.php
@@ -0,0 +1,1005 @@
+/
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const ENV_USE_ARN_REGION = 'AWS_S3_USE_ARN_REGION';
+ const INI_USE_ARN_REGION = 's3_use_arn_region';
+ const DEFAULT_USE_ARN_REGION = true;
+
+ public static $cacheKey = 'aws_s3_use_arn_region_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback();
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['use_arn_region'])
+ && $config['use_arn_region'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['use_arn_region'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use config from environment variables, if available
+ $useArnRegion = getenv(self::ENV_USE_ARN_REGION);
+ if (!empty($useArnRegion)) {
+ return Promise\Create::promiseFor(
+ new Configuration($useArnRegion)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_USE_ARN_REGION);
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini($profile = null, $filename = null)
+ {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+
+ // Use INI_SCANNER_NORMAL instead of INI_SCANNER_TYPED for PHP 5.5 compatibility
+ $data = \Aws\parse_ini_file($filename, true, INI_SCANNER_NORMAL);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_USE_ARN_REGION])) {
+ return self::reject("Required S3 Use Arn Region config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ // INI_SCANNER_NORMAL parses false-y values as an empty string
+ if ($data[$profile][self::INI_USE_ARN_REGION] === "") {
+ $data[$profile][self::INI_USE_ARN_REGION] = false;
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration($data[$profile][self::INI_USE_ARN_REGION])
+ );
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback()
+ {
+ return function () {
+ return Promise\Create::promiseFor(
+ new Configuration(self::DEFAULT_USE_ARN_REGION)
+ );
+ };
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/UseArnRegion/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/UseArnRegion/Exception/ConfigurationException.php
new file mode 100644
index 000000000..15d06a9c2
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/S3/UseArnRegion/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+api = $api;
+ $this->parser = $parser;
+ }
+
+ public function __invoke(
+ CommandInterface $command,
+ ResponseInterface $response
+ ) {
+ $fn = $this->parser;
+ $result = $fn($command, $response);
+
+ //Skip this middleware if the operation doesn't have an httpChecksum
+ $op = $this->api->getOperation($command->getName());
+ $checksumInfo = isset($op['httpChecksum'])
+ ? $op['httpChecksum']
+ : [];
+ if (empty($checksumInfo)) {
+ return $result;
+ }
+
+ //Skip this middleware if the operation doesn't send back a checksum, or the user doesn't opt in
+ $checksumModeEnabledMember = isset($checksumInfo['requestValidationModeMember'])
+ ? $checksumInfo['requestValidationModeMember']
+ : "";
+ $checksumModeEnabled = isset($command[$checksumModeEnabledMember])
+ ? $command[$checksumModeEnabledMember]
+ : "";
+ $responseAlgorithms = isset($checksumInfo['responseAlgorithms'])
+ ? $checksumInfo['responseAlgorithms']
+ : [];
+ if (empty($responseAlgorithms)
+ || strtolower($checksumModeEnabled) !== "enabled"
+ ) {
+ return $result;
+ }
+
+ if (extension_loaded('awscrt')) {
+ $checksumPriority = ['CRC32C', 'CRC32', 'SHA1', 'SHA256'];
+ } else {
+ $checksumPriority = ['CRC32', 'SHA1', 'SHA256'];
+ }
+ $checksumsToCheck = array_intersect($responseAlgorithms, $checksumPriority);
+ $checksumValidationInfo = $this->validateChecksum($checksumsToCheck, $response);
+
+ if ($checksumValidationInfo['status'] == "SUCCEEDED") {
+ $result['ChecksumValidated'] = $checksumValidationInfo['checksum'];
+ } else if ($checksumValidationInfo['status'] == "FAILED"){
+ //Ignore failed validations on GetObject if it's a multipart get which returned a full multipart object
+ if ($command->getName() == "GetObject"
+ && !empty($checksumValidationInfo['checksumHeaderValue'])
+ ) {
+ $headerValue = $checksumValidationInfo['checksumHeaderValue'];
+ $lastDashPos = strrpos($headerValue, '-');
+ $endOfChecksum = substr($headerValue, $lastDashPos + 1);
+ if (is_numeric($endOfChecksum)
+ && intval($endOfChecksum) > 1
+ && intval($endOfChecksum) < 10000) {
+ return $result;
+ }
+ }
+ throw new S3Exception(
+ "Calculated response checksum did not match the expected value",
+ $command
+ );
+ }
+ return $result;
+ }
+
+ public function parseMemberFromStream(
+ StreamInterface $stream,
+ StructureShape $member,
+ $response
+ ) {
+ return $this->parser->parseMemberFromStream($stream, $member, $response);
+ }
+
+ /**
+ * @param $checksumPriority
+ * @param ResponseInterface $response
+ */
+ public function validateChecksum($checksumPriority, ResponseInterface $response)
+ {
+ $checksumToValidate = $this->chooseChecksumHeaderToValidate(
+ $checksumPriority,
+ $response
+ );
+ $validationStatus = "SKIPPED";
+ $checksumHeaderValue = null;
+ if (!empty($checksumToValidate)) {
+ $checksumHeaderValue = $response->getHeader(
+ 'x-amz-checksum-' . $checksumToValidate
+ );
+ if (isset($checksumHeaderValue)) {
+ $checksumHeaderValue = $checksumHeaderValue[0];
+ $calculatedChecksumValue = $this->getEncodedValue(
+ $checksumToValidate,
+ $response->getBody()
+ );
+ $validationStatus = $checksumHeaderValue == $calculatedChecksumValue
+ ? "SUCCEEDED"
+ : "FAILED";
+ }
+ }
+ return [
+ "status" => $validationStatus,
+ "checksum" => $checksumToValidate,
+ "checksumHeaderValue" => $checksumHeaderValue,
+ ];
+ }
+
+ /**
+ * @param $checksumPriority
+ * @param ResponseInterface $response
+ */
+ public function chooseChecksumHeaderToValidate(
+ $checksumPriority,
+ ResponseInterface $response
+ ) {
+ foreach ($checksumPriority as $checksum) {
+ $checksumHeader = 'x-amz-checksum-' . $checksum;
+ if ($response->hasHeader($checksumHeader)) {
+ return $checksum;
+ }
+ }
+ return null;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/SSO/Exception/SSOException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/SSO/Exception/SSOException.php
new file mode 100644
index 000000000..6392a3f05
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/SSO/Exception/SSOException.php
@@ -0,0 +1,9 @@
+isDevMode()){
+ return;
+ }
+
+ $composer = $event->getComposer();
+ $extra = $composer->getPackage()->getExtra();
+ $listedServices = isset($extra['aws/aws-sdk-php'])
+ ? $extra['aws/aws-sdk-php']
+ : [];
+
+ if ($listedServices) {
+ $serviceMapping = self::buildServiceMapping();
+ self::verifyListedServices($serviceMapping, $listedServices);
+ $filesystem = $filesystem ?: new Filesystem();
+ $vendorPath = $composer->getConfig()->get('vendor-dir');
+ self::removeServiceDirs(
+ $event,
+ $filesystem,
+ $serviceMapping,
+ $listedServices,
+ $vendorPath
+ );
+ } else {
+ throw new \InvalidArgumentException(
+ 'There are no services listed. Did you intend to use this script?'
+ );
+ }
+ }
+
+ public static function buildServiceMapping()
+ {
+ $serviceMapping = [];
+ $manifest = require(__DIR__ . '/../../data/manifest.json.php');
+
+ foreach ($manifest as $service => $attributes) {
+ $serviceMapping[$attributes['namespace']] = $service;
+ }
+
+ return $serviceMapping;
+ }
+
+ private static function verifyListedServices($serviceMapping, $listedServices)
+ {
+ foreach ($listedServices as $serviceToKeep) {
+ if (!isset($serviceMapping[$serviceToKeep])) {
+ throw new \InvalidArgumentException(
+ "'$serviceToKeep' is not a valid AWS service namespace. Please check spelling and casing."
+ );
+ }
+ }
+ }
+
+ private static function removeServiceDirs(
+ $event,
+ $filesystem,
+ $serviceMapping,
+ $listedServices,
+ $vendorPath
+ ) {
+ $unsafeForDeletion = ['Kms', 'S3', 'SSO', 'SSOOIDC', 'Sts'];
+ if (in_array('DynamoDbStreams', $listedServices)) {
+ $unsafeForDeletion[] = 'DynamoDb';
+ }
+
+ $clientPath = $vendorPath . '/aws/aws-sdk-php/src/';
+ $modelPath = $clientPath . 'data/';
+ $deleteCount = 0;
+
+ foreach ($serviceMapping as $clientName => $modelName) {
+ if (!in_array($clientName, $listedServices) &&
+ !in_array($clientName, $unsafeForDeletion)
+ ) {
+ $clientDir = $clientPath . $clientName;
+ $modelDir = $modelPath . $modelName;
+
+ if ($filesystem->exists([$clientDir, $modelDir])) {
+ $attempts = 3;
+ $delay = 2;
+
+ while ($attempts) {
+ try {
+ $filesystem->remove([$clientDir, $modelDir]);
+ $deleteCount++;
+ break;
+ } catch (IOException $e) {
+ $attempts--;
+
+ if (!$attempts) {
+ throw new IOException(
+ "Removal failed after several attempts. Last error: " . $e->getMessage()
+ );
+ } else {
+ sleep($delay);
+ $event->getIO()->write(
+ "Error encountered: " . $e->getMessage() . ". Retrying..."
+ );
+ $delay += 2;
+ }
+ }
+ }
+
+ }
+ }
+ }
+ $event->getIO()->write(
+ "Removed $deleteCount AWS service" . ($deleteCount === 1 ? '' : 's')
+ );
+ }
+}
\ No newline at end of file
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sdk.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sdk.php
new file mode 100644
index 000000000..f1a186185
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sdk.php
@@ -0,0 +1,934 @@
+args = $args;
+
+ if (!isset($args['handler']) && !isset($args['http_handler'])) {
+ $this->args['http_handler'] = default_http_handler();
+ }
+ }
+
+ public function __call($name, array $args)
+ {
+ $args = isset($args[0]) ? $args[0] : [];
+ if (strpos($name, 'createMultiRegion') === 0) {
+ return $this->createMultiRegionClient(substr($name, 17), $args);
+ }
+
+ if (strpos($name, 'create') === 0) {
+ return $this->createClient(substr($name, 6), $args);
+ }
+
+ throw new \BadMethodCallException("Unknown method: {$name}.");
+ }
+
+ /**
+ * Get a client by name using an array of constructor options.
+ *
+ * @param string $name Service name or namespace (e.g., DynamoDb, s3).
+ * @param array $args Arguments to configure the client.
+ *
+ * @return AwsClientInterface
+ * @throws \InvalidArgumentException if any required options are missing or
+ * the service is not supported.
+ * @see Aws\AwsClient::__construct for a list of available options for args.
+ */
+ public function createClient($name, array $args = [])
+ {
+ // Get information about the service from the manifest file.
+ $service = manifest($name);
+ $namespace = $service['namespace'];
+
+ // Instantiate the client class.
+ $client = "Aws\\{$namespace}\\{$namespace}Client";
+ return new $client($this->mergeArgs($namespace, $service, $args));
+ }
+
+ public function createMultiRegionClient($name, array $args = [])
+ {
+ // Get information about the service from the manifest file.
+ $service = manifest($name);
+ $namespace = $service['namespace'];
+
+ $klass = "Aws\\{$namespace}\\{$namespace}MultiRegionClient";
+ $klass = class_exists($klass) ? $klass : MultiRegionClient::class;
+
+ return new $klass($this->mergeArgs($namespace, $service, $args));
+ }
+
+ /**
+ * Clone existing SDK instance with ability to pass an associative array
+ * of extra client settings.
+ *
+ * @param array $args
+ *
+ * @return self
+ */
+ public function copy(array $args = [])
+ {
+ return new self($args + $this->args);
+ }
+
+ private function mergeArgs($namespace, array $manifest, array $args = [])
+ {
+ // Merge provided args with stored, service-specific args.
+ if (isset($this->args[$namespace])) {
+ $args += $this->args[$namespace];
+ }
+
+ // Provide the endpoint prefix in the args.
+ if (!isset($args['service'])) {
+ $args['service'] = $manifest['endpoint'];
+ }
+
+ return $args + $this->args;
+ }
+
+ /**
+ * Determine the endpoint prefix from a client namespace.
+ *
+ * @param string $name Namespace name
+ *
+ * @return string
+ * @internal
+ * @deprecated Use the `\Aws\manifest()` function instead.
+ */
+ public static function getEndpointPrefix($name)
+ {
+ return manifest($name)['endpoint'];
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/AnonymousSignature.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/AnonymousSignature.php
new file mode 100644
index 000000000..9ccc8df61
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/AnonymousSignature.php
@@ -0,0 +1,33 @@
+modifyTokenHeaders($request, $credentials);
+ $credentials = $this->getSigningCredentials($credentials);
+ return parent::signRequest($request, $credentials, $signingService);
+ }
+
+ public function presign(RequestInterface $request, CredentialsInterface $credentials, $expires, array $options = [])
+ {
+ $request = $this->modifyTokenHeaders($request, $credentials);
+ $credentials = $this->getSigningCredentials($credentials);
+ return parent::presign($request, $credentials, $expires, $options);
+ }
+
+ private function modifyTokenHeaders(
+ RequestInterface $request,
+ CredentialsInterface $credentials
+ ) {
+ //The x-amz-security-token header is not supported by s3 express
+ $request = $request->withoutHeader('X-Amz-Security-Token');
+ return $request->withHeader(
+ 'x-amz-s3session-token',
+ $credentials->getSecurityToken()
+ );
+ }
+
+ private function getSigningCredentials(CredentialsInterface $credentials)
+ {
+ return new Credentials(
+ $credentials->getAccessKeyId(),
+ $credentials->getSecretKey()
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/S3SignatureV4.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/S3SignatureV4.php
new file mode 100644
index 000000000..c99b281cf
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/S3SignatureV4.php
@@ -0,0 +1,125 @@
+hasHeader('x-amz-content-sha256')) {
+ $request = $request->withHeader(
+ 'x-amz-content-sha256',
+ $this->getPayload($request)
+ );
+ }
+ $useCrt =
+ strpos($request->getUri()->getHost(), "accesspoint.s3-global")
+ !== false;
+ if (!$useCrt) {
+ if (strpos($request->getUri()->getHost(), "s3-object-lambda")) {
+ return parent::signRequest($request, $credentials, "s3-object-lambda");
+ }
+ return parent::signRequest($request, $credentials);
+ }
+ $signingService = $signingService ?: 's3';
+ return $this->signWithV4a($credentials, $request, $signingService);
+ }
+
+ /**
+ * @param CredentialsInterface $credentials
+ * @param RequestInterface $request
+ * @param $signingService
+ * @param SigningConfigAWS|null $signingConfig
+ * @return RequestInterface
+ *
+ * Instantiates a separate sigv4a signing config. All services except S3
+ * use double encoding. All services except S3 require path normalization.
+ */
+ protected function signWithV4a(
+ CredentialsInterface $credentials,
+ RequestInterface $request,
+ $signingService,
+ ?SigningConfigAWS $signingConfig = null
+ ){
+ $this->verifyCRTLoaded();
+ $credentials_provider = $this->createCRTStaticCredentialsProvider($credentials);
+ $signingConfig = new SigningConfigAWS([
+ 'algorithm' => SigningAlgorithm::SIGv4_ASYMMETRIC,
+ 'signature_type' => SignatureType::HTTP_REQUEST_HEADERS,
+ 'credentials_provider' => $credentials_provider,
+ 'signed_body_value' => $this->getPayload($request),
+ 'region' => $this->region,
+ 'should_normalize_uri_path' => false,
+ 'use_double_uri_encode' => false,
+ 'service' => $signingService,
+ 'date' => time(),
+ ]);
+
+ return parent::signWithV4a($credentials, $request, $signingService, $signingConfig);
+ }
+
+ /**
+ * Always add a x-amz-content-sha-256 for data integrity.
+ *
+ * {@inheritdoc}
+ */
+ public function presign(
+ RequestInterface $request,
+ CredentialsInterface $credentials,
+ $expires,
+ array $options = []
+ ) {
+ if (!$request->hasHeader('x-amz-content-sha256')) {
+ $request = $request->withHeader(
+ 'X-Amz-Content-Sha256',
+ $this->getPresignedPayload($request)
+ );
+ }
+
+ if (strpos($request->getUri()->getHost(), "accesspoint.s3-global")) {
+ $request = $request->withHeader("x-amz-region-set", "*");
+ }
+
+ return parent::presign($request, $credentials, $expires, $options);
+ }
+
+ /**
+ * Override used to allow pre-signed URLs to be created for an
+ * in-determinate request payload.
+ */
+ protected function getPresignedPayload(RequestInterface $request)
+ {
+ return SignatureV4::UNSIGNED_PAYLOAD;
+ }
+
+ /**
+ * Amazon S3 does not double-encode the path component in the canonical request
+ */
+ protected function createCanonicalizedPath($path)
+ {
+ // Only remove one slash in case of keys that have a preceding slash
+ if (substr($path, 0, 1) === '/') {
+ $path = substr($path, 1);
+ }
+ return '/' . $path;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureInterface.php
new file mode 100644
index 000000000..cedfc45e8
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureInterface.php
@@ -0,0 +1,45 @@
+ true,
+ 's3control' => true,
+ 's3-outposts' => true,
+ 's3-object-lambda' => true,
+ 's3express' => true
+ ];
+
+ /**
+ * Resolves and signature provider and ensures a non-null return value.
+ *
+ * @param callable $provider Provider function to invoke.
+ * @param string $version Signature version.
+ * @param string $service Service name.
+ * @param string $region Region name.
+ *
+ * @return SignatureInterface
+ * @throws UnresolvedSignatureException
+ */
+ public static function resolve(callable $provider, $version, $service, $region)
+ {
+ $result = $provider($version, $service, $region);
+ if ($result instanceof SignatureInterface
+ || $result instanceof BearerTokenAuthorization
+ ) {
+ return $result;
+ }
+
+ throw new UnresolvedSignatureException(
+ "Unable to resolve a signature for $version/$service/$region.\n"
+ . "Valid signature versions include v4 and anonymous."
+ );
+ }
+
+ /**
+ * Default SDK signature provider.
+ *
+ * @return callable
+ */
+ public static function defaultProvider()
+ {
+ return self::memoize(self::version());
+ }
+
+ /**
+ * Creates a signature provider that caches previously created signature
+ * objects. The computed cache key is the concatenation of the version,
+ * service, and region.
+ *
+ * @param callable $provider Signature provider to wrap.
+ *
+ * @return callable
+ */
+ public static function memoize(callable $provider)
+ {
+ $cache = [];
+ return function ($version, $service, $region) use (&$cache, $provider) {
+ $key = "($version)($service)($region)";
+ if (!isset($cache[$key])) {
+ $cache[$key] = $provider($version, $service, $region);
+ }
+ return $cache[$key];
+ };
+ }
+
+ /**
+ * Creates signature objects from known signature versions.
+ *
+ * This provider currently recognizes the following signature versions:
+ *
+ * - v4: Signature version 4.
+ * - anonymous: Does not sign requests.
+ *
+ * @return callable
+ */
+ public static function version()
+ {
+ return function ($version, $service, $region) {
+ switch ($version) {
+ case 'v4-s3express':
+ return new S3ExpressSignature($service, $region);
+ case 's3v4':
+ case 'v4':
+ return !empty(self::$s3v4SignedServices[$service])
+ ? new S3SignatureV4($service, $region)
+ : new SignatureV4($service, $region);
+ case 'v4a':
+ return !empty(self::$s3v4SignedServices[$service])
+ ? new S3SignatureV4($service, $region, ['use_v4a' => true])
+ : new SignatureV4($service, $region, ['use_v4a' => true]);
+ case 'v4-unsigned-body':
+ return !empty(self::$s3v4SignedServices[$service])
+ ? new S3SignatureV4($service, $region, ['unsigned-body' => 'true'])
+ : new SignatureV4($service, $region, ['unsigned-body' => 'true']);
+ case 'bearer':
+ return new BearerTokenAuthorization();
+ case 'anonymous':
+ return new AnonymousSignature();
+ default:
+ return null;
+ }
+ };
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureTrait.php
new file mode 100644
index 000000000..5dcfe9dfa
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureTrait.php
@@ -0,0 +1,48 @@
+cache[$k])) {
+ // Clear the cache when it reaches 50 entries
+ if (++$this->cacheSize > 50) {
+ $this->cache = [];
+ $this->cacheSize = 0;
+ }
+
+ $dateKey = hash_hmac(
+ 'sha256',
+ $shortDate,
+ "AWS4{$secretKey}",
+ true
+ );
+ $regionKey = hash_hmac('sha256', $region, $dateKey, true);
+ $serviceKey = hash_hmac('sha256', $service, $regionKey, true);
+ $this->cache[$k] = hash_hmac(
+ 'sha256',
+ 'aws4_request',
+ $serviceKey,
+ true
+ );
+ }
+ return $this->cache[$k];
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureV4.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureV4.php
new file mode 100644
index 000000000..74c3940fc
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Signature/SignatureV4.php
@@ -0,0 +1,584 @@
+ true,
+ 'content-type' => true,
+ 'content-length' => true,
+ 'expect' => true,
+ 'max-forwards' => true,
+ 'pragma' => true,
+ 'range' => true,
+ 'te' => true,
+ 'if-match' => true,
+ 'if-none-match' => true,
+ 'if-modified-since' => true,
+ 'if-unmodified-since' => true,
+ 'if-range' => true,
+ 'accept' => true,
+ 'authorization' => true,
+ 'proxy-authorization' => true,
+ 'from' => true,
+ 'referer' => true,
+ 'user-agent' => true,
+ 'X-Amz-User-Agent' => true,
+ 'x-amzn-trace-id' => true,
+ 'aws-sdk-invocation-id' => true,
+ 'aws-sdk-retry' => true,
+ ];
+ }
+
+ /**
+ * @param string $service Service name to use when signing
+ * @param string $region Region name to use when signing
+ * @param array $options Array of configuration options used when signing
+ * - unsigned-body: Flag to make request have unsigned payload.
+ * Unsigned body is used primarily for streaming requests.
+ */
+ public function __construct($service, $region, array $options = [])
+ {
+ $this->service = $service;
+ $this->region = $region;
+ $this->unsigned = isset($options['unsigned-body']) ? $options['unsigned-body'] : false;
+ $this->useV4a = isset($options['use_v4a']) && $options['use_v4a'] === true;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function signRequest(
+ RequestInterface $request,
+ CredentialsInterface $credentials,
+ $signingService = null
+ ) {
+ $ldt = gmdate(self::ISO8601_BASIC);
+ $sdt = substr($ldt, 0, 8);
+ $parsed = $this->parseRequest($request);
+ $parsed['headers']['X-Amz-Date'] = [$ldt];
+
+ if ($token = $credentials->getSecurityToken()) {
+ $parsed['headers']['X-Amz-Security-Token'] = [$token];
+ }
+ $service = isset($signingService) ? $signingService : $this->service;
+
+ if ($this->useV4a) {
+ return $this->signWithV4a($credentials, $request, $service);
+ }
+
+ $cs = $this->createScope($sdt, $this->region, $service);
+ $payload = $this->getPayload($request);
+
+ if ($payload == self::UNSIGNED_PAYLOAD) {
+ $parsed['headers'][self::AMZ_CONTENT_SHA256_HEADER] = [$payload];
+ }
+
+ $context = $this->createContext($parsed, $payload);
+ $toSign = $this->createStringToSign($ldt, $cs, $context['creq']);
+ $signingKey = $this->getSigningKey(
+ $sdt,
+ $this->region,
+ $service,
+ $credentials->getSecretKey()
+ );
+ $signature = hash_hmac('sha256', $toSign, $signingKey);
+ $parsed['headers']['Authorization'] = [
+ "AWS4-HMAC-SHA256 "
+ . "Credential={$credentials->getAccessKeyId()}/{$cs}, "
+ . "SignedHeaders={$context['headers']}, Signature={$signature}"
+ ];
+
+ return $this->buildRequest($parsed);
+ }
+
+ /**
+ * Get the headers that were used to pre-sign the request.
+ * Used for the X-Amz-SignedHeaders header.
+ *
+ * @param array $headers
+ * @return array
+ */
+ private function getPresignHeaders(array $headers)
+ {
+ $presignHeaders = [];
+ $blacklist = $this->getHeaderBlacklist();
+ foreach ($headers as $name => $value) {
+ $lName = strtolower($name);
+ if (!isset($blacklist[$lName])
+ && $name !== self::AMZ_CONTENT_SHA256_HEADER
+ ) {
+ $presignHeaders[] = $lName;
+ }
+ }
+ return $presignHeaders;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function presign(
+ RequestInterface $request,
+ CredentialsInterface $credentials,
+ $expires,
+ array $options = []
+ ) {
+ $startTimestamp = isset($options['start_time'])
+ ? $this->convertToTimestamp($options['start_time'], null)
+ : time();
+ $expiresTimestamp = $this->convertToTimestamp($expires, $startTimestamp);
+
+ if ($this->useV4a) {
+ return $this->presignWithV4a(
+ $request,
+ $credentials,
+ $this->convertExpires($expiresTimestamp, $startTimestamp)
+ );
+ }
+
+ $parsed = $this->createPresignedRequest($request, $credentials);
+
+ $payload = $this->getPresignedPayload($request);
+ $httpDate = gmdate(self::ISO8601_BASIC, $startTimestamp);
+ $shortDate = substr($httpDate, 0, 8);
+ $scope = $this->createScope($shortDate, $this->region, $this->service);
+ $credential = $credentials->getAccessKeyId() . '/' . $scope;
+ if ($credentials->getSecurityToken()) {
+ unset($parsed['headers']['X-Amz-Security-Token']);
+ }
+ $parsed['query']['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';
+ $parsed['query']['X-Amz-Credential'] = $credential;
+ $parsed['query']['X-Amz-Date'] = gmdate('Ymd\THis\Z', $startTimestamp);
+ $parsed['query']['X-Amz-SignedHeaders'] = implode(';', $this->getPresignHeaders($parsed['headers']));
+ $parsed['query']['X-Amz-Expires'] = $this->convertExpires($expiresTimestamp, $startTimestamp);
+ $context = $this->createContext($parsed, $payload);
+ $stringToSign = $this->createStringToSign($httpDate, $scope, $context['creq']);
+ $key = $this->getSigningKey(
+ $shortDate,
+ $this->region,
+ $this->service,
+ $credentials->getSecretKey()
+ );
+ $parsed['query']['X-Amz-Signature'] = hash_hmac('sha256', $stringToSign, $key);
+
+ return $this->buildRequest($parsed);
+ }
+
+ /**
+ * Converts a POST request to a GET request by moving POST fields into the
+ * query string.
+ *
+ * Useful for pre-signing query protocol requests.
+ *
+ * @param RequestInterface $request Request to clone
+ *
+ * @return RequestInterface
+ * @throws \InvalidArgumentException if the method is not POST
+ */
+ public static function convertPostToGet(RequestInterface $request, $additionalQueryParams = "")
+ {
+ if ($request->getMethod() !== 'POST') {
+ throw new \InvalidArgumentException('Expected a POST request but '
+ . 'received a ' . $request->getMethod() . ' request.');
+ }
+
+ $sr = $request->withMethod('GET')
+ ->withBody(Psr7\Utils::streamFor(''))
+ ->withoutHeader('Content-Type')
+ ->withoutHeader('Content-Length');
+
+ // Move POST fields to the query if they are present
+ if ($request->getHeaderLine('Content-Type') === 'application/x-www-form-urlencoded') {
+ $body = (string) $request->getBody() . $additionalQueryParams;
+ $sr = $sr->withUri($sr->getUri()->withQuery($body));
+ }
+
+ return $sr;
+ }
+
+ protected function getPayload(RequestInterface $request)
+ {
+ if ($this->unsigned && $request->getUri()->getScheme() == 'https') {
+ return self::UNSIGNED_PAYLOAD;
+ }
+ // Calculate the request signature payload
+ if ($request->hasHeader(self::AMZ_CONTENT_SHA256_HEADER)) {
+ // Handle streaming operations (e.g. Glacier.UploadArchive)
+ return $request->getHeaderLine(self::AMZ_CONTENT_SHA256_HEADER);
+ }
+
+ if (!$request->getBody()->isSeekable()) {
+ throw new CouldNotCreateChecksumException('sha256');
+ }
+
+ try {
+ return Psr7\Utils::hash($request->getBody(), 'sha256');
+ } catch (\Exception $e) {
+ throw new CouldNotCreateChecksumException('sha256', $e);
+ }
+ }
+
+ protected function getPresignedPayload(RequestInterface $request)
+ {
+ return $this->getPayload($request);
+ }
+
+ protected function createCanonicalizedPath($path)
+ {
+ $doubleEncoded = rawurlencode(ltrim($path, '/'));
+
+ return '/' . str_replace('%2F', '/', $doubleEncoded);
+ }
+
+ private function createStringToSign($longDate, $credentialScope, $creq)
+ {
+ $hash = hash('sha256', $creq);
+
+ return "AWS4-HMAC-SHA256\n{$longDate}\n{$credentialScope}\n{$hash}";
+ }
+
+ private function createPresignedRequest(
+ RequestInterface $request,
+ CredentialsInterface $credentials
+ ) {
+ $parsedRequest = $this->parseRequest($request);
+
+ // Make sure to handle temporary credentials
+ if ($token = $credentials->getSecurityToken()) {
+ $parsedRequest['headers']['X-Amz-Security-Token'] = [$token];
+ }
+
+ return $this->moveHeadersToQuery($parsedRequest);
+ }
+
+ /**
+ * @param array $parsedRequest
+ * @param string $payload Hash of the request payload
+ * @return array Returns an array of context information
+ */
+ private function createContext(array $parsedRequest, $payload)
+ {
+ $blacklist = $this->getHeaderBlacklist();
+
+ // Normalize the path as required by SigV4
+ $canon = $parsedRequest['method'] . "\n"
+ . $this->createCanonicalizedPath($parsedRequest['path']) . "\n"
+ . $this->getCanonicalizedQuery($parsedRequest['query']) . "\n";
+
+ // Case-insensitively aggregate all of the headers.
+ $aggregate = [];
+ foreach ($parsedRequest['headers'] as $key => $values) {
+ $key = strtolower($key);
+ if (!isset($blacklist[$key])) {
+ foreach ($values as $v) {
+ $aggregate[$key][] = $v;
+ }
+ }
+ }
+
+ ksort($aggregate);
+ $canonHeaders = [];
+ foreach ($aggregate as $k => $v) {
+ if (count($v) > 0) {
+ sort($v);
+ }
+ $canonHeaders[] = $k . ':' . preg_replace('/\s+/', ' ', implode(',', $v));
+ }
+
+ $signedHeadersString = implode(';', array_keys($aggregate));
+ $canon .= implode("\n", $canonHeaders) . "\n\n"
+ . $signedHeadersString . "\n"
+ . $payload;
+
+ return ['creq' => $canon, 'headers' => $signedHeadersString];
+ }
+
+ private function getCanonicalizedQuery(array $query)
+ {
+ unset($query['X-Amz-Signature']);
+
+ if (!$query) {
+ return '';
+ }
+
+ $qs = '';
+ ksort($query);
+ foreach ($query as $k => $v) {
+ if (!is_array($v)) {
+ $qs .= rawurlencode($k) . '=' . rawurlencode($v !== null ? $v : '') . '&';
+ } else {
+ sort($v);
+ foreach ($v as $value) {
+ $qs .= rawurlencode($k) . '=' . rawurlencode($value !== null ? $value : '') . '&';
+ }
+ }
+ }
+
+ return substr($qs, 0, -1);
+ }
+
+ private function convertToTimestamp($dateValue, $relativeTimeBase = null)
+ {
+ if ($dateValue instanceof \DateTimeInterface) {
+ $timestamp = $dateValue->getTimestamp();
+ } elseif (!is_numeric($dateValue)) {
+ $timestamp = strtotime($dateValue,
+ $relativeTimeBase === null ? time() : $relativeTimeBase
+ );
+ } else {
+ $timestamp = $dateValue;
+ }
+
+ return $timestamp;
+ }
+
+ private function convertExpires($expiresTimestamp, $startTimestamp)
+ {
+ $duration = $expiresTimestamp - $startTimestamp;
+
+ // Ensure that the duration of the signature is not longer than a week
+ if ($duration > 604800) {
+ throw new \InvalidArgumentException('The expiration date of a '
+ . 'signature version 4 presigned URL must be less than one '
+ . 'week');
+ }
+
+ return $duration;
+ }
+
+ private function moveHeadersToQuery(array $parsedRequest)
+ {
+ //x-amz-user-agent shouldn't be put in a query param
+ unset($parsedRequest['headers']['X-Amz-User-Agent']);
+
+ foreach ($parsedRequest['headers'] as $name => $header) {
+ $lname = strtolower($name);
+ if (substr($lname, 0, 5) == 'x-amz') {
+ $parsedRequest['query'][$name] = $header;
+ }
+ $blacklist = $this->getHeaderBlacklist();
+ if (isset($blacklist[$lname])
+ || $lname === strtolower(self::AMZ_CONTENT_SHA256_HEADER)
+ ) {
+ unset($parsedRequest['headers'][$name]);
+ }
+ }
+
+ return $parsedRequest;
+ }
+
+ private function parseRequest(RequestInterface $request)
+ {
+ // Clean up any previously set headers.
+ /** @var RequestInterface $request */
+ $request = $request
+ ->withoutHeader('X-Amz-Date')
+ ->withoutHeader('Date')
+ ->withoutHeader('Authorization');
+ $uri = $request->getUri();
+
+ return [
+ 'method' => $request->getMethod(),
+ 'path' => $uri->getPath(),
+ 'query' => Psr7\Query::parse($uri->getQuery()),
+ 'uri' => $uri,
+ 'headers' => $request->getHeaders(),
+ 'body' => $request->getBody(),
+ 'version' => $request->getProtocolVersion()
+ ];
+ }
+
+ private function buildRequest(array $req)
+ {
+ if ($req['query']) {
+ $req['uri'] = $req['uri']->withQuery(Psr7\Query::build($req['query']));
+ }
+
+ return new Psr7\Request(
+ $req['method'],
+ $req['uri'],
+ $req['headers'],
+ $req['body'],
+ $req['version']
+ );
+ }
+
+ protected function verifyCRTLoaded()
+ {
+ if (!extension_loaded('awscrt')) {
+ throw new CommonRuntimeException(
+ "AWS Common Runtime for PHP is required to use Signature V4A"
+ . ". Please install it using the instructions found at"
+ . " https://github.com/aws/aws-sdk-php/blob/master/CRT_INSTRUCTIONS.md"
+ );
+ }
+ }
+
+ protected function createCRTStaticCredentialsProvider($credentials)
+ {
+ return new StaticCredentialsProvider([
+ 'access_key_id' => $credentials->getAccessKeyId(),
+ 'secret_access_key' => $credentials->getSecretKey(),
+ 'session_token' => $credentials->getSecurityToken(),
+ ]);
+ }
+
+ private function removeIllegalV4aHeaders(&$request)
+ {
+ static $illegalV4aHeaders = [
+ self::AMZ_CONTENT_SHA256_HEADER,
+ 'aws-sdk-invocation-id',
+ 'aws-sdk-retry',
+ 'x-amz-region-set',
+ 'transfer-encoding'
+ ];
+ $storedHeaders = [];
+
+ foreach ($illegalV4aHeaders as $header) {
+ if ($request->hasHeader($header)) {
+ $storedHeaders[$header] = $request->getHeader($header);
+ $request = $request->withoutHeader($header);
+ }
+ }
+
+ return $storedHeaders;
+ }
+
+ private function CRTRequestFromGuzzleRequest($request)
+ {
+ return new Request(
+ $request->getMethod(),
+ (string) $request->getUri(),
+ [], //leave empty as the query is parsed from the uri object
+ array_map(function ($header) {return $header[0];}, $request->getHeaders())
+ );
+ }
+
+ /**
+ * @param CredentialsInterface $credentials
+ * @param RequestInterface $request
+ * @param $signingService
+ * @param SigningConfigAWS|null $signingConfig
+ * @return RequestInterface
+ */
+ protected function signWithV4a(
+ CredentialsInterface $credentials,
+ RequestInterface $request,
+ $signingService,
+ ?SigningConfigAWS $signingConfig = null
+ ){
+ $this->verifyCRTLoaded();
+ $signingConfig = $signingConfig ?? new SigningConfigAWS([
+ 'algorithm' => SigningAlgorithm::SIGv4_ASYMMETRIC,
+ 'signature_type' => SignatureType::HTTP_REQUEST_HEADERS,
+ 'credentials_provider' => $this->createCRTStaticCredentialsProvider($credentials),
+ 'signed_body_value' => $this->getPayload($request),
+ 'should_normalize_uri_path' => true,
+ 'use_double_uri_encode' => true,
+ 'region' => $this->region,
+ 'service' => $signingService,
+ 'date' => time(),
+ ]);
+
+ $removedIllegalHeaders = $this->removeIllegalV4aHeaders($request);
+ $http_request = $this->CRTRequestFromGuzzleRequest($request);
+
+ Signing::signRequestAws(
+ Signable::fromHttpRequest($http_request),
+ $signingConfig, function ($signing_result, $error_code) use (&$http_request) {
+ $signing_result->applyToHttpRequest($http_request);
+ });
+ foreach ($removedIllegalHeaders as $header => $value) {
+ $request = $request->withHeader($header, $value);
+ }
+
+ $sigV4AHeaders = $http_request->headers();
+ foreach ($sigV4AHeaders->toArray() as $h => $v) {
+ $request = $request->withHeader($h, $v);
+ }
+
+ return $request;
+ }
+
+ protected function presignWithV4a(
+ RequestInterface $request,
+ CredentialsInterface $credentials,
+ $expires
+ )
+ {
+ $this->verifyCRTLoaded();
+ $credentials_provider = $this->createCRTStaticCredentialsProvider($credentials);
+ $signingConfig = new SigningConfigAWS([
+ 'algorithm' => SigningAlgorithm::SIGv4_ASYMMETRIC,
+ 'signature_type' => SignatureType::HTTP_REQUEST_QUERY_PARAMS,
+ 'credentials_provider' => $credentials_provider,
+ 'signed_body_value' => $this->getPresignedPayload($request),
+ 'region' => "*",
+ 'service' => $this->service,
+ 'date' => time(),
+ 'expiration_in_seconds' => $expires
+ ]);
+
+ $this->removeIllegalV4aHeaders($request);
+ foreach ($this->getHeaderBlacklist() as $headerName => $headerValue) {
+ if ($request->hasHeader($headerName)) {
+ $request = $request->withoutHeader($headerName);
+ }
+ }
+
+ $http_request = $this->CRTRequestFromGuzzleRequest($request);
+ Signing::signRequestAws(
+ Signable::fromHttpRequest($http_request),
+ $signingConfig, function ($signing_result, $error_code) use (&$http_request) {
+ $signing_result->applyToHttpRequest($http_request);
+ });
+
+ return $request->withUri(
+ new Psr7\Uri($http_request->pathAndQuery())
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sns/Exception/SnsException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sns/Exception/SnsException.php
new file mode 100644
index 000000000..cc2c245ce
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sns/Exception/SnsException.php
@@ -0,0 +1,9 @@
+nextHandler = $nextHandler;
+ $this->service = $service;
+ }
+
+ public function __invoke(CommandInterface $command, RequestInterface $request)
+ {
+ $nextHandler = $this->nextHandler;
+
+ $operation = $this->service->getOperation($command->getName());
+ $contentLength = $request->getHeader('content-length');
+ $hasStreaming = false;
+ $requiresLength = false;
+
+ // Check if any present input member is a stream and requires the
+ // content length
+ foreach ($operation->getInput()->getMembers() as $name => $member) {
+ if (!empty($member['streaming']) && isset($command[$name])) {
+ $hasStreaming = true;
+ if (!empty($member['requiresLength'])) {
+ $requiresLength = true;
+ }
+ }
+ }
+
+ if ($hasStreaming) {
+
+ // Add 'transfer-encoding' header if payload size not required to
+ // to be calculated and not already known
+ if (empty($requiresLength)
+ && empty($contentLength)
+ && isset($operation['authtype'])
+ && $operation['authtype'] == 'v4-unsigned-body'
+ ) {
+ $request = $request->withHeader('transfer-encoding', 'chunked');
+
+ // Otherwise, make sure 'content-length' header is added
+ } else {
+ if (empty($contentLength)) {
+ $size = $request->getBody()->getSize();
+ if (is_null($size)) {
+ throw new IncalculablePayloadException('Payload'
+ . ' content length is required and can not be'
+ . ' calculated.');
+ }
+ $request = $request->withHeader(
+ 'content-length',
+ $size
+ );
+ }
+ }
+ }
+
+ return $nextHandler($command, $request);
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/Exception/StsException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/Exception/StsException.php
new file mode 100644
index 000000000..81cff402e
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/Exception/StsException.php
@@ -0,0 +1,9 @@
+endpointsType = strtolower($endpointsType);
+ $this->isFallback = $isFallback;
+ if (!in_array($this->endpointsType, ['legacy', 'regional'])) {
+ throw new \InvalidArgumentException(
+ "Configuration parameter must either be 'legacy' or 'regional'."
+ );
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getEndpointsType()
+ {
+ return $this->endpointsType;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function toArray()
+ {
+ return [
+ 'endpoints_type' => $this->getEndpointsType()
+ ];
+ }
+
+ public function isFallback()
+ {
+ return $this->isFallback;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationInterface.php
new file mode 100644
index 000000000..41d543b8c
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationInterface.php
@@ -0,0 +1,22 @@
+
+ * use Aws\Sts\RegionalEndpoints\ConfigurationProvider;
+ * $provider = ConfigurationProvider::defaultProvider();
+ * // Returns a ConfigurationInterface or throws.
+ * $config = $provider()->wait();
+ *
+ *
+ * Configuration providers can be composed to create configuration using
+ * conditional logic that can create different configurations in different
+ * environments. You can compose multiple providers into a single provider using
+ * {@see \Aws\Sts\RegionalEndpoints\ConfigurationProvider::chain}. This function
+ * accepts providers as variadic arguments and returns a new function that will
+ * invoke each provider until a successful configuration is returned.
+ *
+ *
+ * // First try an INI file at this location.
+ * $a = ConfigurationProvider::ini(null, '/path/to/file.ini');
+ * // Then try an INI file at this location.
+ * $b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
+ * // Then try loading from environment variables.
+ * $c = ConfigurationProvider::env();
+ * // Combine the three providers together.
+ * $composed = ConfigurationProvider::chain($a, $b, $c);
+ * // Returns a promise that is fulfilled with a configuration or throws.
+ * $promise = $composed();
+ * // Wait on the configuration to resolve.
+ * $config = $promise->wait();
+ *
+ */
+class ConfigurationProvider extends AbstractConfigurationProvider
+ implements ConfigurationProviderInterface
+{
+ const DEFAULT_ENDPOINTS_TYPE = 'legacy';
+ const ENV_ENDPOINTS_TYPE = 'AWS_STS_REGIONAL_ENDPOINTS';
+ const ENV_PROFILE = 'AWS_PROFILE';
+ const INI_ENDPOINTS_TYPE = 'sts_regional_endpoints';
+
+ public static $cacheKey = 'aws_sts_regional_endpoints_config';
+
+ protected static $interfaceClass = ConfigurationInterface::class;
+ protected static $exceptionClass = ConfigurationException::class;
+
+ /**
+ * Create a default config provider that first checks for environment
+ * variables, then checks for a specified profile in the environment-defined
+ * config file location (env variable is 'AWS_CONFIG_FILE', file location
+ * defaults to ~/.aws/config), then checks for the "default" profile in the
+ * environment-defined config file location, and failing those uses a default
+ * fallback set of configuration options.
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided config options.
+ *
+ * @param array $config
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+ $configProviders = [self::env()];
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] != false
+ ) {
+ $configProviders[] = self::ini();
+ }
+ $configProviders[] = self::fallback();
+
+ $memo = self::memoize(
+ call_user_func_array([ConfigurationProvider::class, 'chain'], $configProviders)
+ );
+
+ if (isset($config['sts_regional_endpoints'])
+ && $config['sts_regional_endpoints'] instanceof CacheInterface
+ ) {
+ return self::cache($memo, $config['sts_regional_endpoints'], self::$cacheKey);
+ }
+
+ return $memo;
+ }
+
+ /**
+ * Provider that creates config from environment variables.
+ *
+ * @return callable
+ */
+ public static function env()
+ {
+ return function () {
+ // Use config from environment variables, if available
+ $endpointsType = getenv(self::ENV_ENDPOINTS_TYPE);
+ if (!empty($endpointsType)) {
+ return Promise\Create::promiseFor(
+ new Configuration($endpointsType)
+ );
+ }
+
+ return self::reject('Could not find environment variable config'
+ . ' in ' . self::ENV_ENDPOINTS_TYPE);
+ };
+ }
+
+ /**
+ * Fallback config options when other sources are not set.
+ *
+ * @return callable
+ */
+ public static function fallback()
+ {
+ return function () {
+ return Promise\Create::promiseFor(
+ new Configuration(self::DEFAULT_ENDPOINTS_TYPE, true)
+ );
+ };
+ }
+
+ /**
+ * Config provider that creates config using a config file whose location
+ * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
+ * ~/.aws/config if not specified
+ *
+ * @param string|null $profile Profile to use. If not specified will use
+ * the "default" profile.
+ * @param string|null $filename If provided, uses a custom filename rather
+ * than looking in the default directory.
+ *
+ * @return callable
+ */
+ public static function ini(
+ $profile = null,
+ $filename = null
+ ) {
+ $filename = $filename ?: (self::getDefaultConfigFilename());
+ $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');
+
+ return function () use ($profile, $filename) {
+ if (!@is_readable($filename)) {
+ return self::reject("Cannot read configuration from $filename");
+ }
+ $data = \Aws\parse_ini_file($filename, true);
+ if ($data === false) {
+ return self::reject("Invalid config file: $filename");
+ }
+ if (!isset($data[$profile])) {
+ return self::reject("'$profile' not found in config file");
+ }
+ if (!isset($data[$profile][self::INI_ENDPOINTS_TYPE])) {
+ return self::reject("Required STS regional endpoints config values
+ not present in INI profile '{$profile}' ({$filename})");
+ }
+
+ return Promise\Create::promiseFor(
+ new Configuration($data[$profile][self::INI_ENDPOINTS_TYPE])
+ );
+ };
+ }
+
+ /**
+ * Unwraps a configuration object in whatever valid form it is in,
+ * always returning a ConfigurationInterface object.
+ *
+ * @param mixed $config
+ * @return ConfigurationInterface
+ * @throws \InvalidArgumentException
+ */
+ public static function unwrap($config)
+ {
+ if (is_callable($config)) {
+ $config = $config();
+ }
+ if ($config instanceof PromiseInterface) {
+ $config = $config->wait();
+ }
+ if ($config instanceof ConfigurationInterface) {
+ return $config;
+ }
+ if (is_string($config)) {
+ return new Configuration($config);
+ }
+ if (is_array($config) && isset($config['endpoints_type'])) {
+ return new Configuration($config['endpoints_type']);
+ }
+
+ throw new \InvalidArgumentException('Not a valid STS regional endpoints '
+ . 'configuration argument.');
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Exception/ConfigurationException.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Exception/ConfigurationException.php
new file mode 100644
index 000000000..668426672
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Exception/ConfigurationException.php
@@ -0,0 +1,14 @@
+addBuiltIns($args);
+ parent::__construct($args);
+ }
+
+ /**
+ * Creates credentials from the result of an STS operations
+ *
+ * @param Result $result Result of an STS operation
+ *
+ * @return Credentials
+ * @throws \InvalidArgumentException if the result contains no credentials
+ */
+ public function createCredentials(Result $result, $source=null)
+ {
+ if (!$result->hasKey('Credentials')) {
+ throw new \InvalidArgumentException('Result contains no credentials');
+ }
+
+ $accountId = null;
+ if ($result->hasKey('AssumedRoleUser')) {
+ $parsedArn = ArnParser::parse($result->get('AssumedRoleUser')['Arn']);
+ $accountId = $parsedArn->getAccountId();
+ } elseif ($result->hasKey('FederatedUser')) {
+ $parsedArn = ArnParser::parse($result->get('FederatedUser')['Arn']);
+ $accountId = $parsedArn->getAccountId();
+ }
+
+ $credentials = $result['Credentials'];
+ $expiration = isset($credentials['Expiration']) && $credentials['Expiration'] instanceof \DateTimeInterface
+ ? (int) $credentials['Expiration']->format('U')
+ : null;
+
+ return new Credentials(
+ $credentials['AccessKeyId'],
+ $credentials['SecretAccessKey'],
+ isset($credentials['SessionToken']) ? $credentials['SessionToken'] : null,
+ $expiration,
+ $accountId,
+ $source
+ );
+ }
+
+ /**
+ * Adds service-specific client built-in value
+ *
+ * @return void
+ */
+ private function addBuiltIns($args)
+ {
+ $key = 'AWS::STS::UseGlobalEndpoint';
+ $result = $args['sts_regional_endpoints'] instanceof \Closure ?
+ $args['sts_regional_endpoints']()->wait() : $args['sts_regional_endpoints'];
+
+ if (is_string($result)) {
+ if ($result === 'regional') {
+ $value = false;
+ } else if ($result === 'legacy') {
+ $value = true;
+ } else {
+ return;
+ }
+ } else {
+ if ($result->getEndpointsType() === 'regional') {
+ $value = false;
+ } else {
+ $value = true;
+ }
+ }
+
+ $this->clientBuiltIns[$key] = $value;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/BearerTokenAuthorization.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/BearerTokenAuthorization.php
new file mode 100644
index 000000000..7d830f3b2
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/BearerTokenAuthorization.php
@@ -0,0 +1,33 @@
+getToken())) {
+ throw new InvalidArgumentException(
+ "Cannot authorize a request with an empty token"
+ );
+ }
+ $accessToken = $token->getToken();
+ return $request->withHeader('Authorization', "Bearer {$accessToken}");
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/ParsesIniTrait.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/ParsesIniTrait.php
new file mode 100644
index 000000000..b96a6d97b
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/ParsesIniTrait.php
@@ -0,0 +1,44 @@
+ $profile) {
+ // standardize config profile names
+ $name = str_replace('profile ', '', $name);
+ $profileData[$name] = $profile;
+ }
+
+ return $profileData;
+ }
+
+ /**
+ * Gets the environment's HOME directory if available.
+ *
+ * @return null|string
+ */
+ private static function getHomeDir()
+ {
+ // On Linux/Unix-like systems, use the HOME environment variable
+ if ($homeDir = getenv('HOME')) {
+ return $homeDir;
+ }
+
+ // Get the HOMEDRIVE and HOMEPATH values for Windows hosts
+ $homeDrive = getenv('HOMEDRIVE');
+ $homePath = getenv('HOMEPATH');
+
+ return ($homeDrive && $homePath) ? $homeDrive . $homePath : null;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/RefreshableTokenProviderInterface.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/RefreshableTokenProviderInterface.php
new file mode 100644
index 000000000..4c88f3f02
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/RefreshableTokenProviderInterface.php
@@ -0,0 +1,23 @@
+refreshToken = $refreshToken;
+ $this->clientId = $clientId;
+ $this->clientSecret = $clientSecret;
+ $this->registrationExpiresAt = $registrationExpiresAt;
+ $this->region = $region;
+ $this->startUrl = $startUrl;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isExpired()
+ {
+ if (isset($this->registrationExpiresAt)
+ && time() >= $this->registrationExpiresAt
+ ) {
+ return false;
+ }
+ return $this->expires !== null && time() >= $this->expires;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getRefreshToken()
+ {
+ return $this->refreshToken;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getClientId()
+ {
+ return $this->clientId;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getClientSecret()
+ {
+ return $this->clientSecret;
+ }
+
+ /**
+ * @return int|null
+ */
+ public function getRegistrationExpiresAt()
+ {
+ return $this->registrationExpiresAt;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getRegion()
+ {
+ return $this->region;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getStartUrl()
+ {
+ return $this->startUrl;
+ }
+
+ /**
+ * Creates an instance of SsoToken from a token data.
+ *
+ * @param $tokenData
+ *
+ * @return SsoToken
+ */
+ public static function fromTokenData($tokenData): SsoToken
+ {
+ return new SsoToken(
+ $tokenData['accessToken'],
+ \strtotime($tokenData['expiresAt']),
+ isset($tokenData['refreshToken']) ? $tokenData['refreshToken'] : null,
+ isset($tokenData['clientId']) ? $tokenData['clientId'] : null,
+ isset($tokenData['clientSecret']) ? $tokenData['clientSecret'] : null,
+ isset($tokenData['registrationExpiresAt']) ? $tokenData['registrationExpiresAt'] : null,
+ isset($tokenData['region']) ? $tokenData['region'] : null,
+ isset($tokenData['startUrl']) ? $tokenData['startUrl'] : null
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/SsoTokenProvider.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/SsoTokenProvider.php
new file mode 100644
index 000000000..13345a7cd
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/SsoTokenProvider.php
@@ -0,0 +1,280 @@
+profileName = $this->resolveProfileName($profileName);
+ $this->configFilePath = $this->resolveConfigFile($configFilePath);
+ $this->ssoOidcClient = $ssoOidcClient;
+ }
+
+ /**
+ * This method resolves the profile name to be used. The
+ * profile provided as instantiation argument takes precedence,
+ * followed by AWS_PROFILE env variable, otherwise `default` is
+ * used.
+ *
+ * @param string|null $argProfileName The profile provided as argument.
+ *
+ * @return string
+ */
+ private function resolveProfileName($argProfileName): string
+ {
+ if (empty($argProfileName)) {
+ return getenv(self::ENV_PROFILE) ?: 'default';
+ } else {
+ return $argProfileName;
+ }
+ }
+
+ /**
+ * This method resolves the config file from where the profiles
+ * are going to be loaded from. If $argFileName is not empty then,
+ * it takes precedence over the default config file location.
+ *
+ * @param string|null $argConfigFilePath The config path provided as argument.
+ *
+ * @return string
+ */
+ private function resolveConfigFile($argConfigFilePath): string
+ {
+ if (empty($argConfigFilePath)) {
+ return self::getHomeDir() . '/.aws/config';
+ } else{
+ return $argConfigFilePath;
+ }
+ }
+
+ /**
+ * Loads cached sso credentials.
+ *
+ * @return Promise\PromiseInterface
+ */
+ public function __invoke()
+ {
+ return Promise\Coroutine::of(function () {
+ if (empty($this->configFilePath) || !is_readable($this->configFilePath)) {
+ throw new TokenException("Cannot read profiles from {$this->configFilePath}");
+ }
+
+ $profiles = self::loadProfiles($this->configFilePath);
+ if (!isset($profiles[$this->profileName])) {
+ throw new TokenException("Profile `{$this->profileName}` does not exist in {$this->configFilePath}.");
+ }
+
+ $profile = $profiles[$this->profileName];
+ if (empty($profile['sso_session'])) {
+ throw new TokenException(
+ "Profile `{$this->profileName}` in {$this->configFilePath} must contain an sso_session."
+ );
+ }
+
+ $ssoSessionName = $profile['sso_session'];
+ $this->ssoSessionName = $ssoSessionName;
+ $profileSsoSession = 'sso-session ' . $ssoSessionName;
+ if (empty($profiles[$profileSsoSession])) {
+ throw new TokenException(
+ "Sso session `{$ssoSessionName}` does not exist in {$this->configFilePath}"
+ );
+ }
+
+ $sessionProfileData = $profiles[$profileSsoSession];
+ foreach (['sso_start_url', 'sso_region'] as $requiredProp) {
+ if (empty($sessionProfileData[$requiredProp])) {
+ throw new TokenException(
+ "Sso session `{$ssoSessionName}` in {$this->configFilePath} is missing the required property `{$requiredProp}`"
+ );
+ }
+ }
+
+ $tokenData = $this->refresh();
+ $tokenLocation = self::getTokenLocation($ssoSessionName);
+ $this->validateTokenData($tokenLocation, $tokenData);
+ $ssoToken = SsoToken::fromTokenData($tokenData);
+ // To make sure the token is not expired
+ if ($ssoToken->isExpired()) {
+ throw new TokenException("Cached SSO token returned an expired token.");
+ }
+
+ yield $ssoToken;
+ });
+ }
+
+ /**
+ * This method attempt to refresh when possible.
+ * If a refresh is not possible then it just returns
+ * the current token data as it is.
+ *
+ * @return array
+ * @throws TokenException
+ */
+ public function refresh(): array
+ {
+ $tokenLocation = self::getTokenLocation($this->ssoSessionName);
+ $tokenData = $this->getTokenData($tokenLocation);
+ if (!$this->shouldAttemptRefresh()) {
+ return $tokenData;
+ }
+
+ if (null === $this->ssoOidcClient) {
+ throw new TokenException(
+ "Cannot refresh this token without an 'ssooidcClient' "
+ );
+ }
+
+ foreach (['clientId', 'clientSecret', 'refreshToken'] as $requiredProp) {
+ if (empty($tokenData[$requiredProp])) {
+ throw new TokenException(
+ "Cannot refresh this token without `{$requiredProp}` being set"
+ );
+ }
+ }
+
+ $response = $this->ssoOidcClient->createToken([
+ 'clientId' => $tokenData['clientId'],
+ 'clientSecret' => $tokenData['clientSecret'],
+ 'grantType' => 'refresh_token', // REQUIRED
+ 'refreshToken' => $tokenData['refreshToken'],
+ ]);
+ if ($response['@metadata']['statusCode'] !== 200) {
+ throw new TokenException('Unable to create a new sso token');
+ }
+
+ $tokenData['accessToken'] = $response['accessToken'];
+ $tokenData['expiresAt'] = time () + $response['expiresIn'];
+ $tokenData['refreshToken'] = $response['refreshToken'];
+
+ return $this->writeNewTokenDataToDisk($tokenData, $tokenLocation);
+ }
+
+ /**
+ * This method checks for whether a token refresh should happen.
+ * It will return true just if more than 30 seconds has happened
+ * since last refresh, and if the expiration is within a 5-minutes
+ * window from the current time.
+ *
+ * @return bool
+ */
+ public function shouldAttemptRefresh(): bool
+ {
+ $tokenLocation = self::getTokenLocation($this->ssoSessionName);
+ $tokenData = $this->getTokenData($tokenLocation);
+ if (empty($tokenData['expiresAt'])) {
+ throw new TokenException(
+ "Token file at $tokenLocation must contain an expiration date"
+ );
+ }
+
+ $tokenExpiresAt = strtotime($tokenData['expiresAt']);
+ $lastRefreshAt = filemtime($tokenLocation);
+ $now = \time();
+
+ // If last refresh happened after 30 seconds
+ // and if the token expiration is in the 5 minutes window
+ return ($now - $lastRefreshAt) > self::REFRESH_ATTEMPT_WINDOW_IN_SECS
+ && ($tokenExpiresAt - $now) < self::REFRESH_WINDOW_IN_SECS;
+ }
+
+ /**
+ * @param $sso_session
+ * @return string
+ */
+ public static function getTokenLocation($sso_session): string
+ {
+ return self::getHomeDir()
+ . '/.aws/sso/cache/'
+ . mb_convert_encoding(sha1($sso_session), "UTF-8")
+ . ".json";
+ }
+
+ /**
+ * @param $tokenLocation
+ * @return array
+ */
+ function getTokenData($tokenLocation): array
+ {
+ if (empty($tokenLocation) || !is_readable($tokenLocation)) {
+ throw new TokenException("Unable to read token file at {$tokenLocation}");
+ }
+
+ return json_decode(file_get_contents($tokenLocation), true);
+ }
+
+ /**
+ * @param $tokenData
+ * @param $tokenLocation
+ * @return mixed
+ */
+ private function validateTokenData($tokenLocation, $tokenData)
+ {
+ foreach (['accessToken', 'expiresAt'] as $requiredProp) {
+ if (empty($tokenData[$requiredProp])) {
+ throw new TokenException(
+ "Token file at {$tokenLocation} must contain the required property `{$requiredProp}`"
+ );
+ }
+ }
+
+ $expiration = strtotime($tokenData['expiresAt']);
+ if ($expiration === false) {
+ throw new TokenException("Cached SSO token returned an invalid expiration");
+ } elseif ($expiration < time()) {
+ throw new TokenException("Cached SSO token returned an expired token");
+ }
+
+ return $tokenData;
+ }
+
+ /**
+ * @param array $tokenData
+ * @param string $tokenLocation
+ *
+ * @return array
+ */
+ private function writeNewTokenDataToDisk(array $tokenData, $tokenLocation): array
+ {
+ $tokenData['expiresAt'] = gmdate(
+ 'Y-m-d\TH:i:s\Z',
+ $tokenData['expiresAt']
+ );
+ file_put_contents($tokenLocation, json_encode(array_filter($tokenData)));
+
+ return $tokenData;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/Token.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/Token.php
new file mode 100644
index 000000000..51e83c368
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/Token.php
@@ -0,0 +1,111 @@
+token = $token;
+ $this->expires = $expires;
+ }
+
+ /**
+ * Sets the state of a token object
+ *
+ * @param array $state array containing 'token' and 'expires'
+ */
+ public static function __set_state(array $state)
+ {
+ return new self(
+ $state['token'],
+ $state['expires']
+ );
+ }
+
+ /**
+ * @return string
+ */
+ public function getToken()
+ {
+ return $this->token;
+ }
+
+ /**
+ * @return int
+ */
+ public function getExpiration()
+ {
+ return $this->expires;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isExpired()
+ {
+ return $this->expires !== null && time() >= $this->expires;
+ }
+
+ /**
+ * @return array
+ */
+ public function toArray()
+ {
+ return [
+ 'token' => $this->token,
+ 'expires' => $this->expires
+ ];
+ }
+
+ /**
+ * @return string
+ */
+ public function serialize()
+ {
+ return json_encode($this->__serialize());
+ }
+
+ /**
+ * Sets the state of the object from serialized json data
+ */
+ public function unserialize($serialized)
+ {
+ $data = json_decode($serialized, true);
+
+ $this->__unserialize($data);
+ }
+
+ /**
+ * @return array
+ */
+ public function __serialize()
+ {
+ return $this->toArray();
+ }
+
+ /**
+ * Sets the state of this object from an array
+ */
+ public function __unserialize($data)
+ {
+ $this->token = $data['token'];
+ $this->expires = $data['expires'];
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/TokenAuthorization.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/TokenAuthorization.php
new file mode 100644
index 000000000..3fab516fd
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Token/TokenAuthorization.php
@@ -0,0 +1,24 @@
+
+ * use Aws\Token\TokenProvider;
+ * $provider = TokenProvider::defaultProvider();
+ * // Returns a TokenInterface or throws.
+ * $token = $provider()->wait();
+ *
+ *
+ * Token providers can be composed to create a token using conditional
+ * logic that can create different tokens in different environments. You
+ * can compose multiple providers into a single provider using
+ * {@see Aws\Token\TokenProvider::chain}. This function accepts
+ * providers as variadic arguments and returns a new function that will invoke
+ * each provider until a token is successfully returned.
+ */
+class TokenProvider
+{
+ use ParsesIniTrait;
+ const ENV_PROFILE = 'AWS_PROFILE';
+
+ /**
+ * Create a default token provider tha checks for cached a SSO token from
+ * the CLI
+ *
+ * This provider is automatically wrapped in a memoize function that caches
+ * previously provided tokens.
+ *
+ * @param array $config Optional array of token provider options.
+ *
+ * @return callable
+ */
+ public static function defaultProvider(array $config = [])
+ {
+
+ $cacheable = [
+ 'sso',
+ ];
+
+ $defaultChain = [];
+
+ if (
+ !isset($config['use_aws_shared_config_files'])
+ || $config['use_aws_shared_config_files'] !== false
+ ) {
+ $profileName = getenv(self::ENV_PROFILE) ?: 'default';
+ $defaultChain['sso'] = self::sso(
+ $profileName,
+ self::getHomeDir() . '/.aws/config',
+ $config
+ );
+ }
+
+ if (isset($config['token'])
+ && $config['token'] instanceof CacheInterface
+ ) {
+ foreach ($cacheable as $provider) {
+ if (isset($defaultChain[$provider])) {
+ $defaultChain[$provider] = self::cache(
+ $defaultChain[$provider],
+ $config['token'],
+ 'aws_cached_' . $provider . '_token'
+ );
+ }
+ }
+ }
+
+ return self::memoize(
+ call_user_func_array(
+ [TokenProvider::class, 'chain'],
+ array_values($defaultChain)
+ )
+ );
+ }
+
+ /**
+ * Create a token provider function from a static token.
+ *
+ * @param TokenInterface $token
+ *
+ * @return callable
+ */
+ public static function fromToken(TokenInterface $token)
+ {
+ $promise = Promise\Create::promiseFor($token);
+
+ return function () use ($promise) {
+ return $promise;
+ };
+ }
+
+ /**
+ * Creates an aggregate token provider that invokes the provided
+ * variadic providers one after the other until a provider returns
+ * a token.
+ *
+ * @return callable
+ */
+ public static function chain()
+ {
+ $links = func_get_args();
+ //Common use case for when aws_shared_config_files is false
+ if (empty($links)) {
+ return function () {
+ return Promise\Create::promiseFor(false);
+ };
+ }
+
+ return function () use ($links) {
+ /** @var callable $parent */
+ $parent = array_shift($links);
+ $promise = $parent();
+ while ($next = array_shift($links)) {
+ $promise = $promise->otherwise($next);
+ }
+ return $promise;
+ };
+ }
+
+ /**
+ * Wraps a token provider and caches a previously provided token.
+ * Ensures that cached tokens are refreshed when they expire.
+ *
+ * @param callable $provider Token provider function to wrap.
+ * @return callable
+ */
+ public static function memoize(callable $provider)
+ {
+ return function () use ($provider) {
+ static $result;
+ static $isConstant;
+
+ // Constant tokens will be returned constantly.
+ if ($isConstant) {
+ return $result;
+ }
+
+ // Create the initial promise that will be used as the cached value
+ // until it expires.
+ if (null === $result) {
+ $result = $provider();
+ }
+
+ // Return a token that could expire and refresh when needed.
+ return $result
+ ->then(function (TokenInterface $token) use ($provider, &$isConstant, &$result) {
+ // Determine if the token is constant.
+ if (!$token->getExpiration()) {
+ $isConstant = true;
+ return $token;
+ }
+
+ if (!$token->isExpired()) {
+ return $token;
+ }
+ return $result = $provider();
+ })
+ ->otherwise(function($reason) use (&$result) {
+ // Cleanup rejected promise.
+ $result = null;
+ return Promise\Create::promiseFor(null);
+ });
+ };
+ }
+
+ /**
+ * Wraps a token provider and saves provided token in an
+ * instance of Aws\CacheInterface. Forwards calls when no token found
+ * in cache and updates cache with the results.
+ *
+ * @param callable $provider Token provider function to wrap
+ * @param CacheInterface $cache Cache to store the token
+ * @param string|null $cacheKey (optional) Cache key to use
+ *
+ * @return callable
+ */
+ public static function cache(
+ callable $provider,
+ CacheInterface $cache,
+ $cacheKey = null
+ ) {
+ $cacheKey = $cacheKey ?: 'aws_cached_token';
+
+ return function () use ($provider, $cache, $cacheKey) {
+ $found = $cache->get($cacheKey);
+ if (is_array($found) && isset($found['token'])) {
+ $foundToken = $found['token'];
+ if ($foundToken instanceof TokenInterface) {
+ if (!$foundToken->isExpired()) {
+ return Promise\Create::promiseFor($foundToken);
+ }
+ if (isset($found['refreshMethod']) && is_callable($found['refreshMethod'])) {
+ return Promise\Create::promiseFor($found['refreshMethod']());
+ }
+ }
+ }
+
+ return $provider()
+ ->then(function (TokenInterface $token) use (
+ $cache,
+ $cacheKey
+ ) {
+ $cache->set(
+ $cacheKey,
+ $token,
+ null === $token->getExpiration() ?
+ 0 : $token->getExpiration() - time()
+ );
+
+ return $token;
+ });
+ };
+ }
+
+ /**
+ * Gets profiles from the ~/.aws/config ini file
+ */
+ private static function loadDefaultProfiles() {
+ $profiles = [];
+ $configFile = self::getHomeDir() . '/.aws/config';
+
+ if (file_exists($configFile)) {
+ $configProfileData = \Aws\parse_ini_file($configFile, true, INI_SCANNER_RAW);
+ foreach ($configProfileData as $name => $profile) {
+ // standardize config profile names
+ $name = str_replace('profile ', '', $name);
+ if (!isset($profiles[$name])) {
+ $profiles[$name] = $profile;
+ }
+ }
+ }
+
+ return $profiles;
+ }
+
+ private static function reject($msg)
+ {
+ return new Promise\RejectedPromise(new TokenException($msg));
+ }
+
+ /**
+ * Token provider that creates a token from cached sso credentials
+ *
+ * @param string $profileName the name of the ini profile name
+ * @param string $filename the location of the ini file
+ * @param array $config configuration options
+ *
+ * @return SsoTokenProvider
+ * @see Aws\Token\SsoTokenProvider for $config details.
+ */
+ public static function sso($profileName, $filename, $config = [])
+ {
+ $ssoClient = isset($config['ssoClient']) ? $config['ssoClient'] : null;
+
+ return new SsoTokenProvider($profileName, $filename, $ssoClient);
+ }
+}
+
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/TraceMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/TraceMiddleware.php
new file mode 100644
index 000000000..032043b8e
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/TraceMiddleware.php
@@ -0,0 +1,360 @@
+ '[TOKEN]',
+ ];
+
+ private static $authStrings = [
+ // S3Signature
+ '/AWSAccessKeyId=[A-Z0-9]{20}&/i' => 'AWSAccessKeyId=[KEY]&',
+ // SignatureV4 Signature and S3Signature
+ '/Signature=.+/i' => 'Signature=[SIGNATURE]',
+ // SignatureV4 access key ID
+ '/Credential=[A-Z0-9]{20}\//i' => 'Credential=[KEY]/',
+ // S3 signatures
+ '/AWS [A-Z0-9]{20}:.+/' => 'AWS AKI[KEY]:[SIGNATURE]',
+ // STS Presigned URLs
+ '/X-Amz-Security-Token=[^&]+/i' => 'X-Amz-Security-Token=[TOKEN]',
+ // Crypto *Stream Keys
+ '/\["key.{27,36}Stream.{9}\]=>\s+.{7}\d{2}\) "\X{16,64}"/U' => '["key":[CONTENT KEY]]',
+ ];
+
+ /**
+ * Configuration array can contain the following key value pairs.
+ *
+ * - logfn: (callable) Function that is invoked with log messages. By
+ * default, PHP's "echo" function will be utilized.
+ * - stream_size: (int) When the size of a stream is greater than this
+ * number, the stream data will not be logged. Set to "0" to not log any
+ * stream data.
+ * - scrub_auth: (bool) Set to false to disable the scrubbing of auth data
+ * from the logged messages.
+ * - http: (bool) Set to false to disable the "debug" feature of lower
+ * level HTTP adapters (e.g., verbose curl output).
+ * - auth_strings: (array) A mapping of authentication string regular
+ * expressions to scrubbed strings. These mappings are passed directly to
+ * preg_replace (e.g., preg_replace($key, $value, $debugOutput) if
+ * "scrub_auth" is set to true.
+ * - auth_headers: (array) A mapping of header names known to contain
+ * sensitive data to what the scrubbed value should be. The value of any
+ * headers contained in this array will be replaced with the if
+ * "scrub_auth" is set to true.
+ */
+ public function __construct(array $config = [], ?Service $service = null)
+ {
+ $this->config = $config + [
+ 'logfn' => function ($value) { echo $value; },
+ 'stream_size' => 524288,
+ 'scrub_auth' => true,
+ 'http' => true,
+ 'auth_strings' => [],
+ 'auth_headers' => [],
+ ];
+
+ $this->config['auth_strings'] += self::$authStrings;
+ $this->config['auth_headers'] += self::$authHeaders;
+ $this->service = $service;
+ }
+
+ public function __invoke($step, $name)
+ {
+ $this->prevOutput = $this->prevInput = [];
+
+ return function (callable $next) use ($step, $name) {
+ return function (
+ CommandInterface $command,
+ $request = null
+ ) use ($next, $step, $name) {
+ $this->createHttpDebug($command);
+ $start = microtime(true);
+ $this->stepInput([
+ 'step' => $step,
+ 'name' => $name,
+ 'request' => $this->requestArray($request),
+ 'command' => $this->commandArray($command)
+ ]);
+
+ return $next($command, $request)->then(
+ function ($value) use ($step, $name, $command, $start) {
+ $this->flushHttpDebug($command);
+ $this->stepOutput($start, [
+ 'step' => $step,
+ 'name' => $name,
+ 'result' => $this->resultArray($value),
+ 'error' => null
+ ]);
+ return $value;
+ },
+ function ($reason) use ($step, $name, $start, $command) {
+ $this->flushHttpDebug($command);
+ $this->stepOutput($start, [
+ 'step' => $step,
+ 'name' => $name,
+ 'result' => null,
+ 'error' => $this->exceptionArray($reason)
+ ]);
+ return new RejectedPromise($reason);
+ }
+ );
+ };
+ };
+ }
+
+ private function stepInput($entry)
+ {
+ static $keys = ['command', 'request'];
+ $this->compareStep($this->prevInput, $entry, '-> Entering', $keys);
+ $this->write("\n");
+ $this->prevInput = $entry;
+ }
+
+ private function stepOutput($start, $entry)
+ {
+ static $keys = ['result', 'error'];
+ $this->compareStep($this->prevOutput, $entry, '<- Leaving', $keys);
+ $totalTime = microtime(true) - $start;
+ $this->write(" Inclusive step time: " . $totalTime . "\n\n");
+ $this->prevOutput = $entry;
+ }
+
+ private function compareStep(array $a, array $b, $title, array $keys)
+ {
+ $changes = [];
+ foreach ($keys as $key) {
+ $av = isset($a[$key]) ? $a[$key] : null;
+ $bv = isset($b[$key]) ? $b[$key] : null;
+ $this->compareArray($av, $bv, $key, $changes);
+ }
+ $str = "\n{$title} step {$b['step']}, name '{$b['name']}'";
+ $str .= "\n" . str_repeat('-', strlen($str) - 1) . "\n\n ";
+ $str .= $changes
+ ? implode("\n ", str_replace("\n", "\n ", $changes))
+ : 'no changes';
+ $this->write($str . "\n");
+ }
+
+ private function commandArray(CommandInterface $cmd)
+ {
+ return [
+ 'instance' => spl_object_hash($cmd),
+ 'name' => $cmd->getName(),
+ 'params' => $this->getRedactedArray($cmd)
+ ];
+ }
+
+ private function requestArray($request = null)
+ {
+ return !$request instanceof RequestInterface
+ ? []
+ : array_filter([
+ 'instance' => spl_object_hash($request),
+ 'method' => $request->getMethod(),
+ 'headers' => $this->redactHeaders($request->getHeaders()),
+ 'body' => $this->streamStr($request->getBody()),
+ 'scheme' => $request->getUri()->getScheme(),
+ 'port' => $request->getUri()->getPort(),
+ 'path' => $request->getUri()->getPath(),
+ 'query' => $request->getUri()->getQuery(),
+ ]);
+ }
+
+ private function responseArray(?ResponseInterface $response = null)
+ {
+ return !$response ? [] : [
+ 'instance' => spl_object_hash($response),
+ 'statusCode' => $response->getStatusCode(),
+ 'headers' => $this->redactHeaders($response->getHeaders()),
+ 'body' => $this->streamStr($response->getBody())
+ ];
+ }
+
+ private function resultArray($value)
+ {
+ return $value instanceof ResultInterface
+ ? [
+ 'instance' => spl_object_hash($value),
+ 'data' => $value->toArray()
+ ] : $value;
+ }
+
+ private function exceptionArray($e)
+ {
+ if (!($e instanceof \Exception)) {
+ return $e;
+ }
+
+ $result = [
+ 'instance' => spl_object_hash($e),
+ 'class' => get_class($e),
+ 'message' => $e->getMessage(),
+ 'file' => $e->getFile(),
+ 'line' => $e->getLine(),
+ 'trace' => $e->getTraceAsString(),
+ ];
+
+ if ($e instanceof AwsException) {
+ $result += [
+ 'type' => $e->getAwsErrorType(),
+ 'code' => $e->getAwsErrorCode(),
+ 'requestId' => $e->getAwsRequestId(),
+ 'statusCode' => $e->getStatusCode(),
+ 'result' => $this->resultArray($e->getResult()),
+ 'request' => $this->requestArray($e->getRequest()),
+ 'response' => $this->responseArray($e->getResponse()),
+ ];
+ }
+
+ return $result;
+ }
+
+ private function compareArray($a, $b, $path, array &$diff)
+ {
+ if ($a === $b) {
+ return;
+ }
+
+ if (is_array($a)) {
+ $b = (array) $b;
+ $keys = array_unique(array_merge(array_keys($a), array_keys($b)));
+ foreach ($keys as $k) {
+ if (!array_key_exists($k, $a)) {
+ $this->compareArray(null, $b[$k], "{$path}.{$k}", $diff);
+ } elseif (!array_key_exists($k, $b)) {
+ $this->compareArray($a[$k], null, "{$path}.{$k}", $diff);
+ } else {
+ $this->compareArray($a[$k], $b[$k], "{$path}.{$k}", $diff);
+ }
+ }
+ } elseif ($a !== null && $b === null) {
+ $diff[] = "{$path} was unset";
+ } elseif ($a === null && $b !== null) {
+ $diff[] = sprintf("%s was set to %s", $path, $this->str($b));
+ } else {
+ $diff[] = sprintf("%s changed from %s to %s", $path, $this->str($a), $this->str($b));
+ }
+ }
+
+ private function str($value)
+ {
+ if (is_scalar($value)) {
+ return (string) $value;
+ }
+
+ if ($value instanceof \Exception) {
+ $value = $this->exceptionArray($value);
+ }
+
+ ob_start();
+ var_dump($value);
+ return ob_get_clean();
+ }
+
+ private function streamStr(StreamInterface $body)
+ {
+ return $body->getSize() < $this->config['stream_size']
+ ? (string) $body
+ : 'stream(size=' . $body->getSize() . ')';
+ }
+
+ private function createHttpDebug(CommandInterface $command)
+ {
+ if ($this->config['http'] && !isset($command['@http']['debug'])) {
+ $command['@http']['debug'] = fopen('php://temp', 'w+');
+ }
+ }
+
+ private function flushHttpDebug(CommandInterface $command)
+ {
+ if ($res = $command['@http']['debug']) {
+ if (is_resource($res)) {
+ rewind($res);
+ $this->write(stream_get_contents($res));
+ fclose($res);
+ }
+ $command['@http']['debug'] = null;
+ }
+ }
+
+ private function write($value)
+ {
+ if ($this->config['scrub_auth']) {
+ foreach ($this->config['auth_strings'] as $pattern => $replacement) {
+ $value = preg_replace_callback(
+ $pattern,
+ function ($matches) use ($replacement) {
+ return $replacement;
+ },
+ $value
+ );
+ }
+ }
+
+ call_user_func($this->config['logfn'], $value);
+ }
+
+ private function redactHeaders(array $headers)
+ {
+ if ($this->config['scrub_auth']) {
+ $headers = $this->config['auth_headers'] + $headers;
+ }
+
+ return $headers;
+ }
+
+ /**
+ * @param CommandInterface $cmd
+ * @return array
+ */
+ private function getRedactedArray(CommandInterface $cmd)
+ {
+ if (!isset($this->service["shapes"])) {
+ return $cmd->toArray();
+ }
+ $shapes = $this->service["shapes"];
+ $cmdArray = $cmd->toArray();
+ $iterator = new RecursiveIteratorIterator(
+ new RecursiveArrayIterator($cmdArray),
+ RecursiveIteratorIterator::SELF_FIRST
+ );
+ foreach ($iterator as $parameter => $value) {
+ if (isset($shapes[$parameter]['sensitive']) &&
+ $shapes[$parameter]['sensitive'] === true
+ ) {
+ $redactedValue = is_string($value) ? "[{$parameter}]" : ["[{$parameter}]"];
+ $currentDepth = $iterator->getDepth();
+ for ($subDepth = $currentDepth; $subDepth >= 0; $subDepth--) {
+ $subIterator = $iterator->getSubIterator($subDepth);
+ $subIterator->offsetSet(
+ $subIterator->key(),
+ ($subDepth === $currentDepth
+ ? $redactedValue
+ : $iterator->getSubIterator(($subDepth+1))->getArrayCopy()
+ )
+ );
+ }
+ }
+ }
+ return $iterator->getArrayCopy();
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/UserAgentMiddleware.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/UserAgentMiddleware.php
new file mode 100644
index 000000000..afccc9781
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/UserAgentMiddleware.php
@@ -0,0 +1,265 @@
+nextHandler = $nextHandler;
+ $this->args = $args;
+ }
+
+ /**
+ * When invoked, its injects the user agent header into the
+ * request headers.
+ *
+ * @param CommandInterface $command
+ * @param RequestInterface $request
+ *
+ * @return mixed
+ */
+ public function __invoke(CommandInterface $command, RequestInterface $request)
+ {
+ $handler = $this->nextHandler;
+ $this->metricsBuilder = MetricsBuilder::fromCommand($command);
+ $request = $this->requestWithUserAgentHeader($request);
+
+ return $handler($command, $request);
+ }
+
+ /**
+ * Builds the user agent header value, and injects it into the request
+ * headers. Then, it returns the mutated request.
+ *
+ * @param RequestInterface $request
+ *
+ * @return RequestInterface
+ */
+ private function requestWithUserAgentHeader(RequestInterface $request): RequestInterface
+ {
+ $uaAppend = $this->args['ua_append'] ?? [];
+ $userAgentValue = array_merge(
+ $this->buildUserAgentValue(),
+ $uaAppend
+ );
+ // It includes the user agent values just for the User-Agent header.
+ // The reason is that the SEP does not mention appending the
+ // metrics into the X-Amz-User-Agent header.
+ return $request->withHeader(
+ 'User-Agent',
+ implode(' ', array_merge(
+ $userAgentValue,
+ $request->getHeader('User-Agent')
+ ))
+ );
+ }
+
+ /**
+ * Builds the different user agent values.
+ *
+ * @return array
+ */
+ private function buildUserAgentValue(): array
+ {
+ $userAgentValue = [];
+ foreach (self::$userAgentFnList as $fn) {
+ $val = $this->{$fn}();
+ if (!empty($val)) {
+ $userAgentValue[] = $val;
+ }
+ }
+
+ return $userAgentValue;
+ }
+
+ /**
+ * Returns the user agent value for SDK version.
+ *
+ * @return string
+ */
+ private function getSdkVersion(): string
+ {
+ return 'aws-sdk-php/' . Sdk::VERSION;
+ }
+
+ /**
+ * Returns the user agent value for the agent version.
+ *
+ * @return string
+ */
+ private function getUserAgentVersion(): string
+ {
+ return 'ua/' . self::AGENT_VERSION;
+ }
+
+ /**
+ * Returns the user agent value for the hhvm version, but just
+ * when it is defined.
+ *
+ * @return string
+ */
+ private function getHhvmVersion(): string
+ {
+ if (defined('HHVM_VERSION')) {
+ return 'HHVM/' . HHVM_VERSION;
+ }
+
+ return "";
+ }
+
+ /**
+ * Returns the user agent value for the os version.
+ *
+ * @return string
+ */
+ private function getOsName(): string
+ {
+ $disabledFunctions = explode(',', ini_get('disable_functions'));
+ if (function_exists('php_uname')
+ && !in_array('php_uname', $disabledFunctions, true)
+ ) {
+ $osName = "OS/" . php_uname('s') . '#' . php_uname('r');
+ if (!empty($osName)) {
+ return $osName;
+ }
+ }
+
+ return "";
+ }
+
+ /**
+ * Returns the user agent value for the php language used.
+ *
+ * @return string
+ */
+ private function getLangVersion(): string
+ {
+ return 'lang/php#' . phpversion();
+ }
+
+ /**
+ * Returns the user agent value for the execution env.
+ *
+ * @return string
+ */
+ private function getExecEnv(): string
+ {
+ if ($executionEnvironment = getenv('AWS_EXECUTION_ENV')) {
+ return $executionEnvironment;
+ }
+
+ return "";
+ }
+
+ /**
+ * Returns the user agent value for endpoint discovery as cfg.
+ * This feature is deprecated.
+ *
+ * @return string
+ */
+ private function getEndpointDiscovery(): string
+ {
+ $args = $this->args;
+ if (isset($args['endpoint_discovery'])) {
+ if (($args['endpoint_discovery'] instanceof Configuration
+ && $args['endpoint_discovery']->isEnabled())
+ ) {
+ return 'cfg/endpoint-discovery';
+ } elseif (is_array($args['endpoint_discovery'])
+ && isset($args['endpoint_discovery']['enabled'])
+ && $args['endpoint_discovery']['enabled']
+ ) {
+ return 'cfg/endpoint-discovery';
+ }
+ }
+
+ return "";
+ }
+
+ /**
+ * Returns the user agent value for app id, but just when an
+ * app id was provided as a client argument.
+ *
+ * @return string
+ */
+ private function getAppId(): string
+ {
+ if (empty($this->args['app_id'])) {
+ return "";
+ }
+
+ return 'app/' . $this->args['app_id'];
+ }
+
+ /**
+ * Returns the user agent value for metrics.
+ *
+ * @return string
+ */
+ private function getMetrics(): string
+ {
+ // Resolve first metrics related to client arguments.
+ $this->metricsBuilder->resolveAndAppendFromArgs($this->args);
+ // Build the metrics.
+ $metricsEncoded = $this->metricsBuilder->build();
+ if (empty($metricsEncoded)) {
+ return "";
+ }
+
+ return "m/" . $metricsEncoded;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Waiter.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Waiter.php
new file mode 100644
index 000000000..59abdcca5
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/Waiter.php
@@ -0,0 +1,285 @@
+ 0, 'before' => null];
+
+ /** @var array Required configuration options. */
+ private static $required = [
+ 'acceptors',
+ 'delay',
+ 'maxAttempts',
+ 'operation',
+ ];
+
+ /**
+ * The array of configuration options include:
+ *
+ * - acceptors: (array) Array of acceptor options
+ * - delay: (int) Number of seconds to delay between attempts
+ * - maxAttempts: (int) Maximum number of attempts before failing
+ * - operation: (string) Name of the API operation to use for polling
+ * - before: (callable) Invoked before attempts. Accepts command and tries.
+ *
+ * @param AwsClientInterface $client Client used to execute commands.
+ * @param string $name Waiter name.
+ * @param array $args Command arguments.
+ * @param array $config Waiter config that overrides defaults.
+ *
+ * @throws \InvalidArgumentException if the configuration is incomplete.
+ */
+ public function __construct(
+ AwsClientInterface $client,
+ $name,
+ array $args = [],
+ array $config = []
+ ) {
+ $this->client = $client;
+ $this->name = $name;
+ $this->args = $args;
+
+ // Prepare and validate config.
+ $this->config = $config + self::$defaults;
+ foreach (self::$required as $key) {
+ if (!isset($this->config[$key])) {
+ throw new \InvalidArgumentException(
+ 'The provided waiter configuration was incomplete.'
+ );
+ }
+ }
+ if ($this->config['before'] && !is_callable($this->config['before'])) {
+ throw new \InvalidArgumentException(
+ 'The provided "before" callback is not callable.'
+ );
+ }
+ MetricsBuilder::appendMetricsCaptureMiddleware(
+ $this->client->getHandlerList(),
+ MetricsBuilder::WAITER
+ );
+ }
+
+ /**
+ * @return Coroutine
+ */
+ public function promise(): PromiseInterface
+ {
+ return Coroutine::of(function () {
+ $name = $this->config['operation'];
+ for ($state = 'retry', $attempt = 1; $state === 'retry'; $attempt++) {
+ // Execute the operation.
+ $args = $this->getArgsForAttempt($attempt);
+ $command = $this->client->getCommand($name, $args);
+ try {
+ if ($this->config['before']) {
+ $this->config['before']($command, $attempt);
+ }
+ $result = (yield $this->client->executeAsync($command));
+ } catch (AwsException $e) {
+ $result = $e;
+ }
+
+ // Determine the waiter's state and what to do next.
+ $state = $this->determineState($result);
+ if ($state === 'success') {
+ yield $command;
+ } elseif ($state === 'failed') {
+ $msg = "The {$this->name} waiter entered a failure state.";
+ if ($result instanceof \Exception) {
+ $msg .= ' Reason: ' . $result->getMessage();
+ }
+ yield new RejectedPromise(new \RuntimeException($msg));
+ } elseif ($state === 'retry'
+ && $attempt >= $this->config['maxAttempts']
+ ) {
+ $state = 'failed';
+ yield new RejectedPromise(new \RuntimeException(
+ "The {$this->name} waiter failed after attempt #{$attempt}."
+ ));
+ }
+ }
+ });
+ }
+
+ /**
+ * Gets the operation arguments for the attempt, including the delay.
+ *
+ * @param $attempt Number of the current attempt.
+ *
+ * @return mixed integer
+ */
+ private function getArgsForAttempt($attempt)
+ {
+ $args = $this->args;
+
+ // Determine the delay.
+ $delay = ($attempt === 1)
+ ? $this->config['initDelay']
+ : $this->config['delay'];
+ if (is_callable($delay)) {
+ $delay = $delay($attempt);
+ }
+
+ // Set the delay. (Note: handlers except delay in milliseconds.)
+ if (!isset($args['@http'])) {
+ $args['@http'] = [];
+ }
+ $args['@http']['delay'] = $delay * 1000;
+
+ return $args;
+ }
+
+ /**
+ * Determines the state of the waiter attempt, based on the result of
+ * polling the resource. A waiter can have the state of "success", "failed",
+ * or "retry".
+ *
+ * @param mixed $result
+ *
+ * @return string Will be "success", "failed", or "retry"
+ */
+ private function determineState($result)
+ {
+ foreach ($this->config['acceptors'] as $acceptor) {
+ $matcher = 'matches' . ucfirst($acceptor['matcher']);
+ if ($this->{$matcher}($result, $acceptor)) {
+ return $acceptor['state'];
+ }
+ }
+
+ return $result instanceof \Exception ? 'failed' : 'retry';
+ }
+
+ /**
+ * @param Result $result Result or exception.
+ * @param array $acceptor Acceptor configuration being checked.
+ *
+ * @return bool
+ */
+ private function matchesPath($result, array $acceptor)
+ {
+ return $result instanceof ResultInterface
+ && $acceptor['expected'] === $result->search($acceptor['argument']);
+ }
+
+ /**
+ * @param Result $result Result or exception.
+ * @param array $acceptor Acceptor configuration being checked.
+ *
+ * @return bool
+ */
+ private function matchesPathAll($result, array $acceptor)
+ {
+ if (!($result instanceof ResultInterface)) {
+ return false;
+ }
+
+ $actuals = $result->search($acceptor['argument']) ?: [];
+ // If is empty or not evaluates to an array it must return false.
+ if (empty($actuals) || !is_array($actuals)) {
+ return false;
+ }
+
+ foreach ($actuals as $actual) {
+ if ($actual != $acceptor['expected']) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * @param Result $result Result or exception.
+ * @param array $acceptor Acceptor configuration being checked.
+ *
+ * @return bool
+ */
+ private function matchesPathAny($result, array $acceptor)
+ {
+ if (!($result instanceof ResultInterface)) {
+ return false;
+ }
+
+ $actuals = $result->search($acceptor['argument']) ?: [];
+ // If is empty or not evaluates to an array it must return false.
+ if (empty($actuals) || !is_array($actuals)) {
+ return false;
+ }
+
+ return in_array($acceptor['expected'], $actuals);
+ }
+
+ /**
+ * @param Result $result Result or exception.
+ * @param array $acceptor Acceptor configuration being checked.
+ *
+ * @return bool
+ */
+ private function matchesStatus($result, array $acceptor)
+ {
+ if ($result instanceof ResultInterface) {
+ return $acceptor['expected'] == $result['@metadata']['statusCode'];
+ }
+
+ if ($result instanceof AwsException && $response = $result->getResponse()) {
+ return $acceptor['expected'] == $response->getStatusCode();
+ }
+
+ return false;
+ }
+
+ /**
+ * @param Result $result Result or exception.
+ * @param array $acceptor Acceptor configuration being checked.
+ *
+ * @return bool
+ */
+ private function matchesError($result, array $acceptor)
+ {
+ // If expected is true then the $result should be an instance of
+ // AwsException, otherwise it should not.
+ if (isset($acceptor['expected']) && is_bool($acceptor['expected'])) {
+ return $acceptor['expected'] === ($result instanceof AwsException);
+ }
+
+ if ($result instanceof AwsException) {
+ return $result->isConnectionError()
+ || $result->getAwsErrorCode() == $acceptor['expected'];
+ }
+
+ return false;
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/WrappedHttpHandler.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/WrappedHttpHandler.php
new file mode 100644
index 000000000..1c602de49
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/WrappedHttpHandler.php
@@ -0,0 +1,208 @@
+httpHandler = $httpHandler;
+ $this->parser = $parser;
+ $this->errorParser = $errorParser;
+ $this->exceptionClass = $exceptionClass;
+ $this->collectStats = $collectStats;
+ }
+
+ /**
+ * Calls the simpler HTTP specific handler and wraps the returned promise
+ * with AWS specific values (e.g., a result object or AWS exception).
+ *
+ * @param CommandInterface $command Command being executed.
+ * @param RequestInterface $request Request to send.
+ *
+ * @return Promise\PromiseInterface
+ */
+ public function __invoke(
+ CommandInterface $command,
+ RequestInterface $request
+ ) {
+ $fn = $this->httpHandler;
+ $options = $command['@http'] ?: [];
+ $stats = [];
+ if ($this->collectStats || !empty($options['collect_stats'])) {
+ $options['http_stats_receiver'] = static function (
+ array $transferStats
+ ) use (&$stats) {
+ $stats = $transferStats;
+ };
+ } elseif (isset($options['http_stats_receiver'])) {
+ throw new \InvalidArgumentException('Providing a custom HTTP stats'
+ . ' receiver to Aws\WrappedHttpHandler is not supported.');
+ }
+
+ return Promise\Create::promiseFor($fn($request, $options))
+ ->then(
+ function (
+ ResponseInterface $res
+ ) use ($command, $request, &$stats) {
+ return $this->parseResponse($command, $request, $res, $stats);
+ },
+ function ($err) use ($request, $command, &$stats) {
+ if (is_array($err)) {
+ $err = $this->parseError(
+ $err,
+ $request,
+ $command,
+ $stats
+ );
+ }
+ return new Promise\RejectedPromise($err);
+ }
+ );
+ }
+
+ /**
+ * @param CommandInterface $command
+ * @param RequestInterface $request
+ * @param ResponseInterface $response
+ * @param array $stats
+ *
+ * @return ResultInterface
+ */
+ private function parseResponse(
+ CommandInterface $command,
+ RequestInterface $request,
+ ResponseInterface $response,
+ array $stats
+ ) {
+ $parser = $this->parser;
+ $status = $response->getStatusCode();
+ $result = $status < 300
+ ? $parser($command, $response)
+ : new Result();
+
+ $metadata = [
+ 'statusCode' => $status,
+ 'effectiveUri' => (string) $request->getUri(),
+ 'headers' => [],
+ 'transferStats' => [],
+ ];
+ if (!empty($stats)) {
+ $metadata['transferStats']['http'] = [$stats];
+ }
+
+ // Bring headers into the metadata array.
+ foreach ($response->getHeaders() as $name => $values) {
+ $metadata['headers'][strtolower($name)] = $values[0];
+ }
+
+ $result['@metadata'] = $metadata;
+
+ return $result;
+ }
+
+ /**
+ * Parses a rejection into an AWS error.
+ *
+ * @param array $err Rejection error array.
+ * @param RequestInterface $request Request that was sent.
+ * @param CommandInterface $command Command being sent.
+ * @param array $stats Transfer statistics
+ *
+ * @return \Exception
+ */
+ private function parseError(
+ array $err,
+ RequestInterface $request,
+ CommandInterface $command,
+ array $stats
+ ) {
+ if (!isset($err['exception'])) {
+ throw new \RuntimeException('The HTTP handler was rejected without an "exception" key value pair.');
+ }
+
+ $serviceError = "AWS HTTP error: " . $err['exception']->getMessage();
+
+ if (!isset($err['response'])) {
+ $parts = ['response' => null];
+ } else {
+ try {
+ $parts = call_user_func(
+ $this->errorParser,
+ $err['response'],
+ $command
+ );
+ $serviceError .= " {$parts['code']} ({$parts['type']}): "
+ . "{$parts['message']} - " . $err['response']->getBody();
+ } catch (ParserException $e) {
+ $parts = [];
+ $serviceError .= ' Unable to parse error information from '
+ . "response - {$e->getMessage()}";
+ }
+
+ $parts['response'] = $err['response'];
+ }
+
+ $parts['exception'] = $err['exception'];
+ $parts['request'] = $request;
+ $parts['connection_error'] = !empty($err['connection_error']);
+ $parts['transfer_stats'] = $stats;
+
+ return new $this->exceptionClass(
+ sprintf(
+ 'Error executing "%s" on "%s"; %s',
+ $command->getName(),
+ $request->getUri(),
+ $serviceError
+ ),
+ $command,
+ $parts,
+ $err['exception']
+ );
+ }
+}
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/aliases.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/aliases.json.php
new file mode 100644
index 000000000..b6270471d
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/aliases.json.php
@@ -0,0 +1,3 @@
+ [ 'ApiGatewayV2' => [ '2018-11-29' => [ 'GetApi' => 'GetApiResource', ], ], 'CloudHSM' => [ '2014-05-30' => [ 'GetConfig' => 'GetConfigFiles', ], ], 'GroundStation' => [ '2019-05-23' => [ 'GetConfig' => 'GetMissionProfileConfig', ], ], 'Pinpoint' => [ '2016-12-01' => [ 'GetEndpoint' => 'GetUserEndpoint', 'UpdateEndpoint' => 'UpdateUserEndpoint', 'UpdateEndpointsBatch' => 'UpdateUserEndpointsBatch', ], ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/endpoints.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/endpoints.json.php
new file mode 100644
index 000000000..2226c8cf5
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/endpoints.json.php
@@ -0,0 +1,3 @@
+ [ [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'dnsSuffix' => 'amazonaws.com', 'partition' => 'aws', 'partitionName' => 'AWS Standard', 'regionRegex' => '^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$', 'regions' => [ 'af-south-1' => [ 'description' => 'Africa (Cape Town)', ], 'ap-east-1' => [ 'description' => 'Asia Pacific (Hong Kong)', ], 'ap-east-2' => [ 'description' => 'Asia Pacific (Taipei)', ], 'ap-northeast-1' => [ 'description' => 'Asia Pacific (Tokyo)', ], 'ap-northeast-2' => [ 'description' => 'Asia Pacific (Seoul)', ], 'ap-northeast-3' => [ 'description' => 'Asia Pacific (Osaka)', ], 'ap-south-1' => [ 'description' => 'Asia Pacific (Mumbai)', ], 'ap-south-2' => [ 'description' => 'Asia Pacific (Hyderabad)', ], 'ap-southeast-1' => [ 'description' => 'Asia Pacific (Singapore)', ], 'ap-southeast-2' => [ 'description' => 'Asia Pacific (Sydney)', ], 'ap-southeast-3' => [ 'description' => 'Asia Pacific (Jakarta)', ], 'ap-southeast-4' => [ 'description' => 'Asia Pacific (Melbourne)', ], 'ap-southeast-5' => [ 'description' => 'Asia Pacific (Malaysia)', ], 'ap-southeast-7' => [ 'description' => 'Asia Pacific (Thailand)', ], 'ca-central-1' => [ 'description' => 'Canada (Central)', ], 'ca-west-1' => [ 'description' => 'Canada West (Calgary)', ], 'eu-central-1' => [ 'description' => 'Europe (Frankfurt)', ], 'eu-central-2' => [ 'description' => 'Europe (Zurich)', ], 'eu-north-1' => [ 'description' => 'Europe (Stockholm)', ], 'eu-south-1' => [ 'description' => 'Europe (Milan)', ], 'eu-south-2' => [ 'description' => 'Europe (Spain)', ], 'eu-west-1' => [ 'description' => 'Europe (Ireland)', ], 'eu-west-2' => [ 'description' => 'Europe (London)', ], 'eu-west-3' => [ 'description' => 'Europe (Paris)', ], 'il-central-1' => [ 'description' => 'Israel (Tel Aviv)', ], 'me-central-1' => [ 'description' => 'Middle East (UAE)', ], 'me-south-1' => [ 'description' => 'Middle East (Bahrain)', ], 'mx-central-1' => [ 'description' => 'Mexico (Central)', ], 'sa-east-1' => [ 'description' => 'South America (Sao Paulo)', ], 'us-east-1' => [ 'description' => 'US East (N. Virginia)', ], 'us-east-2' => [ 'description' => 'US East (Ohio)', ], 'us-west-1' => [ 'description' => 'US West (N. California)', ], 'us-west-2' => [ 'description' => 'US West (Oregon)', ], ], 'services' => [ 'access-analyzer' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'access-analyzer.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'access-analyzer.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'access-analyzer-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'access-analyzer-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'access-analyzer-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'access-analyzer-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'access-analyzer-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'access-analyzer-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'access-analyzer.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'access-analyzer.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'access-analyzer.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'access-analyzer-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'access-analyzer.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'account' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'account.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'acm' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'acm-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'acm-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'acm-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'acm-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'acm-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'acm-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'acm-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'acm-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'acm-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'acm-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'acm-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'acm-fips.us-west-2.amazonaws.com', ], ], ], 'acm-pca' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'acm-pca-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'acm-pca-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'acm-pca-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'acm-pca-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'acm-pca-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'acm-pca-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'acm-pca-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'acm-pca-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'acm-pca-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'acm-pca-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'acm-pca-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'acm-pca-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'agreement-marketplace' => [ 'endpoints' => [ 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'agreement-marketplace.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'airflow' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'amplify' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'amplifybackend' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'amplifyuibuilder' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'aoss' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'api.detective' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'detective.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'detective.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'detective.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'detective.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'detective.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'detective.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'detective.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'detective.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'detective.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'detective.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'detective.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'detective.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'detective.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'detective.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'detective.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'detective.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.us-west-2.amazonaws.com', ], ], ], 'api.ecr' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'ecr-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'api.ecr.af-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'api.ecr.ap-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'api.ecr.ap-northeast-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'api.ecr.ap-northeast-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'api.ecr.ap-northeast-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'api.ecr.ap-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'api.ecr.ap-south-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'api.ecr.ap-southeast-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'api.ecr.ap-southeast-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 'api.ecr.ap-southeast-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 'api.ecr.ap-southeast-4.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'hostname' => 'api.ecr.ap-southeast-5.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'credentialScope' => [ 'region' => 'ap-southeast-7', ], 'hostname' => 'api.ecr.ap-southeast-7.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'api.ecr.ca-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'hostname' => 'api.ecr.ca-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'dkr-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ecr-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'dkr-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ecr-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'dkr-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ecr-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'dkr-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ecr-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'api.ecr.eu-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'api.ecr.eu-central-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'api.ecr.eu-north-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'api.ecr.eu-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'api.ecr.eu-south-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'api.ecr.eu-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'api.ecr.eu-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'api.ecr.eu-west-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-dkr-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-east-1.amazonaws.com', ], 'fips-dkr-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-east-2.amazonaws.com', ], 'fips-dkr-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-west-1.amazonaws.com', ], 'fips-dkr-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-west-2.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'api.ecr.il-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 'api.ecr.me-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'api.ecr.me-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'credentialScope' => [ 'region' => 'mx-central-1', ], 'hostname' => 'api.ecr.mx-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'api.ecr.sa-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.ecr.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ecr-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ecr.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'api.ecr.us-east-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ecr-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ecr.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'api.ecr.us-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ecr-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ecr.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.ecr.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ecr-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ecr.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'api.ecr-public' => [ 'endpoints' => [ 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.ecr-public.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-public.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.ecr-public.us-west-2.amazonaws.com', ], ], ], 'api.fleethub.iot' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'api.fleethub.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'api.fleethub.iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'api.fleethub.iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'api.fleethub.iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'api.fleethub.iot-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'api.fleethub.iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'api.fleethub.iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'api.fleethub.iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'api.iotdeviceadvisor' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'api.iotdeviceadvisor.ap-northeast-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'api.iotdeviceadvisor.eu-west-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.iotdeviceadvisor.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.iotdeviceadvisor.us-west-2.amazonaws.com', ], ], ], 'api.iotwireless' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'api.iotwireless.ap-northeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'api.iotwireless.ap-southeast-2.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'api.iotwireless.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'api.iotwireless.eu-west-1.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'api.iotwireless.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.iotwireless.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.iotwireless.us-west-2.amazonaws.com', ], ], ], 'api.mediatailor' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-3' => [], 'me-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'ap-south-1' => [], 'eu-central-1' => [], 'us-east-1' => [], ], ], 'api.sagemaker' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.us-west-2.amazonaws.com', ], ], ], 'api.tunneling.iot' => [ 'defaults' => [ 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => 'api.tunneling.iot-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => 'api.iot-tunneling-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => 'api.iot-tunneling.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'apigateway' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'apigateway-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'apigateway-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'apigateway-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'apigateway-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'apigateway-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'apigateway-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'apigateway-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'apigateway-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'apigateway-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'apigateway-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'apigateway-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'apigateway-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'app-integrations' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'appflow' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'appflow-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'appflow-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'appflow-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'appflow-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'appflow-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'appflow-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'appflow-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'appflow-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'applicationinsights' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'appmesh' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'appmesh.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'appmesh-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'appmesh-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'appmesh.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'appmesh-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'appmesh.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'appmesh-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'appmesh-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'appmesh.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'appmesh-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'appmesh-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'appmesh-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'appmesh.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'appmesh-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'appmesh-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'appmesh-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'appmesh.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'appmesh-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'appmesh-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'appmesh-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'appmesh.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'appmesh-fips.us-west-2.amazonaws.com', ], ], ], 'apprunner' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'apprunner-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'apprunner-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'apprunner-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'apprunner-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'apprunner-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'apprunner-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'appstream2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'appstream', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'appstream2-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'appstream2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'appstream2-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'appstream2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'appstream2-fips.us-west-2.amazonaws.com', ], ], ], 'appsync' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'appsync.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'appsync.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'appsync.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'appsync.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'appsync.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'appsync.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'appsync.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'appsync.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'appsync.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'appsync.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'appsync.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'appsync.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'apptest' => [ 'endpoints' => [ 'ap-southeast-2' => [], 'eu-central-1' => [], 'fips-us-east-1' => [ 'deprecated' => true, ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'aps' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'deprecated' => true, ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'deprecated' => true, ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'deprecated' => true, ], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'athena' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'athena.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'athena.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'athena.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'athena.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'athena.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'athena.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'athena.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'athena.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'athena.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'athena.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'athena.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'athena.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'athena-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'athena-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'athena.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'athena.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'athena.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'athena.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'athena.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'athena.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'athena.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'athena.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'athena-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'athena-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'athena-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'athena-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'athena-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'athena-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'athena.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'athena.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'athena.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'athena.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'athena-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'athena-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'athena-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'athena-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'auditmanager' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'auditmanager-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'auditmanager-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'auditmanager-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'auditmanager-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'auditmanager-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'auditmanager-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'auditmanager-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'auditmanager-fips.us-west-2.amazonaws.com', ], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'autoscaling-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'autoscaling-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'autoscaling-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'autoscaling-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'autoscaling-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'autoscaling-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'autoscaling-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'autoscaling-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'autoscaling-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'autoscaling-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'autoscaling-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'autoscaling-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'autoscaling-plans' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'backup' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'backup-gateway' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'batch' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'fips.batch.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'fips.batch.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'fips.batch.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'fips.batch.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'fips.batch.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'fips.batch.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'fips.batch.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'fips.batch.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'fips.batch.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'bedrock' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'bedrock-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'bedrock.ap-northeast-1.amazonaws.com', ], 'bedrock-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'bedrock.ap-northeast-2.amazonaws.com', ], 'bedrock-ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'bedrock.ap-northeast-3.amazonaws.com', ], 'bedrock-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'bedrock.ap-south-1.amazonaws.com', ], 'bedrock-ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'bedrock.ap-south-2.amazonaws.com', ], 'bedrock-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'bedrock.ap-southeast-1.amazonaws.com', ], 'bedrock-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'bedrock.ap-southeast-2.amazonaws.com', ], 'bedrock-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'bedrock.ca-central-1.amazonaws.com', ], 'bedrock-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'bedrock.eu-central-1.amazonaws.com', ], 'bedrock-eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'bedrock.eu-central-2.amazonaws.com', ], 'bedrock-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'bedrock.eu-north-1.amazonaws.com', ], 'bedrock-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'bedrock.eu-south-1.amazonaws.com', ], 'bedrock-eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'bedrock.eu-south-2.amazonaws.com', ], 'bedrock-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'bedrock.eu-west-1.amazonaws.com', ], 'bedrock-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'bedrock.eu-west-2.amazonaws.com', ], 'bedrock-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'bedrock.eu-west-3.amazonaws.com', ], 'bedrock-fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'bedrock-fips.ca-central-1.amazonaws.com', ], 'bedrock-fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'bedrock-fips.us-east-1.amazonaws.com', ], 'bedrock-fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'bedrock-fips.us-east-2.amazonaws.com', ], 'bedrock-fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'bedrock-fips.us-west-2.amazonaws.com', ], 'bedrock-runtime-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'bedrock-runtime.ap-northeast-1.amazonaws.com', ], 'bedrock-runtime-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'bedrock-runtime.ap-northeast-2.amazonaws.com', ], 'bedrock-runtime-ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'bedrock-runtime.ap-northeast-3.amazonaws.com', ], 'bedrock-runtime-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'bedrock-runtime.ap-south-1.amazonaws.com', ], 'bedrock-runtime-ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'bedrock-runtime.ap-south-2.amazonaws.com', ], 'bedrock-runtime-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'bedrock-runtime.ap-southeast-1.amazonaws.com', ], 'bedrock-runtime-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'bedrock-runtime.ap-southeast-2.amazonaws.com', ], 'bedrock-runtime-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'bedrock-runtime.ca-central-1.amazonaws.com', ], 'bedrock-runtime-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'bedrock-runtime.eu-central-1.amazonaws.com', ], 'bedrock-runtime-eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'bedrock-runtime.eu-central-2.amazonaws.com', ], 'bedrock-runtime-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'bedrock-runtime.eu-north-1.amazonaws.com', ], 'bedrock-runtime-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'bedrock-runtime.eu-south-1.amazonaws.com', ], 'bedrock-runtime-eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'bedrock-runtime.eu-south-2.amazonaws.com', ], 'bedrock-runtime-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'bedrock-runtime.eu-west-1.amazonaws.com', ], 'bedrock-runtime-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'bedrock-runtime.eu-west-2.amazonaws.com', ], 'bedrock-runtime-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'bedrock-runtime.eu-west-3.amazonaws.com', ], 'bedrock-runtime-fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'bedrock-runtime-fips.ca-central-1.amazonaws.com', ], 'bedrock-runtime-fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'bedrock-runtime-fips.us-east-1.amazonaws.com', ], 'bedrock-runtime-fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'bedrock-runtime-fips.us-east-2.amazonaws.com', ], 'bedrock-runtime-fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'bedrock-runtime-fips.us-west-2.amazonaws.com', ], 'bedrock-runtime-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'bedrock-runtime.sa-east-1.amazonaws.com', ], 'bedrock-runtime-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'bedrock-runtime.us-east-1.amazonaws.com', ], 'bedrock-runtime-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'bedrock-runtime.us-east-2.amazonaws.com', ], 'bedrock-runtime-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'bedrock-runtime.us-west-2.amazonaws.com', ], 'bedrock-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'bedrock.sa-east-1.amazonaws.com', ], 'bedrock-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'bedrock.us-east-1.amazonaws.com', ], 'bedrock-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'bedrock.us-east-2.amazonaws.com', ], 'bedrock-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'bedrock.us-west-2.amazonaws.com', ], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'billingconductor' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'billingconductor.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'braket' => [ 'endpoints' => [ 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'braket.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'braket.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'braket.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'braket.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'braket.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'budgets' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'budgets.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'cases' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-us-east-1' => [ 'deprecated' => true, ], 'fips-us-west-2' => [ 'deprecated' => true, ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'cassandra' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cassandra-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cassandra-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cassandra-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cassandra-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'catalog.marketplace' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'ce' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'ce.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'chime' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'chime.us-east-1.amazonaws.com', 'protocols' => [ 'https', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'cleanrooms' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'cleanrooms.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cleanrooms-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cleanrooms-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cleanrooms-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cleanrooms-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cleanrooms-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cleanrooms.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cleanrooms-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cleanrooms-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cleanrooms.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cleanrooms-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cleanrooms-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cleanrooms.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cloud9' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'cloud9-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloud9-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'cloud9-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cloud9-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cloud9-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'cloud9-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cloud9-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'cloud9-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloud9-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'cloud9-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloud9-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'cloud9-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloud9-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'cloud9-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloud9-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], ], ], 'cloudcontrolapi' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'clouddirectory' => [ 'endpoints' => [ 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudformation-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cloudformation-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cloudformation-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cloudformation-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudformation-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'cloudformation-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cloudformation-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cloudformation-fips.us-west-2.amazonaws.com', ], ], ], 'cloudfront' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'cloudfront.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'cloudhsm' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'cloudhsmv2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'cloudhsm', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cloudsearch' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'cloudtrail-data' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'codeartifact' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'codebuild' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'codebuild-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'codebuild-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'codebuild-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'codebuild-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'codebuild-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'codebuild-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'codebuild-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'codebuild-fips.us-west-2.amazonaws.com', ], ], ], 'codecatalyst' => [ 'endpoints' => [ 'aws-global' => [ 'hostname' => 'codecatalyst.global.api.aws', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'codecommit' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.ca-central-1.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-west-2.amazonaws.com', ], ], ], 'codedeploy' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'codedeploy-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'codedeploy-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'codedeploy-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'codedeploy-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'codedeploy-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'codedeploy-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'codedeploy-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'codedeploy-fips.us-west-2.amazonaws.com', ], ], ], 'codeguru-reviewer' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'codepipeline' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'codestar-connections' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'codestar-notifications' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'cognito-identity' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.af-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-northeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-northeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-northeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-southeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-southeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-southeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-southeast-4.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ap-southeast-5.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ca-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.ca-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-central-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-north-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.eu-west-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cognito-identity-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cognito-identity-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'cognito-identity-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cognito-identity-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.il-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.me-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.me-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.sa-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity-fips.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-identity-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-identity.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity-fips.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-identity-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-identity.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity-fips.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-identity-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-identity.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cognito-identity-fips.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-identity-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-identity.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cognito-idp' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.af-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-northeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-northeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-northeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-southeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-southeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-southeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-southeast-4.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ap-southeast-5.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ca-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.ca-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-central-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-north-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.eu-west-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'cognito-idp-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'cognito-idp-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'cognito-idp-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'cognito-idp-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.il-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.me-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.me-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.sa-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp-fips.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-idp-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-idp.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp-fips.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-idp-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-idp.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp-fips.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-idp-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-idp.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'cognito-idp-fips.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-idp-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-idp.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cognito-sync' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'comprehend' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'comprehend.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'comprehend.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'comprehend.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'comprehend.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'comprehend.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'comprehend-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'comprehend-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'comprehend.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'comprehend.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'comprehend.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'comprehend.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'comprehend-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'comprehend-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'comprehend-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'comprehend-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'comprehend-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'comprehend-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'comprehend.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'comprehend-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'comprehend-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'comprehend.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'comprehend-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'comprehend-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'comprehend.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'comprehendmedical' => [ 'endpoints' => [ 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'comprehendmedical-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'comprehendmedical-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'comprehendmedical-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'comprehendmedical-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'comprehendmedical-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'comprehendmedical-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'comprehendmedical-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'comprehendmedical-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'compute-optimizer' => [ 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'compute-optimizer.af-south-1.amazonaws.com', ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'compute-optimizer.ap-east-1.amazonaws.com', ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'compute-optimizer.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'compute-optimizer.ap-northeast-2.amazonaws.com', ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'compute-optimizer.ap-northeast-3.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'compute-optimizer.ap-south-1.amazonaws.com', ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'compute-optimizer.ap-south-2.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'compute-optimizer.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'compute-optimizer.ap-southeast-2.amazonaws.com', ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 'compute-optimizer.ap-southeast-3.amazonaws.com', ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 'compute-optimizer.ap-southeast-4.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'compute-optimizer.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'compute-optimizer.eu-central-1.amazonaws.com', ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'compute-optimizer.eu-central-2.amazonaws.com', ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'compute-optimizer.eu-north-1.amazonaws.com', ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'compute-optimizer.eu-south-1.amazonaws.com', ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'compute-optimizer.eu-south-2.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'compute-optimizer.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'compute-optimizer.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'compute-optimizer.eu-west-3.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'compute-optimizer.il-central-1.amazonaws.com', ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 'compute-optimizer.me-central-1.amazonaws.com', ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'compute-optimizer.me-south-1.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'compute-optimizer.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'compute-optimizer.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'compute-optimizer.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'compute-optimizer.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'compute-optimizer.us-west-2.amazonaws.com', ], ], ], 'config' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'config-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'config-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'config-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'config-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'connect' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'connect-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'connect-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'connect-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'connect-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'connect-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'connect-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'connect-campaigns' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'connect-campaigns-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'connect-campaigns-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'connect-campaigns-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'connect-campaigns-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'contact-lens' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'controltower' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'controltower-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'controltower-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'controltower-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'controltower-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'controltower-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'controltower-fips.us-west-2.amazonaws.com', ], ], ], 'cost-optimization-hub' => [ 'endpoints' => [ 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'cost-optimization-hub.us-east-1.amazonaws.com', ], ], ], 'cur' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'data-ats.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'data.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'data.jobs.iot' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'data.mediastore' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'databrew' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'databrew-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'databrew-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'databrew-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'databrew-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'databrew-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'databrew-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'databrew-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'databrew-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'dataexchange' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'datapipeline' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'datasync' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'datasync.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'datasync.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'datasync.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'datasync.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'datasync.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'datasync.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'datasync.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'datasync.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'datazone' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'datazone.ap-northeast-1.api.aws', ], 'ap-northeast-2' => [ 'hostname' => 'datazone.ap-northeast-2.api.aws', ], 'ap-northeast-3' => [ 'hostname' => 'datazone.ap-northeast-3.api.aws', ], 'ap-south-1' => [ 'hostname' => 'datazone.ap-south-1.api.aws', ], 'ap-south-2' => [ 'hostname' => 'datazone.ap-south-2.api.aws', ], 'ap-southeast-1' => [ 'hostname' => 'datazone.ap-southeast-1.api.aws', ], 'ap-southeast-2' => [ 'hostname' => 'datazone.ap-southeast-2.api.aws', ], 'ap-southeast-3' => [ 'hostname' => 'datazone.ap-southeast-3.api.aws', ], 'ap-southeast-4' => [ 'hostname' => 'datazone.ap-southeast-4.api.aws', ], 'ap-southeast-5' => [ 'hostname' => 'datazone.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'datazone.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'datazone.ca-central-1.api.aws', 'variants' => [ [ 'hostname' => 'datazone-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'hostname' => 'datazone.ca-west-1.api.aws', ], 'eu-central-1' => [ 'hostname' => 'datazone.eu-central-1.api.aws', ], 'eu-north-1' => [ 'hostname' => 'datazone.eu-north-1.api.aws', ], 'eu-south-1' => [ 'hostname' => 'datazone.eu-south-1.api.aws', ], 'eu-west-1' => [ 'hostname' => 'datazone.eu-west-1.api.aws', ], 'eu-west-2' => [ 'hostname' => 'datazone.eu-west-2.api.aws', ], 'eu-west-3' => [ 'hostname' => 'datazone.eu-west-3.api.aws', ], 'il-central-1' => [ 'hostname' => 'datazone.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'datazone.me-central-1.api.aws', ], 'me-south-1' => [ 'hostname' => 'datazone.me-south-1.api.aws', ], 'mx-central-1' => [ 'hostname' => 'datazone.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'datazone.sa-east-1.api.aws', ], 'us-east-1' => [ 'hostname' => 'datazone.us-east-1.api.aws', 'variants' => [ [ 'hostname' => 'datazone-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'hostname' => 'datazone.us-east-2.api.aws', 'variants' => [ [ 'hostname' => 'datazone-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'hostname' => 'datazone.us-west-1.api.aws', ], 'us-west-2' => [ 'hostname' => 'datazone.us-west-2.api.aws', 'variants' => [ [ 'hostname' => 'datazone-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'dax' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'devicefarm' => [ 'endpoints' => [ 'us-west-2' => [], ], ], 'devops-guru' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'devops-guru-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'devops-guru-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'devops-guru-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'devops-guru-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'devops-guru-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'devops-guru-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'devops-guru-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'devops-guru-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'devops-guru-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'devops-guru-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'directconnect' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'discovery' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'dlm' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'dlm.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'dlm.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'dlm.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'dlm.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'dlm.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'dlm.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'dlm.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'dlm.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'dms' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'dms' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'dms-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'dms-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'dms-fips.us-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'dms-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'dms-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'dms-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'dms-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'dms-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'dms-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'dms-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'dms-fips.us-west-2.amazonaws.com', ], ], ], 'docdb' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'rds.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'rds.ap-northeast-2.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'rds.ap-south-1.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'rds.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'rds.ap-southeast-2.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'rds.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'rds.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'rds.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'rds.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'rds.eu-west-3.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'rds.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'rds.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'rds.us-east-2.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'rds.us-west-2.amazonaws.com', ], ], ], 'drs' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'drs-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'drs-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'drs-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'drs-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'drs-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'drs-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'drs-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'drs-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ds' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'local' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'localhost:8000', 'protocols' => [ 'http', ], ], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.us-west-2.amazonaws.com', ], ], ], 'ebs' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ebs-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'ebs-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ebs-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'ebs-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ebs-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ebs-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ebs-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ebs-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ebs-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ebs-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ebs-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ebs-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'ec2.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'ec2.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'ec2.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'ec2.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'ec2.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'ec2.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'ec2.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ec2-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ec2.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'ec2-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'ec2.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'ec2.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'ec2.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'ec2.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'ec2.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'ec2.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ec2-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'ec2-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ec2-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ec2-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ec2-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ec2-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'ec2.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'ec2.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ec2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ec2.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ec2-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ec2.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ec2-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ec2.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ec2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ec2.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'ecs' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ecs-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ecs-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ecs-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ecs-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ecs-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ecs-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ecs-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ecs-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'edge.sagemaker' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'fips.eks.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'fips.eks.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'fips.eks.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'fips.eks.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'fips.eks.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'fips.eks.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'fips.eks.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'fips.eks.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'fips.eks.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'eks-auth' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'hostname' => 'eks-auth.af-south-1.api.aws', ], 'ap-east-1' => [ 'hostname' => 'eks-auth.ap-east-1.api.aws', ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'eks-auth.ap-northeast-1.api.aws', ], 'ap-northeast-2' => [ 'hostname' => 'eks-auth.ap-northeast-2.api.aws', ], 'ap-northeast-3' => [ 'hostname' => 'eks-auth.ap-northeast-3.api.aws', ], 'ap-south-1' => [ 'hostname' => 'eks-auth.ap-south-1.api.aws', ], 'ap-south-2' => [ 'hostname' => 'eks-auth.ap-south-2.api.aws', ], 'ap-southeast-1' => [ 'hostname' => 'eks-auth.ap-southeast-1.api.aws', ], 'ap-southeast-2' => [ 'hostname' => 'eks-auth.ap-southeast-2.api.aws', ], 'ap-southeast-3' => [ 'hostname' => 'eks-auth.ap-southeast-3.api.aws', ], 'ap-southeast-4' => [ 'hostname' => 'eks-auth.ap-southeast-4.api.aws', ], 'ap-southeast-5' => [ 'hostname' => 'eks-auth.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'eks-auth.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'eks-auth.ca-central-1.api.aws', ], 'ca-west-1' => [ 'hostname' => 'eks-auth.ca-west-1.api.aws', ], 'eu-central-1' => [ 'hostname' => 'eks-auth.eu-central-1.api.aws', ], 'eu-central-2' => [ 'hostname' => 'eks-auth.eu-central-2.api.aws', ], 'eu-north-1' => [ 'hostname' => 'eks-auth.eu-north-1.api.aws', ], 'eu-south-1' => [ 'hostname' => 'eks-auth.eu-south-1.api.aws', ], 'eu-south-2' => [ 'hostname' => 'eks-auth.eu-south-2.api.aws', ], 'eu-west-1' => [ 'hostname' => 'eks-auth.eu-west-1.api.aws', ], 'eu-west-2' => [ 'hostname' => 'eks-auth.eu-west-2.api.aws', ], 'eu-west-3' => [ 'hostname' => 'eks-auth.eu-west-3.api.aws', ], 'il-central-1' => [ 'hostname' => 'eks-auth.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'eks-auth.me-central-1.api.aws', ], 'me-south-1' => [ 'hostname' => 'eks-auth.me-south-1.api.aws', ], 'mx-central-1' => [ 'hostname' => 'eks-auth.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'eks-auth.sa-east-1.api.aws', ], 'us-east-1' => [ 'hostname' => 'eks-auth.us-east-1.api.aws', ], 'us-east-2' => [ 'hostname' => 'eks-auth.us-east-2.api.aws', ], 'us-west-1' => [ 'hostname' => 'eks-auth.us-west-1.api.aws', ], 'us-west-2' => [ 'hostname' => 'eks-auth.us-west-2.api.aws', ], ], ], 'elasticache' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'elasticache-fips.us-west-1.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticache-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'elasticache-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'elasticache-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'elasticache-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticache-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'elasticache-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticache-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'elasticache-fips.us-west-2.amazonaws.com', ], ], ], 'elasticbeanstalk' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'elasticbeanstalk-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'elasticbeanstalk-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'elasticbeanstalk-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'elasticbeanstalk-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticbeanstalk-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'elasticbeanstalk.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticbeanstalk-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'elasticbeanstalk.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticbeanstalk-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'elasticbeanstalk.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticbeanstalk-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'elasticbeanstalk.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.af-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-northeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-northeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-northeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-southeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-southeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-southeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-southeast-4.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-southeast-5.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ap-southeast-7.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-central-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-north-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-west-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.af-south-1.amazonaws.com', ], 'fips-ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-east-1.amazonaws.com', ], 'fips-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-northeast-1.amazonaws.com', ], 'fips-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-northeast-2.amazonaws.com', ], 'fips-ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-northeast-3.amazonaws.com', ], 'fips-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-south-1.amazonaws.com', ], 'fips-ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-south-2.amazonaws.com', ], 'fips-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-southeast-1.amazonaws.com', ], 'fips-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-southeast-2.amazonaws.com', ], 'fips-ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-southeast-3.amazonaws.com', ], 'fips-ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-southeast-4.amazonaws.com', ], 'fips-ap-southeast-5' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-southeast-5.amazonaws.com', ], 'fips-ap-southeast-7' => [ 'credentialScope' => [ 'region' => 'ap-southeast-7', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ap-southeast-7.amazonaws.com', ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.ca-west-1.amazonaws.com', ], 'fips-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-central-1.amazonaws.com', ], 'fips-eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-central-2.amazonaws.com', ], 'fips-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-north-1.amazonaws.com', ], 'fips-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-south-1.amazonaws.com', ], 'fips-eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-south-2.amazonaws.com', ], 'fips-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-west-1.amazonaws.com', ], 'fips-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-west-2.amazonaws.com', ], 'fips-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-west-3.amazonaws.com', ], 'fips-il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.il-central-1.amazonaws.com', ], 'fips-me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.me-central-1.amazonaws.com', ], 'fips-me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.me-south-1.amazonaws.com', ], 'fips-mx-central-1' => [ 'credentialScope' => [ 'region' => 'mx-central-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.mx-central-1.amazonaws.com', ], 'fips-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.sa-east-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.il-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.me-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.me-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.mx-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.sa-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'elasticloadbalancing-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'elasticloadbalancing-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'elasticloadbalancing-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'elasticloadbalancing-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticloadbalancing-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'elasticloadbalancing-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticloadbalancing-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticloadbalancing-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticmapreduce' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => '{region}.{service}.{dnsSuffix}', ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'sslCommonName' => '{service}.{region}.{dnsSuffix}', ], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'sslCommonName' => '{service}.{region}.{dnsSuffix}', 'variants' => [ [ 'hostname' => 'elasticmapreduce-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticmapreduce.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'elastictranscoder' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'email' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'email-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'email-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'email-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'email-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'email-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'email-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'email-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'email-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'email-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'email-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'emr-containers' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'emr-containers-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'emr-containers-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'emr-containers-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'emr-containers-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'emr-containers-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'emr-containers-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'emr-containers-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'emr-containers-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'emr-containers-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'emr-containers-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'emr-serverless' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'emr-serverless-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'emr-serverless-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'emr-serverless-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'emr-serverless-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'emr-serverless-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'emr-serverless-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'emr-serverless-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'emr-serverless-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'emr-serverless-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'emr-serverless-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'entitlement.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'entitlement-marketplace.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'es' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'aos.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'aos.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'aos.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'aos.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'aos.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'aos.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'aos.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'aos.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'aos.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'aos.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'aos.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'aos.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'aos.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'aos.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'aos.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'aos.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'aos.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'aos.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'aos.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'aos.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'aos.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'aos.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'aos.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'es-fips.us-west-1.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'aos.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'aos.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'aos.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'aos.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'aos.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'aos.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'es-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'es-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'aos.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'es-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'es-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'aos.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'es-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'es-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'aos.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'es-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'es-fips.us-west-2.amazonaws.com', ], ], ], 'events' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'events.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'events.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'events.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'events.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'events.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'events.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'events.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'events.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'events.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'events.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'events.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'events.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'events.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'events.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'events.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'events.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'events.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'events.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'events.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'events.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'events.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'events.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'events.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'events-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'events-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'events-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'events-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'events.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'events.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'events.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'events.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'events.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'events-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'events-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'events.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'events-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'events-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'events.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'events-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'events-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'events.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'events-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'events-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'events.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'evidently' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'hostname' => 'evidently.ap-northeast-1.amazonaws.com', ], 'ap-southeast-1' => [ 'hostname' => 'evidently.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'hostname' => 'evidently.ap-southeast-2.amazonaws.com', ], 'eu-central-1' => [ 'hostname' => 'evidently.eu-central-1.amazonaws.com', ], 'eu-north-1' => [ 'hostname' => 'evidently.eu-north-1.amazonaws.com', ], 'eu-west-1' => [ 'hostname' => 'evidently.eu-west-1.amazonaws.com', ], 'us-east-1' => [ 'hostname' => 'evidently.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'hostname' => 'evidently.us-east-2.amazonaws.com', ], 'us-west-2' => [ 'hostname' => 'evidently.us-west-2.amazonaws.com', ], ], ], 'finspace' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'finspace-api' => [ 'endpoints' => [ 'ca-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'firehose' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'firehose.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'firehose.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'firehose.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'firehose.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'firehose.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'firehose-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'firehose-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'firehose-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'firehose-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'firehose.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'firehose.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'firehose.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'firehose.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'firehose.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'firehose-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'firehose-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'firehose.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'firehose-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'firehose-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'firehose.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'firehose-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'firehose-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'firehose.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'firehose-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'firehose-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'firehose.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'fms' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.af-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ap-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ap-northeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ap-northeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-3' => [], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ap-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-2' => [], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ap-southeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ap-southeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.eu-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.eu-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-2' => [], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.eu-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'fms-fips.eu-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'fms-fips.eu-west-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.af-south-1.amazonaws.com', ], 'fips-ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.ap-east-1.amazonaws.com', ], 'fips-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.ap-northeast-1.amazonaws.com', ], 'fips-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'deprecated' => true, 'hostname' => 'fms-fips.ap-northeast-2.amazonaws.com', ], 'fips-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.ap-south-1.amazonaws.com', ], 'fips-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.ap-southeast-1.amazonaws.com', ], 'fips-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'deprecated' => true, 'hostname' => 'fms-fips.ap-southeast-2.amazonaws.com', ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.ca-west-1.amazonaws.com', ], 'fips-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.eu-central-1.amazonaws.com', ], 'fips-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.eu-south-1.amazonaws.com', ], 'fips-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.eu-west-1.amazonaws.com', ], 'fips-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'deprecated' => true, 'hostname' => 'fms-fips.eu-west-2.amazonaws.com', ], 'fips-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'deprecated' => true, 'hostname' => 'fms-fips.eu-west-3.amazonaws.com', ], 'fips-me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.me-south-1.amazonaws.com', ], 'fips-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.sa-east-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'fms-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'fms-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.me-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.sa-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'fms-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'fms-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'forecast' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'forecast-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'forecast-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'forecast-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'forecast-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'forecast-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'forecast-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'forecastquery' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'forecastquery-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'forecastquery-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'forecastquery-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'forecastquery-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'forecastquery-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'forecastquery-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'frauddetector' => [ 'endpoints' => [ 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'fsx' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.ca-west-1.amazonaws.com', ], 'fips-prod-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.ca-central-1.amazonaws.com', ], 'fips-prod-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.ca-west-1.amazonaws.com', ], 'fips-prod-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-east-1.amazonaws.com', ], 'fips-prod-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-east-2.amazonaws.com', ], 'fips-prod-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-west-1.amazonaws.com', ], 'fips-prod-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-west-2.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'prod-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'prod-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'prod-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'prod-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'prod-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'prod-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'gamelift' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'gameliftstreams' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'hostname' => 'gameliftstreams.af-south-1.api.aws', ], 'ap-east-1' => [ 'hostname' => 'gameliftstreams.ap-east-1.api.aws', ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'gameliftstreams.ap-northeast-1.api.aws', ], 'ap-northeast-2' => [ 'hostname' => 'gameliftstreams.ap-northeast-2.api.aws', ], 'ap-northeast-3' => [ 'hostname' => 'gameliftstreams.ap-northeast-3.api.aws', ], 'ap-south-1' => [ 'hostname' => 'gameliftstreams.ap-south-1.api.aws', ], 'ap-south-2' => [ 'hostname' => 'gameliftstreams.ap-south-2.api.aws', ], 'ap-southeast-1' => [ 'hostname' => 'gameliftstreams.ap-southeast-1.api.aws', ], 'ap-southeast-2' => [ 'hostname' => 'gameliftstreams.ap-southeast-2.api.aws', ], 'ap-southeast-3' => [ 'hostname' => 'gameliftstreams.ap-southeast-3.api.aws', ], 'ap-southeast-4' => [ 'hostname' => 'gameliftstreams.ap-southeast-4.api.aws', ], 'ap-southeast-5' => [ 'hostname' => 'gameliftstreams.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'gameliftstreams.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'gameliftstreams.ca-central-1.api.aws', ], 'ca-west-1' => [ 'hostname' => 'gameliftstreams.ca-west-1.api.aws', ], 'eu-central-1' => [ 'hostname' => 'gameliftstreams.eu-central-1.api.aws', ], 'eu-central-2' => [ 'hostname' => 'gameliftstreams.eu-central-2.api.aws', ], 'eu-north-1' => [ 'hostname' => 'gameliftstreams.eu-north-1.api.aws', ], 'eu-south-1' => [ 'hostname' => 'gameliftstreams.eu-south-1.api.aws', ], 'eu-south-2' => [ 'hostname' => 'gameliftstreams.eu-south-2.api.aws', ], 'eu-west-1' => [ 'hostname' => 'gameliftstreams.eu-west-1.api.aws', ], 'eu-west-2' => [ 'hostname' => 'gameliftstreams.eu-west-2.api.aws', ], 'eu-west-3' => [ 'hostname' => 'gameliftstreams.eu-west-3.api.aws', ], 'il-central-1' => [ 'hostname' => 'gameliftstreams.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'gameliftstreams.me-central-1.api.aws', ], 'me-south-1' => [ 'hostname' => 'gameliftstreams.me-south-1.api.aws', ], 'mx-central-1' => [ 'hostname' => 'gameliftstreams.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'gameliftstreams.sa-east-1.api.aws', ], 'us-east-1' => [ 'hostname' => 'gameliftstreams.us-east-1.api.aws', ], 'us-east-2' => [ 'hostname' => 'gameliftstreams.us-east-2.api.aws', ], 'us-west-1' => [ 'hostname' => 'gameliftstreams.us-west-1.api.aws', ], 'us-west-2' => [ 'hostname' => 'gameliftstreams.us-west-2.api.aws', ], ], ], 'geo' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-5' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'glacier' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'glacier-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'globalaccelerator' => [ 'endpoints' => [ 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'globalaccelerator-fips.us-west-2.amazonaws.com', ], ], ], 'glue' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'glue.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'glue.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'glue.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'glue.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'glue.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'glue.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'glue.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'glue.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'glue.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'glue.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'glue.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'glue.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'glue.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'glue.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'glue.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'glue.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'glue.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'glue.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'glue.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'glue.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'glue.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'glue.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'glue.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'glue-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'glue-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'glue-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'glue-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'glue.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'glue.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'glue.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'glue.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'glue.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'glue-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'glue-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'glue.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'glue-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'glue-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'glue.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'glue-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'glue-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'glue.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'glue-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'glue-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'glue.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'grafana' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'grafana.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'grafana.ap-northeast-2.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'grafana.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'grafana.ap-southeast-2.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'grafana.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'grafana.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'grafana.eu-west-2.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'grafana.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'grafana.us-east-2.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'grafana.us-west-2.amazonaws.com', ], ], ], 'greengrass' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'greengrass-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'greengrass-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'greengrass-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'greengrass-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'greengrass-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'greengrass-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'greengrass-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'greengrass-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], 'isRegionalized' => true, ], 'groundstation' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'groundstation-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'groundstation-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'groundstation-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'groundstation-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'groundstation-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'groundstation-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'groundstation-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'groundstation-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'groundstation-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], ], ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'guardduty-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'guardduty-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'guardduty-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'guardduty-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'guardduty-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'guardduty-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'guardduty-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'guardduty-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'guardduty-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'guardduty-fips.us-west-2.amazonaws.com', ], ], 'isRegionalized' => true, ], 'health' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => 'health.us-east-1.amazonaws.com', ], 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'global.health.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'health-fips.us-east-2.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'health-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'healthlake' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'iam' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'iam.amazonaws.com', 'variants' => [ [ 'hostname' => 'iam-fips.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'iam.global.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'aws-global-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'iam-fips.amazonaws.com', ], 'iam' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'iam-fips.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'iam-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'iam-fips.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'identity-chime' => [ 'endpoints' => [ 'eu-central-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'identity-chime-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'identity-chime-fips.us-east-1.amazonaws.com', ], ], ], 'identitystore' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'importexport' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', 'service' => 'IngestionService', ], 'hostname' => 'importexport.amazonaws.com', 'signatureVersions' => [ 'v2', 'v4', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'ingest.timestream' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'ingest-fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ingest.timestream-fips.us-east-1.amazonaws.com', ], 'ingest-fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ingest.timestream-fips.us-east-2.amazonaws.com', ], 'ingest-fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ingest.timestream-fips.us-west-2.amazonaws.com', ], 'ingest-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ingest.timestream-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ingest-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ingest.timestream-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ingest-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ingest.timestream-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'inspector' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'inspector-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'inspector-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'inspector-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'inspector-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'inspector-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'inspector-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'inspector-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'inspector-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'inspector2' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'inspector2-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'inspector2-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'inspector2-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'inspector2-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'inspector2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'inspector2-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'inspector2-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'inspector2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'internetmonitor' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'hostname' => 'internetmonitor.af-south-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'hostname' => 'internetmonitor.ap-east-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'internetmonitor.ap-northeast-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'hostname' => 'internetmonitor.ap-northeast-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'hostname' => 'internetmonitor.ap-northeast-3.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'hostname' => 'internetmonitor.ap-south-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'hostname' => 'internetmonitor.ap-south-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'hostname' => 'internetmonitor.ap-southeast-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'hostname' => 'internetmonitor.ap-southeast-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'hostname' => 'internetmonitor.ap-southeast-3.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'hostname' => 'internetmonitor.ap-southeast-4.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'hostname' => 'internetmonitor.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'internetmonitor.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'internetmonitor.ca-central-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'internetmonitor-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'internetmonitor.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'hostname' => 'internetmonitor.ca-west-1.api.aws', ], 'eu-central-1' => [ 'hostname' => 'internetmonitor.eu-central-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'hostname' => 'internetmonitor.eu-central-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'hostname' => 'internetmonitor.eu-north-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'hostname' => 'internetmonitor.eu-south-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'hostname' => 'internetmonitor.eu-south-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'hostname' => 'internetmonitor.eu-west-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'hostname' => 'internetmonitor.eu-west-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'hostname' => 'internetmonitor.eu-west-3.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'hostname' => 'internetmonitor.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'internetmonitor.me-central-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'hostname' => 'internetmonitor.me-south-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'hostname' => 'internetmonitor.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'internetmonitor.sa-east-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'hostname' => 'internetmonitor.us-east-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'internetmonitor-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'internetmonitor.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'hostname' => 'internetmonitor.us-east-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'internetmonitor-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'internetmonitor.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'hostname' => 'internetmonitor.us-west-1.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'internetmonitor-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'internetmonitor.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'hostname' => 'internetmonitor.us-west-2.api.aws', 'variants' => [ [ 'hostname' => 'internetmonitor-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'internetmonitor-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'internetmonitor.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'iot' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'deprecated' => true, 'hostname' => 'iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'deprecated' => true, 'hostname' => 'iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'deprecated' => true, 'hostname' => 'iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'deprecated' => true, 'hostname' => 'iot-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'deprecated' => true, 'hostname' => 'iot-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'iot-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotanalytics' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'iotevents' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'iotevents-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'iotevents-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'iotevents-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'iotevents-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'iotevents-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'iotevents-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'iotevents-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'iotevents-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ioteventsdata' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'data.iotevents.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'data.iotevents.ap-northeast-2.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'data.iotevents.ap-south-1.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'data.iotevents.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'data.iotevents.ap-southeast-2.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'data.iotevents.ca-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'data.iotevents-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'data.iotevents.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'data.iotevents.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'data.iotevents.eu-west-2.amazonaws.com', ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'data.iotevents-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'data.iotevents-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'data.iotevents-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'data.iotevents-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'data.iotevents.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'data.iotevents-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'data.iotevents.us-east-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'data.iotevents-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'data.iotevents.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'data.iotevents-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotfleetwise' => [ 'endpoints' => [ 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], ], ], 'iotsecuredtunneling' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotsitewise' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'iotsitewise-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-1' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'iotsitewise-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'iotsitewise-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'iotsitewise-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'iotsitewise-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'iotsitewise-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'iotsitewise-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'iotsitewise-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotthingsgraph' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotthingsgraph', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'iottwinmaker' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'api-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'api.iottwinmaker.ap-northeast-1.amazonaws.com', ], 'api-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'api.iottwinmaker.ap-northeast-2.amazonaws.com', ], 'api-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'api.iottwinmaker.ap-south-1.amazonaws.com', ], 'api-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'api.iottwinmaker.ap-southeast-1.amazonaws.com', ], 'api-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'api.iottwinmaker.ap-southeast-2.amazonaws.com', ], 'api-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'api.iottwinmaker.eu-central-1.amazonaws.com', ], 'api-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'api.iottwinmaker.eu-west-1.amazonaws.com', ], 'api-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.iottwinmaker.us-east-1.amazonaws.com', ], 'api-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.iottwinmaker.us-west-2.amazonaws.com', ], 'data-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'data.iottwinmaker.ap-northeast-1.amazonaws.com', ], 'data-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'data.iottwinmaker.ap-northeast-2.amazonaws.com', ], 'data-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'data.iottwinmaker.ap-south-1.amazonaws.com', ], 'data-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'data.iottwinmaker.ap-southeast-1.amazonaws.com', ], 'data-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'data.iottwinmaker.ap-southeast-2.amazonaws.com', ], 'data-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'data.iottwinmaker.eu-central-1.amazonaws.com', ], 'data-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'data.iottwinmaker.eu-west-1.amazonaws.com', ], 'data-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'data.iottwinmaker.us-east-1.amazonaws.com', ], 'data-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'data.iottwinmaker.us-west-2.amazonaws.com', ], 'eu-central-1' => [], 'eu-west-1' => [], 'fips-api-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.iottwinmaker-fips.us-east-1.amazonaws.com', ], 'fips-api-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.iottwinmaker-fips.us-west-2.amazonaws.com', ], 'fips-data-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'data.iottwinmaker-fips.us-east-1.amazonaws.com', ], 'fips-data-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'data.iottwinmaker-fips.us-west-2.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'iottwinmaker-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'iottwinmaker-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'iottwinmaker-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'iottwinmaker-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotwireless' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'api.iotwireless.ap-northeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'api.iotwireless.ap-southeast-2.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'api.iotwireless.eu-west-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'api.iotwireless.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'api.iotwireless.us-west-2.amazonaws.com', ], ], ], 'ivs' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'ivschat' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'ivsrealtime' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'kafka' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'kafka-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'kafka-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'kafka-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'kafka-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'kafka-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'kafka-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'kafka-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'kafka-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'kafka-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'kafka-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'kafka-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'kafka-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kafkaconnect' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'kendra' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'kendra-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'kendra-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'kendra-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'kendra-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'kendra-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'kendra-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'kendra-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'kendra-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kendra-ranking' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'hostname' => 'kendra-ranking.af-south-1.api.aws', ], 'ap-east-1' => [ 'hostname' => 'kendra-ranking.ap-east-1.api.aws', ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'kendra-ranking.ap-northeast-1.api.aws', ], 'ap-northeast-2' => [ 'hostname' => 'kendra-ranking.ap-northeast-2.api.aws', ], 'ap-northeast-3' => [ 'hostname' => 'kendra-ranking.ap-northeast-3.api.aws', ], 'ap-south-1' => [ 'hostname' => 'kendra-ranking.ap-south-1.api.aws', ], 'ap-south-2' => [ 'hostname' => 'kendra-ranking.ap-south-2.api.aws', ], 'ap-southeast-1' => [ 'hostname' => 'kendra-ranking.ap-southeast-1.api.aws', ], 'ap-southeast-2' => [ 'hostname' => 'kendra-ranking.ap-southeast-2.api.aws', ], 'ap-southeast-3' => [ 'hostname' => 'kendra-ranking.ap-southeast-3.api.aws', ], 'ap-southeast-4' => [ 'hostname' => 'kendra-ranking.ap-southeast-4.api.aws', ], 'ap-southeast-5' => [ 'hostname' => 'kendra-ranking.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'kendra-ranking.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'kendra-ranking.ca-central-1.api.aws', 'variants' => [ [ 'hostname' => 'kendra-ranking-fips.ca-central-1.api.aws', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'hostname' => 'kendra-ranking.ca-west-1.api.aws', ], 'eu-central-2' => [ 'hostname' => 'kendra-ranking.eu-central-2.api.aws', ], 'eu-north-1' => [ 'hostname' => 'kendra-ranking.eu-north-1.api.aws', ], 'eu-south-1' => [ 'hostname' => 'kendra-ranking.eu-south-1.api.aws', ], 'eu-south-2' => [ 'hostname' => 'kendra-ranking.eu-south-2.api.aws', ], 'eu-west-1' => [ 'hostname' => 'kendra-ranking.eu-west-1.api.aws', ], 'eu-west-3' => [ 'hostname' => 'kendra-ranking.eu-west-3.api.aws', ], 'il-central-1' => [ 'hostname' => 'kendra-ranking.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'kendra-ranking.me-central-1.api.aws', ], 'me-south-1' => [ 'hostname' => 'kendra-ranking.me-south-1.api.aws', ], 'mx-central-1' => [ 'hostname' => 'kendra-ranking.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'kendra-ranking.sa-east-1.api.aws', ], 'us-east-1' => [ 'hostname' => 'kendra-ranking.us-east-1.api.aws', 'variants' => [ [ 'hostname' => 'kendra-ranking-fips.us-east-1.api.aws', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'hostname' => 'kendra-ranking.us-east-2.api.aws', 'variants' => [ [ 'hostname' => 'kendra-ranking-fips.us-east-2.api.aws', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'hostname' => 'kendra-ranking.us-west-1.api.aws', ], 'us-west-2' => [ 'hostname' => 'kendra-ranking.us-west-2.api.aws', 'variants' => [ [ 'hostname' => 'kendra-ranking-fips.us-west-2.api.aws', 'tags' => [ 'fips', ], ], ], ], ], ], 'kinesis' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'kinesis-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'kinesis-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'kinesis-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'kinesis-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'kinesis-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'kinesis-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'kinesis-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'kinesis-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kinesisvideo' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-central-2.amazonaws.com', ], 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.af-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'af-south-1-fips' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.af-south-1.amazonaws.com', ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-east-1-fips' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-east-1.amazonaws.com', ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-northeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-1-fips' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-northeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-2-fips' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-northeast-2.amazonaws.com', ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-northeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-3-fips' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-northeast-3.amazonaws.com', ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-1-fips' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-south-1.amazonaws.com', ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-2-fips' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-south-2.amazonaws.com', ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-southeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-1-fips' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-southeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-2-fips' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-southeast-2.amazonaws.com', ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-southeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-3-fips' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-southeast-3.amazonaws.com', ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-southeast-4.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-4-fips' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-southeast-4.amazonaws.com', ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-southeast-5.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-5-fips' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-southeast-5.amazonaws.com', ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ap-southeast-7.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-7-fips' => [ 'credentialScope' => [ 'region' => 'ap-southeast-7', ], 'deprecated' => true, 'hostname' => 'kms-fips.ap-southeast-7.amazonaws.com', ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1-fips' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-central-1.amazonaws.com', ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-central-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-2-fips' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-central-2.amazonaws.com', ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-north-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-north-1-fips' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-north-1.amazonaws.com', ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-1-fips' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-south-1.amazonaws.com', ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-2-fips' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-south-2.amazonaws.com', ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-1-fips' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-2-fips' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-west-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-3-fips' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-west-3.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.il-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'il-central-1-fips' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.il-central-1.amazonaws.com', ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.me-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-central-1-fips' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.me-central-1.amazonaws.com', ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.me-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-south-1-fips' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.me-south-1.amazonaws.com', ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.mx-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'mx-central-1-fips' => [ 'credentialScope' => [ 'region' => 'mx-central-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.mx-central-1.amazonaws.com', ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.sa-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'sa-east-1-fips' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-west-2.amazonaws.com', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'lakeformation.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'lakeformation-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'lakeformation-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'lakeformation-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'lakeformation-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lakeformation-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'lakeformation.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lakeformation-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'lakeformation.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lakeformation-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'lakeformation.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'lakeformation-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lakeformation-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'lakeformation.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'lambda' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'lambda.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'lambda.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'lambda.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'lambda.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'lambda-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'lambda-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'lambda-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'lambda-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'lambda.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'lambda.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'lambda.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'lambda.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'lambda.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'lambda-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lambda.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'lambda-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lambda.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'lambda-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lambda.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'lambda-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lambda.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'license-manager' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'license-manager-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'license-manager-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'license-manager-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'license-manager-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'license-manager-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'license-manager-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'license-manager-linux-subscriptions' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'license-manager-linux-subscriptions-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'license-manager-linux-subscriptions-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'license-manager-linux-subscriptions-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'license-manager-linux-subscriptions-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-linux-subscriptions-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'license-manager-linux-subscriptions-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-linux-subscriptions-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'license-manager-linux-subscriptions-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'license-manager-user-subscriptions' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'license-manager-user-subscriptions-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'license-manager-user-subscriptions-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'license-manager-user-subscriptions-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'license-manager-user-subscriptions-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-user-subscriptions-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'license-manager-user-subscriptions-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-user-subscriptions-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'license-manager-user-subscriptions-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'lightsail' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'logs' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'logs.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'logs.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'logs.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'logs.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'logs.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'logs.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'logs.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'logs.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'logs.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'logs.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'logs.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'logs-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'logs-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'logs.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'logs.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'logs.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'logs.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'logs.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'logs.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'logs.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'logs.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'logs-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'logs-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'logs-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'logs-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'logs-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'logs-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'logs.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'logs.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'logs.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'logs.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'logs-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'logs-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'logs-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'logs-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'lookoutequipment' => [ 'endpoints' => [ 'ap-northeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], ], ], 'lookoutmetrics' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'lookoutvision' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'm2' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'deprecated' => true, ], 'fips-us-east-1' => [ 'deprecated' => true, ], 'fips-us-east-2' => [ 'deprecated' => true, ], 'fips-us-west-1' => [ 'deprecated' => true, ], 'fips-us-west-2' => [ 'deprecated' => true, ], 'il-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'machinelearning' => [ 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], ], ], 'macie2' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'macie2.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'macie2.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'macie2.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'macie2.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'macie2.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'macie2.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'macie2.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'macie2.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'macie2.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'macie2-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'macie2-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'macie2-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'macie2-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'macie2.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'macie2.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'macie2.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'macie2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'macie2-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'macie2.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'macie2-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'macie2-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'macie2.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'macie2-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'macie2-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'macie2.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'macie2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'macie2-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'macie2.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'managedblockchain' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], ], ], 'managedblockchain-query' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'marketplacecommerceanalytics' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'media-pipelines-chime' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-2' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'media-pipelines-chime-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'media-pipelines-chime-fips.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'media-pipelines-chime-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'media-pipelines-chime-fips.us-west-2.amazonaws.com', ], ], ], 'mediaconnect' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mediaconvert' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'mediaconvert-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'mediaconvert.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'mediaconvert-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'mediaconvert-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'mediaconvert-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'mediaconvert-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'mediaconvert-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'mediaconvert-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'mediaconvert.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'mediaconvert-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'mediaconvert-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'mediaconvert.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'mediaconvert-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'mediaconvert.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'mediaconvert-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'mediaconvert-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'mediaconvert.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'medialive' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'medialive-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'medialive-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'medialive-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'medialive-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'medialive-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'medialive-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'mediapackage' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mediapackage-vod' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'mediapackagev2' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-4' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'mediapackagev2-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'mediapackagev2-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'mediapackagev2-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'mediapackagev2-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'mediapackagev2-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'mediapackagev2-fips.us-west-2.amazonaws.com', ], 'me-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'mediapackagev2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'mediapackagev2-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'mediapackagev2-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'mediapackagev2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'mediastore' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'meetings-chime' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'meetings-chime-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'meetings-chime-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-west-2' => [], 'il-central-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'meetings-chime-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'meetings-chime-fips.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'meetings-chime-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'meetings-chime-fips.us-west-2.amazonaws.com', ], ], ], 'memory-db' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'memory-db-fips.us-west-1.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'messaging-chime' => [ 'endpoints' => [ 'eu-central-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'messaging-chime-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'messaging-chime-fips.us-east-1.amazonaws.com', ], ], ], 'metering.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'metrics-fips.sagemaker.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'metrics-fips.sagemaker.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'metrics-fips.sagemaker.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'metrics-fips.sagemaker.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'metrics-fips.sagemaker.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'metrics-fips.sagemaker.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'metrics-fips.sagemaker.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'metrics-fips.sagemaker.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'metrics-fips.sagemaker.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'metrics-fips.sagemaker.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'metrics-fips.sagemaker.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'metrics-fips.sagemaker.us-west-2.amazonaws.com', ], ], ], 'mgh' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'mgn' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'mgn-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'mgn-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'mgn-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'mgn-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'mgn-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'mgn-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'mgn-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'mgn-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'migrationhub-orchestrator' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'migrationhub-strategy' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'mobileanalytics' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'models-v2-lex' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'models.lex' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'lex', ], 'variants' => [ [ 'hostname' => 'models-fips.lex.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'models-fips.lex.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'models-fips.lex.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'models-fips.lex.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'models-fips.lex.us-west-2.amazonaws.com', ], ], ], 'monitoring' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'monitoring-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'monitoring-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'monitoring-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'monitoring-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'monitoring-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'monitoring-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'monitoring-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'monitoring-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'mq' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'mq-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'mq-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'mq-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'mq-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'mq-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'mq-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'mq-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'mq-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'mturk-requester' => [ 'endpoints' => [ 'sandbox' => [ 'hostname' => 'mturk-requester-sandbox.us-east-1.amazonaws.com', ], 'us-east-1' => [], ], 'isRegionalized' => false, ], 'neptune' => [ 'endpoints' => [ 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'rds.ap-east-1.amazonaws.com', ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'rds.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'rds.ap-northeast-2.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'rds.ap-south-1.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'rds.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'rds.ap-southeast-2.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'rds.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'rds.eu-central-1.amazonaws.com', ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'rds.eu-north-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'rds.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'rds.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'rds.eu-west-3.amazonaws.com', ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'rds.me-south-1.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'rds.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'rds.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'rds.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'rds.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'rds.us-west-2.amazonaws.com', ], ], ], 'network-firewall' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'networkmanager' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'networkmanager.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'networkmanager-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'networkmanager-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'networkmanager.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-aws-global' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'networkmanager-fips.us-west-2.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'notifications' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'hostname' => 'notifications.af-south-1.api.aws', ], 'ap-east-1' => [ 'hostname' => 'notifications.ap-east-1.api.aws', ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'notifications.ap-northeast-1.api.aws', ], 'ap-northeast-2' => [ 'hostname' => 'notifications.ap-northeast-2.api.aws', ], 'ap-northeast-3' => [ 'hostname' => 'notifications.ap-northeast-3.api.aws', ], 'ap-south-1' => [ 'hostname' => 'notifications.ap-south-1.api.aws', ], 'ap-south-2' => [ 'hostname' => 'notifications.ap-south-2.api.aws', ], 'ap-southeast-1' => [ 'hostname' => 'notifications.ap-southeast-1.api.aws', ], 'ap-southeast-2' => [ 'hostname' => 'notifications.ap-southeast-2.api.aws', ], 'ap-southeast-3' => [ 'hostname' => 'notifications.ap-southeast-3.api.aws', ], 'ap-southeast-4' => [ 'hostname' => 'notifications.ap-southeast-4.api.aws', ], 'ap-southeast-5' => [ 'hostname' => 'notifications.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'notifications.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'notifications.ca-central-1.api.aws', ], 'ca-west-1' => [ 'hostname' => 'notifications.ca-west-1.api.aws', ], 'eu-central-1' => [ 'hostname' => 'notifications.eu-central-1.api.aws', ], 'eu-central-2' => [ 'hostname' => 'notifications.eu-central-2.api.aws', ], 'eu-north-1' => [ 'hostname' => 'notifications.eu-north-1.api.aws', ], 'eu-south-1' => [ 'hostname' => 'notifications.eu-south-1.api.aws', ], 'eu-south-2' => [ 'hostname' => 'notifications.eu-south-2.api.aws', ], 'eu-west-1' => [ 'hostname' => 'notifications.eu-west-1.api.aws', ], 'eu-west-2' => [ 'hostname' => 'notifications.eu-west-2.api.aws', ], 'eu-west-3' => [ 'hostname' => 'notifications.eu-west-3.api.aws', ], 'il-central-1' => [ 'hostname' => 'notifications.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'notifications.me-central-1.api.aws', ], 'me-south-1' => [ 'hostname' => 'notifications.me-south-1.api.aws', ], 'mx-central-1' => [ 'hostname' => 'notifications.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'notifications.sa-east-1.api.aws', ], 'us-east-1' => [ 'hostname' => 'notifications.us-east-1.api.aws', ], 'us-east-2' => [ 'hostname' => 'notifications.us-east-2.api.aws', ], 'us-west-1' => [ 'hostname' => 'notifications.us-west-1.api.aws', ], 'us-west-2' => [ 'hostname' => 'notifications.us-west-2.api.aws', ], ], ], 'notifications-contacts' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'notifications-contacts.us-east-1.api.aws', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'oam' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'oidc' => [ 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'oidc.af-south-1.amazonaws.com', ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'oidc.ap-east-1.amazonaws.com', ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'oidc.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'oidc.ap-northeast-2.amazonaws.com', ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'oidc.ap-northeast-3.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'oidc.ap-south-1.amazonaws.com', ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'oidc.ap-south-2.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'oidc.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'oidc.ap-southeast-2.amazonaws.com', ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 'oidc.ap-southeast-3.amazonaws.com', ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 'oidc.ap-southeast-4.amazonaws.com', ], 'ap-southeast-5' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'hostname' => 'oidc.ap-southeast-5.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'oidc.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'hostname' => 'oidc.ca-west-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'oidc.eu-central-1.amazonaws.com', ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'oidc.eu-central-2.amazonaws.com', ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'oidc.eu-north-1.amazonaws.com', ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'oidc.eu-south-1.amazonaws.com', ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'oidc.eu-south-2.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'oidc.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'oidc.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'oidc.eu-west-3.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'oidc.il-central-1.amazonaws.com', ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 'oidc.me-central-1.amazonaws.com', ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'oidc.me-south-1.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'oidc.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'oidc.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'oidc.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'oidc.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'oidc.us-west-2.amazonaws.com', ], ], ], 'omics' => [ 'endpoints' => [ 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'omics.ap-southeast-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'omics.eu-central-1.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'omics.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'omics.eu-west-2.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'omics-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'omics-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'omics.il-central-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'omics.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'omics-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'omics.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'omics-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'opsworks' => [ 'endpoints' => [ 'ap-southeast-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'opsworks-cm' => [ 'endpoints' => [ 'ap-southeast-2' => [], 'eu-west-1' => [], 'us-east-1' => [], ], ], 'organizations' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'organizations.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'organizations-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'organizations-fips.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'osis' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'outposts' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'outposts-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'outposts-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'outposts-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'outposts-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'outposts-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'outposts-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'outposts-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'outposts-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'outposts-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'outposts-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'participant.connect' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'participant.connect-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'participant.connect-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'participant.connect-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'participant.connect-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'personalize' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'pi' => [ 'endpoints' => [ 'af-south-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'pi-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'pi-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'pi-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'pi-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'pi-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'pi-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'pinpoint' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'mobiletargeting', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'pinpoint.ca-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'pinpoint-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'pinpoint-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'pinpoint-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'pinpoint-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'pinpoint-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'pinpoint.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'pinpoint-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'pinpoint.us-east-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'pinpoint-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'pinpoint.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'pinpoint-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'pipes' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'polly' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'polly.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'polly.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'polly.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'polly.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'polly.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'polly.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'polly.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'polly.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'polly.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'polly-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'polly-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'polly.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'polly.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'polly.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'polly.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'polly.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'polly.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'polly.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'polly-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'polly-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'polly-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'polly-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'polly-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'polly.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'polly.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'polly-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'polly-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'polly.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'polly-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'polly-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'polly.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'polly-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'polly-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'polly.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'polly-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'polly-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'polly.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'portal.sso' => [ 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'portal.sso.af-south-1.amazonaws.com', ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'portal.sso.ap-east-1.amazonaws.com', ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'portal.sso.ap-northeast-1.amazonaws.com', ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'portal.sso.ap-northeast-2.amazonaws.com', ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'portal.sso.ap-northeast-3.amazonaws.com', ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'portal.sso.ap-south-1.amazonaws.com', ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'portal.sso.ap-south-2.amazonaws.com', ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'portal.sso.ap-southeast-1.amazonaws.com', ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'portal.sso.ap-southeast-2.amazonaws.com', ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 'portal.sso.ap-southeast-3.amazonaws.com', ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 'portal.sso.ap-southeast-4.amazonaws.com', ], 'ap-southeast-5' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'hostname' => 'portal.sso.ap-southeast-5.amazonaws.com', ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'portal.sso.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'hostname' => 'portal.sso.ca-west-1.amazonaws.com', ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'portal.sso.eu-central-1.amazonaws.com', ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'portal.sso.eu-central-2.amazonaws.com', ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'portal.sso.eu-north-1.amazonaws.com', ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'portal.sso.eu-south-1.amazonaws.com', ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'portal.sso.eu-south-2.amazonaws.com', ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'portal.sso.eu-west-1.amazonaws.com', ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'portal.sso.eu-west-2.amazonaws.com', ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'portal.sso.eu-west-3.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'portal.sso.il-central-1.amazonaws.com', ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 'portal.sso.me-central-1.amazonaws.com', ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'portal.sso.me-south-1.amazonaws.com', ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'portal.sso.sa-east-1.amazonaws.com', ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'portal.sso.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'portal.sso.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'portal.sso.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'portal.sso.us-west-2.amazonaws.com', ], ], ], 'profile' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'profile-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'profile-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'profile-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'profile-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'profile-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'profile-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'proton' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'qbusiness' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'hostname' => 'qbusiness.af-south-1.api.aws', ], 'ap-east-1' => [ 'hostname' => 'qbusiness.ap-east-1.api.aws', ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 'qbusiness.ap-northeast-1.api.aws', ], 'ap-northeast-2' => [ 'hostname' => 'qbusiness.ap-northeast-2.api.aws', ], 'ap-northeast-3' => [ 'hostname' => 'qbusiness.ap-northeast-3.api.aws', ], 'ap-south-1' => [ 'hostname' => 'qbusiness.ap-south-1.api.aws', ], 'ap-south-2' => [ 'hostname' => 'qbusiness.ap-south-2.api.aws', ], 'ap-southeast-1' => [ 'hostname' => 'qbusiness.ap-southeast-1.api.aws', ], 'ap-southeast-2' => [ 'hostname' => 'qbusiness.ap-southeast-2.api.aws', ], 'ap-southeast-3' => [ 'hostname' => 'qbusiness.ap-southeast-3.api.aws', ], 'ap-southeast-4' => [ 'hostname' => 'qbusiness.ap-southeast-4.api.aws', ], 'ap-southeast-5' => [ 'hostname' => 'qbusiness.ap-southeast-5.api.aws', ], 'ap-southeast-7' => [ 'hostname' => 'qbusiness.ap-southeast-7.api.aws', ], 'ca-central-1' => [ 'hostname' => 'qbusiness.ca-central-1.api.aws', ], 'ca-west-1' => [ 'hostname' => 'qbusiness.ca-west-1.api.aws', ], 'eu-central-1' => [ 'hostname' => 'qbusiness.eu-central-1.api.aws', ], 'eu-central-2' => [ 'hostname' => 'qbusiness.eu-central-2.api.aws', ], 'eu-north-1' => [ 'hostname' => 'qbusiness.eu-north-1.api.aws', ], 'eu-south-1' => [ 'hostname' => 'qbusiness.eu-south-1.api.aws', ], 'eu-south-2' => [ 'hostname' => 'qbusiness.eu-south-2.api.aws', ], 'eu-west-1' => [ 'hostname' => 'qbusiness.eu-west-1.api.aws', ], 'eu-west-2' => [ 'hostname' => 'qbusiness.eu-west-2.api.aws', ], 'eu-west-3' => [ 'hostname' => 'qbusiness.eu-west-3.api.aws', ], 'il-central-1' => [ 'hostname' => 'qbusiness.il-central-1.api.aws', ], 'me-central-1' => [ 'hostname' => 'qbusiness.me-central-1.api.aws', ], 'me-south-1' => [ 'hostname' => 'qbusiness.me-south-1.api.aws', ], 'mx-central-1' => [ 'hostname' => 'qbusiness.mx-central-1.api.aws', ], 'sa-east-1' => [ 'hostname' => 'qbusiness.sa-east-1.api.aws', ], 'us-east-1' => [ 'hostname' => 'qbusiness.us-east-1.api.aws', ], 'us-east-2' => [ 'hostname' => 'qbusiness.us-east-2.api.aws', ], 'us-west-1' => [ 'hostname' => 'qbusiness.us-west-1.api.aws', ], 'us-west-2' => [ 'hostname' => 'qbusiness.us-west-2.api.aws', ], ], ], 'qldb' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'qldb-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'qldb-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'qldb-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'qldb-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'qldb-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'qldb-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'qldb-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'qldb-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'query.timestream' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'quicksight' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'ram' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ram-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ram-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ram-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'ram-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ram-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ram-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ram-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ram-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ram-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ram-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ram-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ram-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], ], ], 'rbin' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'rbin.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'rbin.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'rbin.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'rbin.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'rbin.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'rbin.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'rbin.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'rds' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'rds-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'rds-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'rds-fips.ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.ca-central-1.amazonaws.com', ], 'rds-fips.ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.ca-west-1.amazonaws.com', ], 'rds-fips.us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-east-1.amazonaws.com', ], 'rds-fips.us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-east-2.amazonaws.com', ], 'rds-fips.us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-west-1.amazonaws.com', ], 'rds-fips.us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-west-2.amazonaws.com', ], 'rds.ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rds-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rds.ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rds-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rds.us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rds-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rds.us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rds-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rds.us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rds-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rds.us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rds-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'sa-east-1' => [], 'us-east-1' => [ 'sslCommonName' => '{service}.{dnsSuffix}', 'variants' => [ [ 'hostname' => 'rds-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'rds-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'rds-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'rds-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rds-fips.us-west-2.amazonaws.com', ], ], ], 'rds-data' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rds-data-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rds-data-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rds-data-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rds-data-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'rds-data-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'rds-data-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'rds-data-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'rds-data-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'redshift' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'redshift-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'redshift-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'redshift-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'redshift-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'redshift-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'redshift-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'redshift-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'redshift-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'redshift-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'redshift-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'redshift-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'redshift-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'redshift-serverless' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'rekognition' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'rekognition.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'rekognition.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'rekognition.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'rekognition.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'rekognition.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'rekognition-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rekognition-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rekognition.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'rekognition.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'rekognition.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'rekognition.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'rekognition.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'rekognition.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'rekognition-fips.ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.ca-central-1.amazonaws.com', ], 'rekognition-fips.us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-east-1.amazonaws.com', ], 'rekognition-fips.us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-east-2.amazonaws.com', ], 'rekognition-fips.us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-west-1.amazonaws.com', ], 'rekognition-fips.us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-west-2.amazonaws.com', ], 'rekognition.ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rekognition-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rekognition.us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rekognition-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rekognition.us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rekognition-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rekognition.us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rekognition-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'rekognition.us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rekognition-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'rekognition-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rekognition-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rekognition.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'rekognition-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rekognition-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rekognition.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'rekognition-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rekognition-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rekognition.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'rekognition-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rekognition-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rekognition.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-west-2.amazonaws.com', ], ], ], 'resiliencehub' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'resiliencehub.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'resource-explorer-2' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'resource-explorer-2-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resource-explorer-2-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'resource-explorer-2-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resource-explorer-2-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'resource-explorer-2-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'resource-explorer-2-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'resource-explorer-2-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'resource-explorer-2-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'resource-explorer-2-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'resource-explorer-2-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'resource-explorer-2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resource-explorer-2-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'resource-explorer-2-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resource-explorer-2-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'resource-explorer-2-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resource-explorer-2-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'resource-explorer-2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resource-explorer-2-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], ], ], 'resource-groups' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'resource-groups-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'resource-groups-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'resource-groups-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'resource-groups-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'resource-groups-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'resource-groups-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'resource-groups-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'resource-groups-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'robomaker' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'rolesanywhere' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'rolesanywhere-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'rolesanywhere-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'rolesanywhere-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'rolesanywhere-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'rolesanywhere-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'rolesanywhere-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'rolesanywhere-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'rolesanywhere-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'route53' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'route53.amazonaws.com', 'variants' => [ [ 'hostname' => 'route53-fips.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'route53-fips.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'route53-recovery-control-config' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'route53-recovery-control-config.us-west-2.amazonaws.com', ], ], ], 'route53domains' => [ 'endpoints' => [ 'us-east-1' => [], ], ], 'route53profiles' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'route53profiles.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'route53profiles.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'route53resolver' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'route53resolver.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53resolver.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'route53resolver-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53resolver.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'route53resolver-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'route53resolver.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53resolver.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'route53resolver-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53resolver.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'route53resolver-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53resolver.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'route53resolver-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'route53resolver-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53resolver.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'route53resolver-fips.us-west-2.amazonaws.com', ], ], ], 'rum' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'runtime-v2-lex' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'runtime.lex' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'lex', ], 'variants' => [ [ 'hostname' => 'runtime-fips.lex.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.lex.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'runtime-fips.lex.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.lex.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'runtime-fips.lex.us-west-2.amazonaws.com', ], ], ], 'runtime.sagemaker' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.sagemaker.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.sagemaker.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'runtime-fips.sagemaker.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.sagemaker.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'runtime-fips.sagemaker.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.sagemaker.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'runtime-fips.sagemaker.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.sagemaker.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'runtime-fips.sagemaker.us-west-2.amazonaws.com', ], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}-fips.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.af-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'hostname' => 's3.ap-northeast-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3.dualstack.ap-northeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-northeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-northeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'hostname' => 's3.ap-southeast-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3.dualstack.ap-southeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'hostname' => 's3.ap-southeast-2.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3.dualstack.ap-southeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-southeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-southeast-4.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-southeast-5.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.ap-southeast-7.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 's3.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 's3-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-fips.dualstack.ca-central-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3.dualstack.ca-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 's3-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-fips.dualstack.ca-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3.dualstack.ca-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-central-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-north-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'hostname' => 's3.eu-west-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3.dualstack.eu-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.eu-west-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 's3-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 's3-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 's3-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 's3-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.il-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.me-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.me-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.mx-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 's3-external-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 's3-external-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], ], 'sa-east-1' => [ 'hostname' => 's3.sa-east-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3.dualstack.sa-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'hostname' => 's3.us-east-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3.dualstack.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3.dualstack.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'hostname' => 's3.us-west-1.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3.dualstack.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'hostname' => 's3.us-west-2.amazonaws.com', 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3.dualstack.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], ], 'isRegionalized' => true, 'partitionEndpoint' => 'aws-global', ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}-fips.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 's3-control.af-south-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.af-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 's3-control.ap-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 's3-control.ap-northeast-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-northeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 's3-control.ap-northeast-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-northeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 's3-control.ap-northeast-3.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-northeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 's3-control.ap-south-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 's3-control.ap-south-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 's3-control.ap-southeast-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-southeast-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 's3-control.ap-southeast-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-southeast-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 's3-control.ap-southeast-3.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-southeast-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 's3-control.ap-southeast-4.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.ap-southeast-4.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 's3-control.ca-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control-fips.dualstack.ca-central-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control.dualstack.ca-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.ca-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'hostname' => 's3-control.ca-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control-fips.dualstack.ca-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control.dualstack.ca-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.ca-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 's3-control.eu-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 's3-control.eu-central-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-central-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 's3-control.eu-north-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-north-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 's3-control.eu-south-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 's3-control.eu-south-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-south-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 's3-control.eu-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 's3-control.eu-west-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 's3-control.eu-west-3.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.eu-west-3.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 's3-control.il-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.il-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 's3-control.me-central-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.me-central-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 's3-control.me-south-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.me-south-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 's3-control.sa-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.sa-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 's3-control.us-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 's3-control.us-east-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-east-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-east-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 's3-control.us-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 's3-control.us-west-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-west-2.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-west-2.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], ], ], 's3-outposts' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'deprecated' => true, ], 'fips-us-east-1' => [ 'deprecated' => true, ], 'fips-us-east-2' => [ 'deprecated' => true, ], 'fips-us-west-1' => [ 'deprecated' => true, ], 'fips-us-west-2' => [ 'deprecated' => true, ], 'il-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], ], ], 'sagemaker-geospatial' => [ 'endpoints' => [ 'us-west-2' => [], ], ], 'savingsplans' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'savingsplans.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'scheduler' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'schemas' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'sdb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 'v2', ], ], 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'hostname' => 'sdb.amazonaws.com', ], 'us-west-1' => [], 'us-west-2' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'deprecated' => true, ], 'ca-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'deprecated' => true, ], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'deprecated' => true, ], 'us-east-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'deprecated' => true, ], 'us-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'deprecated' => true, ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'deprecated' => true, ], ], ], 'securityhub' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'securityhub.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'securityhub.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'securityhub-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'securityhub-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'securityhub-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'securityhub-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'securityhub.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'securityhub-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securityhub.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'securityhub-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securityhub.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'securityhub-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securityhub.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'securityhub-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securityhub.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'securitylake' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'securitylake-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'securitylake-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'securitylake-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'securitylake-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'securitylake-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securitylake-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'securitylake-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securitylake-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'securitylake-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securitylake-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'securitylake-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securitylake-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], ], ], 'serverlessrepo' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-east-1' => [ 'protocols' => [ 'https', ], ], 'ap-northeast-1' => [ 'protocols' => [ 'https', ], ], 'ap-northeast-2' => [ 'protocols' => [ 'https', ], ], 'ap-south-1' => [ 'protocols' => [ 'https', ], ], 'ap-southeast-1' => [ 'protocols' => [ 'https', ], ], 'ap-southeast-2' => [ 'protocols' => [ 'https', ], ], 'ca-central-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'serverlessrepo-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [ 'protocols' => [ 'https', ], ], 'eu-north-1' => [ 'protocols' => [ 'https', ], ], 'eu-west-1' => [ 'protocols' => [ 'https', ], ], 'eu-west-2' => [ 'protocols' => [ 'https', ], ], 'eu-west-3' => [ 'protocols' => [ 'https', ], ], 'me-south-1' => [ 'protocols' => [ 'https', ], ], 'sa-east-1' => [ 'protocols' => [ 'https', ], ], 'us-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'serverlessrepo-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'serverlessrepo-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'serverlessrepo-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'serverlessrepo-fips.us-west-2.amazonaws.com', ], ], ], 'servicecatalog' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'servicecatalog-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'servicecatalog-fips.us-west-2.amazonaws.com', ], ], ], 'servicecatalog-appregistry' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-appregistry-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-appregistry-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-appregistry-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'servicecatalog-appregistry-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-appregistry-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'servicecatalog-appregistry-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-appregistry-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-appregistry-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-appregistry-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-appregistry-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'servicediscovery' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-west-2.amazonaws.com', ], ], ], 'servicequotas' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'session.qldb' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'session.qldb-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'session.qldb-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'session.qldb-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'session.qldb-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'session.qldb-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'session.qldb-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'shield' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => 'shield.us-east-1.amazonaws.com', ], 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'shield.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'shield-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'shield-fips.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'signer' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'signer-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'signer-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'signer-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'signer-fips.us-west-2.amazonaws.com', ], 'fips-verification-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'verification.signer-fips.us-east-1.amazonaws.com', ], 'fips-verification-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'verification.signer-fips.us-east-2.amazonaws.com', ], 'fips-verification-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'verification.signer-fips.us-west-1.amazonaws.com', ], 'fips-verification-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'verification.signer-fips.us-west-2.amazonaws.com', ], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'signer-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'signer-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'signer-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'signer-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'verification-af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'verification.signer.af-south-1.amazonaws.com', ], 'verification-ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'verification.signer.ap-east-1.amazonaws.com', ], 'verification-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'verification.signer.ap-northeast-1.amazonaws.com', ], 'verification-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'verification.signer.ap-northeast-2.amazonaws.com', ], 'verification-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'verification.signer.ap-south-1.amazonaws.com', ], 'verification-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'verification.signer.ap-southeast-1.amazonaws.com', ], 'verification-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'verification.signer.ap-southeast-2.amazonaws.com', ], 'verification-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'verification.signer.ca-central-1.amazonaws.com', ], 'verification-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'verification.signer.eu-central-1.amazonaws.com', ], 'verification-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'verification.signer.eu-north-1.amazonaws.com', ], 'verification-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'verification.signer.eu-south-1.amazonaws.com', ], 'verification-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'verification.signer.eu-west-1.amazonaws.com', ], 'verification-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'verification.signer.eu-west-2.amazonaws.com', ], 'verification-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'verification.signer.eu-west-3.amazonaws.com', ], 'verification-me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'verification.signer.me-south-1.amazonaws.com', ], 'verification-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'verification.signer.sa-east-1.amazonaws.com', ], 'verification-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'verification.signer.us-east-1.amazonaws.com', ], 'verification-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'verification.signer.us-east-2.amazonaws.com', ], 'verification-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'verification.signer.us-west-1.amazonaws.com', ], 'verification-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'verification.signer.us-west-2.amazonaws.com', ], ], ], 'simspaceweaver' => [ 'endpoints' => [ 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'sms' => [ 'endpoints' => [ 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'sms-fips.us-west-2.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'sms-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'sms-voice' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'sms-voice.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'sms-voice.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'snowball' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.af-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.af-south-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-northeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-northeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-northeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-south-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-southeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-southeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ap-southeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.eu-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.eu-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.eu-north-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.eu-north-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.eu-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.eu-south-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.eu-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.eu-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.eu-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.eu-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.eu-west-3.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.eu-west-3.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.af-south-1.amazonaws.com', ], 'fips-ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-east-1.amazonaws.com', ], 'fips-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-northeast-1.amazonaws.com', ], 'fips-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-northeast-2.amazonaws.com', ], 'fips-ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-northeast-3.amazonaws.com', ], 'fips-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-south-1.amazonaws.com', ], 'fips-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-southeast-1.amazonaws.com', ], 'fips-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-southeast-2.amazonaws.com', ], 'fips-ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ap-southeast-3.amazonaws.com', ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.ca-central-1.amazonaws.com', ], 'fips-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.eu-central-1.amazonaws.com', ], 'fips-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.eu-north-1.amazonaws.com', ], 'fips-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.eu-south-1.amazonaws.com', ], 'fips-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.eu-west-1.amazonaws.com', ], 'fips-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'deprecated' => true, 'hostname' => 'snowball-fips.eu-west-2.amazonaws.com', ], 'fips-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'deprecated' => true, 'hostname' => 'snowball-fips.eu-west-3.amazonaws.com', ], 'fips-il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.il-central-1.amazonaws.com', ], 'fips-me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.me-central-1.amazonaws.com', ], 'fips-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.sa-east-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'snowball-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'snowball-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.il-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.il-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.me-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.me-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.sa-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.sa-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'sns.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'sns.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'sns.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'sns.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'sns.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'sns.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'sns.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'sns.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'sns.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'sns.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'sns.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'sns.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'sns.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'sns.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'sns-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sns.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'sns.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'sns.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'sns.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'sns.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'sns.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'sns.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'sns.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'sns.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'sns-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'sns-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'sns-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'sns-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'sns-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'sns.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'sns.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'sns.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'sns.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'sns.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'sns-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sns.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'sns-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sns.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'sns-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sns.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'sns-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sns.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'sqs.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'sqs.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'sqs-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sqs.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'sqs-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sqs.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'sqs.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'sqs-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'sqs-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'sqs-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'sqs-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'sqs-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'sqs-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'sqs.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'sqs.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'sqs.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'sqs.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'sqs.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'sslCommonName' => 'queue.{dnsSuffix}', 'variants' => [ [ 'hostname' => 'sqs-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sqs.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'sqs-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sqs.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'sqs-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sqs.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'sqs-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sqs.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'ssm' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ssm-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'ssm-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ssm-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ssm-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ssm-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ssm-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ssm-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm-contacts' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ssm-contacts-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ssm-contacts-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ssm-contacts-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ssm-contacts-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-contacts-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ssm-contacts-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-contacts-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-contacts-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm-incidents' => [ 'endpoints' => [ 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-incidents-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-incidents.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ssm-incidents-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ssm-incidents-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ssm-incidents-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ssm-incidents-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ssm-incidents-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-incidents-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-incidents.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-incidents-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-incidents.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-incidents-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-incidents.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-incidents-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-incidents-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-incidents.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'ssm-quicksetup' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-quicksetup-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ssm-quicksetup-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ssm-quicksetup-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ssm-quicksetup-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ssm-quicksetup-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ssm-quicksetup-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-quicksetup-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ssm-quicksetup-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-quicksetup-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-quicksetup-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm-sap' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-sap-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-sap.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'ssm-sap-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'ssm-sap-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'ssm-sap-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'ssm-sap-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'ssm-sap-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-sap-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-sap.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-sap-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-sap.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm-sap-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-sap-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-sap.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'ssm-sap-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ssm-sap-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ssm-sap.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'sso' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'states' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'states-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'states-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'states-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'states-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'states-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'states-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'storagegateway' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.ca-central-1.amazonaws.com', ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.ca-west-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-west-2.amazonaws.com', ], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'local' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'localhost:8000', 'protocols' => [ 'http', ], ], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'sts' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'sts.amazonaws.com', ], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'sts-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'sts-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'sts-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'sts-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'sts-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'sts-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'sts-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'sts-fips.us-west-2.amazonaws.com', ], ], 'partitionEndpoint' => 'aws-global', ], 'support' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'support.us-east-1.amazonaws.com', ], ], 'partitionEndpoint' => 'aws-global', ], 'supportapp' => [ 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'swf' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'synthetics' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-northeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-southeast-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-4' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-southeast-4.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-5' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-southeast-5.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-7' => [ 'variants' => [ [ 'hostname' => 'synthetics.ap-southeast-7.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.ca-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.ca-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-central-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'synthetics.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.il-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-central-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.me-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'mx-central-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.mx-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'tagging' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'tax' => [ 'endpoints' => [ 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'tax.us-east-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'textract' => [ 'endpoints' => [ 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'textract.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'textract.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'textract.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'textract.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'textract-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'textract.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-2' => [ 'variants' => [ [ 'hostname' => 'textract.eu-south-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'textract.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'textract.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'textract.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'textract-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'textract-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'textract-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'textract-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'textract-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'textract-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'textract-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'textract-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'textract-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'thinclient' => [ 'endpoints' => [ 'ap-south-1' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'tnb' => [ 'endpoints' => [ 'ap-northeast-2' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-2' => [], 'eu-west-3' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'transcribe' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'fips.transcribe.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'transcribe.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'transcribe.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'transcribe.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'transcribe.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-west-2.amazonaws.com', ], 'me-south-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.me-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'transcribe.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transcribestreaming' => [ 'endpoints' => [ 'af-south-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.af-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribestreaming-fips.ca-central-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribestreaming.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'transcribestreaming-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'transcribestreaming-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'transcribestreaming-fips.us-east-2.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'transcribestreaming-fips.us-west-2.amazonaws.com', ], 'sa-east-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.sa-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribestreaming-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribestreaming.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribestreaming-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribestreaming.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribestreaming-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribestreaming.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transfer' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'transfer-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'transfer-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'transfer-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'transfer-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'transfer-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'transfer-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'translate' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'ap-east-1' => [ 'variants' => [ [ 'hostname' => 'translate.ap-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-1' => [ 'variants' => [ [ 'hostname' => 'translate.ap-northeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'hostname' => 'translate.ap-northeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-1' => [ 'variants' => [ [ 'hostname' => 'translate.ap-south-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-1' => [ 'variants' => [ [ 'hostname' => 'translate.ap-southeast-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'hostname' => 'translate.ap-southeast-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'translate.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'translate.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-north-1' => [ 'variants' => [ [ 'hostname' => 'translate.eu-north-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-1' => [ 'variants' => [ [ 'hostname' => 'translate.eu-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'hostname' => 'translate.eu-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'hostname' => 'translate.eu-west-3.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'translate-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'translate-fips.us-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'translate.us-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'translate-fips.us-east-1.amazonaws.com', ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'translate-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'translate-fips.us-east-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'translate.us-east-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-east-2-fips' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'translate-fips.us-east-2.amazonaws.com', ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'translate-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'translate-fips.us-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'translate.us-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'translate-fips.us-west-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'translate-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'translate-fips.us-west-2.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'translate.us-west-2.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'translate-fips.us-west-2.amazonaws.com', ], ], ], 'trustedadvisor' => [ 'endpoints' => [ 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'trustedadvisor-fips.us-east-1.api.aws', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'trustedadvisor-fips.us-east-2.api.aws', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'trustedadvisor-fips.us-west-2.api.aws', ], ], ], 'verifiedpermissions' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.ca-west-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'voice-chime' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'voice-chime-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1-fips' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'voice-chime-fips.ca-central-1.amazonaws.com', ], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'voice-chime-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'voice-chime-fips.us-east-1.amazonaws.com', ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'voice-chime-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2-fips' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'voice-chime-fips.us-west-2.amazonaws.com', ], ], ], 'voiceid' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'voiceid-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'voiceid-fips.ca-central-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'voiceid-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'voiceid-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'voiceid-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'voiceid-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'vpc-lattice' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-central-1' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'waf' => [ 'endpoints' => [ 'aws' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'waf-fips.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'aws-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'waf-fips.amazonaws.com', ], 'aws-global' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'waf.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-fips.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'aws-global-fips' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'waf-fips.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-global', ], 'waf-regional' => [ 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'waf-regional.af-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.af-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'waf-regional.ap-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'waf-regional.ap-northeast-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-northeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'waf-regional.ap-northeast-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-northeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'waf-regional.ap-northeast-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-northeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'waf-regional.ap-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'waf-regional.ap-south-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'waf-regional.ap-southeast-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-southeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'waf-regional.ap-southeast-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-southeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 'waf-regional.ap-southeast-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-southeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 'waf-regional.ap-southeast-4.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ap-southeast-4.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'waf-regional.ca-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'waf-regional.eu-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'waf-regional.eu-central-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-central-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'waf-regional.eu-north-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-north-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'waf-regional.eu-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'waf-regional.eu-south-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'waf-regional.eu-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'waf-regional.eu-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'waf-regional.eu-west-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.eu-west-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.af-south-1.amazonaws.com', ], 'fips-ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-east-1.amazonaws.com', ], 'fips-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-northeast-1.amazonaws.com', ], 'fips-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-northeast-2.amazonaws.com', ], 'fips-ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-northeast-3.amazonaws.com', ], 'fips-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-south-1.amazonaws.com', ], 'fips-ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-south-2.amazonaws.com', ], 'fips-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-southeast-1.amazonaws.com', ], 'fips-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-southeast-2.amazonaws.com', ], 'fips-ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-southeast-3.amazonaws.com', ], 'fips-ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ap-southeast-4.amazonaws.com', ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.ca-central-1.amazonaws.com', ], 'fips-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-central-1.amazonaws.com', ], 'fips-eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-central-2.amazonaws.com', ], 'fips-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-north-1.amazonaws.com', ], 'fips-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-south-1.amazonaws.com', ], 'fips-eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-south-2.amazonaws.com', ], 'fips-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-west-1.amazonaws.com', ], 'fips-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-west-2.amazonaws.com', ], 'fips-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.eu-west-3.amazonaws.com', ], 'fips-il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.il-central-1.amazonaws.com', ], 'fips-me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.me-central-1.amazonaws.com', ], 'fips-me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.me-south-1.amazonaws.com', ], 'fips-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.sa-east-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'waf-regional.il-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.il-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 'waf-regional.me-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.me-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'waf-regional.me-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.me-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'waf-regional.sa-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.sa-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'waf-regional.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'waf-regional.us-east-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'waf-regional.us-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'waf-regional.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'wafv2' => [ 'endpoints' => [ 'af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'hostname' => 'wafv2.af-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.af-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'hostname' => 'wafv2.ap-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'hostname' => 'wafv2.ap-northeast-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-northeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'hostname' => 'wafv2.ap-northeast-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-northeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'hostname' => 'wafv2.ap-northeast-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-northeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'hostname' => 'wafv2.ap-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'hostname' => 'wafv2.ap-south-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'hostname' => 'wafv2.ap-southeast-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-southeast-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'hostname' => 'wafv2.ap-southeast-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-southeast-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'hostname' => 'wafv2.ap-southeast-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-southeast-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'hostname' => 'wafv2.ap-southeast-4.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-southeast-4.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-5' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'hostname' => 'wafv2.ap-southeast-5.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-southeast-5.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ap-southeast-7' => [ 'credentialScope' => [ 'region' => 'ap-southeast-7', ], 'hostname' => 'wafv2.ap-southeast-7.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ap-southeast-7.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'hostname' => 'wafv2.ca-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'hostname' => 'wafv2.ca-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.ca-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'hostname' => 'wafv2.eu-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'hostname' => 'wafv2.eu-central-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-central-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'hostname' => 'wafv2.eu-north-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-north-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'hostname' => 'wafv2.eu-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'hostname' => 'wafv2.eu-south-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-south-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'hostname' => 'wafv2.eu-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'hostname' => 'wafv2.eu-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'hostname' => 'wafv2.eu-west-3.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.eu-west-3.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-af-south-1' => [ 'credentialScope' => [ 'region' => 'af-south-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.af-south-1.amazonaws.com', ], 'fips-ap-east-1' => [ 'credentialScope' => [ 'region' => 'ap-east-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-east-1.amazonaws.com', ], 'fips-ap-northeast-1' => [ 'credentialScope' => [ 'region' => 'ap-northeast-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-northeast-1.amazonaws.com', ], 'fips-ap-northeast-2' => [ 'credentialScope' => [ 'region' => 'ap-northeast-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-northeast-2.amazonaws.com', ], 'fips-ap-northeast-3' => [ 'credentialScope' => [ 'region' => 'ap-northeast-3', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-northeast-3.amazonaws.com', ], 'fips-ap-south-1' => [ 'credentialScope' => [ 'region' => 'ap-south-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-south-1.amazonaws.com', ], 'fips-ap-south-2' => [ 'credentialScope' => [ 'region' => 'ap-south-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-south-2.amazonaws.com', ], 'fips-ap-southeast-1' => [ 'credentialScope' => [ 'region' => 'ap-southeast-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-southeast-1.amazonaws.com', ], 'fips-ap-southeast-2' => [ 'credentialScope' => [ 'region' => 'ap-southeast-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-southeast-2.amazonaws.com', ], 'fips-ap-southeast-3' => [ 'credentialScope' => [ 'region' => 'ap-southeast-3', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-southeast-3.amazonaws.com', ], 'fips-ap-southeast-4' => [ 'credentialScope' => [ 'region' => 'ap-southeast-4', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-southeast-4.amazonaws.com', ], 'fips-ap-southeast-5' => [ 'credentialScope' => [ 'region' => 'ap-southeast-5', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-southeast-5.amazonaws.com', ], 'fips-ap-southeast-7' => [ 'credentialScope' => [ 'region' => 'ap-southeast-7', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ap-southeast-7.amazonaws.com', ], 'fips-ca-central-1' => [ 'credentialScope' => [ 'region' => 'ca-central-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ca-central-1.amazonaws.com', ], 'fips-ca-west-1' => [ 'credentialScope' => [ 'region' => 'ca-west-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.ca-west-1.amazonaws.com', ], 'fips-eu-central-1' => [ 'credentialScope' => [ 'region' => 'eu-central-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-central-1.amazonaws.com', ], 'fips-eu-central-2' => [ 'credentialScope' => [ 'region' => 'eu-central-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-central-2.amazonaws.com', ], 'fips-eu-north-1' => [ 'credentialScope' => [ 'region' => 'eu-north-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-north-1.amazonaws.com', ], 'fips-eu-south-1' => [ 'credentialScope' => [ 'region' => 'eu-south-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-south-1.amazonaws.com', ], 'fips-eu-south-2' => [ 'credentialScope' => [ 'region' => 'eu-south-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-south-2.amazonaws.com', ], 'fips-eu-west-1' => [ 'credentialScope' => [ 'region' => 'eu-west-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-west-1.amazonaws.com', ], 'fips-eu-west-2' => [ 'credentialScope' => [ 'region' => 'eu-west-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-west-2.amazonaws.com', ], 'fips-eu-west-3' => [ 'credentialScope' => [ 'region' => 'eu-west-3', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.eu-west-3.amazonaws.com', ], 'fips-il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.il-central-1.amazonaws.com', ], 'fips-me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.me-central-1.amazonaws.com', ], 'fips-me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.me-south-1.amazonaws.com', ], 'fips-mx-central-1' => [ 'credentialScope' => [ 'region' => 'mx-central-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.mx-central-1.amazonaws.com', ], 'fips-sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.sa-east-1.amazonaws.com', ], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [ 'credentialScope' => [ 'region' => 'il-central-1', ], 'hostname' => 'wafv2.il-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.il-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-central-1' => [ 'credentialScope' => [ 'region' => 'me-central-1', ], 'hostname' => 'wafv2.me-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.me-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'me-south-1' => [ 'credentialScope' => [ 'region' => 'me-south-1', ], 'hostname' => 'wafv2.me-south-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.me-south-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'mx-central-1' => [ 'credentialScope' => [ 'region' => 'mx-central-1', ], 'hostname' => 'wafv2.mx-central-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.mx-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'sa-east-1' => [ 'credentialScope' => [ 'region' => 'sa-east-1', ], 'hostname' => 'wafv2.sa-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.sa-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'hostname' => 'wafv2.us-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'hostname' => 'wafv2.us-east-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'hostname' => 'wafv2.us-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'hostname' => 'wafv2.us-west-2.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'wellarchitected' => [ 'endpoints' => [ 'ap-east-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], 'sa-east-1' => [], 'us-east-1' => [], 'us-east-2' => [], 'us-west-1' => [], 'us-west-2' => [], ], ], 'wisdom' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-west-2' => [], 'fips-ca-central-1' => [ 'deprecated' => true, ], 'fips-us-east-1' => [ 'deprecated' => true, ], 'fips-us-west-2' => [ 'deprecated' => true, ], 'ui-ap-northeast-1' => [], 'ui-ap-northeast-2' => [], 'ui-ap-southeast-1' => [], 'ui-ap-southeast-2' => [], 'ui-ca-central-1' => [], 'ui-eu-central-1' => [], 'ui-eu-west-2' => [], 'ui-us-east-1' => [], 'ui-us-west-2' => [], 'us-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'workdocs' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'workdocs-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'workdocs-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'workdocs-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'workdocs-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'workmail' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-west-1' => [], 'us-east-1' => [], 'us-west-2' => [], ], ], 'workspaces' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'workspaces-web' => [ 'endpoints' => [ 'ap-northeast-1' => [], 'ap-south-1' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'workspaces-web-fips.us-east-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'workspaces-web-fips.us-west-2.amazonaws.com', ], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-web-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'workspaces-web-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'xray' => [ 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [], 'ap-northeast-2' => [], 'ap-northeast-3' => [], 'ap-south-1' => [], 'ap-south-2' => [], 'ap-southeast-1' => [], 'ap-southeast-2' => [], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], 'eu-north-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'fips-us-east-1' => [ 'credentialScope' => [ 'region' => 'us-east-1', ], 'deprecated' => true, 'hostname' => 'xray-fips.us-east-1.amazonaws.com', ], 'fips-us-east-2' => [ 'credentialScope' => [ 'region' => 'us-east-2', ], 'deprecated' => true, 'hostname' => 'xray-fips.us-east-2.amazonaws.com', ], 'fips-us-west-1' => [ 'credentialScope' => [ 'region' => 'us-west-1', ], 'deprecated' => true, 'hostname' => 'xray-fips.us-west-1.amazonaws.com', ], 'fips-us-west-2' => [ 'credentialScope' => [ 'region' => 'us-west-2', ], 'deprecated' => true, 'hostname' => 'xray-fips.us-west-2.amazonaws.com', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-1' => [], 'sa-east-1' => [], 'us-east-1' => [ 'variants' => [ [ 'hostname' => 'xray-fips.us-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-east-2' => [ 'variants' => [ [ 'hostname' => 'xray-fips.us-east-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-1' => [ 'variants' => [ [ 'hostname' => 'xray-fips.us-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-west-2' => [ 'variants' => [ [ 'hostname' => 'xray-fips.us-west-2.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'dnsSuffix' => 'amazonaws.com.cn', 'partition' => 'aws-cn', 'partitionName' => 'AWS China', 'regionRegex' => '^cn\\-\\w+\\-\\d+$', 'regions' => [ 'cn-north-1' => [ 'description' => 'China (Beijing)', ], 'cn-northwest-1' => [ 'description' => 'China (Ningxia)', ], ], 'services' => [ 'access-analyzer' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'account' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'account.cn-northwest-1.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'acm' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'acm-pca' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'airflow' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'api.ecr.cn-north-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'ecr.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'api.ecr.cn-northwest-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'ecr.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'cn-northwest-1' => [], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'api.tunneling.iot' => [ 'defaults' => [ 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com.cn', 'hostname' => 'api.tunneling.iot-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => 'api.iot-tunneling-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => 'api.iot-tunneling.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'apigateway' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'applicationinsights' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'appmesh' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'appmesh.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'appsync' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'appsync.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'appsync.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'athena.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'athena.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'autoscaling-plans' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'backup' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'budgets' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'budgets.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'cassandra' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ce' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'ce.cn-northwest-1.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'cloudcontrolapi' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cloudformation' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'cloudfront' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'cloudfront.cn-northwest-1.amazonaws.com.cn', 'protocols' => [ 'http', 'https', ], ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'cloudtrail' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'codebuild' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'codecommit' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'codepipeline' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'cognito-identity' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.cn-north-1.amazonaws.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'compute-optimizer' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'compute-optimizer.cn-north-1.amazonaws.com.cn', ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'compute-optimizer.cn-northwest-1.amazonaws.com.cn', ], ], ], 'config' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'cur' => [ 'endpoints' => [ 'cn-northwest-1' => [], ], ], 'data-ats.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'data.ats.iot.cn-north-1.amazonaws.com.cn', 'protocols' => [ 'https', ], ], 'cn-northwest-1' => [], ], ], 'data.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'data.jobs.iot' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'databrew' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'datasync' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'datasync.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'datasync.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'datazone' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'datazone.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'datazone.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'dax' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'dlm.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'dlm.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'dms' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'docdb' => [ 'endpoints' => [ 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'rds.cn-northwest-1.amazonaws.com.cn', ], ], ], 'ds' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'eks-auth' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'eks-auth.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'eks-auth.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'elasticache' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'elasticbeanstalk' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.cn-north-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'fips-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.cn-north-1.amazonaws.com.cn', ], 'fips-cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn', ], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'elasticmapreduce' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'emr-containers' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'emr-serverless' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'entitlement.marketplace' => [ 'endpoints' => [ 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'entitlement-marketplace.cn-northwest-1.amazonaws.com.cn', 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'entitlement-marketplace.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'es' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'aos.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'aos.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'events' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'events.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'events.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'firehose' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'firehose.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'firehose.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'fms' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'fsx' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'gamelift' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'gameliftstreams' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'gameliftstreams.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'gameliftstreams.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'glacier' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'glue' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'glue.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'glue.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'greengrass' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], ], 'isRegionalized' => true, ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], 'isRegionalized' => true, ], 'health' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => 'health.cn-northwest-1.amazonaws.com.cn', ], 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'global.health.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'iam' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'iam.cn-north-1.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'identitystore' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'inspector2' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'internetmonitor' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'internetmonitor.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'internetmonitor.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'iot' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'iotanalytics' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'iotevents' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'ioteventsdata' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'data.iotevents.cn-north-1.amazonaws.com.cn', ], ], ], 'iotsecuredtunneling' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'iotsitewise' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'iottwinmaker' => [ 'endpoints' => [ 'api-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'api.iottwinmaker.cn-north-1.amazonaws.com.cn', ], 'cn-north-1' => [], 'data-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'data.iottwinmaker.cn-north-1.amazonaws.com.cn', ], ], ], 'kafka' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'kafkaconnect' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'kendra-ranking' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'kendra-ranking.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'kendra-ranking.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'kinesis' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'kinesisvideo' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'lakeformation' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'lambda' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'lambda.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'lambda.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'license-manager' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'license-manager-linux-subscriptions' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'logs.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'logs.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'mediaconvert' => [ 'endpoints' => [ 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'memory-db' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'metering.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'cn-northwest-1' => [], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'monitoring' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'mq' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'neptune' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'rds.cn-north-1.amazonaws.com.cn', ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'rds.cn-northwest-1.amazonaws.com.cn', ], ], ], 'network-firewall' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'notifications' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'notifications.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'notifications.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'oam' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'oidc' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'oidc.cn-north-1.amazonaws.com.cn', ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'oidc.cn-northwest-1.amazonaws.com.cn', ], ], ], 'organizations' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'organizations.cn-northwest-1.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'personalize' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'pi' => [ 'endpoints' => [ 'cn-north-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'pipes' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'polly' => [ 'endpoints' => [ 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'polly.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'portal.sso' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'portal.sso.cn-north-1.amazonaws.com.cn', ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'portal.sso.cn-northwest-1.amazonaws.com.cn', ], ], ], 'qbusiness' => [ 'defaults' => [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'variants' => [ [ 'dnsSuffix' => 'api.amazonwebservices.com.cn', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'hostname' => 'qbusiness.cn-north-1.api.amazonwebservices.com.cn', ], 'cn-northwest-1' => [ 'hostname' => 'qbusiness.cn-northwest-1.api.amazonwebservices.com.cn', ], ], ], 'quicksight' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], ], ], 'rbin' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'rbin.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'rbin.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'rds' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'redshift-serverless' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'resource-groups' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'rolesanywhere' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'route53' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'route53.amazonaws.com.cn', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-cn-global', ], 'route53profiles' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'route53resolver' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'runtime.sagemaker' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com.cn', 'hostname' => '{service}.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.cn-north-1.amazonaws.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 's3.dualstack.cn-northwest-1.amazonaws.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com.cn', 'hostname' => '{service}.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 's3-control.cn-north-1.amazonaws.com.cn', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.cn-north-1.amazonaws.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 's3-control.cn-northwest-1.amazonaws.com.cn', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control.dualstack.cn-northwest-1.amazonaws.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'savingsplans' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'savingsplans.cn-north-1.amazonaws.com.cn', ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'savingsplans.cn-northwest-1.amazonaws.com.cn', ], ], 'isRegionalized' => true, ], 'scheduler' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'schemas' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], ], ], 'securityhub' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'serverlessrepo' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [ 'protocols' => [ 'https', ], ], 'cn-northwest-1' => [ 'protocols' => [ 'https', ], ], ], ], 'servicecatalog' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'servicequotas' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'signer' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], 'verification-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'verification.signer.cn-north-1.amazonaws.com.cn', ], 'verification-cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'verification.signer.cn-northwest-1.amazonaws.com.cn', ], ], ], 'sms' => [ 'endpoints' => [ 'cn-north-1' => [], ], ], 'snowball' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.cn-north-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.cn-northwest-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'fips-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.cn-north-1.amazonaws.com.cn', ], 'fips-cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.cn-northwest-1.amazonaws.com.cn', ], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'sns.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'sns.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'sqs.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'sqs.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'ssm' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'sso' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'states' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'states.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'states.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'storagegateway' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'support' => [ 'endpoints' => [ 'aws-cn-global' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'support.cn-north-1.amazonaws.com.cn', ], ], 'partitionEndpoint' => 'aws-cn-global', ], 'swf' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'synthetics' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'synthetics.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'tagging' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'transcribe' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'cn.transcribe.cn-north-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'transcribe.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'cn.transcribe.cn-northwest-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'transcribe.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transcribestreaming' => [ 'endpoints' => [ 'cn-north-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.cn-north-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], 'cn-northwest-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming.cn-northwest-1.api.amazonwebservices.com.cn', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transfer' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], 'waf-regional' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'waf-regional.cn-north-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'waf-regional-fips.cn-north-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'waf-regional.cn-northwest-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'waf-regional-fips.cn-northwest-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'fips-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.cn-north-1.amazonaws.com.cn', ], 'fips-cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.cn-northwest-1.amazonaws.com.cn', ], ], ], 'wafv2' => [ 'endpoints' => [ 'cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'hostname' => 'wafv2.cn-north-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'wafv2-fips.cn-north-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'hostname' => 'wafv2.cn-northwest-1.amazonaws.com.cn', 'variants' => [ [ 'hostname' => 'wafv2-fips.cn-northwest-1.amazonaws.com.cn', 'tags' => [ 'fips', ], ], ], ], 'fips-cn-north-1' => [ 'credentialScope' => [ 'region' => 'cn-north-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.cn-north-1.amazonaws.com.cn', ], 'fips-cn-northwest-1' => [ 'credentialScope' => [ 'region' => 'cn-northwest-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.cn-northwest-1.amazonaws.com.cn', ], ], ], 'workspaces' => [ 'endpoints' => [ 'cn-northwest-1' => [], ], ], 'xray' => [ 'endpoints' => [ 'cn-north-1' => [], 'cn-northwest-1' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'dnsSuffix' => 'amazonaws.com', 'partition' => 'aws-us-gov', 'partitionName' => 'AWS GovCloud (US)', 'regionRegex' => '^us\\-gov\\-\\w+\\-\\d+$', 'regions' => [ 'us-gov-east-1' => [ 'description' => 'AWS GovCloud (US-East)', ], 'us-gov-west-1' => [ 'description' => 'AWS GovCloud (US-West)', ], ], 'services' => [ 'access-analyzer' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'access-analyzer.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'access-analyzer.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'access-analyzer.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'access-analyzer.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'access-analyzer.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'access-analyzer.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'access-analyzer.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'access-analyzer.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'access-analyzer.us-gov-west-1.amazonaws.com', ], ], ], 'acm' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'acm.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'acm.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'acm.us-gov-west-1.amazonaws.com', ], ], ], 'acm-pca' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'acm-pca.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'acm-pca.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'acm-pca.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'acm-pca.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'acm-pca.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'aoss' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'api.detective' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'api.detective-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'detective-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'detective.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'api.detective-fips.us-gov-west-1.amazonaws.com', ], ], ], 'api.ecr' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'ecr-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'dkr-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ecr-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'dkr-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'ecr-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-dkr-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-gov-east-1.amazonaws.com', ], 'fips-dkr-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-gov-west-1.amazonaws.com', ], 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ecr-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'api.ecr.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ecr-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ecr.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'api.ecr.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ecr-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ecr-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'ecr.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'api.sagemaker' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'api-fips.sagemaker.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'api-fips.sagemaker.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1-fips-secondary' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'api.sagemaker.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1-secondary' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'api.sagemaker.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'api.tunneling.iot' => [ 'defaults' => [ 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => 'api.tunneling.iot-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => 'api.iot-tunneling-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.aws', 'hostname' => 'api.iot-tunneling.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'api.iot-tunneling-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'api.iot-tunneling.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'api.tunneling.iot-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'apigateway' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'appconfig.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'appconfig.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'appconfig.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'appconfig.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'appconfigdata' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'appconfigdata.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'appconfigdata.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'appconfigdata.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'appconfigdata.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'application-autoscaling.us-gov-east-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'application-autoscaling.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'deprecated' => true, 'hostname' => 'application-autoscaling.us-gov-east-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], 'us-gov-west-1' => [ 'hostname' => 'application-autoscaling.us-gov-west-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'application-autoscaling.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'deprecated' => true, 'hostname' => 'application-autoscaling.us-gov-west-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], ], ], 'applicationinsights' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'applicationinsights-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'applicationinsights-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'applicationinsights-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'applicationinsights.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'appstream2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'appstream', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'appstream2-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'appstream2-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'appstream2-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'appstream2-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'appstream2-fips.us-gov-west-1.amazonaws.com', ], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'athena-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'athena-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'athena-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'athena-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'athena-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'athena.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'autoscaling' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'autoscaling.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'protocols' => [ 'http', 'https', ], ], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], ], ], ], 'autoscaling-plans' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'autoscaling-plans.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'deprecated' => true, 'hostname' => 'autoscaling-plans.us-gov-east-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'autoscaling-plans.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'deprecated' => true, 'hostname' => 'autoscaling-plans.us-gov-west-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], ], ], ], 'backup' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'backup-gateway' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'batch' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'batch.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'batch.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'batch.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'batch.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'batch.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'bedrock' => [ 'endpoints' => [ 'bedrock-fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'bedrock-fips.us-gov-east-1.amazonaws.com', ], 'bedrock-fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'bedrock-fips.us-gov-west-1.amazonaws.com', ], 'bedrock-runtime-fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'bedrock-runtime-fips.us-gov-east-1.amazonaws.com', ], 'bedrock-runtime-fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'bedrock-runtime-fips.us-gov-west-1.amazonaws.com', ], 'bedrock-runtime-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'bedrock-runtime.us-gov-east-1.amazonaws.com', ], 'bedrock-runtime-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'bedrock-runtime.us-gov-west-1.amazonaws.com', ], 'bedrock-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'bedrock.us-gov-east-1.amazonaws.com', ], 'bedrock-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'bedrock.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'cassandra' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'cassandra.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'cassandra.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'cassandra.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'cassandra.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'cassandra.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'cassandra.us-gov-west-1.amazonaws.com', ], ], ], 'cloudcontrolapi' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'cloudcontrolapi-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudcontrolapi-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cloudcontrolapi-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cloudcontrolapi.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'clouddirectory' => [ 'endpoints' => [ 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'clouddirectory.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'clouddirectory.us-gov-west-1.amazonaws.com', ], ], ], 'cloudformation' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'cloudformation.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'cloudformation.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'cloudformation.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'cloudformation.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'cloudformation.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'cloudformation.us-gov-west-1.amazonaws.com', ], ], ], 'cloudhsm' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'cloudhsmv2' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'cloudhsm', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cloudtrail' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'cloudtrail.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'codebuild' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'codebuild-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'codebuild-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'codebuild-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'codebuild-fips.us-gov-west-1.amazonaws.com', ], ], ], 'codecommit' => [ 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'codecommit-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'codecommit-fips.us-gov-west-1.amazonaws.com', ], ], ], 'codedeploy' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'codedeploy-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'codedeploy-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'codedeploy-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'codedeploy-fips.us-gov-west-1.amazonaws.com', ], ], ], 'codepipeline' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'codepipeline-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'codepipeline-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'codestar-connections' => [ 'endpoints' => [ 'us-gov-east-1' => [], ], ], 'cognito-identity' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'cognito-identity-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity.us-gov-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-identity-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-identity-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-identity.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'cognito-idp' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'cognito-idp-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp.us-gov-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'cognito-idp-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'cognito-idp-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'cognito-idp.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'comprehend' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'comprehend-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'comprehend-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'comprehend-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'comprehend.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'comprehendmedical' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'comprehendmedical-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'comprehendmedical-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'compute-optimizer' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'compute-optimizer-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'compute-optimizer-fips.us-gov-west-1.amazonaws.com', ], ], ], 'config' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'config.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'config.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'config.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'config.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'config.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'connect' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'connect.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'connect.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'controltower' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'controltower-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'controltower-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'controltower-fips.us-gov-west-1.amazonaws.com', ], ], ], 'data-ats.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'data.iot' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'service' => 'iotdata', ], 'deprecated' => true, 'hostname' => 'data.iot-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'data.jobs.iot' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'data.jobs.iot-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'databrew' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'databrew.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'databrew.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'datasync' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'datasync-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'datasync.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'datazone' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'datazone.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'datazone.us-gov-west-1.api.aws', ], ], ], 'directconnect' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'directconnect-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'directconnect-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'dlm' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'dlm.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'dlm.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'dlm-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'dlm.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'dlm.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'dlm.us-gov-west-1.amazonaws.com', ], ], ], 'dms' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'dms.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'dms' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'dms.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'dms-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'dms.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'dms.us-gov-west-1.amazonaws.com', ], ], ], 'docdb' => [ 'endpoints' => [ 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'rds.us-gov-west-1.amazonaws.com', ], ], ], 'drs' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'drs-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'drs-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'drs-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'drs-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ds' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'dynamodb' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'dynamodb.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'dynamodb-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'dynamodb-fips.us-gov-west-1.amazonaws.com', ], ], ], 'ebs' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'ec2.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'ec2.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ec2.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'ec2.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'ec2.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'ecs' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'ecs-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ecs-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'ecs-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'ecs-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'eks.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'eks.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'eks.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'eks.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'eks.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'eks-auth' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'eks-auth.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'eks-auth.us-gov-west-1.api.aws', ], ], ], 'elasticache' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'elasticache.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'elasticache.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticache.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'elasticache.us-gov-west-1.amazonaws.com', ], ], ], 'elasticbeanstalk' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'elasticbeanstalk.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'elasticbeanstalk.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticbeanstalk.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'elasticbeanstalk.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'elasticbeanstalk.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'elasticbeanstalk.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticbeanstalk.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'elasticbeanstalk.us-gov-west-1.amazonaws.com', ], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'elasticloadbalancing.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'elasticloadbalancing.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'elasticloadbalancing.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticloadbalancing.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'elasticloadbalancing.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticmapreduce' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticmapreduce.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'elasticmapreduce.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'elasticmapreduce.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'email' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'email-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'email-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'email-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'email-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'emr-containers' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'emr-containers.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'emr-containers.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'emr-containers.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'emr-containers.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'emr-serverless' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'emr-serverless.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'emr-serverless.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'emr-serverless.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'emr-serverless.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'es' => [ 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'es-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'aos.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'es-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'es-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'aos.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'es-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'es-fips.us-gov-west-1.amazonaws.com', ], ], ], 'events' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'events.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'events.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'events.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'events.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'firehose' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'firehose-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'firehose-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'firehose-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'firehose-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'fms' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'fms-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'fms-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'fsx' => [ 'endpoints' => [ 'fips-prod-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-gov-east-1.amazonaws.com', ], 'fips-prod-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-gov-west-1.amazonaws.com', ], 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-gov-west-1.amazonaws.com', ], 'prod-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'prod-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'gameliftstreams' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'gameliftstreams.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'gameliftstreams.us-gov-west-1.api.aws', ], ], ], 'geo' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'geo-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'geo-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'glacier' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'glacier.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'glacier.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'glacier.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'glacier.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'glue' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'glue-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'glue-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'glue-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'glue-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'glue.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'glue-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'glue-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'glue.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'greengrass' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'dataplane-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'greengrass-ats.iot.us-gov-east-1.amazonaws.com', ], 'dataplane-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'greengrass-ats.iot.us-gov-west-1.amazonaws.com', ], 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'greengrass.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'greengrass.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'greengrass.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'greengrass.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], 'isRegionalized' => true, ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'guardduty.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'guardduty.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'guardduty.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'guardduty.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'guardduty.us-gov-west-1.amazonaws.com', ], ], 'isRegionalized' => true, ], 'health' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'sslCommonName' => 'health.us-gov-west-1.amazonaws.com', ], 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'global.health.us-gov.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'health-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'health-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iam' => [ 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'iam.us-gov.amazonaws.com', 'variants' => [ [ 'hostname' => 'iam.us-gov.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'aws-us-gov-global-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'iam.us-gov.amazonaws.com', ], 'iam-govcloud' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'iam.us-gov.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'iam-govcloud-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'iam.us-gov.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-us-gov-global', ], 'identitystore' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'identitystore.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'identitystore.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'identitystore.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'identitystore.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'identitystore.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ingest.timestream' => [ 'endpoints' => [ 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'ingest.timestream.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ingest.timestream.us-gov-west-1.amazonaws.com', ], ], ], 'inspector' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'inspector-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'inspector-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'inspector-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'inspector-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'inspector2' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'inspector2-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'inspector2-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'inspector2-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'inspector2-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'internetmonitor' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'internetmonitor.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'internetmonitor.us-gov-west-1.api.aws', ], ], ], 'iot' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'deprecated' => true, 'hostname' => 'iot-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'deprecated' => true, 'hostname' => 'iot-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'iot-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'iot-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotevents' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'iotevents-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'iotevents-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ioteventsdata' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'data.iotevents-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'data.iotevents.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'data.iotevents-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotsecuredtunneling' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'api.tunneling.iot-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'api.tunneling.iot-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iotsitewise' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'iotsitewise-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'iotsitewise-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'iottwinmaker' => [ 'endpoints' => [ 'api-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'api.iottwinmaker.us-gov-west-1.amazonaws.com', ], 'data-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'data.iottwinmaker.us-gov-west-1.amazonaws.com', ], 'fips-api-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'api.iottwinmaker-fips.us-gov-west-1.amazonaws.com', ], 'fips-data-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'data.iottwinmaker-fips.us-gov-west-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'iottwinmaker-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'iottwinmaker-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kafka' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'kafka.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'kafka.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'kafka.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'kafka.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'kafka.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kafka.us-gov-west-1.amazonaws.com', ], ], ], 'kendra' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kendra-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'kendra-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kendra-ranking' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'kendra-ranking.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'kendra-ranking.us-gov-west-1.api.aws', ], ], ], 'kinesis' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'kinesis.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kinesis.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'kinesis.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'kinesis.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'kinesis.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'kinesis.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kinesisanalytics-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'kinesisanalytics-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kinesisvideo' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'kinesisvideo-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kinesisvideo-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'kinesisvideo-fips.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'kinesisvideo-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'kinesisvideo-fips.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'kinesisvideo-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-gov-west-1.amazonaws.com', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'lakeformation-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'lakeformation-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lakeformation-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'lakeformation.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'lakeformation-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lakeformation-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'lakeformation.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'lambda' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'lambda-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'lambda-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'lambda-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lambda.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'lambda-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'lambda.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'license-manager' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'license-manager-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'license-manager-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'license-manager-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'license-manager-linux-subscriptions' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'license-manager-user-subscriptions' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'logs.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'logs.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'logs.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'logs.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'logs.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'm2' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'deprecated' => true, ], 'fips-us-gov-west-1' => [ 'deprecated' => true, ], 'us-gov-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'managedblockchain' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'mediaconvert' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'mediaconvert.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'mediaconvert.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'mediaconvert.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'mediaconvert.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], ], ], 'meetings-chime' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'meetings-chime-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'meetings-chime-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'meetings-chime-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'meetings-chime-fips.us-gov-west-1.amazonaws.com', ], ], ], 'memory-db' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'metering.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'metering-marketplace.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'mgn' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'mgn-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'mgn-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'mgn-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'mgn-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'models-v2-lex' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'models.lex' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'lex', ], 'variants' => [ [ 'hostname' => 'models-fips.lex.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'models-fips.lex.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'models-fips.lex.us-gov-west-1.amazonaws.com', ], ], ], 'monitoring' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'monitoring.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'monitoring.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'monitoring.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'monitoring.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'monitoring.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'mq' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'mq-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'mq-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'mq-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'mq-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'neptune' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'rds.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'rds.us-gov-west-1.amazonaws.com', ], ], ], 'network-firewall' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'network-firewall-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'network-firewall-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'networkmanager' => [ 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'networkmanager.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'networkmanager.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'networkmanager.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'networkmanager.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'fips-aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'networkmanager.us-gov-west-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-us-gov-global', ], 'notifications' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'notifications.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'notifications.us-gov-west-1.api.aws', ], ], ], 'oam' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'oidc' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'oidc.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'oidc.us-gov-west-1.amazonaws.com', ], ], ], 'organizations' => [ 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'organizations.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'organizations.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'organizations.us-gov-west-1.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-us-gov-global', ], 'outposts' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'outposts.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'outposts.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'outposts.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'outposts.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'participant.connect' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'participant.connect.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'participant.connect.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'pi' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'pi-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'pi-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'pi-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'pi-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'pi.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'pinpoint' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'mobiletargeting', ], ], 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'pinpoint-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'pinpoint.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'pinpoint-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'polly' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'polly-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'polly-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'polly-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'polly.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'portal.sso' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'portal.sso.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'portal.sso.us-gov-west-1.amazonaws.com', ], ], ], 'qbusiness' => [ 'defaults' => [ 'dnsSuffix' => 'api.aws', 'variants' => [ [ 'dnsSuffix' => 'api.aws', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'hostname' => 'qbusiness.us-gov-east-1.api.aws', ], 'us-gov-west-1' => [ 'hostname' => 'qbusiness.us-gov-west-1.api.aws', ], ], ], 'query.timestream' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'quicksight' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'ram.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ramus-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'ram.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'ram.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'ram.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'ramus-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ram.us-gov-west-1.amazonaws.com', ], ], ], 'rbin' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rbin-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rbin.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'rds' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'rds.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'rds.us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'rds.us-gov-east-1.amazonaws.com', ], 'rds.us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'rds.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'rds.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'rds.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'rds.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'rds.us-gov-west-1.amazonaws.com', ], ], ], 'redshift' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'redshift.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'redshift.us-gov-west-1.amazonaws.com', ], ], ], 'redshift-serverless' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'redshift-serverless-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'redshift-serverless-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'rekognition' => [ 'endpoints' => [ 'rekognition-fips.us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-gov-west-1.amazonaws.com', ], 'rekognition.us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'rekognition-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'rekognition-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'rekognition-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'rekognition.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'rekognition-fips.us-gov-west-1.amazonaws.com', ], ], ], 'resiliencehub' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'resiliencehub-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'resiliencehub-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resiliencehub-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'resiliencehub.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'resiliencehub-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'resiliencehub-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'resiliencehub.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'resource-groups' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'resource-groups.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'resource-groups.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'resource-groups.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'resource-groups.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'resource-groups.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'robomaker' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'rolesanywhere' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'rolesanywhere-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'rolesanywhere-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'rolesanywhere-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'rolesanywhere-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'route53' => [ 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'route53.us-gov.amazonaws.com', 'variants' => [ [ 'hostname' => 'route53.us-gov.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'fips-aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'route53.us-gov.amazonaws.com', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-us-gov-global', ], 'route53profiles' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'route53profiles-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'route53profiles.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'route53resolver' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'route53resolver.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'deprecated' => true, 'hostname' => 'route53resolver.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'route53resolver.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'route53resolver.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], [ 'hostname' => 'route53resolver.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'deprecated' => true, 'hostname' => 'route53resolver.us-gov-west-1.amazonaws.com', ], ], ], 'runtime-v2-lex' => [ 'endpoints' => [ 'us-gov-west-1' => [], ], ], 'runtime.lex' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'lex', ], 'variants' => [ [ 'hostname' => 'runtime-fips.lex.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'runtime-fips.lex.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'runtime-fips.lex.us-gov-west-1.amazonaws.com', ], ], ], 'runtime.sagemaker' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'runtime.sagemaker.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'runtime.sagemaker.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'runtime.sagemaker.us-gov-west-1.amazonaws.com', ], ], ], 's3' => [ 'defaults' => [ 'signatureVersions' => [ 's3', 's3v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}-fips.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'hostname' => 's3.us-gov-east-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 's3-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3.dualstack.us-gov-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'hostname' => 's3.us-gov-west-1.amazonaws.com', 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 's3-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3.dualstack.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], ], ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}-fips.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'amazonaws.com', 'hostname' => '{service}.dualstack.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 's3-control.us-gov-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-gov-east-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-gov-east-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-gov-east-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 's3-control.us-gov-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-gov-west-1.amazonaws.com', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-gov-west-1.amazonaws.com', 'signatureVersions' => [ 's3v4', ], ], ], ], 's3-outposts' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'deprecated' => true, ], 'fips-us-gov-west-1' => [ 'deprecated' => true, ], 'us-gov-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], ], ], 'schemas' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'deprecated' => true, ], 'us-gov-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], [ 'tags' => [ 'dualstack', 'fips', ], ], [ 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'deprecated' => true, ], ], ], 'securityhub' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'securityhub-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'securityhub-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'securityhub-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securityhub.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'securityhub-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securityhub.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'securitylake' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'securitylake.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securitylake.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'securitylake.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'securitylake.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'securitylake.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'securitylake.us-gov-west-1.amazonaws.com', ], ], ], 'serverlessrepo' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'serverlessrepo.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'serverlessrepo.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'serverlessrepo.us-gov-west-1.amazonaws.com', ], ], ], 'servicecatalog' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'servicecatalog-fips.us-gov-west-1.amazonaws.com', ], ], ], 'servicecatalog-appregistry' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'servicecatalog-appregistry.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'servicediscovery' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'servicediscovery-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'servicediscovery-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'servicediscovery-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'servicediscovery.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'servicediscovery-fips.us-gov-west-1.amazonaws.com', ], ], ], 'servicequotas' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'servicequotas.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'servicequotas.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'servicequotas.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'servicequotas.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'servicequotas.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'signer' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'signer-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'signer-fips.us-gov-west-1.amazonaws.com', ], 'fips-verification-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'verification.signer-fips.us-gov-east-1.amazonaws.com', ], 'fips-verification-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'verification.signer-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'signer-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'signer-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'verification-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'verification.signer.us-gov-east-1.amazonaws.com', ], 'verification-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'verification.signer.us-gov-west-1.amazonaws.com', ], ], ], 'simspaceweaver' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'simspaceweaver.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'simspaceweaver.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'simspaceweaver.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'simspaceweaver.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'sms' => [ 'endpoints' => [ 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'sms-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'sms-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'sms-voice' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'sms-voice-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'sms-voice-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'sms-voice-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'sms-voice.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'snowball' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'snowball-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'snowball-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'snowball-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'snowball.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'sns' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'sns.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'sns.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'sns.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'sns.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'sqs' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'sqs.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'sqs.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', 'variants' => [ [ 'hostname' => 'sqs.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'ssm.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'ssm.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'ssm.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'ssm.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'ssm.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'sso' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'sso.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'sso.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'sso.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'sso.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'sso.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'sso.us-gov-west-1.amazonaws.com', ], ], ], 'states' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'states-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'states.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'states.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'storagegateway' => [ 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-gov-west-1.amazonaws.com', ], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'variants' => [ [ 'hostname' => 'streams.dynamodb.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'sts' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'sts.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'sts.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'sts.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'sts.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'sts.us-gov-west-1.amazonaws.com', ], ], ], 'support' => [ 'endpoints' => [ 'aws-us-gov-global' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'support.us-gov-west-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'support.us-gov-west-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'support.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], 'partitionEndpoint' => 'aws-us-gov-global', ], 'swf' => [ 'endpoints' => [ 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'swf.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'swf.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'swf.us-gov-east-1.amazonaws.com', ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'swf.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'swf.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'swf.us-gov-west-1.amazonaws.com', ], ], ], 'synthetics' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'synthetics-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'synthetics-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'synthetics-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'synthetics.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'tagging' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'textract' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'textract-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'textract-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'textract-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'textract-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'textract-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'textract.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transcribe' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'fips.transcribe.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribe-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribe.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transcribestreaming' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'transcribestreaming-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'transcribestreaming-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribestreaming-fips.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribestreaming.us-gov-east-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'transcribestreaming-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'transcribestreaming-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'transcribestreaming.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'transfer' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'transfer-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'transfer-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'transfer-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'translate' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'translate-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], [ 'hostname' => 'translate-fips.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 'translate.us-gov-west-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'us-gov-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'translate-fips.us-gov-west-1.amazonaws.com', ], ], ], 'verifiedpermissions' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'verifiedpermissions-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'verifiedpermissions-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'waf-regional' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'waf-regional-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'waf-regional.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'waf-regional.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'waf-regional-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'wafv2' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'wafv2-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'hostname' => 'wafv2.us-gov-east-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'hostname' => 'wafv2.us-gov-west-1.amazonaws.com', 'variants' => [ [ 'hostname' => 'wafv2-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'wellarchitected' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], 'workspaces' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], 'xray' => [ 'endpoints' => [ 'fips-us-gov-east-1' => [ 'credentialScope' => [ 'region' => 'us-gov-east-1', ], 'deprecated' => true, 'hostname' => 'xray-fips.us-gov-east-1.amazonaws.com', ], 'fips-us-gov-west-1' => [ 'credentialScope' => [ 'region' => 'us-gov-west-1', ], 'deprecated' => true, 'hostname' => 'xray-fips.us-gov-west-1.amazonaws.com', ], 'us-gov-east-1' => [ 'variants' => [ [ 'hostname' => 'xray-fips.us-gov-east-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'us-gov-west-1' => [ 'variants' => [ [ 'hostname' => 'xray-fips.us-gov-west-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'c2s.ic.gov', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'dnsSuffix' => 'c2s.ic.gov', 'partition' => 'aws-iso', 'partitionName' => 'AWS ISO (US)', 'regionRegex' => '^us\\-iso\\-\\w+\\-\\d+$', 'regions' => [ 'us-iso-east-1' => [ 'description' => 'US ISO East', ], 'us-iso-west-1' => [ 'description' => 'US ISO WEST', ], ], 'services' => [ 'agreement-marketplace' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'agreement-marketplace-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'api.ecr' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'api.ecr.us-iso-east-1.c2s.ic.gov', ], 'us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'hostname' => 'api.ecr.us-iso-west-1.c2s.ic.gov', ], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'apigateway' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'autoscaling' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], ], 'us-iso-west-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'bedrock' => [ 'endpoints' => [ 'bedrock-runtime-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'bedrock-runtime.us-iso-east-1.c2s.ic.gov', ], 'bedrock-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'bedrock.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [], ], ], 'budgets' => [ 'endpoints' => [ 'aws-iso-global' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'budgets.c2s.ic.gov', ], 'us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'budgets.c2s.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-global', ], 'ce' => [ 'endpoints' => [ 'aws-iso-global' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'ce.us-iso-east-1.c2s.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-global', ], 'cloudcontrolapi' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'codebuild' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'comprehend' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'comprehend-fips.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'comprehend-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'config' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'config-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'config-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'datapipeline' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'datasync' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'datasync-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'datasync-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'directconnect' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'dms' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'dms.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'dms' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'dms.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'dms-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-iso-east-1.c2s.ic.gov', ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'dms.us-iso-west-1.c2s.ic.gov', ], ], ], 'ds' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'dynamodb' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], ], 'us-iso-west-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'ec2' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticloadbalancing' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], ], 'us-iso-west-1' => [], ], ], 'elasticmapreduce' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'protocols' => [ 'https', ], 'variants' => [ [ 'hostname' => 'elasticmapreduce.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'es' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'events' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'fsx' => [ 'endpoints' => [ 'fips-prod-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'fsx-fips.us-iso-east-1.c2s.ic.gov', ], 'prod-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'fsx-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'fsx-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'glacier' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'glacier-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'glue' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-iso-east-1' => [], ], 'isRegionalized' => true, ], 'health' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'iam' => [ 'endpoints' => [ 'aws-iso-global' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'iam.us-iso-east-1.c2s.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-global', ], 'kinesis' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-iso-east-1.c2s.ic.gov', ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-iso-west-1.c2s.ic.gov', ], ], ], 'lambda' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'license-manager' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'medialive' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'medialive-fips.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'medialive-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'mediapackage' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'monitoring' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'oam' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'organizations' => [ 'endpoints' => [ 'aws-iso-global' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'organizations.us-iso-east-1.c2s.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-global', ], 'outposts' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'pi' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'protocols' => [ 'https', ], ], 'us-iso-west-1' => [ 'protocols' => [ 'https', ], ], ], ], 'ram' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'rbin' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'rds' => [ 'endpoints' => [ 'rds.us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'rds.us-iso-east-1.c2s.ic.gov', ], 'rds.us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'rds.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'rds.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'rds.us-iso-east-1.c2s.ic.gov', ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'rds.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'rds.us-iso-west-1.c2s.ic.gov', ], ], ], 'redshift' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'redshift.us-iso-east-1.c2s.ic.gov', ], 'us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'hostname' => 'redshift.us-iso-west-1.c2s.ic.gov', ], ], ], 'resource-groups' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'route53' => [ 'endpoints' => [ 'aws-iso-global' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'route53.c2s.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-global', ], 'route53resolver' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'runtime.sagemaker' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 's3' => [ 'defaults' => [ 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 's3-control.us-iso-east-1.c2s.ic.gov', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'dualstack', ], ], ], ], 'us-iso-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-iso-east-1.c2s.ic.gov', 'signatureVersions' => [ 's3v4', ], ], 'us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'hostname' => 's3-control.us-iso-west-1.c2s.ic.gov', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'dualstack', ], ], ], ], 'us-iso-west-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-iso-west-1.c2s.ic.gov', 'signatureVersions' => [ 's3v4', ], ], ], ], 's3-outposts' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'deprecated' => true, ], 'us-iso-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'scheduler' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-iso-east-1-fips' => [ 'deprecated' => true, ], 'us-iso-west-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1-fips' => [ 'deprecated' => true, ], ], ], 'securityhub' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'snowball' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'sns' => [ 'endpoints' => [ 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], ], 'us-iso-west-1' => [], ], ], 'sqs' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'protocols' => [ 'http', 'https', ], 'variants' => [ [ 'hostname' => 'sqs.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'sqs.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'states' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'states-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'states-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'storagegateway' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], ], 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'support' => [ 'endpoints' => [ 'aws-iso-global' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'hostname' => 'support.us-iso-east-1.c2s.ic.gov', ], ], 'partitionEndpoint' => 'aws-iso-global', ], 'swf' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'synthetics' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'textract' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'transcribe' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'fips.transcribe.us-iso-east-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'fips.transcribe.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'transcribestreaming' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], 'translate' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'translate-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'translate-fips.us-iso-east-1.c2s.ic.gov', ], ], ], 'workspaces' => [ 'endpoints' => [ 'fips-us-iso-east-1' => [ 'credentialScope' => [ 'region' => 'us-iso-east-1', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-iso-east-1.c2s.ic.gov', ], 'fips-us-iso-west-1' => [ 'credentialScope' => [ 'region' => 'us-iso-west-1', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-iso-west-1.c2s.ic.gov', ], 'us-iso-east-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-iso-east-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-iso-west-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-iso-west-1.c2s.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'xray' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'sc2s.sgov.gov', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'dnsSuffix' => 'sc2s.sgov.gov', 'partition' => 'aws-iso-b', 'partitionName' => 'AWS ISOB (US)', 'regionRegex' => '^us\\-isob\\-\\w+\\-\\d+$', 'regions' => [ 'us-isob-east-1' => [ 'description' => 'US ISOB East (Ohio)', ], ], 'services' => [ 'api.ecr' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'api.ecr.us-isob-east-1.sc2s.sgov.gov', ], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'apigateway' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'budgets' => [ 'endpoints' => [ 'aws-iso-b-global' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'budgets.global.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'budgets.global.sc2s.sgov.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-b-global', ], 'ce' => [ 'endpoints' => [ 'aws-iso-b-global' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'ce.us-isob-east-1.sc2s.sgov.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-b-global', ], 'cloudcontrolapi' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'codebuild' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'config' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'config-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'config-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'datasync' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'dms' => [ 'defaults' => [ 'variants' => [ [ 'hostname' => 'dms.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'endpoints' => [ 'dms' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'dms.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], 'dms-fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isob-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-isob-east-1.sc2s.sgov.gov', ], ], ], 'ds' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'ds-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'ds-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticloadbalancing' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'protocols' => [ 'https', ], ], ], ], 'elasticmapreduce' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'elasticmapreduce.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticmapreduce.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'es' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'events' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'fsx' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'glacier' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'glacier-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'glacier-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'glue' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'guardduty' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'health' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'iam' => [ 'endpoints' => [ 'aws-iso-b-global' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'iam.us-isob-east-1.sc2s.sgov.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-b-global', ], 'kinesis' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isob-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-isob-east-1.sc2s.sgov.gov', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'license-manager' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'medialive' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'medialive-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'medialive-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'mediapackage' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'metering.marketplace' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'aws-marketplace', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'monitoring' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'oam' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'organizations' => [ 'endpoints' => [ 'aws-iso-b-global' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'organizations.us-isob-east-1.sc2s.sgov.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-b-global', ], 'outposts' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'pi' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'rbin' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'rbin-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'rbin-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'rds' => [ 'endpoints' => [ 'rds.us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'rds.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'rds.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isob-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'rds.us-isob-east-1.sc2s.sgov.gov', ], ], ], 'redshift' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'redshift.us-isob-east-1.sc2s.sgov.gov', ], ], ], 'resource-groups' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'route53' => [ 'endpoints' => [ 'aws-iso-b-global' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'route53.sc2s.sgov.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-b-global', ], 'route53resolver' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'runtime.sagemaker' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 's3-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 's3-fips.dualstack.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 's3-control' => [ 'defaults' => [ 'protocols' => [ 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 's3-control.us-isob-east-1.sc2s.sgov.gov', 'signatureVersions' => [ 's3v4', ], 'variants' => [ [ 'hostname' => 's3-control-fips.dualstack.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'dualstack', 'fips', ], ], [ 'hostname' => 's3-control-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], [ 'hostname' => 's3-control.dualstack.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'dualstack', ], ], ], ], 'us-isob-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 's3-control-fips.us-isob-east-1.sc2s.sgov.gov', 'signatureVersions' => [ 's3v4', ], ], ], ], 's3-outposts' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'deprecated' => true, ], 'us-isob-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], ], ], 'scheduler' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-isob-east-1-fips' => [ 'deprecated' => true, ], ], ], 'securityhub' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'snowball' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'sqs.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'states' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'states-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'states-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'storagegateway' => [ 'endpoints' => [ 'fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'storagegateway-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isob-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'storagegateway-fips.us-isob-east-1.sc2s.sgov.gov', ], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'support' => [ 'endpoints' => [ 'aws-iso-b-global' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'support.us-isob-east-1.sc2s.sgov.gov', ], ], 'partitionEndpoint' => 'aws-iso-b-global', ], 'swf' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'swf-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'swf-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'synthetics' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'workspaces' => [ 'endpoints' => [ 'fips-us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'deprecated' => true, 'hostname' => 'workspaces-fips.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-east-1' => [ 'variants' => [ [ 'hostname' => 'workspaces-fips.us-isob-east-1.sc2s.sgov.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'xray' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'cloud.adc-e.uk', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'dnsSuffix' => 'cloud.adc-e.uk', 'partition' => 'aws-iso-e', 'partitionName' => 'AWS ISOE (Europe)', 'regionRegex' => '^eu\\-isoe\\-\\w+\\-\\d+$', 'regions' => [ 'eu-isoe-west-1' => [ 'description' => 'EU ISOE West', ], ], 'services' => [ 'access-analyzer' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.eu-isoe-west-1.api.cloud-aws.adc-e.uk', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'acm' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'acm-pca' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'api.ecr.eu-isoe-west-1.cloud.adc-e.uk', ], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'budgets' => [ 'endpoints' => [ 'aws-iso-e-global' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'budgets.global.cloud.adc-e.uk', ], 'eu-isoe-west-1' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'budgets.global.cloud.adc-e.uk', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-e-global', ], 'cloudcontrolapi' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'compute-optimizer' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'compute-optimizer.eu-isoe-west-1.cloud.adc-e.uk', ], ], ], 'config' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'cost-optimization-hub' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'cost-optimization-hub.eu-isoe-west-1.cloud.adc-e.uk', ], ], ], 'directconnect' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'dms' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'ds' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.eu-isoe-west-1.cloud.adc-e.uk', 'tags' => [ 'fips', ], ], ], ], 'fips-eu-isoe-west-1' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.eu-isoe-west-1.cloud.adc-e.uk', ], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'elasticmapreduce' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'emr-serverless' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'es' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'events' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'glue' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'kinesis' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-isoe-west-1.cloud.adc-e.uk', ], 'eu-isoe-west-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.eu-isoe-west-1.cloud.adc-e.uk', 'tags' => [ 'fips', ], ], ], ], 'eu-isoe-west-1-fips' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.eu-isoe-west-1.cloud.adc-e.uk', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'variants' => [ [ 'hostname' => 'lambda.eu-isoe-west-1.api.cloud-aws.adc-e.uk', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'license-manager' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'monitoring' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'oam' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'organizations' => [ 'endpoints' => [ 'aws-iso-e-global' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'organizations.eu-isoe-west-1.cloud.adc-e.uk', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-e-global', ], 'pi' => [ 'endpoints' => [ 'eu-isoe-west-1' => [ 'protocols' => [ 'https', ], ], ], ], 'pipes' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'rbin' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'rds' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'redshift-serverless' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'resource-groups' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'route53' => [ 'endpoints' => [ 'aws-iso-e-global' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'route53.cloud.adc-e.uk', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-e-global', ], 'route53profiles' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'route53resolver' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'savingsplans' => [ 'endpoints' => [ 'aws-iso-e-global' => [ 'credentialScope' => [ 'region' => 'eu-isoe-west-1', ], 'hostname' => 'savingsplans.cloud.adc-e.uk', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-e-global', ], 'scheduler' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'servicecatalog' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'servicequotas' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'ssm' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'states' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'swf' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'synthetics' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], 'xray' => [ 'endpoints' => [ 'eu-isoe-west-1' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'csp.hci.ic.gov', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'dnsSuffix' => 'csp.hci.ic.gov', 'partition' => 'aws-iso-f', 'partitionName' => 'AWS ISOF', 'regionRegex' => '^us\\-isof\\-\\w+\\-\\d+$', 'regions' => [ 'us-isof-east-1' => [ 'description' => 'US ISOF EAST', ], 'us-isof-south-1' => [ 'description' => 'US ISOF SOUTH', ], ], 'services' => [ 'access-analyzer' => [ 'endpoints' => [ 'us-isof-east-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.us-isof-east-1.api.aws.hci.ic.gov', 'tags' => [ 'dualstack', ], ], ], ], 'us-isof-south-1' => [ 'variants' => [ [ 'hostname' => 'access-analyzer.us-isof-south-1.api.aws.hci.ic.gov', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'acm' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'acm-pca' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'us-isof-east-1' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'hostname' => 'api.ecr.us-isof-east-1.csp.hci.ic.gov', ], 'us-isof-south-1' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'api.ecr.us-isof-south-1.csp.hci.ic.gov', ], ], ], 'api.pricing' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'pricing', ], ], 'endpoints' => [ 'us-isof-south-1' => [], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'backup' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'budgets' => [ 'endpoints' => [ 'aws-iso-f-global' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'budgets.global.csp.hci.ic.gov', ], 'us-isof-south-1' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'budgets.global.csp.hci.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-f-global', ], 'ce' => [ 'endpoints' => [ 'aws-iso-f-global' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'ce.us-isof-south-1.csp.hci.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-f-global', ], 'cloudcontrolapi' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'cloudtrail-data' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'codebuild' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'codepipeline' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'comprehend' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'compute-optimizer' => [ 'endpoints' => [ 'us-isof-south-1' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'compute-optimizer.us-isof-south-1.csp.hci.ic.gov', ], ], ], 'config' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'cost-optimization-hub' => [ 'endpoints' => [ 'us-isof-south-1' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'cost-optimization-hub.us-isof-south-1.csp.hci.ic.gov', ], ], ], 'directconnect' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'dms' => [ 'endpoints' => [ 'dms' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'variants' => [ [ 'hostname' => 'dms.us-isof-east-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'dms-fips' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-isof-east-1.csp.hci.ic.gov', ], 'us-isof-east-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-isof-east-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isof-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'hostname' => 'dms.us-isof-east-1.csp.hci.ic.gov', ], 'us-isof-south-1' => [ 'variants' => [ [ 'hostname' => 'dms.us-isof-south-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isof-south-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'deprecated' => true, 'hostname' => 'dms.us-isof-south-1.csp.hci.ic.gov', ], ], ], 'ds' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'dynamodb' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'fips-us-isof-east-1' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-isof-east-1.csp.hci.ic.gov', ], 'fips-us-isof-south-1' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'deprecated' => true, 'hostname' => 'elasticfilesystem-fips.us-isof-south-1.csp.hci.ic.gov', ], 'us-isof-east-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-isof-east-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isof-south-1' => [ 'variants' => [ [ 'hostname' => 'elasticfilesystem-fips.us-isof-south-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'elasticloadbalancing' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'elasticmapreduce' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'es' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'events' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'fsx' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'glue' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'guardduty' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], 'isRegionalized' => true, ], 'iam' => [ 'endpoints' => [ 'aws-iso-f-global' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'iam.us-isof-south-1.csp.hci.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-f-global', ], 'kinesis' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'ProdFips' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-isof-east-1.csp.hci.ic.gov', ], 'us-isof-east-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-isof-east-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isof-east-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-isof-east-1.csp.hci.ic.gov', ], 'us-isof-south-1' => [ 'variants' => [ [ 'hostname' => 'kms-fips.us-isof-south-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isof-south-1-fips' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'deprecated' => true, 'hostname' => 'kms-fips.us-isof-south-1.csp.hci.ic.gov', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'us-isof-east-1' => [ 'variants' => [ [ 'hostname' => 'lambda.us-isof-east-1.api.aws.hci.ic.gov', 'tags' => [ 'dualstack', ], ], ], ], 'us-isof-south-1' => [ 'variants' => [ [ 'hostname' => 'lambda.us-isof-south-1.api.aws.hci.ic.gov', 'tags' => [ 'dualstack', ], ], ], ], ], ], 'license-manager' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'monitoring' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'oam' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'organizations' => [ 'endpoints' => [ 'aws-iso-f-global' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'organizations.us-isof-south-1.csp.hci.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-f-global', ], 'pi' => [ 'endpoints' => [ 'us-isof-east-1' => [ 'protocols' => [ 'https', ], ], 'us-isof-south-1' => [ 'protocols' => [ 'https', ], ], ], ], 'pipes' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'quicksight' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'rbin' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'rds' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'redshift-serverless' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'rekognition' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'resource-groups' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'route53' => [ 'endpoints' => [ 'aws-iso-f-global' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'route53.csp.hci.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-f-global', ], 'route53profiles' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'route53resolver' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 's3' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'signatureVersions' => [ 's3v4', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'savingsplans' => [ 'endpoints' => [ 'aws-iso-f-global' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'hostname' => 'savingsplans.csp.hci.ic.gov', ], ], 'isRegionalized' => false, 'partitionEndpoint' => 'aws-iso-f-global', ], 'scheduler' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'schemas' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'servicequotas' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'sqs' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], 'sslCommonName' => '{region}.queue.{dnsSuffix}', ], 'endpoints' => [ 'fips-us-isof-east-1' => [ 'credentialScope' => [ 'region' => 'us-isof-east-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-isof-east-1.csp.hci.ic.gov', ], 'fips-us-isof-south-1' => [ 'credentialScope' => [ 'region' => 'us-isof-south-1', ], 'deprecated' => true, 'hostname' => 'sqs.us-isof-south-1.csp.hci.ic.gov', ], 'us-isof-east-1' => [ 'variants' => [ [ 'hostname' => 'sqs.us-isof-east-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], 'us-isof-south-1' => [ 'variants' => [ [ 'hostname' => 'sqs.us-isof-south-1.csp.hci.ic.gov', 'tags' => [ 'fips', ], ], ], ], ], ], 'ssm' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'states' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'streams.dynamodb' => [ 'defaults' => [ 'credentialScope' => [ 'service' => 'dynamodb', ], 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'swf' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'synthetics' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'textract' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'transcribe' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'transcribestreaming' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'translate' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], 'xray' => [ 'endpoints' => [ 'us-isof-east-1' => [], 'us-isof-south-1' => [], ], ], ], ], [ 'defaults' => [ 'hostname' => '{service}.{region}.{dnsSuffix}', 'protocols' => [ 'https', ], 'signatureVersions' => [ 'v4', ], 'variants' => [ [ 'dnsSuffix' => 'amazonaws.eu', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'fips', ], ], ], ], 'dnsSuffix' => 'amazonaws.eu', 'partition' => 'aws-eusc', 'partitionName' => 'AWS EUSC', 'regionRegex' => '^eusc\\-(de)\\-\\w+\\-\\d+$', 'regions' => [ 'eusc-de-east-1' => [ 'description' => 'EU (Germany)', ], ], 'services' => [], ], ], 'version' => 3,];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/endpoints_prefix_history.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/endpoints_prefix_history.json.php
new file mode 100644
index 000000000..3e8b7c04e
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/endpoints_prefix_history.json.php
@@ -0,0 +1,3 @@
+ [ 'api.ecr' => [ 'ecr', ], 'api.elastic-inference' => [ 'elastic-inference', ], 'api.sagemaker' => [ 'sagemaker', ], 'ecr' => [ 'api.ecr', ], 'elastic-inference' => [ 'api.elastic-inference', ], 'sagemaker' => [ 'api.sagemaker', ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/grandfathered-services.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/grandfathered-services.json.php
new file mode 100644
index 000000000..039f3fb02
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/grandfathered-services.json.php
@@ -0,0 +1,3 @@
+ [ 'AccessAnalyzer', 'Account', 'ACMPCA', 'ACM', 'PrometheusService', 'Amplify', 'AmplifyBackend', 'AmplifyUIBuilder', 'APIGateway', 'ApiGatewayManagementApi', 'ApiGatewayV2', 'AppConfig', 'AppConfigData', 'Appflow', 'AppIntegrationsService', 'ApplicationAutoScaling', 'ApplicationInsights', 'ApplicationCostProfiler', 'AppMesh', 'AppRunner', 'AppStream', 'AppSync', 'Athena', 'AuditManager', 'AutoScalingPlans', 'AutoScaling', 'BackupGateway', 'Backup', 'Batch', 'BillingConductor', 'Braket', 'Budgets', 'CostExplorer', 'ChimeSDKIdentity', 'ChimeSDKMediaPipelines', 'ChimeSDKMeetings', 'ChimeSDKMessaging', 'Chime', 'Cloud9', 'CloudControlApi', 'CloudDirectory', 'CloudFormation', 'CloudFront', 'CloudHSM', 'CloudHSMV2', 'CloudSearch', 'CloudSearchDomain', 'CloudTrail', 'CodeArtifact', 'CodeBuild', 'CodeCommit', 'CodeDeploy', 'CodeGuruReviewer', 'CodeGuruProfiler', 'CodePipeline', 'CodeStarconnections', 'CodeStarNotifications', 'CodeStar', 'CognitoIdentity', 'CognitoIdentityProvider', 'CognitoSync', 'Comprehend', 'ComprehendMedical', 'ComputeOptimizer', 'ConfigService', 'ConnectContactLens', 'Connect', 'ConnectCampaignService', 'ConnectParticipant', 'CostandUsageReportService', 'CustomerProfiles', 'IoTDataPlane', 'GlueDataBrew', 'DataExchange', 'DataPipeline', 'DataSync', 'DAX', 'Detective', 'DeviceFarm', 'DevOpsGuru', 'DirectConnect', 'ApplicationDiscoveryService', 'DLM', 'DatabaseMigrationService', 'DocDB', 'drs', 'DirectoryService', 'DynamoDB', 'EBS', 'EC2InstanceConnect', 'EC2', 'ECRPublic', 'ECR', 'ECS', 'EKS', 'ElastiCache', 'ElasticBeanstalk', 'EFS', 'ElasticLoadBalancing', 'ElasticLoadBalancingv2', 'EMR', 'ElasticTranscoder', 'SES', 'EMRContainers', 'EMRServerless', 'MarketplaceEntitlementService', 'ElasticsearchService', 'EventBridge', 'CloudWatchEvents', 'CloudWatchEvidently', 'FinSpaceData', 'finspace', 'Firehose', 'FIS', 'FMS', 'ForecastService', 'ForecastQueryService', 'FraudDetector', 'FSx', 'GameLift', 'Glacier', 'GlobalAccelerator', 'Glue', 'ManagedGrafana', 'Greengrass', 'GreengrassV2', 'GroundStation', 'GuardDuty', 'Health', 'HealthLake', 'IAM', 'IdentityStore', 'imagebuilder', 'ImportExport', 'Inspector', 'Inspector2', 'IoTJobsDataPlane', 'IoT', 'IoTAnalytics', 'IoTDeviceAdvisor', 'IoTEventsData', 'IoTEvents', 'IoTFleetHub', 'IoTSecureTunneling', 'IoTSiteWise', 'IoTThingsGraph', 'IoTTwinMaker', 'IoTWireless', 'IVS', 'ivschat', 'Kafka', 'KafkaConnect', 'kendra', 'Keyspaces', 'KinesisVideoArchivedMedia', 'KinesisVideoMedia', 'KinesisVideoSignalingChannels', 'Kinesis', 'KinesisAnalytics', 'KinesisAnalyticsV2', 'KinesisVideo', 'KMS', 'LakeFormation', 'Lambda', 'LexModelBuildingService', 'LicenseManager', 'Lightsail', 'LocationService', 'CloudWatchLogs', 'LookoutEquipment', 'LookoutMetrics', 'LookoutforVision', 'MainframeModernization', 'MachineLearning', 'Macie2', 'ManagedBlockchain', 'MarketplaceCatalog', 'MarketplaceCommerceAnalytics', 'MediaConnect', 'MediaConvert', 'MediaLive', 'MediaPackageVod', 'MediaPackage', 'MediaStoreData', 'MediaStore', 'MediaTailor', 'MemoryDB', 'MarketplaceMetering', 'MigrationHub', 'mgn', 'MigrationHubRefactorSpaces', 'MigrationHubConfig', 'MigrationHubStrategyRecommendations', 'LexModelsV2', 'CloudWatch', 'MQ', 'MTurk', 'MWAA', 'Neptune', 'NetworkFirewall', 'NetworkManager', 'OpenSearchService', 'OpsWorks', 'OpsWorksCM', 'Organizations', 'Outposts', 'Panorama', 'PersonalizeEvents', 'PersonalizeRuntime', 'Personalize', 'PI', 'PinpointEmail', 'PinpointSMSVoiceV2', 'Pinpoint', 'Polly', 'Pricing', 'Proton', 'QLDBSession', 'QLDB', 'QuickSight', 'RAM', 'RecycleBin', 'RDSDataService', 'RDS', 'RedshiftDataAPIService', 'RedshiftServerless', 'Redshift', 'Rekognition', 'ResilienceHub', 'ResourceGroups', 'ResourceGroupsTaggingAPI', 'RoboMaker', 'Route53RecoveryCluster', 'Route53RecoveryControlConfig', 'Route53RecoveryReadiness', 'Route53', 'Route53Domains', 'Route53Resolver', 'CloudWatchRUM', 'LexRuntimeV2', 'LexRuntimeService', 'SageMakerRuntime', 'S3', 'S3Control', 'S3Outposts', 'AugmentedAIRuntime', 'SagemakerEdgeManager', 'SageMakerFeatureStoreRuntime', 'SageMaker', 'SavingsPlans', 'Schemas', 'SecretsManager', 'SecurityHub', 'ServerlessApplicationRepository', 'ServiceQuotas', 'AppRegistry', 'ServiceCatalog', 'ServiceDiscovery', 'SESV2', 'Shield', 'signer', 'PinpointSMSVoice', 'SMS', 'SnowDeviceManagement', 'Snowball', 'SNS', 'SQS', 'SSMContacts', 'SSMIncidents', 'SSM', 'SSOAdmin', 'SSOOIDC', 'SSO', 'SFN', 'StorageGateway', 'DynamoDBStreams', 'STS', 'Support', 'SWF', 'Synthetics', 'Textract', 'TimestreamQuery', 'TimestreamWrite', 'TranscribeService', 'Transfer', 'Translate', 'VoiceID', 'WAFRegional', 'WAF', 'WAFV2', 'WellArchitected', 'ConnectWisdomService', 'WorkDocs', 'WorkMail', 'WorkMailMessageFlow', 'WorkSpacesWeb', 'WorkSpaces', 'XRay', ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php
new file mode 100644
index 000000000..df33aaf7d
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php
@@ -0,0 +1,3 @@
+ '2.0', 'metadata' => [ 'apiVersion' => '2014-11-01', 'endpointPrefix' => 'kms', 'jsonVersion' => '1.1', 'protocol' => 'json', 'protocols' => [ 'json', ], 'serviceAbbreviation' => 'KMS', 'serviceFullName' => 'AWS Key Management Service', 'serviceId' => 'KMS', 'signatureVersion' => 'v4', 'targetPrefix' => 'TrentService', 'uid' => 'kms-2014-11-01', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'CancelKeyDeletion' => [ 'name' => 'CancelKeyDeletion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CancelKeyDeletionRequest', ], 'output' => [ 'shape' => 'CancelKeyDeletionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ConnectCustomKeyStore' => [ 'name' => 'ConnectCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConnectCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'ConnectCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmClusterNotActiveException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], ], ], 'CreateAlias' => [ 'name' => 'CreateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateAliasRequest', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidAliasNameException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'CreateCustomKeyStore' => [ 'name' => 'CreateCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'CreateCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CloudHsmClusterInUseException', ], [ 'shape' => 'CustomKeyStoreNameInUseException', ], [ 'shape' => 'CloudHsmClusterNotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CloudHsmClusterNotActiveException', ], [ 'shape' => 'IncorrectTrustAnchorException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'XksProxyUriInUseException', ], [ 'shape' => 'XksProxyUriEndpointInUseException', ], [ 'shape' => 'XksProxyUriUnreachableException', ], [ 'shape' => 'XksProxyIncorrectAuthenticationCredentialException', ], [ 'shape' => 'XksProxyVpcEndpointServiceInUseException', ], [ 'shape' => 'XksProxyVpcEndpointServiceNotFoundException', ], [ 'shape' => 'XksProxyVpcEndpointServiceInvalidConfigurationException', ], [ 'shape' => 'XksProxyInvalidResponseException', ], [ 'shape' => 'XksProxyInvalidConfigurationException', ], ], ], 'CreateGrant' => [ 'name' => 'CreateGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateGrantRequest', ], 'output' => [ 'shape' => 'CreateGrantResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'CreateKey' => [ 'name' => 'CreateKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateKeyRequest', ], 'output' => [ 'shape' => 'CreateKeyResponse', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], [ 'shape' => 'XksKeyInvalidConfigurationException', ], [ 'shape' => 'XksKeyAlreadyInUseException', ], [ 'shape' => 'XksKeyNotFoundException', ], ], ], 'Decrypt' => [ 'name' => 'Decrypt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecryptRequest', ], 'output' => [ 'shape' => 'DecryptResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidCiphertextException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'IncorrectKeyException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'DeleteAlias' => [ 'name' => 'DeleteAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteAliasRequest', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DeleteCustomKeyStore' => [ 'name' => 'DeleteCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'DeleteCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreHasCMKsException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'DeleteImportedKeyMaterial' => [ 'name' => 'DeleteImportedKeyMaterial', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteImportedKeyMaterialRequest', ], 'output' => [ 'shape' => 'DeleteImportedKeyMaterialResponse', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DeriveSharedSecret' => [ 'name' => 'DeriveSharedSecret', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeriveSharedSecretRequest', ], 'output' => [ 'shape' => 'DeriveSharedSecretResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'DescribeCustomKeyStores' => [ 'name' => 'DescribeCustomKeyStores', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeCustomKeyStoresRequest', ], 'output' => [ 'shape' => 'DescribeCustomKeyStoresResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'DescribeKey' => [ 'name' => 'DescribeKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DescribeKeyRequest', ], 'output' => [ 'shape' => 'DescribeKeyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'DisableKey' => [ 'name' => 'DisableKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableKeyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'DisableKeyRotation' => [ 'name' => 'DisableKeyRotation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisableKeyRotationRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'DisconnectCustomKeyStore' => [ 'name' => 'DisconnectCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DisconnectCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'DisconnectCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'EnableKey' => [ 'name' => 'EnableKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableKeyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'EnableKeyRotation' => [ 'name' => 'EnableKeyRotation', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EnableKeyRotationRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'Encrypt' => [ 'name' => 'Encrypt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'EncryptRequest', ], 'output' => [ 'shape' => 'EncryptResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'GenerateDataKey' => [ 'name' => 'GenerateDataKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataKeyRequest', ], 'output' => [ 'shape' => 'GenerateDataKeyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'GenerateDataKeyPair' => [ 'name' => 'GenerateDataKeyPair', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataKeyPairRequest', ], 'output' => [ 'shape' => 'GenerateDataKeyPairResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'GenerateDataKeyPairWithoutPlaintext' => [ 'name' => 'GenerateDataKeyPairWithoutPlaintext', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataKeyPairWithoutPlaintextRequest', ], 'output' => [ 'shape' => 'GenerateDataKeyPairWithoutPlaintextResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'GenerateDataKeyWithoutPlaintext' => [ 'name' => 'GenerateDataKeyWithoutPlaintext', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateDataKeyWithoutPlaintextRequest', ], 'output' => [ 'shape' => 'GenerateDataKeyWithoutPlaintextResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'GenerateMac' => [ 'name' => 'GenerateMac', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateMacRequest', ], 'output' => [ 'shape' => 'GenerateMacResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'GenerateRandom' => [ 'name' => 'GenerateRandom', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GenerateRandomRequest', ], 'output' => [ 'shape' => 'GenerateRandomResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], ], ], 'GetKeyPolicy' => [ 'name' => 'GetKeyPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetKeyPolicyRequest', ], 'output' => [ 'shape' => 'GetKeyPolicyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'GetKeyRotationStatus' => [ 'name' => 'GetKeyRotationStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetKeyRotationStatusRequest', ], 'output' => [ 'shape' => 'GetKeyRotationStatusResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'GetParametersForImport' => [ 'name' => 'GetParametersForImport', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetParametersForImportRequest', ], 'output' => [ 'shape' => 'GetParametersForImportResponse', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'GetPublicKey' => [ 'name' => 'GetPublicKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPublicKeyRequest', ], 'output' => [ 'shape' => 'GetPublicKeyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ImportKeyMaterial' => [ 'name' => 'ImportKeyMaterial', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ImportKeyMaterialRequest', ], 'output' => [ 'shape' => 'ImportKeyMaterialResponse', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'InvalidCiphertextException', ], [ 'shape' => 'IncorrectKeyMaterialException', ], [ 'shape' => 'ExpiredImportTokenException', ], [ 'shape' => 'InvalidImportTokenException', ], ], ], 'ListAliases' => [ 'name' => 'ListAliases', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListAliasesRequest', ], 'output' => [ 'shape' => 'ListAliasesResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ListGrants' => [ 'name' => 'ListGrants', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListGrantsRequest', ], 'output' => [ 'shape' => 'ListGrantsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'InvalidGrantIdException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ListKeyPolicies' => [ 'name' => 'ListKeyPolicies', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListKeyPoliciesRequest', ], 'output' => [ 'shape' => 'ListKeyPoliciesResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ListKeyRotations' => [ 'name' => 'ListKeyRotations', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListKeyRotationsRequest', ], 'output' => [ 'shape' => 'ListKeyRotationsResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'ListKeys' => [ 'name' => 'ListKeys', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListKeysRequest', ], 'output' => [ 'shape' => 'ListKeysResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'InvalidMarkerException', ], ], ], 'ListResourceTags' => [ 'name' => 'ListResourceTags', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListResourceTagsRequest', ], 'output' => [ 'shape' => 'ListResourceTagsResponse', ], 'errors' => [ [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidMarkerException', ], ], ], 'ListRetirableGrants' => [ 'name' => 'ListRetirableGrants', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListRetirableGrantsRequest', ], 'output' => [ 'shape' => 'ListGrantsResponse', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidMarkerException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], ], ], 'PutKeyPolicy' => [ 'name' => 'PutKeyPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutKeyPolicyRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'ReEncrypt' => [ 'name' => 'ReEncrypt', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReEncryptRequest', ], 'output' => [ 'shape' => 'ReEncryptResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidCiphertextException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'IncorrectKeyException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'ReplicateKey' => [ 'name' => 'ReplicateKey', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ReplicateKeyRequest', ], 'output' => [ 'shape' => 'ReplicateKeyResponse', ], 'errors' => [ [ 'shape' => 'AlreadyExistsException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'TagException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'RetireGrant' => [ 'name' => 'RetireGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RetireGrantRequest', ], 'errors' => [ [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'InvalidGrantIdException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'RevokeGrant' => [ 'name' => 'RevokeGrant', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RevokeGrantRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'InvalidGrantIdException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'RotateKeyOnDemand' => [ 'name' => 'RotateKeyOnDemand', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RotateKeyOnDemandRequest', ], 'output' => [ 'shape' => 'RotateKeyOnDemandResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'UnsupportedOperationException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'ConflictException', ], ], ], 'ScheduleKeyDeletion' => [ 'name' => 'ScheduleKeyDeletion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ScheduleKeyDeletionRequest', ], 'output' => [ 'shape' => 'ScheduleKeyDeletionResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'Sign' => [ 'name' => 'Sign', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SignRequest', ], 'output' => [ 'shape' => 'SignResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'errors' => [ [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'TagException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'errors' => [ [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'TagException', ], ], ], 'UpdateAlias' => [ 'name' => 'UpdateAlias', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateAliasRequest', ], 'errors' => [ [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'LimitExceededException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'UpdateCustomKeyStore' => [ 'name' => 'UpdateCustomKeyStore', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateCustomKeyStoreRequest', ], 'output' => [ 'shape' => 'UpdateCustomKeyStoreResponse', ], 'errors' => [ [ 'shape' => 'CustomKeyStoreNotFoundException', ], [ 'shape' => 'CustomKeyStoreNameInUseException', ], [ 'shape' => 'CloudHsmClusterNotFoundException', ], [ 'shape' => 'CloudHsmClusterNotRelatedException', ], [ 'shape' => 'CustomKeyStoreInvalidStateException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'CloudHsmClusterNotActiveException', ], [ 'shape' => 'CloudHsmClusterInvalidConfigurationException', ], [ 'shape' => 'XksProxyUriInUseException', ], [ 'shape' => 'XksProxyUriEndpointInUseException', ], [ 'shape' => 'XksProxyUriUnreachableException', ], [ 'shape' => 'XksProxyIncorrectAuthenticationCredentialException', ], [ 'shape' => 'XksProxyVpcEndpointServiceInUseException', ], [ 'shape' => 'XksProxyVpcEndpointServiceNotFoundException', ], [ 'shape' => 'XksProxyVpcEndpointServiceInvalidConfigurationException', ], [ 'shape' => 'XksProxyInvalidResponseException', ], [ 'shape' => 'XksProxyInvalidConfigurationException', ], ], ], 'UpdateKeyDescription' => [ 'name' => 'UpdateKeyDescription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateKeyDescriptionRequest', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], ], ], 'UpdatePrimaryRegion' => [ 'name' => 'UpdatePrimaryRegion', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdatePrimaryRegionRequest', ], 'errors' => [ [ 'shape' => 'DisabledException', ], [ 'shape' => 'InvalidArnException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'UnsupportedOperationException', ], ], ], 'Verify' => [ 'name' => 'Verify', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'VerifyRequest', ], 'output' => [ 'shape' => 'VerifyResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'DependencyTimeoutException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSInvalidSignatureException', ], [ 'shape' => 'DryRunOperationException', ], ], ], 'VerifyMac' => [ 'name' => 'VerifyMac', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'VerifyMacRequest', ], 'output' => [ 'shape' => 'VerifyMacResponse', ], 'errors' => [ [ 'shape' => 'NotFoundException', ], [ 'shape' => 'DisabledException', ], [ 'shape' => 'KeyUnavailableException', ], [ 'shape' => 'InvalidKeyUsageException', ], [ 'shape' => 'InvalidGrantTokenException', ], [ 'shape' => 'KMSInternalException', ], [ 'shape' => 'KMSInvalidMacException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'DryRunOperationException', ], ], ], ], 'shapes' => [ 'AWSAccountIdType' => [ 'type' => 'string', ], 'AlgorithmSpec' => [ 'type' => 'string', 'enum' => [ 'RSAES_PKCS1_V1_5', 'RSAES_OAEP_SHA_1', 'RSAES_OAEP_SHA_256', 'RSA_AES_KEY_WRAP_SHA_1', 'RSA_AES_KEY_WRAP_SHA_256', 'SM2PKE', ], ], 'AliasList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AliasListEntry', ], ], 'AliasListEntry' => [ 'type' => 'structure', 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], 'AliasArn' => [ 'shape' => 'ArnType', ], 'TargetKeyId' => [ 'shape' => 'KeyIdType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'LastUpdatedDate' => [ 'shape' => 'DateType', ], ], ], 'AliasNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9:/_-]+$', ], 'AlreadyExistsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'ArnType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, ], 'AttestationDocumentType' => [ 'type' => 'blob', 'max' => 262144, 'min' => 1, ], 'BackingKeyIdResponseType' => [ 'type' => 'string', 'max' => 64, 'min' => 0, 'pattern' => '^[a-f0-9]+$', ], 'BackingKeyIdType' => [ 'type' => 'string', 'max' => 64, 'min' => 64, 'pattern' => '^[a-f0-9]+$', ], 'BooleanType' => [ 'type' => 'boolean', ], 'CancelKeyDeletionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'CancelKeyDeletionResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'CiphertextType' => [ 'type' => 'blob', 'max' => 6144, 'min' => 1, ], 'CloudHsmClusterIdType' => [ 'type' => 'string', 'max' => 24, 'min' => 19, 'pattern' => 'cluster-[2-7a-zA-Z]{11,16}', ], 'CloudHsmClusterInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterInvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterNotActiveException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CloudHsmClusterNotRelatedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'ConflictException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'ConnectCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'ConnectCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'ConnectionErrorCodeType' => [ 'type' => 'string', 'enum' => [ 'INVALID_CREDENTIALS', 'CLUSTER_NOT_FOUND', 'NETWORK_ERRORS', 'INTERNAL_ERROR', 'INSUFFICIENT_CLOUDHSM_HSMS', 'USER_LOCKED_OUT', 'USER_NOT_FOUND', 'USER_LOGGED_IN', 'SUBNET_NOT_FOUND', 'INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET', 'XKS_PROXY_ACCESS_DENIED', 'XKS_PROXY_NOT_REACHABLE', 'XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND', 'XKS_PROXY_INVALID_RESPONSE', 'XKS_PROXY_INVALID_CONFIGURATION', 'XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION', 'XKS_PROXY_TIMED_OUT', 'XKS_PROXY_INVALID_TLS_CONFIGURATION', ], ], 'ConnectionStateType' => [ 'type' => 'string', 'enum' => [ 'CONNECTED', 'CONNECTING', 'FAILED', 'DISCONNECTED', 'DISCONNECTING', ], ], 'CreateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'AliasName', 'TargetKeyId', ], 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], 'TargetKeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'CreateCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreName', ], 'members' => [ 'CustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'TrustAnchorCertificate' => [ 'shape' => 'TrustAnchorCertificateType', ], 'KeyStorePassword' => [ 'shape' => 'KeyStorePasswordType', ], 'CustomKeyStoreType' => [ 'shape' => 'CustomKeyStoreType', ], 'XksProxyUriEndpoint' => [ 'shape' => 'XksProxyUriEndpointType', ], 'XksProxyUriPath' => [ 'shape' => 'XksProxyUriPathType', ], 'XksProxyVpcEndpointServiceName' => [ 'shape' => 'XksProxyVpcEndpointServiceNameType', ], 'XksProxyAuthenticationCredential' => [ 'shape' => 'XksProxyAuthenticationCredentialType', ], 'XksProxyConnectivity' => [ 'shape' => 'XksProxyConnectivityType', ], ], ], 'CreateCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'CreateGrantRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'GranteePrincipal', 'Operations', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GranteePrincipal' => [ 'shape' => 'PrincipalIdType', ], 'RetiringPrincipal' => [ 'shape' => 'PrincipalIdType', ], 'Operations' => [ 'shape' => 'GrantOperationList', ], 'Constraints' => [ 'shape' => 'GrantConstraints', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'Name' => [ 'shape' => 'GrantNameType', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'CreateGrantResponse' => [ 'type' => 'structure', 'members' => [ 'GrantToken' => [ 'shape' => 'GrantTokenType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], ], ], 'CreateKeyRequest' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'PolicyType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KeyUsage' => [ 'shape' => 'KeyUsageType', ], 'CustomerMasterKeySpec' => [ 'shape' => 'CustomerMasterKeySpec', 'deprecated' => true, 'deprecatedMessage' => 'This parameter has been deprecated. Instead, use the KeySpec parameter.', ], 'KeySpec' => [ 'shape' => 'KeySpec', ], 'Origin' => [ 'shape' => 'OriginType', ], 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'BypassPolicyLockoutSafetyCheck' => [ 'shape' => 'BooleanType', ], 'Tags' => [ 'shape' => 'TagList', ], 'MultiRegion' => [ 'shape' => 'NullableBooleanType', ], 'XksKeyId' => [ 'shape' => 'XksKeyIdType', ], ], ], 'CreateKeyResponse' => [ 'type' => 'structure', 'members' => [ 'KeyMetadata' => [ 'shape' => 'KeyMetadata', ], ], ], 'CustomKeyStoreHasCMKsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreIdType' => [ 'type' => 'string', 'max' => 64, 'min' => 1, ], 'CustomKeyStoreInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreNameInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, ], 'CustomKeyStoreNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'CustomKeyStoreType' => [ 'type' => 'string', 'enum' => [ 'AWS_CLOUDHSM', 'EXTERNAL_KEY_STORE', ], ], 'CustomKeyStoresList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CustomKeyStoresListEntry', ], ], 'CustomKeyStoresListEntry' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'CustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'TrustAnchorCertificate' => [ 'shape' => 'TrustAnchorCertificateType', ], 'ConnectionState' => [ 'shape' => 'ConnectionStateType', ], 'ConnectionErrorCode' => [ 'shape' => 'ConnectionErrorCodeType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'CustomKeyStoreType' => [ 'shape' => 'CustomKeyStoreType', ], 'XksProxyConfiguration' => [ 'shape' => 'XksProxyConfigurationType', ], ], ], 'CustomerMasterKeySpec' => [ 'type' => 'string', 'deprecated' => true, 'deprecatedMessage' => 'This enum has been deprecated. Instead, use the KeySpec enum.', 'enum' => [ 'RSA_2048', 'RSA_3072', 'RSA_4096', 'ECC_NIST_P256', 'ECC_NIST_P384', 'ECC_NIST_P521', 'ECC_SECG_P256K1', 'SYMMETRIC_DEFAULT', 'HMAC_224', 'HMAC_256', 'HMAC_384', 'HMAC_512', 'SM2', ], ], 'DataKeyPairSpec' => [ 'type' => 'string', 'enum' => [ 'RSA_2048', 'RSA_3072', 'RSA_4096', 'ECC_NIST_P256', 'ECC_NIST_P384', 'ECC_NIST_P521', 'ECC_SECG_P256K1', 'SM2', ], ], 'DataKeySpec' => [ 'type' => 'string', 'enum' => [ 'AES_256', 'AES_128', ], ], 'DateType' => [ 'type' => 'timestamp', ], 'DecryptRequest' => [ 'type' => 'structure', 'required' => [ 'CiphertextBlob', ], 'members' => [ 'CiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'EncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'EncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'Recipient' => [ 'shape' => 'RecipientInfo', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'DecryptResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Plaintext' => [ 'shape' => 'PlaintextType', ], 'EncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'CiphertextForRecipient' => [ 'shape' => 'CiphertextType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'DeleteAliasRequest' => [ 'type' => 'structure', 'required' => [ 'AliasName', ], 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], ], ], 'DeleteCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'DeleteCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'DeleteImportedKeyMaterialRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'DeleteImportedKeyMaterialResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdResponseType', ], ], ], 'DependencyTimeoutException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, 'fault' => true, ], 'DeriveSharedSecretRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'KeyAgreementAlgorithm', 'PublicKey', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyAgreementAlgorithm' => [ 'shape' => 'KeyAgreementAlgorithmSpec', ], 'PublicKey' => [ 'shape' => 'PublicKeyType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], 'Recipient' => [ 'shape' => 'RecipientInfo', ], ], ], 'DeriveSharedSecretResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'SharedSecret' => [ 'shape' => 'PlaintextType', ], 'CiphertextForRecipient' => [ 'shape' => 'CiphertextType', ], 'KeyAgreementAlgorithm' => [ 'shape' => 'KeyAgreementAlgorithmSpec', ], 'KeyOrigin' => [ 'shape' => 'OriginType', ], ], ], 'DescribeCustomKeyStoresRequest' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'CustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'DescribeCustomKeyStoresResponse' => [ 'type' => 'structure', 'members' => [ 'CustomKeyStores' => [ 'shape' => 'CustomKeyStoresList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'DescribeKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], ], ], 'DescribeKeyResponse' => [ 'type' => 'structure', 'members' => [ 'KeyMetadata' => [ 'shape' => 'KeyMetadata', ], ], ], 'DescriptionType' => [ 'type' => 'string', 'max' => 8192, 'min' => 0, ], 'DisableKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'DisableKeyRotationRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'DisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'DisconnectCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], ], ], 'DisconnectCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'DryRunOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'EnableKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'EnableKeyRotationRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'RotationPeriodInDays' => [ 'shape' => 'RotationPeriodInDaysType', ], ], ], 'EncryptRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Plaintext', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Plaintext' => [ 'shape' => 'PlaintextType', ], 'EncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'EncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'EncryptResponse' => [ 'type' => 'structure', 'members' => [ 'CiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'EncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], ], ], 'EncryptionAlgorithmSpec' => [ 'type' => 'string', 'enum' => [ 'SYMMETRIC_DEFAULT', 'RSAES_OAEP_SHA_1', 'RSAES_OAEP_SHA_256', 'SM2PKE', ], ], 'EncryptionAlgorithmSpecList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EncryptionAlgorithmSpec', ], ], 'EncryptionContextKey' => [ 'type' => 'string', ], 'EncryptionContextType' => [ 'type' => 'map', 'key' => [ 'shape' => 'EncryptionContextKey', ], 'value' => [ 'shape' => 'EncryptionContextValue', ], ], 'EncryptionContextValue' => [ 'type' => 'string', ], 'ErrorMessageType' => [ 'type' => 'string', ], 'ExpirationModelType' => [ 'type' => 'string', 'enum' => [ 'KEY_MATERIAL_EXPIRES', 'KEY_MATERIAL_DOES_NOT_EXPIRE', ], ], 'ExpiredImportTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'GenerateDataKeyPairRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'KeyPairSpec', ], 'members' => [ 'EncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyPairSpec' => [ 'shape' => 'DataKeyPairSpec', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'Recipient' => [ 'shape' => 'RecipientInfo', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'GenerateDataKeyPairResponse' => [ 'type' => 'structure', 'members' => [ 'PrivateKeyCiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'PrivateKeyPlaintext' => [ 'shape' => 'PlaintextType', ], 'PublicKey' => [ 'shape' => 'PublicKeyType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyPairSpec' => [ 'shape' => 'DataKeyPairSpec', ], 'CiphertextForRecipient' => [ 'shape' => 'CiphertextType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'GenerateDataKeyPairWithoutPlaintextRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'KeyPairSpec', ], 'members' => [ 'EncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyPairSpec' => [ 'shape' => 'DataKeyPairSpec', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'GenerateDataKeyPairWithoutPlaintextResponse' => [ 'type' => 'structure', 'members' => [ 'PrivateKeyCiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'PublicKey' => [ 'shape' => 'PublicKeyType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyPairSpec' => [ 'shape' => 'DataKeyPairSpec', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'GenerateDataKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'EncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'NumberOfBytes' => [ 'shape' => 'NumberOfBytesType', ], 'KeySpec' => [ 'shape' => 'DataKeySpec', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'Recipient' => [ 'shape' => 'RecipientInfo', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'GenerateDataKeyResponse' => [ 'type' => 'structure', 'members' => [ 'CiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'Plaintext' => [ 'shape' => 'PlaintextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'CiphertextForRecipient' => [ 'shape' => 'CiphertextType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'GenerateDataKeyWithoutPlaintextRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'EncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'KeySpec' => [ 'shape' => 'DataKeySpec', ], 'NumberOfBytes' => [ 'shape' => 'NumberOfBytesType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'GenerateDataKeyWithoutPlaintextResponse' => [ 'type' => 'structure', 'members' => [ 'CiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'GenerateMacRequest' => [ 'type' => 'structure', 'required' => [ 'Message', 'KeyId', 'MacAlgorithm', ], 'members' => [ 'Message' => [ 'shape' => 'PlaintextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'MacAlgorithm' => [ 'shape' => 'MacAlgorithmSpec', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'GenerateMacResponse' => [ 'type' => 'structure', 'members' => [ 'Mac' => [ 'shape' => 'CiphertextType', ], 'MacAlgorithm' => [ 'shape' => 'MacAlgorithmSpec', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'GenerateRandomRequest' => [ 'type' => 'structure', 'members' => [ 'NumberOfBytes' => [ 'shape' => 'NumberOfBytesType', ], 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'Recipient' => [ 'shape' => 'RecipientInfo', ], ], ], 'GenerateRandomResponse' => [ 'type' => 'structure', 'members' => [ 'Plaintext' => [ 'shape' => 'PlaintextType', ], 'CiphertextForRecipient' => [ 'shape' => 'CiphertextType', ], ], ], 'GetKeyPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PolicyName' => [ 'shape' => 'PolicyNameType', ], ], ], 'GetKeyPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'PolicyType', ], 'PolicyName' => [ 'shape' => 'PolicyNameType', ], ], ], 'GetKeyRotationStatusRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'GetKeyRotationStatusResponse' => [ 'type' => 'structure', 'members' => [ 'KeyRotationEnabled' => [ 'shape' => 'BooleanType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'RotationPeriodInDays' => [ 'shape' => 'RotationPeriodInDaysType', ], 'NextRotationDate' => [ 'shape' => 'DateType', ], 'OnDemandRotationStartDate' => [ 'shape' => 'DateType', ], ], ], 'GetParametersForImportRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'WrappingAlgorithm', 'WrappingKeySpec', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'WrappingAlgorithm' => [ 'shape' => 'AlgorithmSpec', ], 'WrappingKeySpec' => [ 'shape' => 'WrappingKeySpec', ], ], ], 'GetParametersForImportResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'ImportToken' => [ 'shape' => 'CiphertextType', ], 'PublicKey' => [ 'shape' => 'PlaintextType', ], 'ParametersValidTo' => [ 'shape' => 'DateType', ], ], ], 'GetPublicKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], ], ], 'GetPublicKeyResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PublicKey' => [ 'shape' => 'PublicKeyType', ], 'CustomerMasterKeySpec' => [ 'shape' => 'CustomerMasterKeySpec', 'deprecated' => true, 'deprecatedMessage' => 'This field has been deprecated. Instead, use the KeySpec field.', ], 'KeySpec' => [ 'shape' => 'KeySpec', ], 'KeyUsage' => [ 'shape' => 'KeyUsageType', ], 'EncryptionAlgorithms' => [ 'shape' => 'EncryptionAlgorithmSpecList', ], 'SigningAlgorithms' => [ 'shape' => 'SigningAlgorithmSpecList', ], 'KeyAgreementAlgorithms' => [ 'shape' => 'KeyAgreementAlgorithmSpecList', ], ], ], 'GrantConstraints' => [ 'type' => 'structure', 'members' => [ 'EncryptionContextSubset' => [ 'shape' => 'EncryptionContextType', ], 'EncryptionContextEquals' => [ 'shape' => 'EncryptionContextType', ], ], ], 'GrantIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'GrantList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantListEntry', ], ], 'GrantListEntry' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], 'Name' => [ 'shape' => 'GrantNameType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'GranteePrincipal' => [ 'shape' => 'PrincipalIdType', ], 'RetiringPrincipal' => [ 'shape' => 'PrincipalIdType', ], 'IssuingAccount' => [ 'shape' => 'PrincipalIdType', ], 'Operations' => [ 'shape' => 'GrantOperationList', ], 'Constraints' => [ 'shape' => 'GrantConstraints', ], ], ], 'GrantNameType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[a-zA-Z0-9:/_-]+$', ], 'GrantOperation' => [ 'type' => 'string', 'enum' => [ 'Decrypt', 'Encrypt', 'GenerateDataKey', 'GenerateDataKeyWithoutPlaintext', 'ReEncryptFrom', 'ReEncryptTo', 'Sign', 'Verify', 'GetPublicKey', 'CreateGrant', 'RetireGrant', 'DescribeKey', 'GenerateDataKeyPair', 'GenerateDataKeyPairWithoutPlaintext', 'GenerateMac', 'VerifyMac', 'DeriveSharedSecret', ], ], 'GrantOperationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantOperation', ], ], 'GrantTokenList' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantTokenType', ], 'max' => 10, 'min' => 0, ], 'GrantTokenType' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, ], 'ImportKeyMaterialRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'ImportToken', 'EncryptedKeyMaterial', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'ImportToken' => [ 'shape' => 'CiphertextType', ], 'EncryptedKeyMaterial' => [ 'shape' => 'CiphertextType', ], 'ValidTo' => [ 'shape' => 'DateType', ], 'ExpirationModel' => [ 'shape' => 'ExpirationModelType', ], 'ImportType' => [ 'shape' => 'ImportType', ], 'KeyMaterialDescription' => [ 'shape' => 'KeyMaterialDescriptionType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'ImportKeyMaterialResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'ImportState' => [ 'type' => 'string', 'enum' => [ 'IMPORTED', 'PENDING_IMPORT', ], ], 'ImportType' => [ 'type' => 'string', 'enum' => [ 'NEW_KEY_MATERIAL', 'EXISTING_KEY_MATERIAL', ], ], 'IncludeKeyMaterial' => [ 'type' => 'string', 'enum' => [ 'ALL_KEY_MATERIAL', 'ROTATIONS_ONLY', ], ], 'IncorrectKeyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'IncorrectKeyMaterialException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'IncorrectTrustAnchorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidAliasNameException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidArnException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidCiphertextException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidGrantIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidGrantTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidImportTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidKeyUsageException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'InvalidMarkerException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'KMSInternalException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, 'fault' => true, ], 'KMSInvalidMacException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'KMSInvalidSignatureException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'KMSInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'KeyAgreementAlgorithmSpec' => [ 'type' => 'string', 'enum' => [ 'ECDH', ], ], 'KeyAgreementAlgorithmSpecList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyAgreementAlgorithmSpec', ], ], 'KeyEncryptionMechanism' => [ 'type' => 'string', 'enum' => [ 'RSAES_OAEP_SHA_256', ], ], 'KeyIdType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'KeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'KeyListEntry', ], ], 'KeyListEntry' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyArn' => [ 'shape' => 'ArnType', ], ], ], 'KeyManagerType' => [ 'type' => 'string', 'enum' => [ 'AWS', 'CUSTOMER', ], ], 'KeyMaterialDescriptionType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '^[a-zA-Z0-9:/_\\s.-]+$', ], 'KeyMaterialState' => [ 'type' => 'string', 'enum' => [ 'NON_CURRENT', 'CURRENT', 'PENDING_ROTATION', ], ], 'KeyMetadata' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'AWSAccountId' => [ 'shape' => 'AWSAccountIdType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Arn' => [ 'shape' => 'ArnType', ], 'CreationDate' => [ 'shape' => 'DateType', ], 'Enabled' => [ 'shape' => 'BooleanType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'KeyUsage' => [ 'shape' => 'KeyUsageType', ], 'KeyState' => [ 'shape' => 'KeyState', ], 'DeletionDate' => [ 'shape' => 'DateType', ], 'ValidTo' => [ 'shape' => 'DateType', ], 'Origin' => [ 'shape' => 'OriginType', ], 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'ExpirationModel' => [ 'shape' => 'ExpirationModelType', ], 'KeyManager' => [ 'shape' => 'KeyManagerType', ], 'CustomerMasterKeySpec' => [ 'shape' => 'CustomerMasterKeySpec', 'deprecated' => true, 'deprecatedMessage' => 'This field has been deprecated. Instead, use the KeySpec field.', ], 'KeySpec' => [ 'shape' => 'KeySpec', ], 'EncryptionAlgorithms' => [ 'shape' => 'EncryptionAlgorithmSpecList', ], 'SigningAlgorithms' => [ 'shape' => 'SigningAlgorithmSpecList', ], 'KeyAgreementAlgorithms' => [ 'shape' => 'KeyAgreementAlgorithmSpecList', ], 'MultiRegion' => [ 'shape' => 'NullableBooleanType', ], 'MultiRegionConfiguration' => [ 'shape' => 'MultiRegionConfiguration', ], 'PendingDeletionWindowInDays' => [ 'shape' => 'PendingWindowInDaysType', ], 'MacAlgorithms' => [ 'shape' => 'MacAlgorithmSpecList', ], 'XksKeyConfiguration' => [ 'shape' => 'XksKeyConfigurationType', ], 'CurrentKeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'KeySpec' => [ 'type' => 'string', 'enum' => [ 'RSA_2048', 'RSA_3072', 'RSA_4096', 'ECC_NIST_P256', 'ECC_NIST_P384', 'ECC_NIST_P521', 'ECC_SECG_P256K1', 'SYMMETRIC_DEFAULT', 'HMAC_224', 'HMAC_256', 'HMAC_384', 'HMAC_512', 'SM2', 'ML_DSA_44', 'ML_DSA_65', 'ML_DSA_87', ], ], 'KeyState' => [ 'type' => 'string', 'enum' => [ 'Creating', 'Enabled', 'Disabled', 'PendingDeletion', 'PendingImport', 'PendingReplicaDeletion', 'Unavailable', 'Updating', ], ], 'KeyStorePasswordType' => [ 'type' => 'string', 'max' => 32, 'min' => 7, 'sensitive' => true, ], 'KeyUnavailableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, 'fault' => true, ], 'KeyUsageType' => [ 'type' => 'string', 'enum' => [ 'SIGN_VERIFY', 'ENCRYPT_DECRYPT', 'GENERATE_VERIFY_MAC', 'KEY_AGREEMENT', ], ], 'LimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'LimitType' => [ 'type' => 'integer', 'max' => 1000, 'min' => 1, ], 'ListAliasesRequest' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'ListAliasesResponse' => [ 'type' => 'structure', 'members' => [ 'Aliases' => [ 'shape' => 'AliasList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListGrantsRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], 'GranteePrincipal' => [ 'shape' => 'PrincipalIdType', ], ], ], 'ListGrantsResponse' => [ 'type' => 'structure', 'members' => [ 'Grants' => [ 'shape' => 'GrantList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListKeyPoliciesRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'ListKeyPoliciesResponse' => [ 'type' => 'structure', 'members' => [ 'PolicyNames' => [ 'shape' => 'PolicyNameList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListKeyRotationsRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'IncludeKeyMaterial' => [ 'shape' => 'IncludeKeyMaterial', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'ListKeyRotationsResponse' => [ 'type' => 'structure', 'members' => [ 'Rotations' => [ 'shape' => 'RotationsList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListKeysRequest' => [ 'type' => 'structure', 'members' => [ 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'ListKeysResponse' => [ 'type' => 'structure', 'members' => [ 'Keys' => [ 'shape' => 'KeyList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListResourceTagsRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], ], ], 'ListResourceTagsResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], 'NextMarker' => [ 'shape' => 'MarkerType', ], 'Truncated' => [ 'shape' => 'BooleanType', ], ], ], 'ListRetirableGrantsRequest' => [ 'type' => 'structure', 'required' => [ 'RetiringPrincipal', ], 'members' => [ 'Limit' => [ 'shape' => 'LimitType', ], 'Marker' => [ 'shape' => 'MarkerType', ], 'RetiringPrincipal' => [ 'shape' => 'PrincipalIdType', ], ], ], 'MacAlgorithmSpec' => [ 'type' => 'string', 'enum' => [ 'HMAC_SHA_224', 'HMAC_SHA_256', 'HMAC_SHA_384', 'HMAC_SHA_512', ], ], 'MacAlgorithmSpecList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MacAlgorithmSpec', ], ], 'MalformedPolicyDocumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'MarkerType' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\u0020-\\u00FF]*', ], 'MessageType' => [ 'type' => 'string', 'enum' => [ 'RAW', 'DIGEST', 'EXTERNAL_MU', ], ], 'MultiRegionConfiguration' => [ 'type' => 'structure', 'members' => [ 'MultiRegionKeyType' => [ 'shape' => 'MultiRegionKeyType', ], 'PrimaryKey' => [ 'shape' => 'MultiRegionKey', ], 'ReplicaKeys' => [ 'shape' => 'MultiRegionKeyList', ], ], ], 'MultiRegionKey' => [ 'type' => 'structure', 'members' => [ 'Arn' => [ 'shape' => 'ArnType', ], 'Region' => [ 'shape' => 'RegionType', ], ], ], 'MultiRegionKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MultiRegionKey', ], ], 'MultiRegionKeyType' => [ 'type' => 'string', 'enum' => [ 'PRIMARY', 'REPLICA', ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'NullableBooleanType' => [ 'type' => 'boolean', ], 'NumberOfBytesType' => [ 'type' => 'integer', 'max' => 1024, 'min' => 1, ], 'OriginType' => [ 'type' => 'string', 'enum' => [ 'AWS_KMS', 'EXTERNAL', 'AWS_CLOUDHSM', 'EXTERNAL_KEY_STORE', ], ], 'PendingWindowInDaysType' => [ 'type' => 'integer', 'max' => 365, 'min' => 1, ], 'PlaintextType' => [ 'type' => 'blob', 'max' => 4096, 'min' => 1, 'sensitive' => true, ], 'PolicyNameList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyNameType', ], ], 'PolicyNameType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\w]+', ], 'PolicyType' => [ 'type' => 'string', 'max' => 131072, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'PrincipalIdType' => [ 'type' => 'string', 'max' => 256, 'min' => 1, 'pattern' => '^[\\w+=,.@:/-]+$', ], 'PublicKeyType' => [ 'type' => 'blob', 'max' => 8192, 'min' => 1, ], 'PutKeyPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Policy', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PolicyName' => [ 'shape' => 'PolicyNameType', ], 'Policy' => [ 'shape' => 'PolicyType', ], 'BypassPolicyLockoutSafetyCheck' => [ 'shape' => 'BooleanType', ], ], ], 'ReEncryptRequest' => [ 'type' => 'structure', 'required' => [ 'CiphertextBlob', 'DestinationKeyId', ], 'members' => [ 'CiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'SourceEncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'SourceKeyId' => [ 'shape' => 'KeyIdType', ], 'DestinationKeyId' => [ 'shape' => 'KeyIdType', ], 'DestinationEncryptionContext' => [ 'shape' => 'EncryptionContextType', ], 'SourceEncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'DestinationEncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'ReEncryptResponse' => [ 'type' => 'structure', 'members' => [ 'CiphertextBlob' => [ 'shape' => 'CiphertextType', ], 'SourceKeyId' => [ 'shape' => 'KeyIdType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'SourceEncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'DestinationEncryptionAlgorithm' => [ 'shape' => 'EncryptionAlgorithmSpec', ], 'SourceKeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], 'DestinationKeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], ], ], 'RecipientInfo' => [ 'type' => 'structure', 'members' => [ 'KeyEncryptionAlgorithm' => [ 'shape' => 'KeyEncryptionMechanism', ], 'AttestationDocument' => [ 'shape' => 'AttestationDocumentType', ], ], ], 'RegionType' => [ 'type' => 'string', 'max' => 32, 'min' => 1, 'pattern' => '^([a-z]+-){2,3}\\d+$', ], 'ReplicateKeyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'ReplicaRegion', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'ReplicaRegion' => [ 'shape' => 'RegionType', ], 'Policy' => [ 'shape' => 'PolicyType', ], 'BypassPolicyLockoutSafetyCheck' => [ 'shape' => 'BooleanType', ], 'Description' => [ 'shape' => 'DescriptionType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ReplicateKeyResponse' => [ 'type' => 'structure', 'members' => [ 'ReplicaKeyMetadata' => [ 'shape' => 'KeyMetadata', ], 'ReplicaPolicy' => [ 'shape' => 'PolicyType', ], 'ReplicaTags' => [ 'shape' => 'TagList', ], ], ], 'RetireGrantRequest' => [ 'type' => 'structure', 'members' => [ 'GrantToken' => [ 'shape' => 'GrantTokenType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'RevokeGrantRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'GrantId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'GrantId' => [ 'shape' => 'GrantIdType', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'RotateKeyOnDemandRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'RotateKeyOnDemandResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'RotationPeriodInDaysType' => [ 'type' => 'integer', 'max' => 2560, 'min' => 90, ], 'RotationType' => [ 'type' => 'string', 'enum' => [ 'AUTOMATIC', 'ON_DEMAND', ], ], 'RotationsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'RotationsListEntry', ], ], 'RotationsListEntry' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'KeyMaterialId' => [ 'shape' => 'BackingKeyIdType', ], 'KeyMaterialDescription' => [ 'shape' => 'KeyMaterialDescriptionType', ], 'ImportState' => [ 'shape' => 'ImportState', ], 'KeyMaterialState' => [ 'shape' => 'KeyMaterialState', ], 'ExpirationModel' => [ 'shape' => 'ExpirationModelType', ], 'ValidTo' => [ 'shape' => 'DateType', ], 'RotationDate' => [ 'shape' => 'DateType', ], 'RotationType' => [ 'shape' => 'RotationType', ], ], ], 'ScheduleKeyDeletionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PendingWindowInDays' => [ 'shape' => 'PendingWindowInDaysType', ], ], ], 'ScheduleKeyDeletionResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'DeletionDate' => [ 'shape' => 'DateType', ], 'KeyState' => [ 'shape' => 'KeyState', ], 'PendingWindowInDays' => [ 'shape' => 'PendingWindowInDaysType', ], ], ], 'SignRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Message', 'SigningAlgorithm', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Message' => [ 'shape' => 'PlaintextType', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'SigningAlgorithm' => [ 'shape' => 'SigningAlgorithmSpec', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'SignResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Signature' => [ 'shape' => 'CiphertextType', ], 'SigningAlgorithm' => [ 'shape' => 'SigningAlgorithmSpec', ], ], ], 'SigningAlgorithmSpec' => [ 'type' => 'string', 'enum' => [ 'RSASSA_PSS_SHA_256', 'RSASSA_PSS_SHA_384', 'RSASSA_PSS_SHA_512', 'RSASSA_PKCS1_V1_5_SHA_256', 'RSASSA_PKCS1_V1_5_SHA_384', 'RSASSA_PKCS1_V1_5_SHA_512', 'ECDSA_SHA_256', 'ECDSA_SHA_384', 'ECDSA_SHA_512', 'SM2DSA', 'ML_DSA_SHAKE_256', ], ], 'SigningAlgorithmSpecList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SigningAlgorithmSpec', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'TagKey', 'TagValue', ], 'members' => [ 'TagKey' => [ 'shape' => 'TagKeyType', ], 'TagValue' => [ 'shape' => 'TagValueType', ], ], ], 'TagException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKeyType', ], ], 'TagKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Tags', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'TrustAnchorCertificateType' => [ 'type' => 'string', 'max' => 5000, 'min' => 1, ], 'UnsupportedOperationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'TagKeys', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UpdateAliasRequest' => [ 'type' => 'structure', 'required' => [ 'AliasName', 'TargetKeyId', ], 'members' => [ 'AliasName' => [ 'shape' => 'AliasNameType', ], 'TargetKeyId' => [ 'shape' => 'KeyIdType', ], ], ], 'UpdateCustomKeyStoreRequest' => [ 'type' => 'structure', 'required' => [ 'CustomKeyStoreId', ], 'members' => [ 'CustomKeyStoreId' => [ 'shape' => 'CustomKeyStoreIdType', ], 'NewCustomKeyStoreName' => [ 'shape' => 'CustomKeyStoreNameType', ], 'KeyStorePassword' => [ 'shape' => 'KeyStorePasswordType', ], 'CloudHsmClusterId' => [ 'shape' => 'CloudHsmClusterIdType', ], 'XksProxyUriEndpoint' => [ 'shape' => 'XksProxyUriEndpointType', ], 'XksProxyUriPath' => [ 'shape' => 'XksProxyUriPathType', ], 'XksProxyVpcEndpointServiceName' => [ 'shape' => 'XksProxyVpcEndpointServiceNameType', ], 'XksProxyAuthenticationCredential' => [ 'shape' => 'XksProxyAuthenticationCredentialType', ], 'XksProxyConnectivity' => [ 'shape' => 'XksProxyConnectivityType', ], ], ], 'UpdateCustomKeyStoreResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateKeyDescriptionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Description', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Description' => [ 'shape' => 'DescriptionType', ], ], ], 'UpdatePrimaryRegionRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'PrimaryRegion', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'PrimaryRegion' => [ 'shape' => 'RegionType', ], ], ], 'VerifyMacRequest' => [ 'type' => 'structure', 'required' => [ 'Message', 'KeyId', 'MacAlgorithm', 'Mac', ], 'members' => [ 'Message' => [ 'shape' => 'PlaintextType', ], 'KeyId' => [ 'shape' => 'KeyIdType', ], 'MacAlgorithm' => [ 'shape' => 'MacAlgorithmSpec', ], 'Mac' => [ 'shape' => 'CiphertextType', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'VerifyMacResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'MacValid' => [ 'shape' => 'BooleanType', ], 'MacAlgorithm' => [ 'shape' => 'MacAlgorithmSpec', ], ], ], 'VerifyRequest' => [ 'type' => 'structure', 'required' => [ 'KeyId', 'Message', 'Signature', 'SigningAlgorithm', ], 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'Message' => [ 'shape' => 'PlaintextType', ], 'MessageType' => [ 'shape' => 'MessageType', ], 'Signature' => [ 'shape' => 'CiphertextType', ], 'SigningAlgorithm' => [ 'shape' => 'SigningAlgorithmSpec', ], 'GrantTokens' => [ 'shape' => 'GrantTokenList', ], 'DryRun' => [ 'shape' => 'NullableBooleanType', ], ], ], 'VerifyResponse' => [ 'type' => 'structure', 'members' => [ 'KeyId' => [ 'shape' => 'KeyIdType', ], 'SignatureValid' => [ 'shape' => 'BooleanType', ], 'SigningAlgorithm' => [ 'shape' => 'SigningAlgorithmSpec', ], ], ], 'WrappingKeySpec' => [ 'type' => 'string', 'enum' => [ 'RSA_2048', 'RSA_3072', 'RSA_4096', 'SM2', ], ], 'XksKeyAlreadyInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksKeyConfigurationType' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'XksKeyIdType', ], ], ], 'XksKeyIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '^[a-zA-Z0-9-_.]+$', ], 'XksKeyInvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksKeyNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyAuthenticationAccessKeyIdType' => [ 'type' => 'string', 'max' => 30, 'min' => 20, 'pattern' => '^[A-Z2-7]+$', 'sensitive' => true, ], 'XksProxyAuthenticationCredentialType' => [ 'type' => 'structure', 'required' => [ 'AccessKeyId', 'RawSecretAccessKey', ], 'members' => [ 'AccessKeyId' => [ 'shape' => 'XksProxyAuthenticationAccessKeyIdType', ], 'RawSecretAccessKey' => [ 'shape' => 'XksProxyAuthenticationRawSecretAccessKeyType', ], ], ], 'XksProxyAuthenticationRawSecretAccessKeyType' => [ 'type' => 'string', 'max' => 64, 'min' => 43, 'pattern' => '^[a-zA-Z0-9\\/+=]+$', 'sensitive' => true, ], 'XksProxyConfigurationType' => [ 'type' => 'structure', 'members' => [ 'Connectivity' => [ 'shape' => 'XksProxyConnectivityType', ], 'AccessKeyId' => [ 'shape' => 'XksProxyAuthenticationAccessKeyIdType', ], 'UriEndpoint' => [ 'shape' => 'XksProxyUriEndpointType', ], 'UriPath' => [ 'shape' => 'XksProxyUriPathType', ], 'VpcEndpointServiceName' => [ 'shape' => 'XksProxyVpcEndpointServiceNameType', ], ], ], 'XksProxyConnectivityType' => [ 'type' => 'string', 'enum' => [ 'PUBLIC_ENDPOINT', 'VPC_ENDPOINT_SERVICE', ], ], 'XksProxyIncorrectAuthenticationCredentialException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyInvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyInvalidResponseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyUriEndpointInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyUriEndpointType' => [ 'type' => 'string', 'max' => 128, 'min' => 10, 'pattern' => '^https://[a-zA-Z0-9.-]+$', ], 'XksProxyUriInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyUriPathType' => [ 'type' => 'string', 'max' => 128, 'min' => 10, 'pattern' => '^(/[a-zA-Z0-9\\/_-]+/kms/xks/v\\d{1,2})$|^(/kms/xks/v\\d{1,2})$', ], 'XksProxyUriUnreachableException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyVpcEndpointServiceInUseException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyVpcEndpointServiceInvalidConfigurationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], 'XksProxyVpcEndpointServiceNameType' => [ 'type' => 'string', 'max' => 64, 'min' => 20, 'pattern' => '^com\\.amazonaws\\.vpce\\.([a-z]+-){2,3}\\d+\\.vpce-svc-[0-9a-z]+$', ], 'XksProxyVpcEndpointServiceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php
new file mode 100644
index 000000000..08a3f6ce2
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php
@@ -0,0 +1,3 @@
+ '1.0', 'parameters' => [ 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the request.', 'type' => 'String', ], 'UseDualStack' => [ 'builtIn' => 'AWS::UseDualStack', 'required' => true, 'default' => false, 'documentation' => 'When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.', 'type' => 'Boolean', ], 'UseFIPS' => [ 'builtIn' => 'AWS::UseFIPS', 'required' => true, 'default' => false, 'documentation' => 'When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.', 'type' => 'Boolean', ], 'Endpoint' => [ 'builtIn' => 'SDK::Endpoint', 'required' => false, 'documentation' => 'Override the endpoint used to send this request', 'type' => 'String', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'Invalid Configuration: FIPS and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'Invalid Configuration: Dualstack and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [], 'endpoint' => [ 'url' => [ 'ref' => 'Endpoint', ], 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS and DualStack are enabled, but this partition does not support one or both', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://kms-fips.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS is enabled but this partition does not support FIPS', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'DualStack is enabled but this partition does not support DualStack', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://kms.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/paginators-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/paginators-1.json.php
new file mode 100644
index 000000000..8c2a8e2ea
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/paginators-1.json.php
@@ -0,0 +1,3 @@
+ [ 'DescribeCustomKeyStores' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'CustomKeyStores', ], 'ListAliases' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Aliases', ], 'ListGrants' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Grants', ], 'ListKeyPolicies' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'PolicyNames', ], 'ListKeyRotations' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Rotations', ], 'ListKeys' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Keys', ], 'ListResourceTags' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Tags', ], 'ListRetirableGrants' => [ 'input_token' => 'Marker', 'limit_key' => 'Limit', 'more_results' => 'Truncated', 'output_token' => 'NextMarker', 'result_key' => 'Grants', ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/smoke.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/smoke.json.php
new file mode 100644
index 000000000..0586afb03
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/kms/2014-11-01/smoke.json.php
@@ -0,0 +1,3 @@
+ 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListAliases', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetKeyPolicy', 'input' => [ 'KeyId' => '12345678-1234-1234-1234-123456789012', 'PolicyName' => 'fakePolicy', ], 'errorExpectedFromService' => true, ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/manifest.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/manifest.json.php
new file mode 100644
index 000000000..c60b42362
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/manifest.json.php
@@ -0,0 +1,3 @@
+ [ 'namespace' => 'AccessAnalyzer', 'versions' => [ 'latest' => '2019-11-01', '2019-11-01' => '2019-11-01', ], 'serviceIdentifier' => 'accessanalyzer', ], 'account' => [ 'namespace' => 'Account', 'versions' => [ 'latest' => '2021-02-01', '2021-02-01' => '2021-02-01', ], 'serviceIdentifier' => 'account', ], 'acm-pca' => [ 'namespace' => 'ACMPCA', 'versions' => [ 'latest' => '2017-08-22', '2017-08-22' => '2017-08-22', ], 'serviceIdentifier' => 'acm_pca', ], 'acm' => [ 'namespace' => 'Acm', 'versions' => [ 'latest' => '2015-12-08', '2015-12-08' => '2015-12-08', ], 'serviceIdentifier' => 'acm', ], 'aiops' => [ 'namespace' => 'AIOps', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'aiops', ], 'amp' => [ 'namespace' => 'PrometheusService', 'versions' => [ 'latest' => '2020-08-01', '2020-08-01' => '2020-08-01', ], 'serviceIdentifier' => 'amp', ], 'amplify' => [ 'namespace' => 'Amplify', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 'amplify', ], 'amplifybackend' => [ 'namespace' => 'AmplifyBackend', 'versions' => [ 'latest' => '2020-08-11', '2020-08-11' => '2020-08-11', ], 'serviceIdentifier' => 'amplifybackend', ], 'amplifyuibuilder' => [ 'namespace' => 'AmplifyUIBuilder', 'versions' => [ 'latest' => '2021-08-11', '2021-08-11' => '2021-08-11', ], 'serviceIdentifier' => 'amplifyuibuilder', ], 'apigateway' => [ 'namespace' => 'ApiGateway', 'versions' => [ 'latest' => '2015-07-09', '2015-07-09' => '2015-07-09', '2015-06-01' => '2015-07-09', ], 'serviceIdentifier' => 'api_gateway', ], 'apigatewaymanagementapi' => [ 'namespace' => 'ApiGatewayManagementApi', 'versions' => [ 'latest' => '2018-11-29', '2018-11-29' => '2018-11-29', ], 'serviceIdentifier' => 'apigatewaymanagementapi', ], 'apigatewayv2' => [ 'namespace' => 'ApiGatewayV2', 'versions' => [ 'latest' => '2018-11-29', '2018-11-29' => '2018-11-29', ], 'serviceIdentifier' => 'apigatewayv2', ], 'appconfig' => [ 'namespace' => 'AppConfig', 'versions' => [ 'latest' => '2019-10-09', '2019-10-09' => '2019-10-09', ], 'serviceIdentifier' => 'appconfig', ], 'appconfigdata' => [ 'namespace' => 'AppConfigData', 'versions' => [ 'latest' => '2021-11-11', '2021-11-11' => '2021-11-11', ], 'serviceIdentifier' => 'appconfigdata', ], 'appfabric' => [ 'namespace' => 'AppFabric', 'versions' => [ 'latest' => '2023-05-19', '2023-05-19' => '2023-05-19', ], 'serviceIdentifier' => 'appfabric', ], 'appflow' => [ 'namespace' => 'Appflow', 'versions' => [ 'latest' => '2020-08-23', '2020-08-23' => '2020-08-23', ], 'serviceIdentifier' => 'appflow', ], 'appintegrations' => [ 'namespace' => 'AppIntegrationsService', 'versions' => [ 'latest' => '2020-07-29', '2020-07-29' => '2020-07-29', ], 'serviceIdentifier' => 'appintegrations', ], 'application-autoscaling' => [ 'namespace' => 'ApplicationAutoScaling', 'versions' => [ 'latest' => '2016-02-06', '2016-02-06' => '2016-02-06', ], 'serviceIdentifier' => 'application_auto_scaling', ], 'application-insights' => [ 'namespace' => 'ApplicationInsights', 'versions' => [ 'latest' => '2018-11-25', '2018-11-25' => '2018-11-25', ], 'serviceIdentifier' => 'application_insights', ], 'application-signals' => [ 'namespace' => 'ApplicationSignals', 'versions' => [ 'latest' => '2024-04-15', '2024-04-15' => '2024-04-15', ], 'serviceIdentifier' => 'application_signals', ], 'applicationcostprofiler' => [ 'namespace' => 'ApplicationCostProfiler', 'versions' => [ 'latest' => '2020-09-10', '2020-09-10' => '2020-09-10', ], 'serviceIdentifier' => 'applicationcostprofiler', ], 'appmesh' => [ 'namespace' => 'AppMesh', 'versions' => [ 'latest' => '2019-01-25', '2019-01-25' => '2019-01-25', '2018-10-01' => '2018-10-01', ], 'serviceIdentifier' => 'app_mesh', ], 'apprunner' => [ 'namespace' => 'AppRunner', 'versions' => [ 'latest' => '2020-05-15', '2020-05-15' => '2020-05-15', ], 'serviceIdentifier' => 'apprunner', ], 'appstream' => [ 'namespace' => 'Appstream', 'versions' => [ 'latest' => '2016-12-01', '2016-12-01' => '2016-12-01', ], 'serviceIdentifier' => 'appstream', ], 'appsync' => [ 'namespace' => 'AppSync', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 'appsync', ], 'apptest' => [ 'namespace' => 'AppTest', 'versions' => [ 'latest' => '2022-12-06', '2022-12-06' => '2022-12-06', ], 'serviceIdentifier' => 'apptest', ], 'arc-zonal-shift' => [ 'namespace' => 'ARCZonalShift', 'versions' => [ 'latest' => '2022-10-30', '2022-10-30' => '2022-10-30', ], 'serviceIdentifier' => 'arc_zonal_shift', ], 'artifact' => [ 'namespace' => 'Artifact', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'artifact', ], 'athena' => [ 'namespace' => 'Athena', 'versions' => [ 'latest' => '2017-05-18', '2017-05-18' => '2017-05-18', ], 'serviceIdentifier' => 'athena', ], 'auditmanager' => [ 'namespace' => 'AuditManager', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 'auditmanager', ], 'autoscaling-plans' => [ 'namespace' => 'AutoScalingPlans', 'versions' => [ 'latest' => '2018-01-06', '2018-01-06' => '2018-01-06', ], 'serviceIdentifier' => 'auto_scaling_plans', ], 'autoscaling' => [ 'namespace' => 'AutoScaling', 'versions' => [ 'latest' => '2011-01-01', '2011-01-01' => '2011-01-01', ], 'serviceIdentifier' => 'auto_scaling', ], 'b2bi' => [ 'namespace' => 'B2bi', 'versions' => [ 'latest' => '2022-06-23', '2022-06-23' => '2022-06-23', ], 'serviceIdentifier' => 'b2bi', ], 'backup-gateway' => [ 'namespace' => 'BackupGateway', 'versions' => [ 'latest' => '2021-01-01', '2021-01-01' => '2021-01-01', ], 'serviceIdentifier' => 'backup_gateway', ], 'backup' => [ 'namespace' => 'Backup', 'versions' => [ 'latest' => '2018-11-15', '2018-11-15' => '2018-11-15', ], 'serviceIdentifier' => 'backup', ], 'backupsearch' => [ 'namespace' => 'BackupSearch', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'backupsearch', ], 'batch' => [ 'namespace' => 'Batch', 'versions' => [ 'latest' => '2016-08-10', '2016-08-10' => '2016-08-10', ], 'serviceIdentifier' => 'batch', ], 'bcm-data-exports' => [ 'namespace' => 'BCMDataExports', 'versions' => [ 'latest' => '2023-11-26', '2023-11-26' => '2023-11-26', ], 'serviceIdentifier' => 'bcm_data_exports', ], 'bcm-pricing-calculator' => [ 'namespace' => 'BCMPricingCalculator', 'versions' => [ 'latest' => '2024-06-19', '2024-06-19' => '2024-06-19', ], 'serviceIdentifier' => 'bcm_pricing_calculator', ], 'bedrock-agent-runtime' => [ 'namespace' => 'BedrockAgentRuntime', 'versions' => [ 'latest' => '2023-07-26', '2023-07-26' => '2023-07-26', ], 'serviceIdentifier' => 'bedrock_agent_runtime', ], 'bedrock-agent' => [ 'namespace' => 'BedrockAgent', 'versions' => [ 'latest' => '2023-06-05', '2023-06-05' => '2023-06-05', ], 'serviceIdentifier' => 'bedrock_agent', ], 'bedrock-data-automation-runtime' => [ 'namespace' => 'BedrockDataAutomationRuntime', 'versions' => [ 'latest' => '2024-06-13', '2024-06-13' => '2024-06-13', ], 'serviceIdentifier' => 'bedrock_data_automation_runtime', ], 'bedrock-data-automation' => [ 'namespace' => 'BedrockDataAutomation', 'versions' => [ 'latest' => '2023-07-26', '2023-07-26' => '2023-07-26', ], 'serviceIdentifier' => 'bedrock_data_automation', ], 'bedrock-runtime' => [ 'namespace' => 'BedrockRuntime', 'versions' => [ 'latest' => '2023-09-30', '2023-09-30' => '2023-09-30', ], 'serviceIdentifier' => 'bedrock_runtime', ], 'bedrock' => [ 'namespace' => 'Bedrock', 'versions' => [ 'latest' => '2023-04-20', '2023-04-20' => '2023-04-20', ], 'serviceIdentifier' => 'bedrock', ], 'billing' => [ 'namespace' => 'Billing', 'versions' => [ 'latest' => '2023-09-07', '2023-09-07' => '2023-09-07', ], 'serviceIdentifier' => 'billing', ], 'billingconductor' => [ 'namespace' => 'BillingConductor', 'versions' => [ 'latest' => '2021-07-30', '2021-07-30' => '2021-07-30', ], 'serviceIdentifier' => 'billingconductor', ], 'braket' => [ 'namespace' => 'Braket', 'versions' => [ 'latest' => '2019-09-01', '2019-09-01' => '2019-09-01', ], 'serviceIdentifier' => 'braket', ], 'budgets' => [ 'namespace' => 'Budgets', 'versions' => [ 'latest' => '2016-10-20', '2016-10-20' => '2016-10-20', ], 'serviceIdentifier' => 'budgets', ], 'ce' => [ 'namespace' => 'CostExplorer', 'versions' => [ 'latest' => '2017-10-25', '2017-10-25' => '2017-10-25', ], 'serviceIdentifier' => 'cost_explorer', ], 'chatbot' => [ 'namespace' => 'Chatbot', 'versions' => [ 'latest' => '2017-10-11', '2017-10-11' => '2017-10-11', ], 'serviceIdentifier' => 'chatbot', ], 'chime-sdk-identity' => [ 'namespace' => 'ChimeSDKIdentity', 'versions' => [ 'latest' => '2021-04-20', '2021-04-20' => '2021-04-20', ], 'serviceIdentifier' => 'chime_sdk_identity', ], 'chime-sdk-media-pipelines' => [ 'namespace' => 'ChimeSDKMediaPipelines', 'versions' => [ 'latest' => '2021-07-15', '2021-07-15' => '2021-07-15', ], 'serviceIdentifier' => 'chime_sdk_media_pipelines', ], 'chime-sdk-meetings' => [ 'namespace' => 'ChimeSDKMeetings', 'versions' => [ 'latest' => '2021-07-15', '2021-07-15' => '2021-07-15', ], 'serviceIdentifier' => 'chime_sdk_meetings', ], 'chime-sdk-messaging' => [ 'namespace' => 'ChimeSDKMessaging', 'versions' => [ 'latest' => '2021-05-15', '2021-05-15' => '2021-05-15', ], 'serviceIdentifier' => 'chime_sdk_messaging', ], 'chime-sdk-voice' => [ 'namespace' => 'ChimeSDKVoice', 'versions' => [ 'latest' => '2022-08-03', '2022-08-03' => '2022-08-03', ], 'serviceIdentifier' => 'chime_sdk_voice', ], 'chime' => [ 'namespace' => 'Chime', 'versions' => [ 'latest' => '2018-05-01', '2018-05-01' => '2018-05-01', ], 'serviceIdentifier' => 'chime', ], 'cleanrooms' => [ 'namespace' => 'CleanRooms', 'versions' => [ 'latest' => '2022-02-17', '2022-02-17' => '2022-02-17', ], 'serviceIdentifier' => 'cleanrooms', ], 'cleanroomsml' => [ 'namespace' => 'CleanRoomsML', 'versions' => [ 'latest' => '2023-09-06', '2023-09-06' => '2023-09-06', ], 'serviceIdentifier' => 'cleanroomsml', ], 'cloud9' => [ 'namespace' => 'Cloud9', 'versions' => [ 'latest' => '2017-09-23', '2017-09-23' => '2017-09-23', ], 'serviceIdentifier' => 'cloud9', ], 'cloudcontrol' => [ 'namespace' => 'CloudControlApi', 'versions' => [ 'latest' => '2021-09-30', '2021-09-30' => '2021-09-30', ], 'serviceIdentifier' => 'cloudcontrol', ], 'clouddirectory' => [ 'namespace' => 'CloudDirectory', 'versions' => [ 'latest' => '2017-01-11', '2017-01-11' => '2017-01-11', '2016-05-10' => '2016-05-10', ], 'serviceIdentifier' => 'clouddirectory', ], 'cloudformation' => [ 'namespace' => 'CloudFormation', 'versions' => [ 'latest' => '2010-05-15', '2010-05-15' => '2010-05-15', ], 'serviceIdentifier' => 'cloudformation', ], 'cloudfront-keyvaluestore' => [ 'namespace' => 'CloudFrontKeyValueStore', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'cloudfront_keyvaluestore', ], 'cloudfront' => [ 'namespace' => 'CloudFront', 'versions' => [ 'latest' => '2020-05-31', '2020-05-31' => '2020-05-31', '2019-03-26' => '2019-03-26', '2018-11-05' => '2018-11-05', '2018-06-18' => '2018-06-18', '2017-10-30' => '2017-10-30', '2017-03-25' => '2017-03-25', '2016-11-25' => '2016-11-25', '2016-09-29' => '2016-09-29', '2016-09-07' => '2016-09-07', '2016-08-20' => '2016-08-20', '2016-08-01' => '2016-08-01', '2016-01-28' => '2016-01-28', '2016-01-13' => '2020-05-31', '2015-09-17' => '2020-05-31', '2015-07-27' => '2015-07-27', '2015-04-17' => '2015-07-27', '2014-11-06' => '2015-07-27', ], 'serviceIdentifier' => 'cloudfront', ], 'cloudhsm' => [ 'namespace' => 'CloudHsm', 'versions' => [ 'latest' => '2014-05-30', '2014-05-30' => '2014-05-30', ], 'serviceIdentifier' => 'cloudhsm', ], 'cloudhsmv2' => [ 'namespace' => 'CloudHSMV2', 'versions' => [ 'latest' => '2017-04-28', '2017-04-28' => '2017-04-28', ], 'serviceIdentifier' => 'cloudhsm_v2', ], 'cloudsearch' => [ 'namespace' => 'CloudSearch', 'versions' => [ 'latest' => '2013-01-01', '2013-01-01' => '2013-01-01', ], 'serviceIdentifier' => 'cloudsearch', ], 'cloudsearchdomain' => [ 'namespace' => 'CloudSearchDomain', 'versions' => [ 'latest' => '2013-01-01', '2013-01-01' => '2013-01-01', ], 'serviceIdentifier' => 'cloudsearch_domain', ], 'cloudtrail-data' => [ 'namespace' => 'CloudTrailData', 'versions' => [ 'latest' => '2021-08-11', '2021-08-11' => '2021-08-11', ], 'serviceIdentifier' => 'cloudtrail_data', ], 'cloudtrail' => [ 'namespace' => 'CloudTrail', 'versions' => [ 'latest' => '2013-11-01', '2013-11-01' => '2013-11-01', ], 'serviceIdentifier' => 'cloudtrail', ], 'codeartifact' => [ 'namespace' => 'CodeArtifact', 'versions' => [ 'latest' => '2018-09-22', '2018-09-22' => '2018-09-22', ], 'serviceIdentifier' => 'codeartifact', ], 'codebuild' => [ 'namespace' => 'CodeBuild', 'versions' => [ 'latest' => '2016-10-06', '2016-10-06' => '2016-10-06', ], 'serviceIdentifier' => 'codebuild', ], 'codecatalyst' => [ 'namespace' => 'CodeCatalyst', 'versions' => [ 'latest' => '2022-09-28', '2022-09-28' => '2022-09-28', ], 'serviceIdentifier' => 'codecatalyst', ], 'codecommit' => [ 'namespace' => 'CodeCommit', 'versions' => [ 'latest' => '2015-04-13', '2015-04-13' => '2015-04-13', ], 'serviceIdentifier' => 'codecommit', ], 'codeconnections' => [ 'namespace' => 'CodeConnections', 'versions' => [ 'latest' => '2023-12-01', '2023-12-01' => '2023-12-01', ], 'serviceIdentifier' => 'codeconnections', ], 'codedeploy' => [ 'namespace' => 'CodeDeploy', 'versions' => [ 'latest' => '2014-10-06', '2014-10-06' => '2014-10-06', ], 'serviceIdentifier' => 'codedeploy', ], 'codeguru-reviewer' => [ 'namespace' => 'CodeGuruReviewer', 'versions' => [ 'latest' => '2019-09-19', '2019-09-19' => '2019-09-19', ], 'serviceIdentifier' => 'codeguru_reviewer', ], 'codeguru-security' => [ 'namespace' => 'CodeGuruSecurity', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'codeguru_security', ], 'codeguruprofiler' => [ 'namespace' => 'CodeGuruProfiler', 'versions' => [ 'latest' => '2019-07-18', '2019-07-18' => '2019-07-18', ], 'serviceIdentifier' => 'codeguruprofiler', ], 'codepipeline' => [ 'namespace' => 'CodePipeline', 'versions' => [ 'latest' => '2015-07-09', '2015-07-09' => '2015-07-09', ], 'serviceIdentifier' => 'codepipeline', ], 'codestar-connections' => [ 'namespace' => 'CodeStarconnections', 'versions' => [ 'latest' => '2019-12-01', '2019-12-01' => '2019-12-01', ], 'serviceIdentifier' => 'codestar_connections', ], 'codestar-notifications' => [ 'namespace' => 'CodeStarNotifications', 'versions' => [ 'latest' => '2019-10-15', '2019-10-15' => '2019-10-15', ], 'serviceIdentifier' => 'codestar_notifications', ], 'cognito-identity' => [ 'namespace' => 'CognitoIdentity', 'versions' => [ 'latest' => '2014-06-30', '2014-06-30' => '2014-06-30', ], 'serviceIdentifier' => 'cognito_identity', ], 'cognito-idp' => [ 'namespace' => 'CognitoIdentityProvider', 'versions' => [ 'latest' => '2016-04-18', '2016-04-18' => '2016-04-18', ], 'serviceIdentifier' => 'cognito_identity_provider', ], 'cognito-sync' => [ 'namespace' => 'CognitoSync', 'versions' => [ 'latest' => '2014-06-30', '2014-06-30' => '2014-06-30', ], 'serviceIdentifier' => 'cognito_sync', ], 'comprehend' => [ 'namespace' => 'Comprehend', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], 'serviceIdentifier' => 'comprehend', ], 'comprehendmedical' => [ 'namespace' => 'ComprehendMedical', 'versions' => [ 'latest' => '2018-10-30', '2018-10-30' => '2018-10-30', ], 'serviceIdentifier' => 'comprehendmedical', ], 'compute-optimizer' => [ 'namespace' => 'ComputeOptimizer', 'versions' => [ 'latest' => '2019-11-01', '2019-11-01' => '2019-11-01', ], 'serviceIdentifier' => 'compute_optimizer', ], 'config' => [ 'namespace' => 'ConfigService', 'versions' => [ 'latest' => '2014-11-12', '2014-11-12' => '2014-11-12', ], 'serviceIdentifier' => 'config_service', ], 'connect-contact-lens' => [ 'namespace' => 'ConnectContactLens', 'versions' => [ 'latest' => '2020-08-21', '2020-08-21' => '2020-08-21', ], 'serviceIdentifier' => 'connect_contact_lens', ], 'connect' => [ 'namespace' => 'Connect', 'versions' => [ 'latest' => '2017-08-08', '2017-08-08' => '2017-08-08', ], 'serviceIdentifier' => 'connect', ], 'connectcampaigns' => [ 'namespace' => 'ConnectCampaignService', 'versions' => [ 'latest' => '2021-01-30', '2021-01-30' => '2021-01-30', ], 'serviceIdentifier' => 'connectcampaigns', ], 'connectcampaignsv2' => [ 'namespace' => 'ConnectCampaignsV2', 'versions' => [ 'latest' => '2024-04-23', '2024-04-23' => '2024-04-23', ], 'serviceIdentifier' => 'connectcampaignsv2', ], 'connectcases' => [ 'namespace' => 'ConnectCases', 'versions' => [ 'latest' => '2022-10-03', '2022-10-03' => '2022-10-03', ], 'serviceIdentifier' => 'connectcases', ], 'connectparticipant' => [ 'namespace' => 'ConnectParticipant', 'versions' => [ 'latest' => '2018-09-07', '2018-09-07' => '2018-09-07', ], 'serviceIdentifier' => 'connectparticipant', ], 'controlcatalog' => [ 'namespace' => 'ControlCatalog', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'controlcatalog', ], 'controltower' => [ 'namespace' => 'ControlTower', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'controltower', ], 'cost-optimization-hub' => [ 'namespace' => 'CostOptimizationHub', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'cost_optimization_hub', ], 'cur' => [ 'namespace' => 'CostandUsageReportService', 'versions' => [ 'latest' => '2017-01-06', '2017-01-06' => '2017-01-06', ], 'serviceIdentifier' => 'cost_and_usage_report_service', ], 'customer-profiles' => [ 'namespace' => 'CustomerProfiles', 'versions' => [ 'latest' => '2020-08-15', '2020-08-15' => '2020-08-15', ], 'serviceIdentifier' => 'customer_profiles', ], 'data.iot' => [ 'namespace' => 'IotDataPlane', 'versions' => [ 'latest' => '2015-05-28', '2015-05-28' => '2015-05-28', ], 'serviceIdentifier' => 'iot_data_plane', ], 'databrew' => [ 'namespace' => 'GlueDataBrew', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 'databrew', ], 'dataexchange' => [ 'namespace' => 'DataExchange', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 'dataexchange', ], 'datapipeline' => [ 'namespace' => 'DataPipeline', 'versions' => [ 'latest' => '2012-10-29', '2012-10-29' => '2012-10-29', ], 'serviceIdentifier' => 'data_pipeline', ], 'datasync' => [ 'namespace' => 'DataSync', 'versions' => [ 'latest' => '2018-11-09', '2018-11-09' => '2018-11-09', ], 'serviceIdentifier' => 'datasync', ], 'datazone' => [ 'namespace' => 'DataZone', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'datazone', ], 'dax' => [ 'namespace' => 'DAX', 'versions' => [ 'latest' => '2017-04-19', '2017-04-19' => '2017-04-19', ], 'serviceIdentifier' => 'dax', ], 'deadline' => [ 'namespace' => 'Deadline', 'versions' => [ 'latest' => '2023-10-12', '2023-10-12' => '2023-10-12', ], 'serviceIdentifier' => 'deadline', ], 'detective' => [ 'namespace' => 'Detective', 'versions' => [ 'latest' => '2018-10-26', '2018-10-26' => '2018-10-26', ], 'serviceIdentifier' => 'detective', ], 'devicefarm' => [ 'namespace' => 'DeviceFarm', 'versions' => [ 'latest' => '2015-06-23', '2015-06-23' => '2015-06-23', ], 'serviceIdentifier' => 'device_farm', ], 'devops-guru' => [ 'namespace' => 'DevOpsGuru', 'versions' => [ 'latest' => '2020-12-01', '2020-12-01' => '2020-12-01', ], 'serviceIdentifier' => 'devops_guru', ], 'directconnect' => [ 'namespace' => 'DirectConnect', 'versions' => [ 'latest' => '2012-10-25', '2012-10-25' => '2012-10-25', ], 'serviceIdentifier' => 'direct_connect', ], 'directory-service-data' => [ 'namespace' => 'DirectoryServiceData', 'versions' => [ 'latest' => '2023-05-31', '2023-05-31' => '2023-05-31', ], 'serviceIdentifier' => 'directory_service_data', ], 'discovery' => [ 'namespace' => 'ApplicationDiscoveryService', 'versions' => [ 'latest' => '2015-11-01', '2015-11-01' => '2015-11-01', ], 'serviceIdentifier' => 'application_discovery_service', ], 'dlm' => [ 'namespace' => 'DLM', 'versions' => [ 'latest' => '2018-01-12', '2018-01-12' => '2018-01-12', ], 'serviceIdentifier' => 'dlm', ], 'dms' => [ 'namespace' => 'DatabaseMigrationService', 'versions' => [ 'latest' => '2016-01-01', '2016-01-01' => '2016-01-01', ], 'serviceIdentifier' => 'database_migration_service', ], 'docdb-elastic' => [ 'namespace' => 'DocDBElastic', 'versions' => [ 'latest' => '2022-11-28', '2022-11-28' => '2022-11-28', ], 'serviceIdentifier' => 'docdb_elastic', ], 'docdb' => [ 'namespace' => 'DocDB', 'versions' => [ 'latest' => '2014-10-31', '2014-10-31' => '2014-10-31', ], 'serviceIdentifier' => 'docdb', ], 'drs' => [ 'namespace' => 'drs', 'versions' => [ 'latest' => '2020-02-26', '2020-02-26' => '2020-02-26', ], 'serviceIdentifier' => 'drs', ], 'ds' => [ 'namespace' => 'DirectoryService', 'versions' => [ 'latest' => '2015-04-16', '2015-04-16' => '2015-04-16', ], 'serviceIdentifier' => 'directory_service', ], 'dsql' => [ 'namespace' => 'DSQL', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'dsql', ], 'dynamodb' => [ 'namespace' => 'DynamoDb', 'versions' => [ 'latest' => '2012-08-10', '2012-08-10' => '2012-08-10', '2011-12-05' => '2011-12-05', ], 'serviceIdentifier' => 'dynamodb', ], 'ebs' => [ 'namespace' => 'EBS', 'versions' => [ 'latest' => '2019-11-02', '2019-11-02' => '2019-11-02', ], 'serviceIdentifier' => 'ebs', ], 'ec2-instance-connect' => [ 'namespace' => 'EC2InstanceConnect', 'versions' => [ 'latest' => '2018-04-02', '2018-04-02' => '2018-04-02', ], 'serviceIdentifier' => 'ec2_instance_connect', ], 'ec2' => [ 'namespace' => 'Ec2', 'versions' => [ 'latest' => '2016-11-15', '2016-11-15' => '2016-11-15', '2016-09-15' => '2016-09-15', '2016-04-01' => '2016-04-01', '2015-10-01' => '2015-10-01', '2015-04-15' => '2016-11-15', ], 'serviceIdentifier' => 'ec2', ], 'ecr-public' => [ 'namespace' => 'ECRPublic', 'versions' => [ 'latest' => '2020-10-30', '2020-10-30' => '2020-10-30', ], 'serviceIdentifier' => 'ecr_public', ], 'ecr' => [ 'namespace' => 'Ecr', 'versions' => [ 'latest' => '2015-09-21', '2015-09-21' => '2015-09-21', ], 'serviceIdentifier' => 'ecr', ], 'ecs' => [ 'namespace' => 'Ecs', 'versions' => [ 'latest' => '2014-11-13', '2014-11-13' => '2014-11-13', ], 'serviceIdentifier' => 'ecs', ], 'eks-auth' => [ 'namespace' => 'EKSAuth', 'versions' => [ 'latest' => '2023-11-26', '2023-11-26' => '2023-11-26', ], 'serviceIdentifier' => 'eks_auth', ], 'eks' => [ 'namespace' => 'EKS', 'versions' => [ 'latest' => '2017-11-01', '2017-11-01' => '2017-11-01', ], 'serviceIdentifier' => 'eks', ], 'elasticache' => [ 'namespace' => 'ElastiCache', 'versions' => [ 'latest' => '2015-02-02', '2015-02-02' => '2015-02-02', ], 'serviceIdentifier' => 'elasticache', ], 'elasticbeanstalk' => [ 'namespace' => 'ElasticBeanstalk', 'versions' => [ 'latest' => '2010-12-01', '2010-12-01' => '2010-12-01', ], 'serviceIdentifier' => 'elastic_beanstalk', ], 'elasticfilesystem' => [ 'namespace' => 'Efs', 'versions' => [ 'latest' => '2015-02-01', '2015-02-01' => '2015-02-01', ], 'serviceIdentifier' => 'efs', ], 'elasticloadbalancing' => [ 'namespace' => 'ElasticLoadBalancing', 'versions' => [ 'latest' => '2012-06-01', '2012-06-01' => '2012-06-01', ], 'serviceIdentifier' => 'elastic_load_balancing', ], 'elasticloadbalancingv2' => [ 'namespace' => 'ElasticLoadBalancingV2', 'versions' => [ 'latest' => '2015-12-01', '2015-12-01' => '2015-12-01', ], 'serviceIdentifier' => 'elastic_load_balancing_v2', ], 'elasticmapreduce' => [ 'namespace' => 'Emr', 'versions' => [ 'latest' => '2009-03-31', '2009-03-31' => '2009-03-31', ], 'serviceIdentifier' => 'emr', ], 'elastictranscoder' => [ 'namespace' => 'ElasticTranscoder', 'versions' => [ 'latest' => '2012-09-25', '2012-09-25' => '2012-09-25', ], 'serviceIdentifier' => 'elastic_transcoder', ], 'email' => [ 'namespace' => 'Ses', 'versions' => [ 'latest' => '2010-12-01', '2010-12-01' => '2010-12-01', ], 'serviceIdentifier' => 'ses', ], 'emr-containers' => [ 'namespace' => 'EMRContainers', 'versions' => [ 'latest' => '2020-10-01', '2020-10-01' => '2020-10-01', ], 'serviceIdentifier' => 'emr_containers', ], 'emr-serverless' => [ 'namespace' => 'EMRServerless', 'versions' => [ 'latest' => '2021-07-13', '2021-07-13' => '2021-07-13', ], 'serviceIdentifier' => 'emr_serverless', ], 'entitlement.marketplace' => [ 'namespace' => 'MarketplaceEntitlementService', 'versions' => [ 'latest' => '2017-01-11', '2017-01-11' => '2017-01-11', ], 'serviceIdentifier' => 'marketplace_entitlement_service', ], 'entityresolution' => [ 'namespace' => 'EntityResolution', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'entityresolution', ], 'es' => [ 'namespace' => 'ElasticsearchService', 'versions' => [ 'latest' => '2015-01-01', '2015-01-01' => '2015-01-01', ], 'serviceIdentifier' => 'elasticsearch_service', ], 'eventbridge' => [ 'namespace' => 'EventBridge', 'versions' => [ 'latest' => '2015-10-07', '2015-10-07' => '2015-10-07', ], 'serviceIdentifier' => 'eventbridge', ], 'events' => [ 'namespace' => 'CloudWatchEvents', 'versions' => [ 'latest' => '2015-10-07', '2015-10-07' => '2015-10-07', '2014-02-03' => '2015-10-07', ], 'serviceIdentifier' => 'cloudwatch_events', ], 'evidently' => [ 'namespace' => 'CloudWatchEvidently', 'versions' => [ 'latest' => '2021-02-01', '2021-02-01' => '2021-02-01', ], 'serviceIdentifier' => 'evidently', ], 'evs' => [ 'namespace' => 'Evs', 'versions' => [ 'latest' => '2023-07-27', '2023-07-27' => '2023-07-27', ], 'serviceIdentifier' => 'evs', ], 'finspace-data' => [ 'namespace' => 'FinSpaceData', 'versions' => [ 'latest' => '2020-07-13', '2020-07-13' => '2020-07-13', ], 'serviceIdentifier' => 'finspace_data', ], 'finspace' => [ 'namespace' => 'finspace', 'versions' => [ 'latest' => '2021-03-12', '2021-03-12' => '2021-03-12', ], 'serviceIdentifier' => 'finspace', ], 'firehose' => [ 'namespace' => 'Firehose', 'versions' => [ 'latest' => '2015-08-04', '2015-08-04' => '2015-08-04', ], 'serviceIdentifier' => 'firehose', ], 'fis' => [ 'namespace' => 'FIS', 'versions' => [ 'latest' => '2020-12-01', '2020-12-01' => '2020-12-01', ], 'serviceIdentifier' => 'fis', ], 'fms' => [ 'namespace' => 'FMS', 'versions' => [ 'latest' => '2018-01-01', '2018-01-01' => '2018-01-01', ], 'serviceIdentifier' => 'fms', ], 'forecast' => [ 'namespace' => 'ForecastService', 'versions' => [ 'latest' => '2018-06-26', '2018-06-26' => '2018-06-26', ], 'serviceIdentifier' => 'forecast', ], 'forecastquery' => [ 'namespace' => 'ForecastQueryService', 'versions' => [ 'latest' => '2018-06-26', '2018-06-26' => '2018-06-26', ], 'serviceIdentifier' => 'forecastquery', ], 'frauddetector' => [ 'namespace' => 'FraudDetector', 'versions' => [ 'latest' => '2019-11-15', '2019-11-15' => '2019-11-15', ], 'serviceIdentifier' => 'frauddetector', ], 'freetier' => [ 'namespace' => 'FreeTier', 'versions' => [ 'latest' => '2023-09-07', '2023-09-07' => '2023-09-07', ], 'serviceIdentifier' => 'freetier', ], 'fsx' => [ 'namespace' => 'FSx', 'versions' => [ 'latest' => '2018-03-01', '2018-03-01' => '2018-03-01', ], 'serviceIdentifier' => 'fsx', ], 'gamelift' => [ 'namespace' => 'GameLift', 'versions' => [ 'latest' => '2015-10-01', '2015-10-01' => '2015-10-01', ], 'serviceIdentifier' => 'gamelift', ], 'gameliftstreams' => [ 'namespace' => 'GameLiftStreams', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'gameliftstreams', ], 'geo-maps' => [ 'namespace' => 'GeoMaps', 'versions' => [ 'latest' => '2020-11-19', '2020-11-19' => '2020-11-19', ], 'serviceIdentifier' => 'geo_maps', ], 'geo-places' => [ 'namespace' => 'GeoPlaces', 'versions' => [ 'latest' => '2020-11-19', '2020-11-19' => '2020-11-19', ], 'serviceIdentifier' => 'geo_places', ], 'geo-routes' => [ 'namespace' => 'GeoRoutes', 'versions' => [ 'latest' => '2020-11-19', '2020-11-19' => '2020-11-19', ], 'serviceIdentifier' => 'geo_routes', ], 'glacier' => [ 'namespace' => 'Glacier', 'versions' => [ 'latest' => '2012-06-01', '2012-06-01' => '2012-06-01', ], 'serviceIdentifier' => 'glacier', ], 'globalaccelerator' => [ 'namespace' => 'GlobalAccelerator', 'versions' => [ 'latest' => '2018-08-08', '2018-08-08' => '2018-08-08', ], 'serviceIdentifier' => 'global_accelerator', ], 'glue' => [ 'namespace' => 'Glue', 'versions' => [ 'latest' => '2017-03-31', '2017-03-31' => '2017-03-31', ], 'serviceIdentifier' => 'glue', ], 'grafana' => [ 'namespace' => 'ManagedGrafana', 'versions' => [ 'latest' => '2020-08-18', '2020-08-18' => '2020-08-18', ], 'serviceIdentifier' => 'grafana', ], 'greengrass' => [ 'namespace' => 'Greengrass', 'versions' => [ 'latest' => '2017-06-07', '2017-06-07' => '2017-06-07', ], 'serviceIdentifier' => 'greengrass', ], 'greengrassv2' => [ 'namespace' => 'GreengrassV2', 'versions' => [ 'latest' => '2020-11-30', '2020-11-30' => '2020-11-30', ], 'serviceIdentifier' => 'greengrassv2', ], 'groundstation' => [ 'namespace' => 'GroundStation', 'versions' => [ 'latest' => '2019-05-23', '2019-05-23' => '2019-05-23', ], 'serviceIdentifier' => 'groundstation', ], 'guardduty' => [ 'namespace' => 'GuardDuty', 'versions' => [ 'latest' => '2017-11-28', '2017-11-28' => '2017-11-28', ], 'serviceIdentifier' => 'guardduty', ], 'health' => [ 'namespace' => 'Health', 'versions' => [ 'latest' => '2016-08-04', '2016-08-04' => '2016-08-04', ], 'serviceIdentifier' => 'health', ], 'healthlake' => [ 'namespace' => 'HealthLake', 'versions' => [ 'latest' => '2017-07-01', '2017-07-01' => '2017-07-01', ], 'serviceIdentifier' => 'healthlake', ], 'iam' => [ 'namespace' => 'Iam', 'versions' => [ 'latest' => '2010-05-08', '2010-05-08' => '2010-05-08', ], 'serviceIdentifier' => 'iam', ], 'identitystore' => [ 'namespace' => 'IdentityStore', 'versions' => [ 'latest' => '2020-06-15', '2020-06-15' => '2020-06-15', ], 'serviceIdentifier' => 'identitystore', ], 'imagebuilder' => [ 'namespace' => 'imagebuilder', 'versions' => [ 'latest' => '2019-12-02', '2019-12-02' => '2019-12-02', ], 'serviceIdentifier' => 'imagebuilder', ], 'importexport' => [ 'namespace' => 'ImportExport', 'versions' => [ 'latest' => '2010-06-01', '2010-06-01' => '2010-06-01', ], 'serviceIdentifier' => 'importexport', ], 'inspector-scan' => [ 'namespace' => 'InspectorScan', 'versions' => [ 'latest' => '2023-08-08', '2023-08-08' => '2023-08-08', ], 'serviceIdentifier' => 'inspector_scan', ], 'inspector' => [ 'namespace' => 'Inspector', 'versions' => [ 'latest' => '2016-02-16', '2016-02-16' => '2016-02-16', '2015-08-18' => '2016-02-16', ], 'serviceIdentifier' => 'inspector', ], 'inspector2' => [ 'namespace' => 'Inspector2', 'versions' => [ 'latest' => '2020-06-08', '2020-06-08' => '2020-06-08', ], 'serviceIdentifier' => 'inspector2', ], 'internetmonitor' => [ 'namespace' => 'InternetMonitor', 'versions' => [ 'latest' => '2021-06-03', '2021-06-03' => '2021-06-03', ], 'serviceIdentifier' => 'internetmonitor', ], 'invoicing' => [ 'namespace' => 'Invoicing', 'versions' => [ 'latest' => '2024-12-01', '2024-12-01' => '2024-12-01', ], 'serviceIdentifier' => 'invoicing', ], 'iot-jobs-data' => [ 'namespace' => 'IoTJobsDataPlane', 'versions' => [ 'latest' => '2017-09-29', '2017-09-29' => '2017-09-29', ], 'serviceIdentifier' => 'iot_jobs_data_plane', ], 'iot-managed-integrations' => [ 'namespace' => 'IoTManagedIntegrations', 'versions' => [ 'latest' => '2025-03-03', '2025-03-03' => '2025-03-03', ], 'serviceIdentifier' => 'iot_managed_integrations', ], 'iot' => [ 'namespace' => 'Iot', 'versions' => [ 'latest' => '2015-05-28', '2015-05-28' => '2015-05-28', ], 'serviceIdentifier' => 'iot', ], 'iotanalytics' => [ 'namespace' => 'IoTAnalytics', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], 'serviceIdentifier' => 'iotanalytics', ], 'iotdeviceadvisor' => [ 'namespace' => 'IoTDeviceAdvisor', 'versions' => [ 'latest' => '2020-09-18', '2020-09-18' => '2020-09-18', ], 'serviceIdentifier' => 'iotdeviceadvisor', ], 'iotevents-data' => [ 'namespace' => 'IoTEventsData', 'versions' => [ 'latest' => '2018-10-23', '2018-10-23' => '2018-10-23', ], 'serviceIdentifier' => 'iot_events_data', ], 'iotevents' => [ 'namespace' => 'IoTEvents', 'versions' => [ 'latest' => '2018-07-27', '2018-07-27' => '2018-07-27', ], 'serviceIdentifier' => 'iot_events', ], 'iotfleethub' => [ 'namespace' => 'IoTFleetHub', 'versions' => [ 'latest' => '2020-11-03', '2020-11-03' => '2020-11-03', ], 'serviceIdentifier' => 'iotfleethub', ], 'iotfleetwise' => [ 'namespace' => 'IoTFleetWise', 'versions' => [ 'latest' => '2021-06-17', '2021-06-17' => '2021-06-17', ], 'serviceIdentifier' => 'iotfleetwise', ], 'iotsecuretunneling' => [ 'namespace' => 'IoTSecureTunneling', 'versions' => [ 'latest' => '2018-10-05', '2018-10-05' => '2018-10-05', ], 'serviceIdentifier' => 'iotsecuretunneling', ], 'iotsitewise' => [ 'namespace' => 'IoTSiteWise', 'versions' => [ 'latest' => '2019-12-02', '2019-12-02' => '2019-12-02', ], 'serviceIdentifier' => 'iotsitewise', ], 'iotthingsgraph' => [ 'namespace' => 'IoTThingsGraph', 'versions' => [ 'latest' => '2018-09-06', '2018-09-06' => '2018-09-06', ], 'serviceIdentifier' => 'iotthingsgraph', ], 'iottwinmaker' => [ 'namespace' => 'IoTTwinMaker', 'versions' => [ 'latest' => '2021-11-29', '2021-11-29' => '2021-11-29', ], 'serviceIdentifier' => 'iottwinmaker', ], 'iotwireless' => [ 'namespace' => 'IoTWireless', 'versions' => [ 'latest' => '2020-11-22', '2020-11-22' => '2020-11-22', ], 'serviceIdentifier' => 'iot_wireless', ], 'ivs-realtime' => [ 'namespace' => 'IVSRealTime', 'versions' => [ 'latest' => '2020-07-14', '2020-07-14' => '2020-07-14', ], 'serviceIdentifier' => 'ivs_realtime', ], 'ivs' => [ 'namespace' => 'IVS', 'versions' => [ 'latest' => '2020-07-14', '2020-07-14' => '2020-07-14', ], 'serviceIdentifier' => 'ivs', ], 'ivschat' => [ 'namespace' => 'ivschat', 'versions' => [ 'latest' => '2020-07-14', '2020-07-14' => '2020-07-14', ], 'serviceIdentifier' => 'ivschat', ], 'kafka' => [ 'namespace' => 'Kafka', 'versions' => [ 'latest' => '2018-11-14', '2018-11-14' => '2018-11-14', ], 'serviceIdentifier' => 'kafka', ], 'kafkaconnect' => [ 'namespace' => 'KafkaConnect', 'versions' => [ 'latest' => '2021-09-14', '2021-09-14' => '2021-09-14', ], 'serviceIdentifier' => 'kafkaconnect', ], 'kendra-ranking' => [ 'namespace' => 'KendraRanking', 'versions' => [ 'latest' => '2022-10-19', '2022-10-19' => '2022-10-19', ], 'serviceIdentifier' => 'kendra_ranking', ], 'kendra' => [ 'namespace' => 'kendra', 'versions' => [ 'latest' => '2019-02-03', '2019-02-03' => '2019-02-03', ], 'serviceIdentifier' => 'kendra', ], 'keyspaces' => [ 'namespace' => 'Keyspaces', 'versions' => [ 'latest' => '2022-02-10', '2022-02-10' => '2022-02-10', ], 'serviceIdentifier' => 'keyspaces', ], 'kinesis-video-archived-media' => [ 'namespace' => 'KinesisVideoArchivedMedia', 'versions' => [ 'latest' => '2017-09-30', '2017-09-30' => '2017-09-30', ], 'serviceIdentifier' => 'kinesis_video_archived_media', ], 'kinesis-video-media' => [ 'namespace' => 'KinesisVideoMedia', 'versions' => [ 'latest' => '2017-09-30', '2017-09-30' => '2017-09-30', ], 'serviceIdentifier' => 'kinesis_video_media', ], 'kinesis-video-signaling' => [ 'namespace' => 'KinesisVideoSignalingChannels', 'versions' => [ 'latest' => '2019-12-04', '2019-12-04' => '2019-12-04', ], 'serviceIdentifier' => 'kinesis_video_signaling', ], 'kinesis-video-webrtc-storage' => [ 'namespace' => 'KinesisVideoWebRTCStorage', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'kinesis_video_webrtc_storage', ], 'kinesis' => [ 'namespace' => 'Kinesis', 'versions' => [ 'latest' => '2013-12-02', '2013-12-02' => '2013-12-02', ], 'serviceIdentifier' => 'kinesis', ], 'kinesisanalytics' => [ 'namespace' => 'KinesisAnalytics', 'versions' => [ 'latest' => '2015-08-14', '2015-08-14' => '2015-08-14', ], 'serviceIdentifier' => 'kinesis_analytics', ], 'kinesisanalyticsv2' => [ 'namespace' => 'KinesisAnalyticsV2', 'versions' => [ 'latest' => '2018-05-23', '2018-05-23' => '2018-05-23', ], 'serviceIdentifier' => 'kinesis_analytics_v2', ], 'kinesisvideo' => [ 'namespace' => 'KinesisVideo', 'versions' => [ 'latest' => '2017-09-30', '2017-09-30' => '2017-09-30', ], 'serviceIdentifier' => 'kinesis_video', ], 'kms' => [ 'namespace' => 'Kms', 'versions' => [ 'latest' => '2014-11-01', '2014-11-01' => '2014-11-01', ], 'serviceIdentifier' => 'kms', ], 'lakeformation' => [ 'namespace' => 'LakeFormation', 'versions' => [ 'latest' => '2017-03-31', '2017-03-31' => '2017-03-31', ], 'serviceIdentifier' => 'lakeformation', ], 'lambda' => [ 'namespace' => 'Lambda', 'versions' => [ 'latest' => '2015-03-31', '2015-03-31' => '2015-03-31', ], 'serviceIdentifier' => 'lambda', ], 'launch-wizard' => [ 'namespace' => 'LaunchWizard', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'launch_wizard', ], 'lex-models' => [ 'namespace' => 'LexModelBuildingService', 'versions' => [ 'latest' => '2017-04-19', '2017-04-19' => '2017-04-19', ], 'serviceIdentifier' => 'lex_model_building_service', ], 'license-manager-linux-subscriptions' => [ 'namespace' => 'LicenseManagerLinuxSubscriptions', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'license_manager_linux_subscriptions', ], 'license-manager-user-subscriptions' => [ 'namespace' => 'LicenseManagerUserSubscriptions', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'license_manager_user_subscriptions', ], 'license-manager' => [ 'namespace' => 'LicenseManager', 'versions' => [ 'latest' => '2018-08-01', '2018-08-01' => '2018-08-01', ], 'serviceIdentifier' => 'license_manager', ], 'lightsail' => [ 'namespace' => 'Lightsail', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], 'serviceIdentifier' => 'lightsail', ], 'location' => [ 'namespace' => 'LocationService', 'versions' => [ 'latest' => '2020-11-19', '2020-11-19' => '2020-11-19', ], 'serviceIdentifier' => 'location', ], 'logs' => [ 'namespace' => 'CloudWatchLogs', 'versions' => [ 'latest' => '2014-03-28', '2014-03-28' => '2014-03-28', ], 'serviceIdentifier' => 'cloudwatch_logs', ], 'lookoutequipment' => [ 'namespace' => 'LookoutEquipment', 'versions' => [ 'latest' => '2020-12-15', '2020-12-15' => '2020-12-15', ], 'serviceIdentifier' => 'lookoutequipment', ], 'lookoutmetrics' => [ 'namespace' => 'LookoutMetrics', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 'lookoutmetrics', ], 'lookoutvision' => [ 'namespace' => 'LookoutforVision', 'versions' => [ 'latest' => '2020-11-20', '2020-11-20' => '2020-11-20', ], 'serviceIdentifier' => 'lookoutvision', ], 'm2' => [ 'namespace' => 'MainframeModernization', 'versions' => [ 'latest' => '2021-04-28', '2021-04-28' => '2021-04-28', ], 'serviceIdentifier' => 'm2', ], 'machinelearning' => [ 'namespace' => 'MachineLearning', 'versions' => [ 'latest' => '2014-12-12', '2014-12-12' => '2014-12-12', ], 'serviceIdentifier' => 'machine_learning', ], 'macie2' => [ 'namespace' => 'Macie2', 'versions' => [ 'latest' => '2020-01-01', '2020-01-01' => '2020-01-01', ], 'serviceIdentifier' => 'macie2', ], 'mailmanager' => [ 'namespace' => 'MailManager', 'versions' => [ 'latest' => '2023-10-17', '2023-10-17' => '2023-10-17', ], 'serviceIdentifier' => 'mailmanager', ], 'managedblockchain-query' => [ 'namespace' => 'ManagedBlockchainQuery', 'versions' => [ 'latest' => '2023-05-04', '2023-05-04' => '2023-05-04', ], 'serviceIdentifier' => 'managedblockchain_query', ], 'managedblockchain' => [ 'namespace' => 'ManagedBlockchain', 'versions' => [ 'latest' => '2018-09-24', '2018-09-24' => '2018-09-24', ], 'serviceIdentifier' => 'managedblockchain', ], 'marketplace-agreement' => [ 'namespace' => 'MarketplaceAgreement', 'versions' => [ 'latest' => '2020-03-01', '2020-03-01' => '2020-03-01', ], 'serviceIdentifier' => 'marketplace_agreement', ], 'marketplace-catalog' => [ 'namespace' => 'MarketplaceCatalog', 'versions' => [ 'latest' => '2018-09-17', '2018-09-17' => '2018-09-17', ], 'serviceIdentifier' => 'marketplace_catalog', ], 'marketplace-deployment' => [ 'namespace' => 'MarketplaceDeployment', 'versions' => [ 'latest' => '2023-01-25', '2023-01-25' => '2023-01-25', ], 'serviceIdentifier' => 'marketplace_deployment', ], 'marketplace-reporting' => [ 'namespace' => 'MarketplaceReporting', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'marketplace_reporting', ], 'marketplacecommerceanalytics' => [ 'namespace' => 'MarketplaceCommerceAnalytics', 'versions' => [ 'latest' => '2015-07-01', '2015-07-01' => '2015-07-01', ], 'serviceIdentifier' => 'marketplace_commerce_analytics', ], 'mediaconnect' => [ 'namespace' => 'MediaConnect', 'versions' => [ 'latest' => '2018-11-14', '2018-11-14' => '2018-11-14', ], 'serviceIdentifier' => 'mediaconnect', ], 'mediaconvert' => [ 'namespace' => 'MediaConvert', 'versions' => [ 'latest' => '2017-08-29', '2017-08-29' => '2017-08-29', ], 'serviceIdentifier' => 'mediaconvert', ], 'medialive' => [ 'namespace' => 'MediaLive', 'versions' => [ 'latest' => '2017-10-14', '2017-10-14' => '2017-10-14', ], 'serviceIdentifier' => 'medialive', ], 'mediapackage-vod' => [ 'namespace' => 'MediaPackageVod', 'versions' => [ 'latest' => '2018-11-07', '2018-11-07' => '2018-11-07', ], 'serviceIdentifier' => 'mediapackage_vod', ], 'mediapackage' => [ 'namespace' => 'MediaPackage', 'versions' => [ 'latest' => '2017-10-12', '2017-10-12' => '2017-10-12', ], 'serviceIdentifier' => 'mediapackage', ], 'mediapackagev2' => [ 'namespace' => 'MediaPackageV2', 'versions' => [ 'latest' => '2022-12-25', '2022-12-25' => '2022-12-25', ], 'serviceIdentifier' => 'mediapackagev2', ], 'mediastore-data' => [ 'namespace' => 'MediaStoreData', 'versions' => [ 'latest' => '2017-09-01', '2017-09-01' => '2017-09-01', ], 'serviceIdentifier' => 'mediastore_data', ], 'mediastore' => [ 'namespace' => 'MediaStore', 'versions' => [ 'latest' => '2017-09-01', '2017-09-01' => '2017-09-01', ], 'serviceIdentifier' => 'mediastore', ], 'mediatailor' => [ 'namespace' => 'MediaTailor', 'versions' => [ 'latest' => '2018-04-23', '2018-04-23' => '2018-04-23', ], 'serviceIdentifier' => 'mediatailor', ], 'medical-imaging' => [ 'namespace' => 'MedicalImaging', 'versions' => [ 'latest' => '2023-07-19', '2023-07-19' => '2023-07-19', ], 'serviceIdentifier' => 'medical_imaging', ], 'memorydb' => [ 'namespace' => 'MemoryDB', 'versions' => [ 'latest' => '2021-01-01', '2021-01-01' => '2021-01-01', ], 'serviceIdentifier' => 'memorydb', ], 'metering.marketplace' => [ 'namespace' => 'MarketplaceMetering', 'versions' => [ 'latest' => '2016-01-14', '2016-01-14' => '2016-01-14', ], 'serviceIdentifier' => 'marketplace_metering', ], 'mgh' => [ 'namespace' => 'MigrationHub', 'versions' => [ 'latest' => '2017-05-31', '2017-05-31' => '2017-05-31', ], 'serviceIdentifier' => 'migration_hub', ], 'mgn' => [ 'namespace' => 'mgn', 'versions' => [ 'latest' => '2020-02-26', '2020-02-26' => '2020-02-26', ], 'serviceIdentifier' => 'mgn', ], 'migration-hub-refactor-spaces' => [ 'namespace' => 'MigrationHubRefactorSpaces', 'versions' => [ 'latest' => '2021-10-26', '2021-10-26' => '2021-10-26', ], 'serviceIdentifier' => 'migration_hub_refactor_spaces', ], 'migrationhub-config' => [ 'namespace' => 'MigrationHubConfig', 'versions' => [ 'latest' => '2019-06-30', '2019-06-30' => '2019-06-30', ], 'serviceIdentifier' => 'migrationhub_config', ], 'migrationhuborchestrator' => [ 'namespace' => 'MigrationHubOrchestrator', 'versions' => [ 'latest' => '2021-08-28', '2021-08-28' => '2021-08-28', ], 'serviceIdentifier' => 'migrationhuborchestrator', ], 'migrationhubstrategy' => [ 'namespace' => 'MigrationHubStrategyRecommendations', 'versions' => [ 'latest' => '2020-02-19', '2020-02-19' => '2020-02-19', ], 'serviceIdentifier' => 'migrationhubstrategy', ], 'models.lex.v2' => [ 'namespace' => 'LexModelsV2', 'versions' => [ 'latest' => '2020-08-07', '2020-08-07' => '2020-08-07', ], 'serviceIdentifier' => 'lex_models_v2', ], 'monitoring' => [ 'namespace' => 'CloudWatch', 'versions' => [ 'latest' => '2010-08-01', '2010-08-01' => '2010-08-01', ], 'serviceIdentifier' => 'cloudwatch', ], 'mpa' => [ 'namespace' => 'MPA', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'mpa', ], 'mq' => [ 'namespace' => 'MQ', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], 'serviceIdentifier' => 'mq', ], 'mturk-requester' => [ 'namespace' => 'MTurk', 'versions' => [ 'latest' => '2017-01-17', '2017-01-17' => '2017-01-17', ], 'serviceIdentifier' => 'mturk', ], 'mwaa' => [ 'namespace' => 'MWAA', 'versions' => [ 'latest' => '2020-07-01', '2020-07-01' => '2020-07-01', ], 'serviceIdentifier' => 'mwaa', ], 'neptune-graph' => [ 'namespace' => 'NeptuneGraph', 'versions' => [ 'latest' => '2023-11-29', '2023-11-29' => '2023-11-29', ], 'serviceIdentifier' => 'neptune_graph', ], 'neptune' => [ 'namespace' => 'Neptune', 'versions' => [ 'latest' => '2014-10-31', '2014-10-31' => '2014-10-31', ], 'serviceIdentifier' => 'neptune', ], 'neptunedata' => [ 'namespace' => 'Neptunedata', 'versions' => [ 'latest' => '2023-08-01', '2023-08-01' => '2023-08-01', ], 'serviceIdentifier' => 'neptunedata', ], 'network-firewall' => [ 'namespace' => 'NetworkFirewall', 'versions' => [ 'latest' => '2020-11-12', '2020-11-12' => '2020-11-12', ], 'serviceIdentifier' => 'network_firewall', ], 'networkflowmonitor' => [ 'namespace' => 'NetworkFlowMonitor', 'versions' => [ 'latest' => '2023-04-19', '2023-04-19' => '2023-04-19', ], 'serviceIdentifier' => 'networkflowmonitor', ], 'networkmanager' => [ 'namespace' => 'NetworkManager', 'versions' => [ 'latest' => '2019-07-05', '2019-07-05' => '2019-07-05', ], 'serviceIdentifier' => 'networkmanager', ], 'networkmonitor' => [ 'namespace' => 'NetworkMonitor', 'versions' => [ 'latest' => '2023-08-01', '2023-08-01' => '2023-08-01', ], 'serviceIdentifier' => 'networkmonitor', ], 'notifications' => [ 'namespace' => 'Notifications', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'notifications', ], 'notificationscontacts' => [ 'namespace' => 'NotificationsContacts', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'notificationscontacts', ], 'oam' => [ 'namespace' => 'OAM', 'versions' => [ 'latest' => '2022-06-10', '2022-06-10' => '2022-06-10', ], 'serviceIdentifier' => 'oam', ], 'observabilityadmin' => [ 'namespace' => 'ObservabilityAdmin', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'observabilityadmin', ], 'omics' => [ 'namespace' => 'Omics', 'versions' => [ 'latest' => '2022-11-28', '2022-11-28' => '2022-11-28', ], 'serviceIdentifier' => 'omics', ], 'opensearch' => [ 'namespace' => 'OpenSearchService', 'versions' => [ 'latest' => '2021-01-01', '2021-01-01' => '2021-01-01', ], 'serviceIdentifier' => 'opensearch', ], 'opensearchserverless' => [ 'namespace' => 'OpenSearchServerless', 'versions' => [ 'latest' => '2021-11-01', '2021-11-01' => '2021-11-01', ], 'serviceIdentifier' => 'opensearchserverless', ], 'opsworks' => [ 'namespace' => 'OpsWorks', 'versions' => [ 'latest' => '2013-02-18', '2013-02-18' => '2013-02-18', ], 'serviceIdentifier' => 'opsworks', ], 'opsworkscm' => [ 'namespace' => 'OpsWorksCM', 'versions' => [ 'latest' => '2016-11-01', '2016-11-01' => '2016-11-01', ], 'serviceIdentifier' => 'opsworkscm', ], 'organizations' => [ 'namespace' => 'Organizations', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], 'serviceIdentifier' => 'organizations', ], 'osis' => [ 'namespace' => 'OSIS', 'versions' => [ 'latest' => '2022-01-01', '2022-01-01' => '2022-01-01', ], 'serviceIdentifier' => 'osis', ], 'outposts' => [ 'namespace' => 'Outposts', 'versions' => [ 'latest' => '2019-12-03', '2019-12-03' => '2019-12-03', ], 'serviceIdentifier' => 'outposts', ], 'panorama' => [ 'namespace' => 'Panorama', 'versions' => [ 'latest' => '2019-07-24', '2019-07-24' => '2019-07-24', ], 'serviceIdentifier' => 'panorama', ], 'partnercentral-selling' => [ 'namespace' => 'PartnerCentralSelling', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'partnercentral_selling', ], 'payment-cryptography-data' => [ 'namespace' => 'PaymentCryptographyData', 'versions' => [ 'latest' => '2022-02-03', '2022-02-03' => '2022-02-03', ], 'serviceIdentifier' => 'payment_cryptography_data', ], 'payment-cryptography' => [ 'namespace' => 'PaymentCryptography', 'versions' => [ 'latest' => '2021-09-14', '2021-09-14' => '2021-09-14', ], 'serviceIdentifier' => 'payment_cryptography', ], 'pca-connector-ad' => [ 'namespace' => 'PcaConnectorAd', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'pca_connector_ad', ], 'pca-connector-scep' => [ 'namespace' => 'PcaConnectorScep', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'pca_connector_scep', ], 'pcs' => [ 'namespace' => 'PCS', 'versions' => [ 'latest' => '2023-02-10', '2023-02-10' => '2023-02-10', ], 'serviceIdentifier' => 'pcs', ], 'personalize-events' => [ 'namespace' => 'PersonalizeEvents', 'versions' => [ 'latest' => '2018-03-22', '2018-03-22' => '2018-03-22', ], 'serviceIdentifier' => 'personalize_events', ], 'personalize-runtime' => [ 'namespace' => 'PersonalizeRuntime', 'versions' => [ 'latest' => '2018-05-22', '2018-05-22' => '2018-05-22', ], 'serviceIdentifier' => 'personalize_runtime', ], 'personalize' => [ 'namespace' => 'Personalize', 'versions' => [ 'latest' => '2018-05-22', '2018-05-22' => '2018-05-22', ], 'serviceIdentifier' => 'personalize', ], 'pi' => [ 'namespace' => 'PI', 'versions' => [ 'latest' => '2018-02-27', '2018-02-27' => '2018-02-27', ], 'serviceIdentifier' => 'pi', ], 'pinpoint-email' => [ 'namespace' => 'PinpointEmail', 'versions' => [ 'latest' => '2018-07-26', '2018-07-26' => '2018-07-26', ], 'serviceIdentifier' => 'pinpoint_email', ], 'pinpoint-sms-voice-v2' => [ 'namespace' => 'PinpointSMSVoiceV2', 'versions' => [ 'latest' => '2022-03-31', '2022-03-31' => '2022-03-31', ], 'serviceIdentifier' => 'pinpoint_sms_voice_v2', ], 'pinpoint' => [ 'namespace' => 'Pinpoint', 'versions' => [ 'latest' => '2016-12-01', '2016-12-01' => '2016-12-01', ], 'serviceIdentifier' => 'pinpoint', ], 'pipes' => [ 'namespace' => 'Pipes', 'versions' => [ 'latest' => '2015-10-07', '2015-10-07' => '2015-10-07', ], 'serviceIdentifier' => 'pipes', ], 'polly' => [ 'namespace' => 'Polly', 'versions' => [ 'latest' => '2016-06-10', '2016-06-10' => '2016-06-10', ], 'serviceIdentifier' => 'polly', ], 'pricing' => [ 'namespace' => 'Pricing', 'versions' => [ 'latest' => '2017-10-15', '2017-10-15' => '2017-10-15', ], 'serviceIdentifier' => 'pricing', ], 'proton' => [ 'namespace' => 'Proton', 'versions' => [ 'latest' => '2020-07-20', '2020-07-20' => '2020-07-20', ], 'serviceIdentifier' => 'proton', ], 'qapps' => [ 'namespace' => 'QApps', 'versions' => [ 'latest' => '2023-11-27', '2023-11-27' => '2023-11-27', ], 'serviceIdentifier' => 'qapps', ], 'qbusiness' => [ 'namespace' => 'QBusiness', 'versions' => [ 'latest' => '2023-11-27', '2023-11-27' => '2023-11-27', ], 'serviceIdentifier' => 'qbusiness', ], 'qconnect' => [ 'namespace' => 'QConnect', 'versions' => [ 'latest' => '2020-10-19', '2020-10-19' => '2020-10-19', ], 'serviceIdentifier' => 'qconnect', ], 'qldb-session' => [ 'namespace' => 'QLDBSession', 'versions' => [ 'latest' => '2019-07-11', '2019-07-11' => '2019-07-11', ], 'serviceIdentifier' => 'qldb_session', ], 'qldb' => [ 'namespace' => 'QLDB', 'versions' => [ 'latest' => '2019-01-02', '2019-01-02' => '2019-01-02', ], 'serviceIdentifier' => 'qldb', ], 'quicksight' => [ 'namespace' => 'QuickSight', 'versions' => [ 'latest' => '2018-04-01', '2018-04-01' => '2018-04-01', ], 'serviceIdentifier' => 'quicksight', ], 'ram' => [ 'namespace' => 'RAM', 'versions' => [ 'latest' => '2018-01-04', '2018-01-04' => '2018-01-04', ], 'serviceIdentifier' => 'ram', ], 'rbin' => [ 'namespace' => 'RecycleBin', 'versions' => [ 'latest' => '2021-06-15', '2021-06-15' => '2021-06-15', ], 'serviceIdentifier' => 'rbin', ], 'rds-data' => [ 'namespace' => 'RDSDataService', 'versions' => [ 'latest' => '2018-08-01', '2018-08-01' => '2018-08-01', ], 'serviceIdentifier' => 'rds_data', ], 'rds' => [ 'namespace' => 'Rds', 'versions' => [ 'latest' => '2014-10-31', '2014-10-31' => '2014-10-31', '2014-09-01' => '2014-09-01', ], 'serviceIdentifier' => 'rds', ], 'redshift-data' => [ 'namespace' => 'RedshiftDataAPIService', 'versions' => [ 'latest' => '2019-12-20', '2019-12-20' => '2019-12-20', ], 'serviceIdentifier' => 'redshift_data', ], 'redshift-serverless' => [ 'namespace' => 'RedshiftServerless', 'versions' => [ 'latest' => '2021-04-21', '2021-04-21' => '2021-04-21', ], 'serviceIdentifier' => 'redshift_serverless', ], 'redshift' => [ 'namespace' => 'Redshift', 'versions' => [ 'latest' => '2012-12-01', '2012-12-01' => '2012-12-01', ], 'serviceIdentifier' => 'redshift', ], 'rekognition' => [ 'namespace' => 'Rekognition', 'versions' => [ 'latest' => '2016-06-27', '2016-06-27' => '2016-06-27', ], 'serviceIdentifier' => 'rekognition', ], 'repostspace' => [ 'namespace' => 'Repostspace', 'versions' => [ 'latest' => '2022-05-13', '2022-05-13' => '2022-05-13', ], 'serviceIdentifier' => 'repostspace', ], 'resiliencehub' => [ 'namespace' => 'ResilienceHub', 'versions' => [ 'latest' => '2020-04-30', '2020-04-30' => '2020-04-30', ], 'serviceIdentifier' => 'resiliencehub', ], 'resource-explorer-2' => [ 'namespace' => 'ResourceExplorer2', 'versions' => [ 'latest' => '2022-07-28', '2022-07-28' => '2022-07-28', ], 'serviceIdentifier' => 'resource_explorer_2', ], 'resource-groups' => [ 'namespace' => 'ResourceGroups', 'versions' => [ 'latest' => '2017-11-27', '2017-11-27' => '2017-11-27', ], 'serviceIdentifier' => 'resource_groups', ], 'resourcegroupstaggingapi' => [ 'namespace' => 'ResourceGroupsTaggingAPI', 'versions' => [ 'latest' => '2017-01-26', '2017-01-26' => '2017-01-26', ], 'serviceIdentifier' => 'resource_groups_tagging_api', ], 'robomaker' => [ 'namespace' => 'RoboMaker', 'versions' => [ 'latest' => '2018-06-29', '2018-06-29' => '2018-06-29', ], 'serviceIdentifier' => 'robomaker', ], 'rolesanywhere' => [ 'namespace' => 'RolesAnywhere', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'rolesanywhere', ], 'route53-recovery-cluster' => [ 'namespace' => 'Route53RecoveryCluster', 'versions' => [ 'latest' => '2019-12-02', '2019-12-02' => '2019-12-02', ], 'serviceIdentifier' => 'route53_recovery_cluster', ], 'route53-recovery-control-config' => [ 'namespace' => 'Route53RecoveryControlConfig', 'versions' => [ 'latest' => '2020-11-02', '2020-11-02' => '2020-11-02', ], 'serviceIdentifier' => 'route53_recovery_control_config', ], 'route53-recovery-readiness' => [ 'namespace' => 'Route53RecoveryReadiness', 'versions' => [ 'latest' => '2019-12-02', '2019-12-02' => '2019-12-02', ], 'serviceIdentifier' => 'route53_recovery_readiness', ], 'route53' => [ 'namespace' => 'Route53', 'versions' => [ 'latest' => '2013-04-01', '2013-04-01' => '2013-04-01', ], 'serviceIdentifier' => 'route_53', ], 'route53domains' => [ 'namespace' => 'Route53Domains', 'versions' => [ 'latest' => '2014-05-15', '2014-05-15' => '2014-05-15', ], 'serviceIdentifier' => 'route_53_domains', ], 'route53profiles' => [ 'namespace' => 'Route53Profiles', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'route53profiles', ], 'route53resolver' => [ 'namespace' => 'Route53Resolver', 'versions' => [ 'latest' => '2018-04-01', '2018-04-01' => '2018-04-01', ], 'serviceIdentifier' => 'route53resolver', ], 'rum' => [ 'namespace' => 'CloudWatchRUM', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'rum', ], 'runtime.lex.v2' => [ 'namespace' => 'LexRuntimeV2', 'versions' => [ 'latest' => '2020-08-07', '2020-08-07' => '2020-08-07', ], 'serviceIdentifier' => 'lex_runtime_v2', ], 'runtime.lex' => [ 'namespace' => 'LexRuntimeService', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], 'serviceIdentifier' => 'lex_runtime_service', ], 'runtime.sagemaker' => [ 'namespace' => 'SageMakerRuntime', 'versions' => [ 'latest' => '2017-05-13', '2017-05-13' => '2017-05-13', ], 'serviceIdentifier' => 'sagemaker_runtime', ], 's3' => [ 'namespace' => 'S3', 'versions' => [ 'latest' => '2006-03-01', '2006-03-01' => '2006-03-01', ], 'serviceIdentifier' => 's3', ], 's3control' => [ 'namespace' => 'S3Control', 'versions' => [ 'latest' => '2018-08-20', '2018-08-20' => '2018-08-20', ], 'serviceIdentifier' => 's3_control', ], 's3outposts' => [ 'namespace' => 'S3Outposts', 'versions' => [ 'latest' => '2017-07-25', '2017-07-25' => '2017-07-25', ], 'serviceIdentifier' => 's3outposts', ], 's3tables' => [ 'namespace' => 'S3Tables', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 's3tables', ], 'sagemaker-a2i-runtime' => [ 'namespace' => 'AugmentedAIRuntime', 'versions' => [ 'latest' => '2019-11-07', '2019-11-07' => '2019-11-07', ], 'serviceIdentifier' => 'sagemaker_a2i_runtime', ], 'sagemaker-edge' => [ 'namespace' => 'SagemakerEdgeManager', 'versions' => [ 'latest' => '2020-09-23', '2020-09-23' => '2020-09-23', ], 'serviceIdentifier' => 'sagemaker_edge', ], 'sagemaker-featurestore-runtime' => [ 'namespace' => 'SageMakerFeatureStoreRuntime', 'versions' => [ 'latest' => '2020-07-01', '2020-07-01' => '2020-07-01', ], 'serviceIdentifier' => 'sagemaker_featurestore_runtime', ], 'sagemaker-geospatial' => [ 'namespace' => 'SageMakerGeospatial', 'versions' => [ 'latest' => '2020-05-27', '2020-05-27' => '2020-05-27', ], 'serviceIdentifier' => 'sagemaker_geospatial', ], 'sagemaker-metrics' => [ 'namespace' => 'SageMakerMetrics', 'versions' => [ 'latest' => '2022-09-30', '2022-09-30' => '2022-09-30', ], 'serviceIdentifier' => 'sagemaker_metrics', ], 'sagemaker' => [ 'namespace' => 'SageMaker', 'versions' => [ 'latest' => '2017-07-24', '2017-07-24' => '2017-07-24', ], 'serviceIdentifier' => 'sagemaker', ], 'savingsplans' => [ 'namespace' => 'SavingsPlans', 'versions' => [ 'latest' => '2019-06-28', '2019-06-28' => '2019-06-28', ], 'serviceIdentifier' => 'savingsplans', ], 'scheduler' => [ 'namespace' => 'Scheduler', 'versions' => [ 'latest' => '2021-06-30', '2021-06-30' => '2021-06-30', ], 'serviceIdentifier' => 'scheduler', ], 'schemas' => [ 'namespace' => 'Schemas', 'versions' => [ 'latest' => '2019-12-02', '2019-12-02' => '2019-12-02', ], 'serviceIdentifier' => 'schemas', ], 'secretsmanager' => [ 'namespace' => 'SecretsManager', 'versions' => [ 'latest' => '2017-10-17', '2017-10-17' => '2017-10-17', ], 'serviceIdentifier' => 'secrets_manager', ], 'security-ir' => [ 'namespace' => 'SecurityIR', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'security_ir', ], 'securityhub' => [ 'namespace' => 'SecurityHub', 'versions' => [ 'latest' => '2018-10-26', '2018-10-26' => '2018-10-26', ], 'serviceIdentifier' => 'securityhub', ], 'securitylake' => [ 'namespace' => 'SecurityLake', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'securitylake', ], 'serverlessrepo' => [ 'namespace' => 'ServerlessApplicationRepository', 'versions' => [ 'latest' => '2017-09-08', '2017-09-08' => '2017-09-08', ], 'serviceIdentifier' => 'serverlessapplicationrepository', ], 'service-quotas' => [ 'namespace' => 'ServiceQuotas', 'versions' => [ 'latest' => '2019-06-24', '2019-06-24' => '2019-06-24', ], 'serviceIdentifier' => 'service_quotas', ], 'servicecatalog-appregistry' => [ 'namespace' => 'AppRegistry', 'versions' => [ 'latest' => '2020-06-24', '2020-06-24' => '2020-06-24', ], 'serviceIdentifier' => 'service_catalog_appregistry', ], 'servicecatalog' => [ 'namespace' => 'ServiceCatalog', 'versions' => [ 'latest' => '2015-12-10', '2015-12-10' => '2015-12-10', ], 'serviceIdentifier' => 'service_catalog', ], 'servicediscovery' => [ 'namespace' => 'ServiceDiscovery', 'versions' => [ 'latest' => '2017-03-14', '2017-03-14' => '2017-03-14', ], 'serviceIdentifier' => 'servicediscovery', ], 'sesv2' => [ 'namespace' => 'SesV2', 'versions' => [ 'latest' => '2019-09-27', '2019-09-27' => '2019-09-27', ], 'serviceIdentifier' => 'sesv2', ], 'shield' => [ 'namespace' => 'Shield', 'versions' => [ 'latest' => '2016-06-02', '2016-06-02' => '2016-06-02', ], 'serviceIdentifier' => 'shield', ], 'signer' => [ 'namespace' => 'signer', 'versions' => [ 'latest' => '2017-08-25', '2017-08-25' => '2017-08-25', ], 'serviceIdentifier' => 'signer', ], 'simspaceweaver' => [ 'namespace' => 'SimSpaceWeaver', 'versions' => [ 'latest' => '2022-10-28', '2022-10-28' => '2022-10-28', ], 'serviceIdentifier' => 'simspaceweaver', ], 'sms-voice' => [ 'namespace' => 'PinpointSMSVoice', 'versions' => [ 'latest' => '2018-09-05', '2018-09-05' => '2018-09-05', ], 'serviceIdentifier' => 'pinpoint_sms_voice', ], 'sms' => [ 'namespace' => 'Sms', 'versions' => [ 'latest' => '2016-10-24', '2016-10-24' => '2016-10-24', ], 'serviceIdentifier' => 'sms', ], 'snow-device-management' => [ 'namespace' => 'SnowDeviceManagement', 'versions' => [ 'latest' => '2021-08-04', '2021-08-04' => '2021-08-04', ], 'serviceIdentifier' => 'snow_device_management', ], 'snowball' => [ 'namespace' => 'SnowBall', 'versions' => [ 'latest' => '2016-06-30', '2016-06-30' => '2016-06-30', ], 'serviceIdentifier' => 'snowball', ], 'sns' => [ 'namespace' => 'Sns', 'versions' => [ 'latest' => '2010-03-31', '2010-03-31' => '2010-03-31', ], 'serviceIdentifier' => 'sns', ], 'socialmessaging' => [ 'namespace' => 'SocialMessaging', 'versions' => [ 'latest' => '2024-01-01', '2024-01-01' => '2024-01-01', ], 'serviceIdentifier' => 'socialmessaging', ], 'sqs' => [ 'namespace' => 'Sqs', 'versions' => [ 'latest' => '2012-11-05', '2012-11-05' => '2012-11-05', ], 'serviceIdentifier' => 'sqs', ], 'ssm-contacts' => [ 'namespace' => 'SSMContacts', 'versions' => [ 'latest' => '2021-05-03', '2021-05-03' => '2021-05-03', ], 'serviceIdentifier' => 'ssm_contacts', ], 'ssm-guiconnect' => [ 'namespace' => 'SSMGuiConnect', 'versions' => [ 'latest' => '2021-05-01', '2021-05-01' => '2021-05-01', ], 'serviceIdentifier' => 'ssm_guiconnect', ], 'ssm-incidents' => [ 'namespace' => 'SSMIncidents', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'ssm_incidents', ], 'ssm-quicksetup' => [ 'namespace' => 'SSMQuickSetup', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'ssm_quicksetup', ], 'ssm-sap' => [ 'namespace' => 'SsmSap', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'ssm_sap', ], 'ssm' => [ 'namespace' => 'Ssm', 'versions' => [ 'latest' => '2014-11-06', '2014-11-06' => '2014-11-06', ], 'serviceIdentifier' => 'ssm', ], 'sso-admin' => [ 'namespace' => 'SSOAdmin', 'versions' => [ 'latest' => '2020-07-20', '2020-07-20' => '2020-07-20', ], 'serviceIdentifier' => 'sso_admin', ], 'sso-oidc' => [ 'namespace' => 'SSOOIDC', 'versions' => [ 'latest' => '2019-06-10', '2019-06-10' => '2019-06-10', ], 'serviceIdentifier' => 'sso_oidc', ], 'sso' => [ 'namespace' => 'SSO', 'versions' => [ 'latest' => '2019-06-10', '2019-06-10' => '2019-06-10', ], 'serviceIdentifier' => 'sso', ], 'states' => [ 'namespace' => 'Sfn', 'versions' => [ 'latest' => '2016-11-23', '2016-11-23' => '2016-11-23', ], 'serviceIdentifier' => 'sfn', ], 'storagegateway' => [ 'namespace' => 'StorageGateway', 'versions' => [ 'latest' => '2013-06-30', '2013-06-30' => '2013-06-30', ], 'serviceIdentifier' => 'storage_gateway', ], 'streams.dynamodb' => [ 'namespace' => 'DynamoDbStreams', 'versions' => [ 'latest' => '2012-08-10', '2012-08-10' => '2012-08-10', ], 'serviceIdentifier' => 'dynamodb_streams', ], 'sts' => [ 'namespace' => 'Sts', 'versions' => [ 'latest' => '2011-06-15', '2011-06-15' => '2011-06-15', ], 'serviceIdentifier' => 'sts', ], 'supplychain' => [ 'namespace' => 'SupplyChain', 'versions' => [ 'latest' => '2024-01-01', '2024-01-01' => '2024-01-01', ], 'serviceIdentifier' => 'supplychain', ], 'support-app' => [ 'namespace' => 'SupportApp', 'versions' => [ 'latest' => '2021-08-20', '2021-08-20' => '2021-08-20', ], 'serviceIdentifier' => 'support_app', ], 'support' => [ 'namespace' => 'Support', 'versions' => [ 'latest' => '2013-04-15', '2013-04-15' => '2013-04-15', ], 'serviceIdentifier' => 'support', ], 'swf' => [ 'namespace' => 'Swf', 'versions' => [ 'latest' => '2012-01-25', '2012-01-25' => '2012-01-25', ], 'serviceIdentifier' => 'swf', ], 'synthetics' => [ 'namespace' => 'Synthetics', 'versions' => [ 'latest' => '2017-10-11', '2017-10-11' => '2017-10-11', ], 'serviceIdentifier' => 'synthetics', ], 'taxsettings' => [ 'namespace' => 'TaxSettings', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'taxsettings', ], 'textract' => [ 'namespace' => 'Textract', 'versions' => [ 'latest' => '2018-06-27', '2018-06-27' => '2018-06-27', ], 'serviceIdentifier' => 'textract', ], 'timestream-influxdb' => [ 'namespace' => 'TimestreamInfluxDB', 'versions' => [ 'latest' => '2023-01-27', '2023-01-27' => '2023-01-27', ], 'serviceIdentifier' => 'timestream_influxdb', ], 'timestream-query' => [ 'namespace' => 'TimestreamQuery', 'versions' => [ 'latest' => '2018-11-01', '2018-11-01' => '2018-11-01', ], 'serviceIdentifier' => 'timestream_query', ], 'timestream-write' => [ 'namespace' => 'TimestreamWrite', 'versions' => [ 'latest' => '2018-11-01', '2018-11-01' => '2018-11-01', ], 'serviceIdentifier' => 'timestream_write', ], 'tnb' => [ 'namespace' => 'Tnb', 'versions' => [ 'latest' => '2008-10-21', '2008-10-21' => '2008-10-21', ], 'serviceIdentifier' => 'tnb', ], 'transcribe' => [ 'namespace' => 'TranscribeService', 'versions' => [ 'latest' => '2017-10-26', '2017-10-26' => '2017-10-26', ], 'serviceIdentifier' => 'transcribe', ], 'transfer' => [ 'namespace' => 'Transfer', 'versions' => [ 'latest' => '2018-11-05', '2018-11-05' => '2018-11-05', ], 'serviceIdentifier' => 'transfer', ], 'translate' => [ 'namespace' => 'Translate', 'versions' => [ 'latest' => '2017-07-01', '2017-07-01' => '2017-07-01', ], 'serviceIdentifier' => 'translate', ], 'trustedadvisor' => [ 'namespace' => 'TrustedAdvisor', 'versions' => [ 'latest' => '2022-09-15', '2022-09-15' => '2022-09-15', ], 'serviceIdentifier' => 'trustedadvisor', ], 'verifiedpermissions' => [ 'namespace' => 'VerifiedPermissions', 'versions' => [ 'latest' => '2021-12-01', '2021-12-01' => '2021-12-01', ], 'serviceIdentifier' => 'verifiedpermissions', ], 'voice-id' => [ 'namespace' => 'VoiceID', 'versions' => [ 'latest' => '2021-09-27', '2021-09-27' => '2021-09-27', ], 'serviceIdentifier' => 'voice_id', ], 'vpc-lattice' => [ 'namespace' => 'VPCLattice', 'versions' => [ 'latest' => '2022-11-30', '2022-11-30' => '2022-11-30', ], 'serviceIdentifier' => 'vpc_lattice', ], 'waf-regional' => [ 'namespace' => 'WafRegional', 'versions' => [ 'latest' => '2016-11-28', '2016-11-28' => '2016-11-28', ], 'serviceIdentifier' => 'waf_regional', ], 'waf' => [ 'namespace' => 'Waf', 'versions' => [ 'latest' => '2015-08-24', '2015-08-24' => '2015-08-24', ], 'serviceIdentifier' => 'waf', ], 'wafv2' => [ 'namespace' => 'WAFV2', 'versions' => [ 'latest' => '2019-07-29', '2019-07-29' => '2019-07-29', ], 'serviceIdentifier' => 'wafv2', ], 'wellarchitected' => [ 'namespace' => 'WellArchitected', 'versions' => [ 'latest' => '2020-03-31', '2020-03-31' => '2020-03-31', ], 'serviceIdentifier' => 'wellarchitected', ], 'wisdom' => [ 'namespace' => 'ConnectWisdomService', 'versions' => [ 'latest' => '2020-10-19', '2020-10-19' => '2020-10-19', ], 'serviceIdentifier' => 'wisdom', ], 'workdocs' => [ 'namespace' => 'WorkDocs', 'versions' => [ 'latest' => '2016-05-01', '2016-05-01' => '2016-05-01', ], 'serviceIdentifier' => 'workdocs', ], 'workmail' => [ 'namespace' => 'WorkMail', 'versions' => [ 'latest' => '2017-10-01', '2017-10-01' => '2017-10-01', ], 'serviceIdentifier' => 'workmail', ], 'workmailmessageflow' => [ 'namespace' => 'WorkMailMessageFlow', 'versions' => [ 'latest' => '2019-05-01', '2019-05-01' => '2019-05-01', ], 'serviceIdentifier' => 'workmailmessageflow', ], 'workspaces-thin-client' => [ 'namespace' => 'WorkSpacesThinClient', 'versions' => [ 'latest' => '2023-08-22', '2023-08-22' => '2023-08-22', ], 'serviceIdentifier' => 'workspaces_thin_client', ], 'workspaces-web' => [ 'namespace' => 'WorkSpacesWeb', 'versions' => [ 'latest' => '2020-07-08', '2020-07-08' => '2020-07-08', ], 'serviceIdentifier' => 'workspaces_web', ], 'workspaces' => [ 'namespace' => 'WorkSpaces', 'versions' => [ 'latest' => '2015-04-08', '2015-04-08' => '2015-04-08', ], 'serviceIdentifier' => 'workspaces', ], 'xray' => [ 'namespace' => 'XRay', 'versions' => [ 'latest' => '2016-04-12', '2016-04-12' => '2016-04-12', ], 'serviceIdentifier' => 'xray', ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/partitions.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/partitions.json.php
new file mode 100644
index 000000000..e67ac39fd
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/partitions.json.php
@@ -0,0 +1,3 @@
+ [ [ 'id' => 'aws', 'outputs' => [ 'dnsSuffix' => 'amazonaws.com', 'dualStackDnsSuffix' => 'api.aws', 'implicitGlobalRegion' => 'us-east-1', 'name' => 'aws', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$', 'regions' => [ 'af-south-1' => [ 'description' => 'Africa (Cape Town)', ], 'ap-east-1' => [ 'description' => 'Asia Pacific (Hong Kong)', ], 'ap-east-2' => [ 'description' => 'Asia Pacific (Taipei)', ], 'ap-northeast-1' => [ 'description' => 'Asia Pacific (Tokyo)', ], 'ap-northeast-2' => [ 'description' => 'Asia Pacific (Seoul)', ], 'ap-northeast-3' => [ 'description' => 'Asia Pacific (Osaka)', ], 'ap-south-1' => [ 'description' => 'Asia Pacific (Mumbai)', ], 'ap-south-2' => [ 'description' => 'Asia Pacific (Hyderabad)', ], 'ap-southeast-1' => [ 'description' => 'Asia Pacific (Singapore)', ], 'ap-southeast-2' => [ 'description' => 'Asia Pacific (Sydney)', ], 'ap-southeast-3' => [ 'description' => 'Asia Pacific (Jakarta)', ], 'ap-southeast-4' => [ 'description' => 'Asia Pacific (Melbourne)', ], 'ap-southeast-5' => [ 'description' => 'Asia Pacific (Malaysia)', ], 'ap-southeast-7' => [ 'description' => 'Asia Pacific (Thailand)', ], 'aws-global' => [ 'description' => 'AWS Standard global region', ], 'ca-central-1' => [ 'description' => 'Canada (Central)', ], 'ca-west-1' => [ 'description' => 'Canada West (Calgary)', ], 'eu-central-1' => [ 'description' => 'Europe (Frankfurt)', ], 'eu-central-2' => [ 'description' => 'Europe (Zurich)', ], 'eu-north-1' => [ 'description' => 'Europe (Stockholm)', ], 'eu-south-1' => [ 'description' => 'Europe (Milan)', ], 'eu-south-2' => [ 'description' => 'Europe (Spain)', ], 'eu-west-1' => [ 'description' => 'Europe (Ireland)', ], 'eu-west-2' => [ 'description' => 'Europe (London)', ], 'eu-west-3' => [ 'description' => 'Europe (Paris)', ], 'il-central-1' => [ 'description' => 'Israel (Tel Aviv)', ], 'me-central-1' => [ 'description' => 'Middle East (UAE)', ], 'me-south-1' => [ 'description' => 'Middle East (Bahrain)', ], 'mx-central-1' => [ 'description' => 'Mexico (Central)', ], 'sa-east-1' => [ 'description' => 'South America (Sao Paulo)', ], 'us-east-1' => [ 'description' => 'US East (N. Virginia)', ], 'us-east-2' => [ 'description' => 'US East (Ohio)', ], 'us-west-1' => [ 'description' => 'US West (N. California)', ], 'us-west-2' => [ 'description' => 'US West (Oregon)', ], ], ], [ 'id' => 'aws-cn', 'outputs' => [ 'dnsSuffix' => 'amazonaws.com.cn', 'dualStackDnsSuffix' => 'api.amazonwebservices.com.cn', 'implicitGlobalRegion' => 'cn-northwest-1', 'name' => 'aws-cn', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^cn\\-\\w+\\-\\d+$', 'regions' => [ 'aws-cn-global' => [ 'description' => 'AWS China global region', ], 'cn-north-1' => [ 'description' => 'China (Beijing)', ], 'cn-northwest-1' => [ 'description' => 'China (Ningxia)', ], ], ], [ 'id' => 'aws-us-gov', 'outputs' => [ 'dnsSuffix' => 'amazonaws.com', 'dualStackDnsSuffix' => 'api.aws', 'implicitGlobalRegion' => 'us-gov-west-1', 'name' => 'aws-us-gov', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-gov\\-\\w+\\-\\d+$', 'regions' => [ 'aws-us-gov-global' => [ 'description' => 'AWS GovCloud (US) global region', ], 'us-gov-east-1' => [ 'description' => 'AWS GovCloud (US-East)', ], 'us-gov-west-1' => [ 'description' => 'AWS GovCloud (US-West)', ], ], ], [ 'id' => 'aws-iso', 'outputs' => [ 'dnsSuffix' => 'c2s.ic.gov', 'dualStackDnsSuffix' => 'c2s.ic.gov', 'implicitGlobalRegion' => 'us-iso-east-1', 'name' => 'aws-iso', 'supportsDualStack' => false, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-iso\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-global' => [ 'description' => 'AWS ISO (US) global region', ], 'us-iso-east-1' => [ 'description' => 'US ISO East', ], 'us-iso-west-1' => [ 'description' => 'US ISO WEST', ], ], ], [ 'id' => 'aws-iso-b', 'outputs' => [ 'dnsSuffix' => 'sc2s.sgov.gov', 'dualStackDnsSuffix' => 'sc2s.sgov.gov', 'implicitGlobalRegion' => 'us-isob-east-1', 'name' => 'aws-iso-b', 'supportsDualStack' => false, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-isob\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-b-global' => [ 'description' => 'AWS ISOB (US) global region', ], 'us-isob-east-1' => [ 'description' => 'US ISOB East (Ohio)', ], ], ], [ 'id' => 'aws-iso-e', 'outputs' => [ 'dnsSuffix' => 'cloud.adc-e.uk', 'dualStackDnsSuffix' => 'cloud.adc-e.uk', 'implicitGlobalRegion' => 'eu-isoe-west-1', 'name' => 'aws-iso-e', 'supportsDualStack' => false, 'supportsFIPS' => true, ], 'regionRegex' => '^eu\\-isoe\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-e-global' => [ 'description' => 'AWS ISOE (Europe) global region', ], 'eu-isoe-west-1' => [ 'description' => 'EU ISOE West', ], ], ], [ 'id' => 'aws-iso-f', 'outputs' => [ 'dnsSuffix' => 'csp.hci.ic.gov', 'dualStackDnsSuffix' => 'csp.hci.ic.gov', 'implicitGlobalRegion' => 'us-isof-south-1', 'name' => 'aws-iso-f', 'supportsDualStack' => false, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-isof\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-f-global' => [ 'description' => 'AWS ISOF global region', ], 'us-isof-east-1' => [ 'description' => 'US ISOF EAST', ], 'us-isof-south-1' => [ 'description' => 'US ISOF SOUTH', ], ], ], [ 'id' => 'aws-eusc', 'outputs' => [ 'dnsSuffix' => 'amazonaws.eu', 'dualStackDnsSuffix' => 'amazonaws.eu', 'implicitGlobalRegion' => 'eusc-de-east-1', 'name' => 'aws-eusc', 'supportsDualStack' => false, 'supportsFIPS' => true, ], 'regionRegex' => '^eusc\\-(de)\\-\\w+\\-\\d+$', 'regions' => [ 'eusc-de-east-1' => [ 'description' => 'EU (Germany)', ], ], ], ], 'version' => '1.1',];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php
new file mode 100644
index 000000000..3fb36298e
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php
@@ -0,0 +1,3 @@
+ '2.0', 'metadata' => [ 'apiVersion' => '2006-03-01', 'checksumFormat' => 'md5', 'endpointPrefix' => 's3', 'globalEndpoint' => 's3.amazonaws.com', 'protocol' => 'rest-xml', 'protocols' => [ 'rest-xml', ], 'serviceAbbreviation' => 'Amazon S3', 'serviceFullName' => 'Amazon Simple Storage Service', 'serviceId' => 'S3', 'signatureVersion' => 's3', 'uid' => 's3-2006-03-01', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AbortMultipartUpload' => [ 'name' => 'AbortMultipartUpload', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}/{Key+}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'AbortMultipartUploadRequest', ], 'output' => [ 'shape' => 'AbortMultipartUploadOutput', ], 'errors' => [ [ 'shape' => 'NoSuchUpload', ], ], ], 'CompleteMultipartUpload' => [ 'name' => 'CompleteMultipartUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'CompleteMultipartUploadRequest', ], 'output' => [ 'shape' => 'CompleteMultipartUploadOutput', ], ], 'CopyObject' => [ 'name' => 'CopyObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'CopyObjectRequest', ], 'output' => [ 'shape' => 'CopyObjectOutput', ], 'errors' => [ [ 'shape' => 'ObjectNotInActiveTierError', ], ], 'staticContextParams' => [ 'DisableS3ExpressSessionAuth' => [ 'value' => true, ], ], ], 'CreateBucket' => [ 'name' => 'CreateBucket', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}', ], 'input' => [ 'shape' => 'CreateBucketRequest', ], 'output' => [ 'shape' => 'CreateBucketOutput', ], 'errors' => [ [ 'shape' => 'BucketAlreadyExists', ], [ 'shape' => 'BucketAlreadyOwnedByYou', ], ], 'staticContextParams' => [ 'DisableAccessPoints' => [ 'value' => true, ], 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'CreateBucketMetadataTableConfiguration' => [ 'name' => 'CreateBucketMetadataTableConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}?metadataTable', ], 'input' => [ 'shape' => 'CreateBucketMetadataTableConfigurationRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'CreateMultipartUpload' => [ 'name' => 'CreateMultipartUpload', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}/{Key+}?uploads', ], 'input' => [ 'shape' => 'CreateMultipartUploadRequest', ], 'output' => [ 'shape' => 'CreateMultipartUploadOutput', ], ], 'CreateSession' => [ 'name' => 'CreateSession', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?session', ], 'input' => [ 'shape' => 'CreateSessionRequest', ], 'output' => [ 'shape' => 'CreateSessionOutput', ], 'errors' => [ [ 'shape' => 'NoSuchBucket', ], ], 'staticContextParams' => [ 'DisableS3ExpressSessionAuth' => [ 'value' => true, ], ], ], 'DeleteBucket' => [ 'name' => 'DeleteBucket', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketAnalyticsConfiguration' => [ 'name' => 'DeleteBucketAnalyticsConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?analytics', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketAnalyticsConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketCors' => [ 'name' => 'DeleteBucketCors', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?cors', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketCorsRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketEncryption' => [ 'name' => 'DeleteBucketEncryption', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?encryption', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketEncryptionRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketIntelligentTieringConfiguration' => [ 'name' => 'DeleteBucketIntelligentTieringConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?intelligent-tiering', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketIntelligentTieringConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketInventoryConfiguration' => [ 'name' => 'DeleteBucketInventoryConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?inventory', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketInventoryConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketLifecycle' => [ 'name' => 'DeleteBucketLifecycle', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?lifecycle', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketLifecycleRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketMetadataTableConfiguration' => [ 'name' => 'DeleteBucketMetadataTableConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?metadataTable', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketMetadataTableConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketMetricsConfiguration' => [ 'name' => 'DeleteBucketMetricsConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?metrics', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketMetricsConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketOwnershipControls' => [ 'name' => 'DeleteBucketOwnershipControls', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?ownershipControls', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketOwnershipControlsRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketPolicy' => [ 'name' => 'DeleteBucketPolicy', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?policy', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketPolicyRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketReplication' => [ 'name' => 'DeleteBucketReplication', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?replication', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketReplicationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketTagging' => [ 'name' => 'DeleteBucketTagging', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?tagging', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketTaggingRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteBucketWebsite' => [ 'name' => 'DeleteBucketWebsite', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?website', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketWebsiteRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'DeleteObject' => [ 'name' => 'DeleteObject', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}/{Key+}', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteObjectRequest', ], 'output' => [ 'shape' => 'DeleteObjectOutput', ], ], 'DeleteObjectTagging' => [ 'name' => 'DeleteObjectTagging', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}/{Key+}?tagging', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteObjectTaggingRequest', ], 'output' => [ 'shape' => 'DeleteObjectTaggingOutput', ], ], 'DeleteObjects' => [ 'name' => 'DeleteObjects', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}?delete', ], 'input' => [ 'shape' => 'DeleteObjectsRequest', ], 'output' => [ 'shape' => 'DeleteObjectsOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], ], 'DeletePublicAccessBlock' => [ 'name' => 'DeletePublicAccessBlock', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?publicAccessBlock', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeletePublicAccessBlockRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketAccelerateConfiguration' => [ 'name' => 'GetBucketAccelerateConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?accelerate', ], 'input' => [ 'shape' => 'GetBucketAccelerateConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketAccelerateConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketAcl' => [ 'name' => 'GetBucketAcl', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?acl', ], 'input' => [ 'shape' => 'GetBucketAclRequest', ], 'output' => [ 'shape' => 'GetBucketAclOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketAnalyticsConfiguration' => [ 'name' => 'GetBucketAnalyticsConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?analytics', ], 'input' => [ 'shape' => 'GetBucketAnalyticsConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketAnalyticsConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketCors' => [ 'name' => 'GetBucketCors', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?cors', ], 'input' => [ 'shape' => 'GetBucketCorsRequest', ], 'output' => [ 'shape' => 'GetBucketCorsOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketEncryption' => [ 'name' => 'GetBucketEncryption', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?encryption', ], 'input' => [ 'shape' => 'GetBucketEncryptionRequest', ], 'output' => [ 'shape' => 'GetBucketEncryptionOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketIntelligentTieringConfiguration' => [ 'name' => 'GetBucketIntelligentTieringConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?intelligent-tiering', ], 'input' => [ 'shape' => 'GetBucketIntelligentTieringConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketIntelligentTieringConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketInventoryConfiguration' => [ 'name' => 'GetBucketInventoryConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?inventory', ], 'input' => [ 'shape' => 'GetBucketInventoryConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketInventoryConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketLifecycle' => [ 'name' => 'GetBucketLifecycle', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'GetBucketLifecycleRequest', ], 'output' => [ 'shape' => 'GetBucketLifecycleOutput', ], 'deprecated' => true, 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketLifecycleConfiguration' => [ 'name' => 'GetBucketLifecycleConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'GetBucketLifecycleConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketLifecycleConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketLocation' => [ 'name' => 'GetBucketLocation', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?location', ], 'input' => [ 'shape' => 'GetBucketLocationRequest', ], 'output' => [ 'shape' => 'GetBucketLocationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketLogging' => [ 'name' => 'GetBucketLogging', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?logging', ], 'input' => [ 'shape' => 'GetBucketLoggingRequest', ], 'output' => [ 'shape' => 'GetBucketLoggingOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketMetadataTableConfiguration' => [ 'name' => 'GetBucketMetadataTableConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?metadataTable', ], 'input' => [ 'shape' => 'GetBucketMetadataTableConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketMetadataTableConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketMetricsConfiguration' => [ 'name' => 'GetBucketMetricsConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?metrics', ], 'input' => [ 'shape' => 'GetBucketMetricsConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketMetricsConfigurationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketNotification' => [ 'name' => 'GetBucketNotification', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?notification', ], 'input' => [ 'shape' => 'GetBucketNotificationConfigurationRequest', ], 'output' => [ 'shape' => 'NotificationConfigurationDeprecated', ], 'deprecated' => true, 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketNotificationConfiguration' => [ 'name' => 'GetBucketNotificationConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?notification', ], 'input' => [ 'shape' => 'GetBucketNotificationConfigurationRequest', ], 'output' => [ 'shape' => 'NotificationConfiguration', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketOwnershipControls' => [ 'name' => 'GetBucketOwnershipControls', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?ownershipControls', ], 'input' => [ 'shape' => 'GetBucketOwnershipControlsRequest', ], 'output' => [ 'shape' => 'GetBucketOwnershipControlsOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketPolicy' => [ 'name' => 'GetBucketPolicy', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?policy', ], 'input' => [ 'shape' => 'GetBucketPolicyRequest', ], 'output' => [ 'shape' => 'GetBucketPolicyOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketPolicyStatus' => [ 'name' => 'GetBucketPolicyStatus', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?policyStatus', ], 'input' => [ 'shape' => 'GetBucketPolicyStatusRequest', ], 'output' => [ 'shape' => 'GetBucketPolicyStatusOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketReplication' => [ 'name' => 'GetBucketReplication', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?replication', ], 'input' => [ 'shape' => 'GetBucketReplicationRequest', ], 'output' => [ 'shape' => 'GetBucketReplicationOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketRequestPayment' => [ 'name' => 'GetBucketRequestPayment', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?requestPayment', ], 'input' => [ 'shape' => 'GetBucketRequestPaymentRequest', ], 'output' => [ 'shape' => 'GetBucketRequestPaymentOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketTagging' => [ 'name' => 'GetBucketTagging', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?tagging', ], 'input' => [ 'shape' => 'GetBucketTaggingRequest', ], 'output' => [ 'shape' => 'GetBucketTaggingOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketVersioning' => [ 'name' => 'GetBucketVersioning', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?versioning', ], 'input' => [ 'shape' => 'GetBucketVersioningRequest', ], 'output' => [ 'shape' => 'GetBucketVersioningOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetBucketWebsite' => [ 'name' => 'GetBucketWebsite', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?website', ], 'input' => [ 'shape' => 'GetBucketWebsiteRequest', ], 'output' => [ 'shape' => 'GetBucketWebsiteOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'GetObject' => [ 'name' => 'GetObject', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'GetObjectRequest', ], 'output' => [ 'shape' => 'GetObjectOutput', ], 'errors' => [ [ 'shape' => 'NoSuchKey', ], [ 'shape' => 'InvalidObjectState', ], ], 'httpChecksum' => [ 'requestValidationModeMember' => 'ChecksumMode', 'responseAlgorithms' => [ 'CRC64NVME', 'CRC32', 'CRC32C', 'SHA256', 'SHA1', ], ], ], 'GetObjectAcl' => [ 'name' => 'GetObjectAcl', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?acl', ], 'input' => [ 'shape' => 'GetObjectAclRequest', ], 'output' => [ 'shape' => 'GetObjectAclOutput', ], 'errors' => [ [ 'shape' => 'NoSuchKey', ], ], ], 'GetObjectAttributes' => [ 'name' => 'GetObjectAttributes', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?attributes', ], 'input' => [ 'shape' => 'GetObjectAttributesRequest', ], 'output' => [ 'shape' => 'GetObjectAttributesOutput', ], 'errors' => [ [ 'shape' => 'NoSuchKey', ], ], ], 'GetObjectLegalHold' => [ 'name' => 'GetObjectLegalHold', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?legal-hold', ], 'input' => [ 'shape' => 'GetObjectLegalHoldRequest', ], 'output' => [ 'shape' => 'GetObjectLegalHoldOutput', ], ], 'GetObjectLockConfiguration' => [ 'name' => 'GetObjectLockConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?object-lock', ], 'input' => [ 'shape' => 'GetObjectLockConfigurationRequest', ], 'output' => [ 'shape' => 'GetObjectLockConfigurationOutput', ], ], 'GetObjectRetention' => [ 'name' => 'GetObjectRetention', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?retention', ], 'input' => [ 'shape' => 'GetObjectRetentionRequest', ], 'output' => [ 'shape' => 'GetObjectRetentionOutput', ], ], 'GetObjectTagging' => [ 'name' => 'GetObjectTagging', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?tagging', ], 'input' => [ 'shape' => 'GetObjectTaggingRequest', ], 'output' => [ 'shape' => 'GetObjectTaggingOutput', ], ], 'GetObjectTorrent' => [ 'name' => 'GetObjectTorrent', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}?torrent', ], 'input' => [ 'shape' => 'GetObjectTorrentRequest', ], 'output' => [ 'shape' => 'GetObjectTorrentOutput', ], ], 'GetPublicAccessBlock' => [ 'name' => 'GetPublicAccessBlock', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?publicAccessBlock', ], 'input' => [ 'shape' => 'GetPublicAccessBlockRequest', ], 'output' => [ 'shape' => 'GetPublicAccessBlockOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'HeadBucket' => [ 'name' => 'HeadBucket', 'http' => [ 'method' => 'HEAD', 'requestUri' => '/{Bucket}', ], 'input' => [ 'shape' => 'HeadBucketRequest', ], 'output' => [ 'shape' => 'HeadBucketOutput', ], 'errors' => [ [ 'shape' => 'NoSuchBucket', ], ], ], 'HeadObject' => [ 'name' => 'HeadObject', 'http' => [ 'method' => 'HEAD', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'HeadObjectRequest', ], 'output' => [ 'shape' => 'HeadObjectOutput', ], 'errors' => [ [ 'shape' => 'NoSuchKey', ], ], ], 'ListBucketAnalyticsConfigurations' => [ 'name' => 'ListBucketAnalyticsConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?analytics', ], 'input' => [ 'shape' => 'ListBucketAnalyticsConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketAnalyticsConfigurationsOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'ListBucketIntelligentTieringConfigurations' => [ 'name' => 'ListBucketIntelligentTieringConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?intelligent-tiering', ], 'input' => [ 'shape' => 'ListBucketIntelligentTieringConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketIntelligentTieringConfigurationsOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'ListBucketInventoryConfigurations' => [ 'name' => 'ListBucketInventoryConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?inventory', ], 'input' => [ 'shape' => 'ListBucketInventoryConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketInventoryConfigurationsOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'ListBucketMetricsConfigurations' => [ 'name' => 'ListBucketMetricsConfigurations', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?metrics', ], 'input' => [ 'shape' => 'ListBucketMetricsConfigurationsRequest', ], 'output' => [ 'shape' => 'ListBucketMetricsConfigurationsOutput', ], ], 'ListBuckets' => [ 'name' => 'ListBuckets', 'http' => [ 'method' => 'GET', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListBucketsRequest', ], 'output' => [ 'shape' => 'ListBucketsOutput', ], ], 'ListDirectoryBuckets' => [ 'name' => 'ListDirectoryBuckets', 'http' => [ 'method' => 'GET', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDirectoryBucketsRequest', ], 'output' => [ 'shape' => 'ListDirectoryBucketsOutput', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'ListMultipartUploads' => [ 'name' => 'ListMultipartUploads', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?uploads', ], 'input' => [ 'shape' => 'ListMultipartUploadsRequest', ], 'output' => [ 'shape' => 'ListMultipartUploadsOutput', ], ], 'ListObjectVersions' => [ 'name' => 'ListObjectVersions', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?versions', ], 'input' => [ 'shape' => 'ListObjectVersionsRequest', ], 'output' => [ 'shape' => 'ListObjectVersionsOutput', ], ], 'ListObjects' => [ 'name' => 'ListObjects', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}', ], 'input' => [ 'shape' => 'ListObjectsRequest', ], 'output' => [ 'shape' => 'ListObjectsOutput', ], 'errors' => [ [ 'shape' => 'NoSuchBucket', ], ], ], 'ListObjectsV2' => [ 'name' => 'ListObjectsV2', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?list-type=2', ], 'input' => [ 'shape' => 'ListObjectsV2Request', ], 'output' => [ 'shape' => 'ListObjectsV2Output', ], 'errors' => [ [ 'shape' => 'NoSuchBucket', ], ], ], 'ListParts' => [ 'name' => 'ListParts', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'ListPartsRequest', ], 'output' => [ 'shape' => 'ListPartsOutput', ], ], 'PutBucketAccelerateConfiguration' => [ 'name' => 'PutBucketAccelerateConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?accelerate', ], 'input' => [ 'shape' => 'PutBucketAccelerateConfigurationRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => false, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketAcl' => [ 'name' => 'PutBucketAcl', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?acl', ], 'input' => [ 'shape' => 'PutBucketAclRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketAnalyticsConfiguration' => [ 'name' => 'PutBucketAnalyticsConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?analytics', ], 'input' => [ 'shape' => 'PutBucketAnalyticsConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketCors' => [ 'name' => 'PutBucketCors', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?cors', ], 'input' => [ 'shape' => 'PutBucketCorsRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketEncryption' => [ 'name' => 'PutBucketEncryption', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?encryption', ], 'input' => [ 'shape' => 'PutBucketEncryptionRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketIntelligentTieringConfiguration' => [ 'name' => 'PutBucketIntelligentTieringConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?intelligent-tiering', ], 'input' => [ 'shape' => 'PutBucketIntelligentTieringConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketInventoryConfiguration' => [ 'name' => 'PutBucketInventoryConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?inventory', ], 'input' => [ 'shape' => 'PutBucketInventoryConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketLifecycle' => [ 'name' => 'PutBucketLifecycle', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'PutBucketLifecycleRequest', ], 'deprecated' => true, 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketLifecycleConfiguration' => [ 'name' => 'PutBucketLifecycleConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?lifecycle', ], 'input' => [ 'shape' => 'PutBucketLifecycleConfigurationRequest', ], 'output' => [ 'shape' => 'PutBucketLifecycleConfigurationOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketLogging' => [ 'name' => 'PutBucketLogging', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?logging', ], 'input' => [ 'shape' => 'PutBucketLoggingRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketMetricsConfiguration' => [ 'name' => 'PutBucketMetricsConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?metrics', ], 'input' => [ 'shape' => 'PutBucketMetricsConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketNotification' => [ 'name' => 'PutBucketNotification', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?notification', ], 'input' => [ 'shape' => 'PutBucketNotificationRequest', ], 'deprecated' => true, 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketNotificationConfiguration' => [ 'name' => 'PutBucketNotificationConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?notification', ], 'input' => [ 'shape' => 'PutBucketNotificationConfigurationRequest', ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketOwnershipControls' => [ 'name' => 'PutBucketOwnershipControls', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?ownershipControls', ], 'input' => [ 'shape' => 'PutBucketOwnershipControlsRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketPolicy' => [ 'name' => 'PutBucketPolicy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?policy', ], 'input' => [ 'shape' => 'PutBucketPolicyRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketReplication' => [ 'name' => 'PutBucketReplication', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?replication', ], 'input' => [ 'shape' => 'PutBucketReplicationRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketRequestPayment' => [ 'name' => 'PutBucketRequestPayment', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?requestPayment', ], 'input' => [ 'shape' => 'PutBucketRequestPaymentRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketTagging' => [ 'name' => 'PutBucketTagging', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?tagging', ], 'input' => [ 'shape' => 'PutBucketTaggingRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketVersioning' => [ 'name' => 'PutBucketVersioning', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?versioning', ], 'input' => [ 'shape' => 'PutBucketVersioningRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutBucketWebsite' => [ 'name' => 'PutBucketWebsite', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?website', ], 'input' => [ 'shape' => 'PutBucketWebsiteRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'PutObject' => [ 'name' => 'PutObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'PutObjectRequest', ], 'output' => [ 'shape' => 'PutObjectOutput', ], 'errors' => [ [ 'shape' => 'InvalidRequest', ], [ 'shape' => 'InvalidWriteOffset', ], [ 'shape' => 'TooManyParts', ], [ 'shape' => 'EncryptionTypeMismatch', ], ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => false, ], ], 'PutObjectAcl' => [ 'name' => 'PutObjectAcl', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?acl', ], 'input' => [ 'shape' => 'PutObjectAclRequest', ], 'output' => [ 'shape' => 'PutObjectAclOutput', ], 'errors' => [ [ 'shape' => 'NoSuchKey', ], ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], ], 'PutObjectLegalHold' => [ 'name' => 'PutObjectLegalHold', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?legal-hold', ], 'input' => [ 'shape' => 'PutObjectLegalHoldRequest', ], 'output' => [ 'shape' => 'PutObjectLegalHoldOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], ], 'PutObjectLockConfiguration' => [ 'name' => 'PutObjectLockConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?object-lock', ], 'input' => [ 'shape' => 'PutObjectLockConfigurationRequest', ], 'output' => [ 'shape' => 'PutObjectLockConfigurationOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], ], 'PutObjectRetention' => [ 'name' => 'PutObjectRetention', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?retention', ], 'input' => [ 'shape' => 'PutObjectRetentionRequest', ], 'output' => [ 'shape' => 'PutObjectRetentionOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], ], 'PutObjectTagging' => [ 'name' => 'PutObjectTagging', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?tagging', ], 'input' => [ 'shape' => 'PutObjectTaggingRequest', ], 'output' => [ 'shape' => 'PutObjectTaggingOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], ], 'PutPublicAccessBlock' => [ 'name' => 'PutPublicAccessBlock', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?publicAccessBlock', ], 'input' => [ 'shape' => 'PutPublicAccessBlockRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'RenameObject' => [ 'name' => 'RenameObject', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}?renameObject', ], 'input' => [ 'shape' => 'RenameObjectRequest', ], 'output' => [ 'shape' => 'RenameObjectOutput', ], 'errors' => [ [ 'shape' => 'IdempotencyParameterMismatch', ], ], ], 'RestoreObject' => [ 'name' => 'RestoreObject', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}/{Key+}?restore', ], 'input' => [ 'shape' => 'RestoreObjectRequest', ], 'output' => [ 'shape' => 'RestoreObjectOutput', ], 'errors' => [ [ 'shape' => 'ObjectAlreadyInActiveTierError', ], ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => false, ], ], 'SelectObjectContent' => [ 'name' => 'SelectObjectContent', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}/{Key+}?select&select-type=2', ], 'input' => [ 'shape' => 'SelectObjectContentRequest', 'locationName' => 'SelectObjectContentRequest', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'output' => [ 'shape' => 'SelectObjectContentOutput', ], ], 'UploadPart' => [ 'name' => 'UploadPart', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'UploadPartRequest', ], 'output' => [ 'shape' => 'UploadPartOutput', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => false, ], ], 'UploadPartCopy' => [ 'name' => 'UploadPartCopy', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}/{Key+}', ], 'input' => [ 'shape' => 'UploadPartCopyRequest', ], 'output' => [ 'shape' => 'UploadPartCopyOutput', ], 'staticContextParams' => [ 'DisableS3ExpressSessionAuth' => [ 'value' => true, ], ], ], 'WriteGetObjectResponse' => [ 'name' => 'WriteGetObjectResponse', 'http' => [ 'method' => 'POST', 'requestUri' => '/WriteGetObjectResponse', ], 'input' => [ 'shape' => 'WriteGetObjectResponseRequest', ], 'authtype' => 'v4-unsigned-body', 'endpoint' => [ 'hostPrefix' => '{RequestRoute}.', ], 'staticContextParams' => [ 'UseObjectLambdaEndpoint' => [ 'value' => true, ], ], 'unsignedPayload' => true, ], ], 'shapes' => [ 'AbortDate' => [ 'type' => 'timestamp', ], 'AbortIncompleteMultipartUpload' => [ 'type' => 'structure', 'members' => [ 'DaysAfterInitiation' => [ 'shape' => 'DaysAfterInitiation', ], ], ], 'AbortMultipartUploadOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'AbortMultipartUploadRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'UploadId', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'UploadId' => [ 'shape' => 'MultipartUploadId', 'location' => 'querystring', 'locationName' => 'uploadId', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'IfMatchInitiatedTime' => [ 'shape' => 'IfMatchInitiatedTime', 'location' => 'header', 'locationName' => 'x-amz-if-match-initiated-time', ], ], ], 'AbortRuleId' => [ 'type' => 'string', ], 'AccelerateConfiguration' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BucketAccelerateStatus', ], ], ], 'AcceptRanges' => [ 'type' => 'string', ], 'AccessControlPolicy' => [ 'type' => 'structure', 'members' => [ 'Grants' => [ 'shape' => 'Grants', 'locationName' => 'AccessControlList', ], 'Owner' => [ 'shape' => 'Owner', ], ], ], 'AccessControlTranslation' => [ 'type' => 'structure', 'required' => [ 'Owner', ], 'members' => [ 'Owner' => [ 'shape' => 'OwnerOverride', ], ], ], 'AccessKeyIdValue' => [ 'type' => 'string', ], 'AccessPointAlias' => [ 'type' => 'boolean', 'box' => true, ], 'AccessPointArn' => [ 'type' => 'string', ], 'AccountId' => [ 'type' => 'string', ], 'AllowQuotedRecordDelimiter' => [ 'type' => 'boolean', 'box' => true, ], 'AllowedHeader' => [ 'type' => 'string', ], 'AllowedHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedHeader', ], 'flattened' => true, ], 'AllowedMethod' => [ 'type' => 'string', ], 'AllowedMethods' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedMethod', ], 'flattened' => true, ], 'AllowedOrigin' => [ 'type' => 'string', ], 'AllowedOrigins' => [ 'type' => 'list', 'member' => [ 'shape' => 'AllowedOrigin', ], 'flattened' => true, ], 'AnalyticsAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'AnalyticsConfiguration' => [ 'type' => 'structure', 'required' => [ 'Id', 'StorageClassAnalysis', ], 'members' => [ 'Id' => [ 'shape' => 'AnalyticsId', ], 'Filter' => [ 'shape' => 'AnalyticsFilter', ], 'StorageClassAnalysis' => [ 'shape' => 'StorageClassAnalysis', ], ], ], 'AnalyticsConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'AnalyticsConfiguration', ], 'flattened' => true, ], 'AnalyticsExportDestination' => [ 'type' => 'structure', 'required' => [ 'S3BucketDestination', ], 'members' => [ 'S3BucketDestination' => [ 'shape' => 'AnalyticsS3BucketDestination', ], ], ], 'AnalyticsFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'AnalyticsAndOperator', ], ], ], 'AnalyticsId' => [ 'type' => 'string', ], 'AnalyticsS3BucketDestination' => [ 'type' => 'structure', 'required' => [ 'Format', 'Bucket', ], 'members' => [ 'Format' => [ 'shape' => 'AnalyticsS3ExportFileFormat', ], 'BucketAccountId' => [ 'shape' => 'AccountId', ], 'Bucket' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'Prefix', ], ], ], 'AnalyticsS3ExportFileFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', ], ], 'ArchiveStatus' => [ 'type' => 'string', 'enum' => [ 'ARCHIVE_ACCESS', 'DEEP_ARCHIVE_ACCESS', ], ], 'Body' => [ 'type' => 'blob', ], 'Bucket' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'BucketName', ], 'CreationDate' => [ 'shape' => 'CreationDate', ], 'BucketRegion' => [ 'shape' => 'BucketRegion', ], ], ], 'BucketAccelerateStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Suspended', ], ], 'BucketAlreadyExists' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'BucketAlreadyOwnedByYou' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 409, ], 'exception' => true, ], 'BucketCannedACL' => [ 'type' => 'string', 'enum' => [ 'private', 'public-read', 'public-read-write', 'authenticated-read', ], ], 'BucketInfo' => [ 'type' => 'structure', 'members' => [ 'DataRedundancy' => [ 'shape' => 'DataRedundancy', ], 'Type' => [ 'shape' => 'BucketType', ], ], ], 'BucketKeyEnabled' => [ 'type' => 'boolean', 'box' => true, ], 'BucketLifecycleConfiguration' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'LifecycleRules', 'locationName' => 'Rule', ], ], ], 'BucketLocationConstraint' => [ 'type' => 'string', 'enum' => [ 'af-south-1', 'ap-east-1', 'ap-northeast-1', 'ap-northeast-2', 'ap-northeast-3', 'ap-south-1', 'ap-south-2', 'ap-southeast-1', 'ap-southeast-2', 'ap-southeast-3', 'ap-southeast-4', 'ap-southeast-5', 'ca-central-1', 'cn-north-1', 'cn-northwest-1', 'EU', 'eu-central-1', 'eu-central-2', 'eu-north-1', 'eu-south-1', 'eu-south-2', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'il-central-1', 'me-central-1', 'me-south-1', 'sa-east-1', 'us-east-2', 'us-gov-east-1', 'us-gov-west-1', 'us-west-1', 'us-west-2', ], ], 'BucketLocationName' => [ 'type' => 'string', ], 'BucketLoggingStatus' => [ 'type' => 'structure', 'members' => [ 'LoggingEnabled' => [ 'shape' => 'LoggingEnabled', ], ], ], 'BucketLogsPermission' => [ 'type' => 'string', 'enum' => [ 'FULL_CONTROL', 'READ', 'WRITE', ], ], 'BucketName' => [ 'type' => 'string', ], 'BucketRegion' => [ 'type' => 'string', ], 'BucketType' => [ 'type' => 'string', 'enum' => [ 'Directory', ], ], 'BucketVersioningStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Suspended', ], ], 'Buckets' => [ 'type' => 'list', 'member' => [ 'shape' => 'Bucket', 'locationName' => 'Bucket', ], ], 'BypassGovernanceRetention' => [ 'type' => 'boolean', 'box' => true, ], 'BytesProcessed' => [ 'type' => 'long', 'box' => true, ], 'BytesReturned' => [ 'type' => 'long', 'box' => true, ], 'BytesScanned' => [ 'type' => 'long', 'box' => true, ], 'CORSConfiguration' => [ 'type' => 'structure', 'required' => [ 'CORSRules', ], 'members' => [ 'CORSRules' => [ 'shape' => 'CORSRules', 'locationName' => 'CORSRule', ], ], ], 'CORSRule' => [ 'type' => 'structure', 'required' => [ 'AllowedMethods', 'AllowedOrigins', ], 'members' => [ 'ID' => [ 'shape' => 'ID', ], 'AllowedHeaders' => [ 'shape' => 'AllowedHeaders', 'locationName' => 'AllowedHeader', ], 'AllowedMethods' => [ 'shape' => 'AllowedMethods', 'locationName' => 'AllowedMethod', ], 'AllowedOrigins' => [ 'shape' => 'AllowedOrigins', 'locationName' => 'AllowedOrigin', ], 'ExposeHeaders' => [ 'shape' => 'ExposeHeaders', 'locationName' => 'ExposeHeader', ], 'MaxAgeSeconds' => [ 'shape' => 'MaxAgeSeconds', ], ], ], 'CORSRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'CORSRule', ], 'flattened' => true, ], 'CSVInput' => [ 'type' => 'structure', 'members' => [ 'FileHeaderInfo' => [ 'shape' => 'FileHeaderInfo', ], 'Comments' => [ 'shape' => 'Comments', ], 'QuoteEscapeCharacter' => [ 'shape' => 'QuoteEscapeCharacter', ], 'RecordDelimiter' => [ 'shape' => 'RecordDelimiter', ], 'FieldDelimiter' => [ 'shape' => 'FieldDelimiter', ], 'QuoteCharacter' => [ 'shape' => 'QuoteCharacter', ], 'AllowQuotedRecordDelimiter' => [ 'shape' => 'AllowQuotedRecordDelimiter', ], ], ], 'CSVOutput' => [ 'type' => 'structure', 'members' => [ 'QuoteFields' => [ 'shape' => 'QuoteFields', ], 'QuoteEscapeCharacter' => [ 'shape' => 'QuoteEscapeCharacter', ], 'RecordDelimiter' => [ 'shape' => 'RecordDelimiter', ], 'FieldDelimiter' => [ 'shape' => 'FieldDelimiter', ], 'QuoteCharacter' => [ 'shape' => 'QuoteCharacter', ], ], ], 'CacheControl' => [ 'type' => 'string', ], 'Checksum' => [ 'type' => 'structure', 'members' => [ 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], ], ], 'ChecksumAlgorithm' => [ 'type' => 'string', 'enum' => [ 'CRC32', 'CRC32C', 'SHA1', 'SHA256', 'CRC64NVME', ], ], 'ChecksumAlgorithmList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ChecksumAlgorithm', ], 'flattened' => true, ], 'ChecksumCRC32' => [ 'type' => 'string', ], 'ChecksumCRC32C' => [ 'type' => 'string', ], 'ChecksumCRC64NVME' => [ 'type' => 'string', ], 'ChecksumMode' => [ 'type' => 'string', 'enum' => [ 'ENABLED', ], ], 'ChecksumSHA1' => [ 'type' => 'string', ], 'ChecksumSHA256' => [ 'type' => 'string', ], 'ChecksumType' => [ 'type' => 'string', 'enum' => [ 'COMPOSITE', 'FULL_OBJECT', ], ], 'ClientToken' => [ 'type' => 'string', ], 'CloudFunction' => [ 'type' => 'string', ], 'CloudFunctionConfiguration' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'Event' => [ 'shape' => 'Event', 'deprecated' => true, ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'CloudFunction' => [ 'shape' => 'CloudFunction', ], 'InvocationRole' => [ 'shape' => 'CloudFunctionInvocationRole', ], ], ], 'CloudFunctionInvocationRole' => [ 'type' => 'string', ], 'Code' => [ 'type' => 'string', ], 'Comments' => [ 'type' => 'string', ], 'CommonPrefix' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], ], ], 'CommonPrefixList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CommonPrefix', ], 'flattened' => true, ], 'CompleteMultipartUploadOutput' => [ 'type' => 'structure', 'members' => [ 'Location' => [ 'shape' => 'Location', ], 'Bucket' => [ 'shape' => 'BucketName', ], 'Key' => [ 'shape' => 'ObjectKey', ], 'Expiration' => [ 'shape' => 'Expiration', 'location' => 'header', 'locationName' => 'x-amz-expiration', ], 'ETag' => [ 'shape' => 'ETag', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'CompleteMultipartUploadRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'UploadId', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'MultipartUpload' => [ 'shape' => 'CompletedMultipartUpload', 'locationName' => 'CompleteMultipartUpload', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'UploadId' => [ 'shape' => 'MultipartUploadId', 'location' => 'querystring', 'locationName' => 'uploadId', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', 'location' => 'header', 'locationName' => 'x-amz-checksum-type', ], 'MpuObjectSize' => [ 'shape' => 'MpuObjectSize', 'location' => 'header', 'locationName' => 'x-amz-mp-object-size', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'IfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'IfNoneMatch' => [ 'shape' => 'IfNoneMatch', 'location' => 'header', 'locationName' => 'If-None-Match', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], ], 'payload' => 'MultipartUpload', ], 'CompletedMultipartUpload' => [ 'type' => 'structure', 'members' => [ 'Parts' => [ 'shape' => 'CompletedPartList', 'locationName' => 'Part', ], ], ], 'CompletedPart' => [ 'type' => 'structure', 'members' => [ 'ETag' => [ 'shape' => 'ETag', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], 'PartNumber' => [ 'shape' => 'PartNumber', ], ], ], 'CompletedPartList' => [ 'type' => 'list', 'member' => [ 'shape' => 'CompletedPart', ], 'flattened' => true, ], 'CompressionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'GZIP', 'BZIP2', ], ], 'Condition' => [ 'type' => 'structure', 'members' => [ 'HttpErrorCodeReturnedEquals' => [ 'shape' => 'HttpErrorCodeReturnedEquals', ], 'KeyPrefixEquals' => [ 'shape' => 'KeyPrefixEquals', ], ], ], 'ConfirmRemoveSelfBucketAccess' => [ 'type' => 'boolean', 'box' => true, ], 'ContentDisposition' => [ 'type' => 'string', ], 'ContentEncoding' => [ 'type' => 'string', ], 'ContentLanguage' => [ 'type' => 'string', ], 'ContentLength' => [ 'type' => 'long', ], 'ContentMD5' => [ 'type' => 'string', ], 'ContentRange' => [ 'type' => 'string', ], 'ContentType' => [ 'type' => 'string', ], 'ContinuationEvent' => [ 'type' => 'structure', 'members' => [], 'event' => true, ], 'CopyObjectOutput' => [ 'type' => 'structure', 'members' => [ 'CopyObjectResult' => [ 'shape' => 'CopyObjectResult', ], 'Expiration' => [ 'shape' => 'Expiration', 'location' => 'header', 'locationName' => 'x-amz-expiration', ], 'CopySourceVersionId' => [ 'shape' => 'CopySourceVersionId', 'location' => 'header', 'locationName' => 'x-amz-copy-source-version-id', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], 'payload' => 'CopyObjectResult', ], 'CopyObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'CopySource', 'Key', ], 'members' => [ 'ACL' => [ 'shape' => 'ObjectCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'CacheControl' => [ 'shape' => 'CacheControl', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-checksum-algorithm', ], 'ContentDisposition' => [ 'shape' => 'ContentDisposition', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'ContentEncoding' => [ 'shape' => 'ContentEncoding', 'location' => 'header', 'locationName' => 'Content-Encoding', ], 'ContentLanguage' => [ 'shape' => 'ContentLanguage', 'location' => 'header', 'locationName' => 'Content-Language', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'CopySource' => [ 'shape' => 'CopySource', 'contextParam' => [ 'name' => 'CopySource', ], 'location' => 'header', 'locationName' => 'x-amz-copy-source', ], 'CopySourceIfMatch' => [ 'shape' => 'CopySourceIfMatch', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-match', ], 'CopySourceIfModifiedSince' => [ 'shape' => 'CopySourceIfModifiedSince', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-modified-since', ], 'CopySourceIfNoneMatch' => [ 'shape' => 'CopySourceIfNoneMatch', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-none-match', ], 'CopySourceIfUnmodifiedSince' => [ 'shape' => 'CopySourceIfUnmodifiedSince', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-unmodified-since', ], 'Expires' => [ 'shape' => 'Expires', 'location' => 'header', 'locationName' => 'Expires', ], 'GrantFullControl' => [ 'shape' => 'GrantFullControl', 'location' => 'header', 'locationName' => 'x-amz-grant-full-control', ], 'GrantRead' => [ 'shape' => 'GrantRead', 'location' => 'header', 'locationName' => 'x-amz-grant-read', ], 'GrantReadACP' => [ 'shape' => 'GrantReadACP', 'location' => 'header', 'locationName' => 'x-amz-grant-read-acp', ], 'GrantWriteACP' => [ 'shape' => 'GrantWriteACP', 'location' => 'header', 'locationName' => 'x-amz-grant-write-acp', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'Metadata' => [ 'shape' => 'Metadata', 'location' => 'headers', 'locationName' => 'x-amz-meta-', ], 'MetadataDirective' => [ 'shape' => 'MetadataDirective', 'location' => 'header', 'locationName' => 'x-amz-metadata-directive', ], 'TaggingDirective' => [ 'shape' => 'TaggingDirective', 'location' => 'header', 'locationName' => 'x-amz-tagging-directive', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'WebsiteRedirectLocation' => [ 'shape' => 'WebsiteRedirectLocation', 'location' => 'header', 'locationName' => 'x-amz-website-redirect-location', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'CopySourceSSECustomerAlgorithm' => [ 'shape' => 'CopySourceSSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-copy-source-server-side-encryption-customer-algorithm', ], 'CopySourceSSECustomerKey' => [ 'shape' => 'CopySourceSSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-copy-source-server-side-encryption-customer-key', ], 'CopySourceSSECustomerKeyMD5' => [ 'shape' => 'CopySourceSSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-copy-source-server-side-encryption-customer-key-MD5', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'Tagging' => [ 'shape' => 'TaggingHeader', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ExpectedSourceBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-source-expected-bucket-owner', ], ], ], 'CopyObjectResult' => [ 'type' => 'structure', 'members' => [ 'ETag' => [ 'shape' => 'ETag', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], ], ], 'CopyPartResult' => [ 'type' => 'structure', 'members' => [ 'ETag' => [ 'shape' => 'ETag', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], ], ], 'CopySource' => [ 'type' => 'string', 'pattern' => '\\/?.+\\/.+', ], 'CopySourceIfMatch' => [ 'type' => 'string', ], 'CopySourceIfModifiedSince' => [ 'type' => 'timestamp', ], 'CopySourceIfNoneMatch' => [ 'type' => 'string', ], 'CopySourceIfUnmodifiedSince' => [ 'type' => 'timestamp', ], 'CopySourceRange' => [ 'type' => 'string', ], 'CopySourceSSECustomerAlgorithm' => [ 'type' => 'string', ], 'CopySourceSSECustomerKey' => [ 'type' => 'string', 'sensitive' => true, ], 'CopySourceSSECustomerKeyMD5' => [ 'type' => 'string', ], 'CopySourceVersionId' => [ 'type' => 'string', ], 'CreateBucketConfiguration' => [ 'type' => 'structure', 'members' => [ 'LocationConstraint' => [ 'shape' => 'BucketLocationConstraint', ], 'Location' => [ 'shape' => 'LocationInfo', ], 'Bucket' => [ 'shape' => 'BucketInfo', ], ], ], 'CreateBucketMetadataTableConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'MetadataTableConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'MetadataTableConfiguration' => [ 'shape' => 'MetadataTableConfiguration', 'locationName' => 'MetadataTableConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'MetadataTableConfiguration', ], 'CreateBucketOutput' => [ 'type' => 'structure', 'members' => [ 'Location' => [ 'shape' => 'Location', 'location' => 'header', 'locationName' => 'Location', ], ], ], 'CreateBucketRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'ACL' => [ 'shape' => 'BucketCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'CreateBucketConfiguration' => [ 'shape' => 'CreateBucketConfiguration', 'locationName' => 'CreateBucketConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'GrantFullControl' => [ 'shape' => 'GrantFullControl', 'location' => 'header', 'locationName' => 'x-amz-grant-full-control', ], 'GrantRead' => [ 'shape' => 'GrantRead', 'location' => 'header', 'locationName' => 'x-amz-grant-read', ], 'GrantReadACP' => [ 'shape' => 'GrantReadACP', 'location' => 'header', 'locationName' => 'x-amz-grant-read-acp', ], 'GrantWrite' => [ 'shape' => 'GrantWrite', 'location' => 'header', 'locationName' => 'x-amz-grant-write', ], 'GrantWriteACP' => [ 'shape' => 'GrantWriteACP', 'location' => 'header', 'locationName' => 'x-amz-grant-write-acp', ], 'ObjectLockEnabledForBucket' => [ 'shape' => 'ObjectLockEnabledForBucket', 'location' => 'header', 'locationName' => 'x-amz-bucket-object-lock-enabled', ], 'ObjectOwnership' => [ 'shape' => 'ObjectOwnership', 'location' => 'header', 'locationName' => 'x-amz-object-ownership', ], ], 'payload' => 'CreateBucketConfiguration', ], 'CreateMultipartUploadOutput' => [ 'type' => 'structure', 'members' => [ 'AbortDate' => [ 'shape' => 'AbortDate', 'location' => 'header', 'locationName' => 'x-amz-abort-date', ], 'AbortRuleId' => [ 'shape' => 'AbortRuleId', 'location' => 'header', 'locationName' => 'x-amz-abort-rule-id', ], 'Bucket' => [ 'shape' => 'BucketName', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', ], 'UploadId' => [ 'shape' => 'MultipartUploadId', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-checksum-algorithm', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', 'location' => 'header', 'locationName' => 'x-amz-checksum-type', ], ], ], 'CreateMultipartUploadRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'ACL' => [ 'shape' => 'ObjectCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'CacheControl' => [ 'shape' => 'CacheControl', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'ContentDisposition' => [ 'shape' => 'ContentDisposition', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'ContentEncoding' => [ 'shape' => 'ContentEncoding', 'location' => 'header', 'locationName' => 'Content-Encoding', ], 'ContentLanguage' => [ 'shape' => 'ContentLanguage', 'location' => 'header', 'locationName' => 'Content-Language', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'Expires' => [ 'shape' => 'Expires', 'location' => 'header', 'locationName' => 'Expires', ], 'GrantFullControl' => [ 'shape' => 'GrantFullControl', 'location' => 'header', 'locationName' => 'x-amz-grant-full-control', ], 'GrantRead' => [ 'shape' => 'GrantRead', 'location' => 'header', 'locationName' => 'x-amz-grant-read', ], 'GrantReadACP' => [ 'shape' => 'GrantReadACP', 'location' => 'header', 'locationName' => 'x-amz-grant-read-acp', ], 'GrantWriteACP' => [ 'shape' => 'GrantWriteACP', 'location' => 'header', 'locationName' => 'x-amz-grant-write-acp', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'Metadata' => [ 'shape' => 'Metadata', 'location' => 'headers', 'locationName' => 'x-amz-meta-', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'WebsiteRedirectLocation' => [ 'shape' => 'WebsiteRedirectLocation', 'location' => 'header', 'locationName' => 'x-amz-website-redirect-location', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'Tagging' => [ 'shape' => 'TaggingHeader', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-checksum-algorithm', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', 'location' => 'header', 'locationName' => 'x-amz-checksum-type', ], ], ], 'CreateSessionOutput' => [ 'type' => 'structure', 'required' => [ 'Credentials', ], 'members' => [ 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'Credentials' => [ 'shape' => 'SessionCredentials', 'locationName' => 'Credentials', ], ], ], 'CreateSessionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'SessionMode' => [ 'shape' => 'SessionMode', 'location' => 'header', 'locationName' => 'x-amz-create-session-mode', ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], ], ], 'CreationDate' => [ 'type' => 'timestamp', ], 'DataRedundancy' => [ 'type' => 'string', 'enum' => [ 'SingleAvailabilityZone', 'SingleLocalZone', ], ], 'Date' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'Days' => [ 'type' => 'integer', 'box' => true, ], 'DaysAfterInitiation' => [ 'type' => 'integer', 'box' => true, ], 'DefaultRetention' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'ObjectLockRetentionMode', ], 'Days' => [ 'shape' => 'Days', ], 'Years' => [ 'shape' => 'Years', ], ], ], 'Delete' => [ 'type' => 'structure', 'required' => [ 'Objects', ], 'members' => [ 'Objects' => [ 'shape' => 'ObjectIdentifierList', 'locationName' => 'Object', ], 'Quiet' => [ 'shape' => 'Quiet', ], ], ], 'DeleteBucketAnalyticsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'AnalyticsId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketCorsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketIntelligentTieringConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'IntelligentTieringId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketInventoryConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'InventoryId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketLifecycleRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketMetadataTableConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketMetricsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'MetricsId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketOwnershipControlsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketReplicationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteBucketWebsiteRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteMarker' => [ 'type' => 'boolean', ], 'DeleteMarkerEntry' => [ 'type' => 'structure', 'members' => [ 'Owner' => [ 'shape' => 'Owner', ], 'Key' => [ 'shape' => 'ObjectKey', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', ], 'IsLatest' => [ 'shape' => 'IsLatest', ], 'LastModified' => [ 'shape' => 'LastModified', ], ], ], 'DeleteMarkerReplication' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'DeleteMarkerReplicationStatus', ], ], ], 'DeleteMarkerReplicationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'DeleteMarkerVersionId' => [ 'type' => 'string', ], 'DeleteMarkers' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeleteMarkerEntry', ], 'flattened' => true, ], 'DeleteObjectOutput' => [ 'type' => 'structure', 'members' => [ 'DeleteMarker' => [ 'shape' => 'DeleteMarker', 'location' => 'header', 'locationName' => 'x-amz-delete-marker', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'DeleteObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'MFA' => [ 'shape' => 'MFA', 'location' => 'header', 'locationName' => 'x-amz-mfa', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'BypassGovernanceRetention' => [ 'shape' => 'BypassGovernanceRetention', 'location' => 'header', 'locationName' => 'x-amz-bypass-governance-retention', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'IfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'IfMatchLastModifiedTime' => [ 'shape' => 'IfMatchLastModifiedTime', 'location' => 'header', 'locationName' => 'x-amz-if-match-last-modified-time', ], 'IfMatchSize' => [ 'shape' => 'IfMatchSize', 'location' => 'header', 'locationName' => 'x-amz-if-match-size', ], ], ], 'DeleteObjectTaggingOutput' => [ 'type' => 'structure', 'members' => [ 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], ], ], 'DeleteObjectTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeleteObjectsOutput' => [ 'type' => 'structure', 'members' => [ 'Deleted' => [ 'shape' => 'DeletedObjects', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'Errors' => [ 'shape' => 'Errors', 'locationName' => 'Error', ], ], ], 'DeleteObjectsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Delete', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Delete' => [ 'shape' => 'Delete', 'locationName' => 'Delete', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'MFA' => [ 'shape' => 'MFA', 'location' => 'header', 'locationName' => 'x-amz-mfa', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'BypassGovernanceRetention' => [ 'shape' => 'BypassGovernanceRetention', 'location' => 'header', 'locationName' => 'x-amz-bypass-governance-retention', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], ], 'payload' => 'Delete', ], 'DeletePublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'DeletedObject' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', ], 'DeleteMarker' => [ 'shape' => 'DeleteMarker', ], 'DeleteMarkerVersionId' => [ 'shape' => 'DeleteMarkerVersionId', ], ], ], 'DeletedObjects' => [ 'type' => 'list', 'member' => [ 'shape' => 'DeletedObject', ], 'flattened' => true, ], 'Delimiter' => [ 'type' => 'string', ], 'Description' => [ 'type' => 'string', ], 'Destination' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', ], 'Account' => [ 'shape' => 'AccountId', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], 'AccessControlTranslation' => [ 'shape' => 'AccessControlTranslation', ], 'EncryptionConfiguration' => [ 'shape' => 'EncryptionConfiguration', ], 'ReplicationTime' => [ 'shape' => 'ReplicationTime', ], 'Metrics' => [ 'shape' => 'Metrics', ], ], ], 'DirectoryBucketToken' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, ], 'DisplayName' => [ 'type' => 'string', ], 'ETag' => [ 'type' => 'string', ], 'EmailAddress' => [ 'type' => 'string', ], 'EnableRequestProgress' => [ 'type' => 'boolean', 'box' => true, ], 'EncodingType' => [ 'type' => 'string', 'enum' => [ 'url', ], ], 'Encryption' => [ 'type' => 'structure', 'required' => [ 'EncryptionType', ], 'members' => [ 'EncryptionType' => [ 'shape' => 'ServerSideEncryption', ], 'KMSKeyId' => [ 'shape' => 'SSEKMSKeyId', ], 'KMSContext' => [ 'shape' => 'KMSContext', ], ], ], 'EncryptionConfiguration' => [ 'type' => 'structure', 'members' => [ 'ReplicaKmsKeyID' => [ 'shape' => 'ReplicaKmsKeyID', ], ], ], 'EncryptionTypeMismatch' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'End' => [ 'type' => 'long', 'box' => true, ], 'EndEvent' => [ 'type' => 'structure', 'members' => [], 'event' => true, ], 'Error' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', ], 'Code' => [ 'shape' => 'Code', ], 'Message' => [ 'shape' => 'Message', ], ], ], 'ErrorCode' => [ 'type' => 'string', ], 'ErrorDetails' => [ 'type' => 'structure', 'members' => [ 'ErrorCode' => [ 'shape' => 'ErrorCode', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', ], ], ], 'ErrorDocument' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], ], ], 'ErrorMessage' => [ 'type' => 'string', ], 'Errors' => [ 'type' => 'list', 'member' => [ 'shape' => 'Error', ], 'flattened' => true, ], 'Event' => [ 'type' => 'string', 'enum' => [ 's3:ReducedRedundancyLostObject', 's3:ObjectCreated:*', 's3:ObjectCreated:Put', 's3:ObjectCreated:Post', 's3:ObjectCreated:Copy', 's3:ObjectCreated:CompleteMultipartUpload', 's3:ObjectRemoved:*', 's3:ObjectRemoved:Delete', 's3:ObjectRemoved:DeleteMarkerCreated', 's3:ObjectRestore:*', 's3:ObjectRestore:Post', 's3:ObjectRestore:Completed', 's3:Replication:*', 's3:Replication:OperationFailedReplication', 's3:Replication:OperationNotTracked', 's3:Replication:OperationMissedThreshold', 's3:Replication:OperationReplicatedAfterThreshold', 's3:ObjectRestore:Delete', 's3:LifecycleTransition', 's3:IntelligentTiering', 's3:ObjectAcl:Put', 's3:LifecycleExpiration:*', 's3:LifecycleExpiration:Delete', 's3:LifecycleExpiration:DeleteMarkerCreated', 's3:ObjectTagging:*', 's3:ObjectTagging:Put', 's3:ObjectTagging:Delete', ], ], 'EventBridgeConfiguration' => [ 'type' => 'structure', 'members' => [], ], 'EventList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Event', ], 'flattened' => true, ], 'ExistingObjectReplication' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'ExistingObjectReplicationStatus', ], ], ], 'ExistingObjectReplicationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Expiration' => [ 'type' => 'string', ], 'ExpirationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ExpiredObjectDeleteMarker' => [ 'type' => 'boolean', 'box' => true, ], 'Expires' => [ 'type' => 'timestamp', ], 'ExposeHeader' => [ 'type' => 'string', ], 'ExposeHeaders' => [ 'type' => 'list', 'member' => [ 'shape' => 'ExposeHeader', ], 'flattened' => true, ], 'Expression' => [ 'type' => 'string', ], 'ExpressionType' => [ 'type' => 'string', 'enum' => [ 'SQL', ], ], 'FetchOwner' => [ 'type' => 'boolean', 'box' => true, ], 'FieldDelimiter' => [ 'type' => 'string', ], 'FileHeaderInfo' => [ 'type' => 'string', 'enum' => [ 'USE', 'IGNORE', 'NONE', ], ], 'FilterRule' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'FilterRuleName', ], 'Value' => [ 'shape' => 'FilterRuleValue', ], ], ], 'FilterRuleList' => [ 'type' => 'list', 'member' => [ 'shape' => 'FilterRule', ], 'flattened' => true, ], 'FilterRuleName' => [ 'type' => 'string', 'enum' => [ 'prefix', 'suffix', ], ], 'FilterRuleValue' => [ 'type' => 'string', ], 'GetBucketAccelerateConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BucketAccelerateStatus', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'GetBucketAccelerateConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], ], 'GetBucketAclOutput' => [ 'type' => 'structure', 'members' => [ 'Owner' => [ 'shape' => 'Owner', ], 'Grants' => [ 'shape' => 'Grants', 'locationName' => 'AccessControlList', ], ], ], 'GetBucketAclRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketAnalyticsConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfiguration', ], ], 'payload' => 'AnalyticsConfiguration', ], 'GetBucketAnalyticsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'AnalyticsId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketCorsOutput' => [ 'type' => 'structure', 'members' => [ 'CORSRules' => [ 'shape' => 'CORSRules', 'locationName' => 'CORSRule', ], ], ], 'GetBucketCorsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketEncryptionOutput' => [ 'type' => 'structure', 'members' => [ 'ServerSideEncryptionConfiguration' => [ 'shape' => 'ServerSideEncryptionConfiguration', ], ], 'payload' => 'ServerSideEncryptionConfiguration', ], 'GetBucketEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketIntelligentTieringConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'IntelligentTieringConfiguration' => [ 'shape' => 'IntelligentTieringConfiguration', ], ], 'payload' => 'IntelligentTieringConfiguration', ], 'GetBucketIntelligentTieringConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'IntelligentTieringId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketInventoryConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'InventoryConfiguration' => [ 'shape' => 'InventoryConfiguration', ], ], 'payload' => 'InventoryConfiguration', ], 'GetBucketInventoryConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'InventoryId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketLifecycleConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'LifecycleRules', 'locationName' => 'Rule', ], 'TransitionDefaultMinimumObjectSize' => [ 'shape' => 'TransitionDefaultMinimumObjectSize', 'location' => 'header', 'locationName' => 'x-amz-transition-default-minimum-object-size', ], ], ], 'GetBucketLifecycleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketLifecycleOutput' => [ 'type' => 'structure', 'members' => [ 'Rules' => [ 'shape' => 'Rules', 'locationName' => 'Rule', ], ], ], 'GetBucketLifecycleRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketLocationOutput' => [ 'type' => 'structure', 'members' => [ 'LocationConstraint' => [ 'shape' => 'BucketLocationConstraint', ], ], ], 'GetBucketLocationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketLoggingOutput' => [ 'type' => 'structure', 'members' => [ 'LoggingEnabled' => [ 'shape' => 'LoggingEnabled', ], ], ], 'GetBucketLoggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketMetadataTableConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'GetBucketMetadataTableConfigurationResult' => [ 'shape' => 'GetBucketMetadataTableConfigurationResult', ], ], 'payload' => 'GetBucketMetadataTableConfigurationResult', ], 'GetBucketMetadataTableConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketMetadataTableConfigurationResult' => [ 'type' => 'structure', 'required' => [ 'MetadataTableConfigurationResult', 'Status', ], 'members' => [ 'MetadataTableConfigurationResult' => [ 'shape' => 'MetadataTableConfigurationResult', ], 'Status' => [ 'shape' => 'MetadataTableStatus', ], 'Error' => [ 'shape' => 'ErrorDetails', ], ], ], 'GetBucketMetricsConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'MetricsConfiguration' => [ 'shape' => 'MetricsConfiguration', ], ], 'payload' => 'MetricsConfiguration', ], 'GetBucketMetricsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'MetricsId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketNotificationConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketOwnershipControlsOutput' => [ 'type' => 'structure', 'members' => [ 'OwnershipControls' => [ 'shape' => 'OwnershipControls', ], ], 'payload' => 'OwnershipControls', ], 'GetBucketOwnershipControlsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketPolicyOutput' => [ 'type' => 'structure', 'members' => [ 'Policy' => [ 'shape' => 'Policy', ], ], 'payload' => 'Policy', ], 'GetBucketPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketPolicyStatusOutput' => [ 'type' => 'structure', 'members' => [ 'PolicyStatus' => [ 'shape' => 'PolicyStatus', ], ], 'payload' => 'PolicyStatus', ], 'GetBucketPolicyStatusRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketReplicationOutput' => [ 'type' => 'structure', 'members' => [ 'ReplicationConfiguration' => [ 'shape' => 'ReplicationConfiguration', ], ], 'payload' => 'ReplicationConfiguration', ], 'GetBucketReplicationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketRequestPaymentOutput' => [ 'type' => 'structure', 'members' => [ 'Payer' => [ 'shape' => 'Payer', ], ], ], 'GetBucketRequestPaymentRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketTaggingOutput' => [ 'type' => 'structure', 'required' => [ 'TagSet', ], 'members' => [ 'TagSet' => [ 'shape' => 'TagSet', ], ], ], 'GetBucketTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketVersioningOutput' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BucketVersioningStatus', ], 'MFADelete' => [ 'shape' => 'MFADeleteStatus', 'locationName' => 'MfaDelete', ], ], ], 'GetBucketVersioningRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetBucketWebsiteOutput' => [ 'type' => 'structure', 'members' => [ 'RedirectAllRequestsTo' => [ 'shape' => 'RedirectAllRequestsTo', ], 'IndexDocument' => [ 'shape' => 'IndexDocument', ], 'ErrorDocument' => [ 'shape' => 'ErrorDocument', ], 'RoutingRules' => [ 'shape' => 'RoutingRules', ], ], ], 'GetBucketWebsiteRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetObjectAclOutput' => [ 'type' => 'structure', 'members' => [ 'Owner' => [ 'shape' => 'Owner', ], 'Grants' => [ 'shape' => 'Grants', 'locationName' => 'AccessControlList', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'GetObjectAclRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetObjectAttributesOutput' => [ 'type' => 'structure', 'members' => [ 'DeleteMarker' => [ 'shape' => 'DeleteMarker', 'location' => 'header', 'locationName' => 'x-amz-delete-marker', ], 'LastModified' => [ 'shape' => 'LastModified', 'location' => 'header', 'locationName' => 'Last-Modified', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ETag' => [ 'shape' => 'ETag', ], 'Checksum' => [ 'shape' => 'Checksum', ], 'ObjectParts' => [ 'shape' => 'GetObjectAttributesParts', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], 'ObjectSize' => [ 'shape' => 'ObjectSize', ], ], ], 'GetObjectAttributesParts' => [ 'type' => 'structure', 'members' => [ 'TotalPartsCount' => [ 'shape' => 'PartsCount', 'locationName' => 'PartsCount', ], 'PartNumberMarker' => [ 'shape' => 'PartNumberMarker', ], 'NextPartNumberMarker' => [ 'shape' => 'NextPartNumberMarker', ], 'MaxParts' => [ 'shape' => 'MaxParts', ], 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'Parts' => [ 'shape' => 'PartsList', 'locationName' => 'Part', ], ], ], 'GetObjectAttributesRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'ObjectAttributes', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'MaxParts' => [ 'shape' => 'MaxParts', 'location' => 'header', 'locationName' => 'x-amz-max-parts', ], 'PartNumberMarker' => [ 'shape' => 'PartNumberMarker', 'location' => 'header', 'locationName' => 'x-amz-part-number-marker', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ObjectAttributes' => [ 'shape' => 'ObjectAttributesList', 'location' => 'header', 'locationName' => 'x-amz-object-attributes', ], ], ], 'GetObjectLegalHoldOutput' => [ 'type' => 'structure', 'members' => [ 'LegalHold' => [ 'shape' => 'ObjectLockLegalHold', 'locationName' => 'LegalHold', ], ], 'payload' => 'LegalHold', ], 'GetObjectLegalHoldRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetObjectLockConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'ObjectLockConfiguration' => [ 'shape' => 'ObjectLockConfiguration', ], ], 'payload' => 'ObjectLockConfiguration', ], 'GetObjectLockConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetObjectOutput' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => 'Body', 'streaming' => true, ], 'DeleteMarker' => [ 'shape' => 'DeleteMarker', 'location' => 'header', 'locationName' => 'x-amz-delete-marker', ], 'AcceptRanges' => [ 'shape' => 'AcceptRanges', 'location' => 'header', 'locationName' => 'accept-ranges', ], 'Expiration' => [ 'shape' => 'Expiration', 'location' => 'header', 'locationName' => 'x-amz-expiration', ], 'Restore' => [ 'shape' => 'Restore', 'location' => 'header', 'locationName' => 'x-amz-restore', ], 'LastModified' => [ 'shape' => 'LastModified', 'location' => 'header', 'locationName' => 'Last-Modified', ], 'ContentLength' => [ 'shape' => 'ContentLength', 'location' => 'header', 'locationName' => 'Content-Length', ], 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'ETag', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', 'location' => 'header', 'locationName' => 'x-amz-checksum-type', ], 'MissingMeta' => [ 'shape' => 'MissingMeta', 'location' => 'header', 'locationName' => 'x-amz-missing-meta', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'CacheControl' => [ 'shape' => 'CacheControl', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'ContentDisposition' => [ 'shape' => 'ContentDisposition', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'ContentEncoding' => [ 'shape' => 'ContentEncoding', 'location' => 'header', 'locationName' => 'Content-Encoding', ], 'ContentLanguage' => [ 'shape' => 'ContentLanguage', 'location' => 'header', 'locationName' => 'Content-Language', ], 'ContentRange' => [ 'shape' => 'ContentRange', 'location' => 'header', 'locationName' => 'Content-Range', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'Expires' => [ 'shape' => 'Expires', 'location' => 'header', 'locationName' => 'Expires', ], 'WebsiteRedirectLocation' => [ 'shape' => 'WebsiteRedirectLocation', 'location' => 'header', 'locationName' => 'x-amz-website-redirect-location', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'Metadata' => [ 'shape' => 'Metadata', 'location' => 'headers', 'locationName' => 'x-amz-meta-', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ReplicationStatus' => [ 'shape' => 'ReplicationStatus', 'location' => 'header', 'locationName' => 'x-amz-replication-status', ], 'PartsCount' => [ 'shape' => 'PartsCount', 'location' => 'header', 'locationName' => 'x-amz-mp-parts-count', ], 'TagCount' => [ 'shape' => 'TagCount', 'location' => 'header', 'locationName' => 'x-amz-tagging-count', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], 'payload' => 'Body', ], 'GetObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'IfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'IfModifiedSince' => [ 'shape' => 'IfModifiedSince', 'location' => 'header', 'locationName' => 'If-Modified-Since', ], 'IfNoneMatch' => [ 'shape' => 'IfNoneMatch', 'location' => 'header', 'locationName' => 'If-None-Match', ], 'IfUnmodifiedSince' => [ 'shape' => 'IfUnmodifiedSince', 'location' => 'header', 'locationName' => 'If-Unmodified-Since', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'Range' => [ 'shape' => 'Range', 'location' => 'header', 'locationName' => 'Range', ], 'ResponseCacheControl' => [ 'shape' => 'ResponseCacheControl', 'location' => 'querystring', 'locationName' => 'response-cache-control', ], 'ResponseContentDisposition' => [ 'shape' => 'ResponseContentDisposition', 'location' => 'querystring', 'locationName' => 'response-content-disposition', ], 'ResponseContentEncoding' => [ 'shape' => 'ResponseContentEncoding', 'location' => 'querystring', 'locationName' => 'response-content-encoding', ], 'ResponseContentLanguage' => [ 'shape' => 'ResponseContentLanguage', 'location' => 'querystring', 'locationName' => 'response-content-language', ], 'ResponseContentType' => [ 'shape' => 'ResponseContentType', 'location' => 'querystring', 'locationName' => 'response-content-type', ], 'ResponseExpires' => [ 'shape' => 'ResponseExpires', 'location' => 'querystring', 'locationName' => 'response-expires', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'PartNumber' => [ 'shape' => 'PartNumber', 'location' => 'querystring', 'locationName' => 'partNumber', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ChecksumMode' => [ 'shape' => 'ChecksumMode', 'location' => 'header', 'locationName' => 'x-amz-checksum-mode', ], ], ], 'GetObjectResponseStatusCode' => [ 'type' => 'integer', 'box' => true, ], 'GetObjectRetentionOutput' => [ 'type' => 'structure', 'members' => [ 'Retention' => [ 'shape' => 'ObjectLockRetention', 'locationName' => 'Retention', ], ], 'payload' => 'Retention', ], 'GetObjectRetentionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetObjectTaggingOutput' => [ 'type' => 'structure', 'required' => [ 'TagSet', ], 'members' => [ 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'TagSet' => [ 'shape' => 'TagSet', ], ], ], 'GetObjectTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], ], 'GetObjectTorrentOutput' => [ 'type' => 'structure', 'members' => [ 'Body' => [ 'shape' => 'Body', 'streaming' => true, ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], 'payload' => 'Body', ], 'GetObjectTorrentRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GetPublicAccessBlockOutput' => [ 'type' => 'structure', 'members' => [ 'PublicAccessBlockConfiguration' => [ 'shape' => 'PublicAccessBlockConfiguration', ], ], 'payload' => 'PublicAccessBlockConfiguration', ], 'GetPublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'GlacierJobParameters' => [ 'type' => 'structure', 'required' => [ 'Tier', ], 'members' => [ 'Tier' => [ 'shape' => 'Tier', ], ], ], 'Grant' => [ 'type' => 'structure', 'members' => [ 'Grantee' => [ 'shape' => 'Grantee', ], 'Permission' => [ 'shape' => 'Permission', ], ], ], 'GrantFullControl' => [ 'type' => 'string', ], 'GrantRead' => [ 'type' => 'string', ], 'GrantReadACP' => [ 'type' => 'string', ], 'GrantWrite' => [ 'type' => 'string', ], 'GrantWriteACP' => [ 'type' => 'string', ], 'Grantee' => [ 'type' => 'structure', 'required' => [ 'Type', ], 'members' => [ 'DisplayName' => [ 'shape' => 'DisplayName', ], 'EmailAddress' => [ 'shape' => 'EmailAddress', ], 'ID' => [ 'shape' => 'ID', ], 'Type' => [ 'shape' => 'Type', 'locationName' => 'xsi:type', 'xmlAttribute' => true, ], 'URI' => [ 'shape' => 'URI', ], ], 'xmlNamespace' => [ 'prefix' => 'xsi', 'uri' => 'http://www.w3.org/2001/XMLSchema-instance', ], ], 'Grants' => [ 'type' => 'list', 'member' => [ 'shape' => 'Grant', 'locationName' => 'Grant', ], ], 'HeadBucketOutput' => [ 'type' => 'structure', 'members' => [ 'BucketLocationType' => [ 'shape' => 'LocationType', 'location' => 'header', 'locationName' => 'x-amz-bucket-location-type', ], 'BucketLocationName' => [ 'shape' => 'BucketLocationName', 'location' => 'header', 'locationName' => 'x-amz-bucket-location-name', ], 'BucketRegion' => [ 'shape' => 'Region', 'location' => 'header', 'locationName' => 'x-amz-bucket-region', ], 'AccessPointAlias' => [ 'shape' => 'AccessPointAlias', 'location' => 'header', 'locationName' => 'x-amz-access-point-alias', ], ], ], 'HeadBucketRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'HeadObjectOutput' => [ 'type' => 'structure', 'members' => [ 'DeleteMarker' => [ 'shape' => 'DeleteMarker', 'location' => 'header', 'locationName' => 'x-amz-delete-marker', ], 'AcceptRanges' => [ 'shape' => 'AcceptRanges', 'location' => 'header', 'locationName' => 'accept-ranges', ], 'Expiration' => [ 'shape' => 'Expiration', 'location' => 'header', 'locationName' => 'x-amz-expiration', ], 'Restore' => [ 'shape' => 'Restore', 'location' => 'header', 'locationName' => 'x-amz-restore', ], 'ArchiveStatus' => [ 'shape' => 'ArchiveStatus', 'location' => 'header', 'locationName' => 'x-amz-archive-status', ], 'LastModified' => [ 'shape' => 'LastModified', 'location' => 'header', 'locationName' => 'Last-Modified', ], 'ContentLength' => [ 'shape' => 'ContentLength', 'location' => 'header', 'locationName' => 'Content-Length', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', 'location' => 'header', 'locationName' => 'x-amz-checksum-type', ], 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'ETag', ], 'MissingMeta' => [ 'shape' => 'MissingMeta', 'location' => 'header', 'locationName' => 'x-amz-missing-meta', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'CacheControl' => [ 'shape' => 'CacheControl', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'ContentDisposition' => [ 'shape' => 'ContentDisposition', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'ContentEncoding' => [ 'shape' => 'ContentEncoding', 'location' => 'header', 'locationName' => 'Content-Encoding', ], 'ContentLanguage' => [ 'shape' => 'ContentLanguage', 'location' => 'header', 'locationName' => 'Content-Language', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'ContentRange' => [ 'shape' => 'ContentRange', 'location' => 'header', 'locationName' => 'Content-Range', ], 'Expires' => [ 'shape' => 'Expires', 'location' => 'header', 'locationName' => 'Expires', ], 'WebsiteRedirectLocation' => [ 'shape' => 'WebsiteRedirectLocation', 'location' => 'header', 'locationName' => 'x-amz-website-redirect-location', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'Metadata' => [ 'shape' => 'Metadata', 'location' => 'headers', 'locationName' => 'x-amz-meta-', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ReplicationStatus' => [ 'shape' => 'ReplicationStatus', 'location' => 'header', 'locationName' => 'x-amz-replication-status', ], 'PartsCount' => [ 'shape' => 'PartsCount', 'location' => 'header', 'locationName' => 'x-amz-mp-parts-count', ], 'TagCount' => [ 'shape' => 'TagCount', 'location' => 'header', 'locationName' => 'x-amz-tagging-count', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], ], ], 'HeadObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'IfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'IfModifiedSince' => [ 'shape' => 'IfModifiedSince', 'location' => 'header', 'locationName' => 'If-Modified-Since', ], 'IfNoneMatch' => [ 'shape' => 'IfNoneMatch', 'location' => 'header', 'locationName' => 'If-None-Match', ], 'IfUnmodifiedSince' => [ 'shape' => 'IfUnmodifiedSince', 'location' => 'header', 'locationName' => 'If-Unmodified-Since', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'Range' => [ 'shape' => 'Range', 'location' => 'header', 'locationName' => 'Range', ], 'ResponseCacheControl' => [ 'shape' => 'ResponseCacheControl', 'location' => 'querystring', 'locationName' => 'response-cache-control', ], 'ResponseContentDisposition' => [ 'shape' => 'ResponseContentDisposition', 'location' => 'querystring', 'locationName' => 'response-content-disposition', ], 'ResponseContentEncoding' => [ 'shape' => 'ResponseContentEncoding', 'location' => 'querystring', 'locationName' => 'response-content-encoding', ], 'ResponseContentLanguage' => [ 'shape' => 'ResponseContentLanguage', 'location' => 'querystring', 'locationName' => 'response-content-language', ], 'ResponseContentType' => [ 'shape' => 'ResponseContentType', 'location' => 'querystring', 'locationName' => 'response-content-type', ], 'ResponseExpires' => [ 'shape' => 'ResponseExpires', 'location' => 'querystring', 'locationName' => 'response-expires', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'PartNumber' => [ 'shape' => 'PartNumber', 'location' => 'querystring', 'locationName' => 'partNumber', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ChecksumMode' => [ 'shape' => 'ChecksumMode', 'location' => 'header', 'locationName' => 'x-amz-checksum-mode', ], ], ], 'HostName' => [ 'type' => 'string', ], 'HttpErrorCodeReturnedEquals' => [ 'type' => 'string', ], 'HttpRedirectCode' => [ 'type' => 'string', ], 'ID' => [ 'type' => 'string', ], 'IdempotencyParameterMismatch' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'IfMatch' => [ 'type' => 'string', ], 'IfMatchInitiatedTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'rfc822', ], 'IfMatchLastModifiedTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'rfc822', ], 'IfMatchSize' => [ 'type' => 'long', 'box' => true, ], 'IfModifiedSince' => [ 'type' => 'timestamp', ], 'IfNoneMatch' => [ 'type' => 'string', ], 'IfUnmodifiedSince' => [ 'type' => 'timestamp', ], 'IndexDocument' => [ 'type' => 'structure', 'required' => [ 'Suffix', ], 'members' => [ 'Suffix' => [ 'shape' => 'Suffix', ], ], ], 'Initiated' => [ 'type' => 'timestamp', ], 'Initiator' => [ 'type' => 'structure', 'members' => [ 'ID' => [ 'shape' => 'ID', ], 'DisplayName' => [ 'shape' => 'DisplayName', ], ], ], 'InputSerialization' => [ 'type' => 'structure', 'members' => [ 'CSV' => [ 'shape' => 'CSVInput', ], 'CompressionType' => [ 'shape' => 'CompressionType', ], 'JSON' => [ 'shape' => 'JSONInput', ], 'Parquet' => [ 'shape' => 'ParquetInput', ], ], ], 'IntelligentTieringAccessTier' => [ 'type' => 'string', 'enum' => [ 'ARCHIVE_ACCESS', 'DEEP_ARCHIVE_ACCESS', ], ], 'IntelligentTieringAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'IntelligentTieringConfiguration' => [ 'type' => 'structure', 'required' => [ 'Id', 'Status', 'Tierings', ], 'members' => [ 'Id' => [ 'shape' => 'IntelligentTieringId', ], 'Filter' => [ 'shape' => 'IntelligentTieringFilter', ], 'Status' => [ 'shape' => 'IntelligentTieringStatus', ], 'Tierings' => [ 'shape' => 'TieringList', 'locationName' => 'Tiering', ], ], ], 'IntelligentTieringConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'IntelligentTieringConfiguration', ], 'flattened' => true, ], 'IntelligentTieringDays' => [ 'type' => 'integer', 'box' => true, ], 'IntelligentTieringFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'IntelligentTieringAndOperator', ], ], ], 'IntelligentTieringId' => [ 'type' => 'string', ], 'IntelligentTieringStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'InvalidObjectState' => [ 'type' => 'structure', 'members' => [ 'StorageClass' => [ 'shape' => 'StorageClass', ], 'AccessTier' => [ 'shape' => 'IntelligentTieringAccessTier', ], ], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'InvalidRequest' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidWriteOffset' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InventoryConfiguration' => [ 'type' => 'structure', 'required' => [ 'Destination', 'IsEnabled', 'Id', 'IncludedObjectVersions', 'Schedule', ], 'members' => [ 'Destination' => [ 'shape' => 'InventoryDestination', ], 'IsEnabled' => [ 'shape' => 'IsEnabled', ], 'Filter' => [ 'shape' => 'InventoryFilter', ], 'Id' => [ 'shape' => 'InventoryId', ], 'IncludedObjectVersions' => [ 'shape' => 'InventoryIncludedObjectVersions', ], 'OptionalFields' => [ 'shape' => 'InventoryOptionalFields', ], 'Schedule' => [ 'shape' => 'InventorySchedule', ], ], ], 'InventoryConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryConfiguration', ], 'flattened' => true, ], 'InventoryDestination' => [ 'type' => 'structure', 'required' => [ 'S3BucketDestination', ], 'members' => [ 'S3BucketDestination' => [ 'shape' => 'InventoryS3BucketDestination', ], ], ], 'InventoryEncryption' => [ 'type' => 'structure', 'members' => [ 'SSES3' => [ 'shape' => 'SSES3', 'locationName' => 'SSE-S3', ], 'SSEKMS' => [ 'shape' => 'SSEKMS', 'locationName' => 'SSE-KMS', ], ], ], 'InventoryFilter' => [ 'type' => 'structure', 'required' => [ 'Prefix', ], 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], ], ], 'InventoryFormat' => [ 'type' => 'string', 'enum' => [ 'CSV', 'ORC', 'Parquet', ], ], 'InventoryFrequency' => [ 'type' => 'string', 'enum' => [ 'Daily', 'Weekly', ], ], 'InventoryId' => [ 'type' => 'string', ], 'InventoryIncludedObjectVersions' => [ 'type' => 'string', 'enum' => [ 'All', 'Current', ], ], 'InventoryOptionalField' => [ 'type' => 'string', 'enum' => [ 'Size', 'LastModifiedDate', 'StorageClass', 'ETag', 'IsMultipartUploaded', 'ReplicationStatus', 'EncryptionStatus', 'ObjectLockRetainUntilDate', 'ObjectLockMode', 'ObjectLockLegalHoldStatus', 'IntelligentTieringAccessTier', 'BucketKeyStatus', 'ChecksumAlgorithm', 'ObjectAccessControlList', 'ObjectOwner', ], ], 'InventoryOptionalFields' => [ 'type' => 'list', 'member' => [ 'shape' => 'InventoryOptionalField', 'locationName' => 'Field', ], ], 'InventoryS3BucketDestination' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Format', ], 'members' => [ 'AccountId' => [ 'shape' => 'AccountId', ], 'Bucket' => [ 'shape' => 'BucketName', ], 'Format' => [ 'shape' => 'InventoryFormat', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Encryption' => [ 'shape' => 'InventoryEncryption', ], ], ], 'InventorySchedule' => [ 'type' => 'structure', 'required' => [ 'Frequency', ], 'members' => [ 'Frequency' => [ 'shape' => 'InventoryFrequency', ], ], ], 'IsEnabled' => [ 'type' => 'boolean', 'box' => true, ], 'IsLatest' => [ 'type' => 'boolean', 'box' => true, ], 'IsPublic' => [ 'type' => 'boolean', 'box' => true, ], 'IsRestoreInProgress' => [ 'type' => 'boolean', 'box' => true, ], 'IsTruncated' => [ 'type' => 'boolean', 'box' => true, ], 'JSONInput' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'JSONType', ], ], ], 'JSONOutput' => [ 'type' => 'structure', 'members' => [ 'RecordDelimiter' => [ 'shape' => 'RecordDelimiter', ], ], ], 'JSONType' => [ 'type' => 'string', 'enum' => [ 'DOCUMENT', 'LINES', ], ], 'KMSContext' => [ 'type' => 'string', ], 'KeyCount' => [ 'type' => 'integer', ], 'KeyMarker' => [ 'type' => 'string', ], 'KeyPrefixEquals' => [ 'type' => 'string', ], 'LambdaFunctionArn' => [ 'type' => 'string', ], 'LambdaFunctionConfiguration' => [ 'type' => 'structure', 'required' => [ 'LambdaFunctionArn', 'Events', ], 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'LambdaFunctionArn' => [ 'shape' => 'LambdaFunctionArn', 'locationName' => 'CloudFunction', ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'Filter' => [ 'shape' => 'NotificationConfigurationFilter', ], ], ], 'LambdaFunctionConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'LambdaFunctionConfiguration', ], 'flattened' => true, ], 'LastModified' => [ 'type' => 'timestamp', ], 'LastModifiedTime' => [ 'type' => 'timestamp', 'timestampFormat' => 'rfc822', ], 'LifecycleConfiguration' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'Rules', 'locationName' => 'Rule', ], ], ], 'LifecycleExpiration' => [ 'type' => 'structure', 'members' => [ 'Date' => [ 'shape' => 'Date', ], 'Days' => [ 'shape' => 'Days', ], 'ExpiredObjectDeleteMarker' => [ 'shape' => 'ExpiredObjectDeleteMarker', ], ], ], 'LifecycleRule' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Expiration' => [ 'shape' => 'LifecycleExpiration', ], 'ID' => [ 'shape' => 'ID', ], 'Prefix' => [ 'shape' => 'Prefix', 'deprecated' => true, ], 'Filter' => [ 'shape' => 'LifecycleRuleFilter', ], 'Status' => [ 'shape' => 'ExpirationStatus', ], 'Transitions' => [ 'shape' => 'TransitionList', 'locationName' => 'Transition', ], 'NoncurrentVersionTransitions' => [ 'shape' => 'NoncurrentVersionTransitionList', 'locationName' => 'NoncurrentVersionTransition', ], 'NoncurrentVersionExpiration' => [ 'shape' => 'NoncurrentVersionExpiration', ], 'AbortIncompleteMultipartUpload' => [ 'shape' => 'AbortIncompleteMultipartUpload', ], ], ], 'LifecycleRuleAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], 'ObjectSizeGreaterThan' => [ 'shape' => 'ObjectSizeGreaterThanBytes', ], 'ObjectSizeLessThan' => [ 'shape' => 'ObjectSizeLessThanBytes', ], ], ], 'LifecycleRuleFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'ObjectSizeGreaterThan' => [ 'shape' => 'ObjectSizeGreaterThanBytes', ], 'ObjectSizeLessThan' => [ 'shape' => 'ObjectSizeLessThanBytes', ], 'And' => [ 'shape' => 'LifecycleRuleAndOperator', ], ], ], 'LifecycleRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'LifecycleRule', ], 'flattened' => true, ], 'ListBucketAnalyticsConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'AnalyticsConfigurationList' => [ 'shape' => 'AnalyticsConfigurationList', 'locationName' => 'AnalyticsConfiguration', ], ], ], 'ListBucketAnalyticsConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'ListBucketIntelligentTieringConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'IntelligentTieringConfigurationList' => [ 'shape' => 'IntelligentTieringConfigurationList', 'locationName' => 'IntelligentTieringConfiguration', ], ], ], 'ListBucketIntelligentTieringConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'ListBucketInventoryConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'ContinuationToken' => [ 'shape' => 'Token', ], 'InventoryConfigurationList' => [ 'shape' => 'InventoryConfigurationList', 'locationName' => 'InventoryConfiguration', ], 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], ], ], 'ListBucketInventoryConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'ListBucketMetricsConfigurationsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'MetricsConfigurationList' => [ 'shape' => 'MetricsConfigurationList', 'locationName' => 'MetricsConfiguration', ], ], ], 'ListBucketMetricsConfigurationsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'ListBucketsOutput' => [ 'type' => 'structure', 'members' => [ 'Buckets' => [ 'shape' => 'Buckets', ], 'Owner' => [ 'shape' => 'Owner', ], 'ContinuationToken' => [ 'shape' => 'NextToken', ], 'Prefix' => [ 'shape' => 'Prefix', ], ], ], 'ListBucketsRequest' => [ 'type' => 'structure', 'members' => [ 'MaxBuckets' => [ 'shape' => 'MaxBuckets', 'location' => 'querystring', 'locationName' => 'max-buckets', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'Prefix' => [ 'shape' => 'Prefix', 'location' => 'querystring', 'locationName' => 'prefix', ], 'BucketRegion' => [ 'shape' => 'BucketRegion', 'location' => 'querystring', 'locationName' => 'bucket-region', ], ], ], 'ListDirectoryBucketsOutput' => [ 'type' => 'structure', 'members' => [ 'Buckets' => [ 'shape' => 'Buckets', ], 'ContinuationToken' => [ 'shape' => 'DirectoryBucketToken', ], ], ], 'ListDirectoryBucketsRequest' => [ 'type' => 'structure', 'members' => [ 'ContinuationToken' => [ 'shape' => 'DirectoryBucketToken', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'MaxDirectoryBuckets' => [ 'shape' => 'MaxDirectoryBuckets', 'location' => 'querystring', 'locationName' => 'max-directory-buckets', ], ], ], 'ListMultipartUploadsOutput' => [ 'type' => 'structure', 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', ], 'KeyMarker' => [ 'shape' => 'KeyMarker', ], 'UploadIdMarker' => [ 'shape' => 'UploadIdMarker', ], 'NextKeyMarker' => [ 'shape' => 'NextKeyMarker', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Delimiter' => [ 'shape' => 'Delimiter', ], 'NextUploadIdMarker' => [ 'shape' => 'NextUploadIdMarker', ], 'MaxUploads' => [ 'shape' => 'MaxUploads', ], 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'Uploads' => [ 'shape' => 'MultipartUploadList', 'locationName' => 'Upload', ], 'CommonPrefixes' => [ 'shape' => 'CommonPrefixList', ], 'EncodingType' => [ 'shape' => 'EncodingType', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'ListMultipartUploadsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Delimiter' => [ 'shape' => 'Delimiter', 'location' => 'querystring', 'locationName' => 'delimiter', ], 'EncodingType' => [ 'shape' => 'EncodingType', 'location' => 'querystring', 'locationName' => 'encoding-type', ], 'KeyMarker' => [ 'shape' => 'KeyMarker', 'location' => 'querystring', 'locationName' => 'key-marker', ], 'MaxUploads' => [ 'shape' => 'MaxUploads', 'location' => 'querystring', 'locationName' => 'max-uploads', ], 'Prefix' => [ 'shape' => 'Prefix', 'contextParam' => [ 'name' => 'Prefix', ], 'location' => 'querystring', 'locationName' => 'prefix', ], 'UploadIdMarker' => [ 'shape' => 'UploadIdMarker', 'location' => 'querystring', 'locationName' => 'upload-id-marker', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], ], 'ListObjectVersionsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'KeyMarker' => [ 'shape' => 'KeyMarker', ], 'VersionIdMarker' => [ 'shape' => 'VersionIdMarker', ], 'NextKeyMarker' => [ 'shape' => 'NextKeyMarker', ], 'NextVersionIdMarker' => [ 'shape' => 'NextVersionIdMarker', ], 'Versions' => [ 'shape' => 'ObjectVersionList', 'locationName' => 'Version', ], 'DeleteMarkers' => [ 'shape' => 'DeleteMarkers', 'locationName' => 'DeleteMarker', ], 'Name' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Delimiter' => [ 'shape' => 'Delimiter', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', ], 'CommonPrefixes' => [ 'shape' => 'CommonPrefixList', ], 'EncodingType' => [ 'shape' => 'EncodingType', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'ListObjectVersionsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Delimiter' => [ 'shape' => 'Delimiter', 'location' => 'querystring', 'locationName' => 'delimiter', ], 'EncodingType' => [ 'shape' => 'EncodingType', 'location' => 'querystring', 'locationName' => 'encoding-type', ], 'KeyMarker' => [ 'shape' => 'KeyMarker', 'location' => 'querystring', 'locationName' => 'key-marker', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', 'location' => 'querystring', 'locationName' => 'max-keys', ], 'Prefix' => [ 'shape' => 'Prefix', 'contextParam' => [ 'name' => 'Prefix', ], 'location' => 'querystring', 'locationName' => 'prefix', ], 'VersionIdMarker' => [ 'shape' => 'VersionIdMarker', 'location' => 'querystring', 'locationName' => 'version-id-marker', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'OptionalObjectAttributes' => [ 'shape' => 'OptionalObjectAttributesList', 'location' => 'header', 'locationName' => 'x-amz-optional-object-attributes', ], ], ], 'ListObjectsOutput' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'Marker' => [ 'shape' => 'Marker', ], 'NextMarker' => [ 'shape' => 'NextMarker', ], 'Contents' => [ 'shape' => 'ObjectList', ], 'Name' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Delimiter' => [ 'shape' => 'Delimiter', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', ], 'CommonPrefixes' => [ 'shape' => 'CommonPrefixList', ], 'EncodingType' => [ 'shape' => 'EncodingType', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'ListObjectsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Delimiter' => [ 'shape' => 'Delimiter', 'location' => 'querystring', 'locationName' => 'delimiter', ], 'EncodingType' => [ 'shape' => 'EncodingType', 'location' => 'querystring', 'locationName' => 'encoding-type', ], 'Marker' => [ 'shape' => 'Marker', 'location' => 'querystring', 'locationName' => 'marker', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', 'location' => 'querystring', 'locationName' => 'max-keys', ], 'Prefix' => [ 'shape' => 'Prefix', 'contextParam' => [ 'name' => 'Prefix', ], 'location' => 'querystring', 'locationName' => 'prefix', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'OptionalObjectAttributes' => [ 'shape' => 'OptionalObjectAttributesList', 'location' => 'header', 'locationName' => 'x-amz-optional-object-attributes', ], ], ], 'ListObjectsV2Output' => [ 'type' => 'structure', 'members' => [ 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'Contents' => [ 'shape' => 'ObjectList', ], 'Name' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Delimiter' => [ 'shape' => 'Delimiter', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', ], 'CommonPrefixes' => [ 'shape' => 'CommonPrefixList', ], 'EncodingType' => [ 'shape' => 'EncodingType', ], 'KeyCount' => [ 'shape' => 'KeyCount', ], 'ContinuationToken' => [ 'shape' => 'Token', ], 'NextContinuationToken' => [ 'shape' => 'NextToken', ], 'StartAfter' => [ 'shape' => 'StartAfter', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'ListObjectsV2Request' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Delimiter' => [ 'shape' => 'Delimiter', 'location' => 'querystring', 'locationName' => 'delimiter', ], 'EncodingType' => [ 'shape' => 'EncodingType', 'location' => 'querystring', 'locationName' => 'encoding-type', ], 'MaxKeys' => [ 'shape' => 'MaxKeys', 'location' => 'querystring', 'locationName' => 'max-keys', ], 'Prefix' => [ 'shape' => 'Prefix', 'contextParam' => [ 'name' => 'Prefix', ], 'location' => 'querystring', 'locationName' => 'prefix', ], 'ContinuationToken' => [ 'shape' => 'Token', 'location' => 'querystring', 'locationName' => 'continuation-token', ], 'FetchOwner' => [ 'shape' => 'FetchOwner', 'location' => 'querystring', 'locationName' => 'fetch-owner', ], 'StartAfter' => [ 'shape' => 'StartAfter', 'location' => 'querystring', 'locationName' => 'start-after', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'OptionalObjectAttributes' => [ 'shape' => 'OptionalObjectAttributesList', 'location' => 'header', 'locationName' => 'x-amz-optional-object-attributes', ], ], ], 'ListPartsOutput' => [ 'type' => 'structure', 'members' => [ 'AbortDate' => [ 'shape' => 'AbortDate', 'location' => 'header', 'locationName' => 'x-amz-abort-date', ], 'AbortRuleId' => [ 'shape' => 'AbortRuleId', 'location' => 'header', 'locationName' => 'x-amz-abort-rule-id', ], 'Bucket' => [ 'shape' => 'BucketName', ], 'Key' => [ 'shape' => 'ObjectKey', ], 'UploadId' => [ 'shape' => 'MultipartUploadId', ], 'PartNumberMarker' => [ 'shape' => 'PartNumberMarker', ], 'NextPartNumberMarker' => [ 'shape' => 'NextPartNumberMarker', ], 'MaxParts' => [ 'shape' => 'MaxParts', ], 'IsTruncated' => [ 'shape' => 'IsTruncated', ], 'Parts' => [ 'shape' => 'Parts', 'locationName' => 'Part', ], 'Initiator' => [ 'shape' => 'Initiator', ], 'Owner' => [ 'shape' => 'Owner', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], ], ], 'ListPartsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'UploadId', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'MaxParts' => [ 'shape' => 'MaxParts', 'location' => 'querystring', 'locationName' => 'max-parts', ], 'PartNumberMarker' => [ 'shape' => 'PartNumberMarker', 'location' => 'querystring', 'locationName' => 'part-number-marker', ], 'UploadId' => [ 'shape' => 'MultipartUploadId', 'location' => 'querystring', 'locationName' => 'uploadId', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], ], ], 'Location' => [ 'type' => 'string', ], 'LocationInfo' => [ 'type' => 'structure', 'members' => [ 'Type' => [ 'shape' => 'LocationType', ], 'Name' => [ 'shape' => 'LocationNameAsString', ], ], ], 'LocationNameAsString' => [ 'type' => 'string', ], 'LocationPrefix' => [ 'type' => 'string', ], 'LocationType' => [ 'type' => 'string', 'enum' => [ 'AvailabilityZone', 'LocalZone', ], ], 'LoggingEnabled' => [ 'type' => 'structure', 'required' => [ 'TargetBucket', 'TargetPrefix', ], 'members' => [ 'TargetBucket' => [ 'shape' => 'TargetBucket', ], 'TargetGrants' => [ 'shape' => 'TargetGrants', ], 'TargetPrefix' => [ 'shape' => 'TargetPrefix', ], 'TargetObjectKeyFormat' => [ 'shape' => 'TargetObjectKeyFormat', ], ], ], 'MFA' => [ 'type' => 'string', ], 'MFADelete' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'MFADeleteStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Marker' => [ 'type' => 'string', ], 'MaxAgeSeconds' => [ 'type' => 'integer', 'box' => true, ], 'MaxBuckets' => [ 'type' => 'integer', 'box' => true, 'max' => 10000, 'min' => 1, ], 'MaxDirectoryBuckets' => [ 'type' => 'integer', 'box' => true, 'max' => 1000, 'min' => 0, ], 'MaxKeys' => [ 'type' => 'integer', ], 'MaxParts' => [ 'type' => 'integer', ], 'MaxUploads' => [ 'type' => 'integer', ], 'Message' => [ 'type' => 'string', ], 'Metadata' => [ 'type' => 'map', 'key' => [ 'shape' => 'MetadataKey', ], 'value' => [ 'shape' => 'MetadataValue', ], ], 'MetadataDirective' => [ 'type' => 'string', 'enum' => [ 'COPY', 'REPLACE', ], ], 'MetadataEntry' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'MetadataKey', ], 'Value' => [ 'shape' => 'MetadataValue', ], ], ], 'MetadataKey' => [ 'type' => 'string', ], 'MetadataTableConfiguration' => [ 'type' => 'structure', 'required' => [ 'S3TablesDestination', ], 'members' => [ 'S3TablesDestination' => [ 'shape' => 'S3TablesDestination', ], ], ], 'MetadataTableConfigurationResult' => [ 'type' => 'structure', 'required' => [ 'S3TablesDestinationResult', ], 'members' => [ 'S3TablesDestinationResult' => [ 'shape' => 'S3TablesDestinationResult', ], ], ], 'MetadataTableStatus' => [ 'type' => 'string', ], 'MetadataValue' => [ 'type' => 'string', ], 'Metrics' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'MetricsStatus', ], 'EventThreshold' => [ 'shape' => 'ReplicationTimeValue', ], ], ], 'MetricsAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], 'AccessPointArn' => [ 'shape' => 'AccessPointArn', ], ], ], 'MetricsConfiguration' => [ 'type' => 'structure', 'required' => [ 'Id', ], 'members' => [ 'Id' => [ 'shape' => 'MetricsId', ], 'Filter' => [ 'shape' => 'MetricsFilter', ], ], ], 'MetricsConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricsConfiguration', ], 'flattened' => true, ], 'MetricsFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'AccessPointArn' => [ 'shape' => 'AccessPointArn', ], 'And' => [ 'shape' => 'MetricsAndOperator', ], ], ], 'MetricsId' => [ 'type' => 'string', ], 'MetricsStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Minutes' => [ 'type' => 'integer', 'box' => true, ], 'MissingMeta' => [ 'type' => 'integer', ], 'MpuObjectSize' => [ 'type' => 'long', ], 'MultipartUpload' => [ 'type' => 'structure', 'members' => [ 'UploadId' => [ 'shape' => 'MultipartUploadId', ], 'Key' => [ 'shape' => 'ObjectKey', ], 'Initiated' => [ 'shape' => 'Initiated', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], 'Owner' => [ 'shape' => 'Owner', ], 'Initiator' => [ 'shape' => 'Initiator', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], ], ], 'MultipartUploadId' => [ 'type' => 'string', ], 'MultipartUploadList' => [ 'type' => 'list', 'member' => [ 'shape' => 'MultipartUpload', ], 'flattened' => true, ], 'NextKeyMarker' => [ 'type' => 'string', ], 'NextMarker' => [ 'type' => 'string', ], 'NextPartNumberMarker' => [ 'type' => 'integer', 'box' => true, ], 'NextToken' => [ 'type' => 'string', ], 'NextUploadIdMarker' => [ 'type' => 'string', ], 'NextVersionIdMarker' => [ 'type' => 'string', ], 'NoSuchBucket' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchKey' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoSuchUpload' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'NoncurrentVersionExpiration' => [ 'type' => 'structure', 'members' => [ 'NoncurrentDays' => [ 'shape' => 'Days', ], 'NewerNoncurrentVersions' => [ 'shape' => 'VersionCount', ], ], ], 'NoncurrentVersionTransition' => [ 'type' => 'structure', 'members' => [ 'NoncurrentDays' => [ 'shape' => 'Days', ], 'StorageClass' => [ 'shape' => 'TransitionStorageClass', ], 'NewerNoncurrentVersions' => [ 'shape' => 'VersionCount', ], ], ], 'NoncurrentVersionTransitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NoncurrentVersionTransition', ], 'flattened' => true, ], 'NotificationConfiguration' => [ 'type' => 'structure', 'members' => [ 'TopicConfigurations' => [ 'shape' => 'TopicConfigurationList', 'locationName' => 'TopicConfiguration', ], 'QueueConfigurations' => [ 'shape' => 'QueueConfigurationList', 'locationName' => 'QueueConfiguration', ], 'LambdaFunctionConfigurations' => [ 'shape' => 'LambdaFunctionConfigurationList', 'locationName' => 'CloudFunctionConfiguration', ], 'EventBridgeConfiguration' => [ 'shape' => 'EventBridgeConfiguration', ], ], ], 'NotificationConfigurationDeprecated' => [ 'type' => 'structure', 'members' => [ 'TopicConfiguration' => [ 'shape' => 'TopicConfigurationDeprecated', ], 'QueueConfiguration' => [ 'shape' => 'QueueConfigurationDeprecated', ], 'CloudFunctionConfiguration' => [ 'shape' => 'CloudFunctionConfiguration', ], ], ], 'NotificationConfigurationFilter' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'S3KeyFilter', 'locationName' => 'S3Key', ], ], ], 'NotificationId' => [ 'type' => 'string', ], 'Object' => [ 'type' => 'structure', 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'ETag' => [ 'shape' => 'ETag', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithmList', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], 'Size' => [ 'shape' => 'Size', ], 'StorageClass' => [ 'shape' => 'ObjectStorageClass', ], 'Owner' => [ 'shape' => 'Owner', ], 'RestoreStatus' => [ 'shape' => 'RestoreStatus', ], ], ], 'ObjectAlreadyInActiveTierError' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'ObjectAttributes' => [ 'type' => 'string', 'enum' => [ 'ETag', 'Checksum', 'ObjectParts', 'StorageClass', 'ObjectSize', ], ], 'ObjectAttributesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectAttributes', ], ], 'ObjectCannedACL' => [ 'type' => 'string', 'enum' => [ 'private', 'public-read', 'public-read-write', 'authenticated-read', 'aws-exec-read', 'bucket-owner-read', 'bucket-owner-full-control', ], ], 'ObjectIdentifier' => [ 'type' => 'structure', 'required' => [ 'Key', ], 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', ], 'ETag' => [ 'shape' => 'ETag', ], 'LastModifiedTime' => [ 'shape' => 'LastModifiedTime', ], 'Size' => [ 'shape' => 'Size', ], ], ], 'ObjectIdentifierList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectIdentifier', ], 'flattened' => true, ], 'ObjectKey' => [ 'type' => 'string', 'min' => 1, ], 'ObjectList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Object', ], 'flattened' => true, ], 'ObjectLockConfiguration' => [ 'type' => 'structure', 'members' => [ 'ObjectLockEnabled' => [ 'shape' => 'ObjectLockEnabled', ], 'Rule' => [ 'shape' => 'ObjectLockRule', ], ], ], 'ObjectLockEnabled' => [ 'type' => 'string', 'enum' => [ 'Enabled', ], ], 'ObjectLockEnabledForBucket' => [ 'type' => 'boolean', 'box' => true, ], 'ObjectLockLegalHold' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'ObjectLockLegalHoldStatus', ], ], ], 'ObjectLockLegalHoldStatus' => [ 'type' => 'string', 'enum' => [ 'ON', 'OFF', ], ], 'ObjectLockMode' => [ 'type' => 'string', 'enum' => [ 'GOVERNANCE', 'COMPLIANCE', ], ], 'ObjectLockRetainUntilDate' => [ 'type' => 'timestamp', 'timestampFormat' => 'iso8601', ], 'ObjectLockRetention' => [ 'type' => 'structure', 'members' => [ 'Mode' => [ 'shape' => 'ObjectLockRetentionMode', ], 'RetainUntilDate' => [ 'shape' => 'Date', ], ], ], 'ObjectLockRetentionMode' => [ 'type' => 'string', 'enum' => [ 'GOVERNANCE', 'COMPLIANCE', ], ], 'ObjectLockRule' => [ 'type' => 'structure', 'members' => [ 'DefaultRetention' => [ 'shape' => 'DefaultRetention', ], ], ], 'ObjectLockToken' => [ 'type' => 'string', ], 'ObjectNotInActiveTierError' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 403, ], 'exception' => true, ], 'ObjectOwnership' => [ 'type' => 'string', 'enum' => [ 'BucketOwnerPreferred', 'ObjectWriter', 'BucketOwnerEnforced', ], ], 'ObjectPart' => [ 'type' => 'structure', 'members' => [ 'PartNumber' => [ 'shape' => 'PartNumber', ], 'Size' => [ 'shape' => 'Size', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], ], ], 'ObjectSize' => [ 'type' => 'long', 'box' => true, ], 'ObjectSizeGreaterThanBytes' => [ 'type' => 'long', 'box' => true, ], 'ObjectSizeLessThanBytes' => [ 'type' => 'long', 'box' => true, ], 'ObjectStorageClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'REDUCED_REDUNDANCY', 'GLACIER', 'STANDARD_IA', 'ONEZONE_IA', 'INTELLIGENT_TIERING', 'DEEP_ARCHIVE', 'OUTPOSTS', 'GLACIER_IR', 'SNOW', 'EXPRESS_ONEZONE', ], ], 'ObjectVersion' => [ 'type' => 'structure', 'members' => [ 'ETag' => [ 'shape' => 'ETag', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithmList', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', ], 'Size' => [ 'shape' => 'Size', ], 'StorageClass' => [ 'shape' => 'ObjectVersionStorageClass', ], 'Key' => [ 'shape' => 'ObjectKey', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', ], 'IsLatest' => [ 'shape' => 'IsLatest', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'Owner' => [ 'shape' => 'Owner', ], 'RestoreStatus' => [ 'shape' => 'RestoreStatus', ], ], ], 'ObjectVersionId' => [ 'type' => 'string', ], 'ObjectVersionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectVersion', ], 'flattened' => true, ], 'ObjectVersionStorageClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', ], ], 'OptionalObjectAttributes' => [ 'type' => 'string', 'enum' => [ 'RestoreStatus', ], ], 'OptionalObjectAttributesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'OptionalObjectAttributes', ], ], 'OutputLocation' => [ 'type' => 'structure', 'members' => [ 'S3' => [ 'shape' => 'S3Location', ], ], ], 'OutputSerialization' => [ 'type' => 'structure', 'members' => [ 'CSV' => [ 'shape' => 'CSVOutput', ], 'JSON' => [ 'shape' => 'JSONOutput', ], ], ], 'Owner' => [ 'type' => 'structure', 'members' => [ 'DisplayName' => [ 'shape' => 'DisplayName', ], 'ID' => [ 'shape' => 'ID', ], ], ], 'OwnerOverride' => [ 'type' => 'string', 'enum' => [ 'Destination', ], ], 'OwnershipControls' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'OwnershipControlsRules', 'locationName' => 'Rule', ], ], ], 'OwnershipControlsRule' => [ 'type' => 'structure', 'required' => [ 'ObjectOwnership', ], 'members' => [ 'ObjectOwnership' => [ 'shape' => 'ObjectOwnership', ], ], ], 'OwnershipControlsRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'OwnershipControlsRule', ], 'flattened' => true, ], 'ParquetInput' => [ 'type' => 'structure', 'members' => [], ], 'Part' => [ 'type' => 'structure', 'members' => [ 'PartNumber' => [ 'shape' => 'PartNumber', ], 'LastModified' => [ 'shape' => 'LastModified', ], 'ETag' => [ 'shape' => 'ETag', ], 'Size' => [ 'shape' => 'Size', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', ], ], ], 'PartNumber' => [ 'type' => 'integer', ], 'PartNumberMarker' => [ 'type' => 'integer', ], 'PartitionDateSource' => [ 'type' => 'string', 'enum' => [ 'EventTime', 'DeliveryTime', ], ], 'PartitionedPrefix' => [ 'type' => 'structure', 'members' => [ 'PartitionDateSource' => [ 'shape' => 'PartitionDateSource', ], ], 'locationName' => 'PartitionedPrefix', ], 'Parts' => [ 'type' => 'list', 'member' => [ 'shape' => 'Part', ], 'flattened' => true, ], 'PartsCount' => [ 'type' => 'integer', 'box' => true, ], 'PartsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ObjectPart', ], 'flattened' => true, ], 'Payer' => [ 'type' => 'string', 'enum' => [ 'Requester', 'BucketOwner', ], ], 'Permission' => [ 'type' => 'string', 'enum' => [ 'FULL_CONTROL', 'WRITE', 'WRITE_ACP', 'READ', 'READ_ACP', ], ], 'Policy' => [ 'type' => 'string', ], 'PolicyStatus' => [ 'type' => 'structure', 'members' => [ 'IsPublic' => [ 'shape' => 'IsPublic', 'locationName' => 'IsPublic', ], ], ], 'Prefix' => [ 'type' => 'string', ], 'Priority' => [ 'type' => 'integer', 'box' => true, ], 'Progress' => [ 'type' => 'structure', 'members' => [ 'BytesScanned' => [ 'shape' => 'BytesScanned', ], 'BytesProcessed' => [ 'shape' => 'BytesProcessed', ], 'BytesReturned' => [ 'shape' => 'BytesReturned', ], ], ], 'ProgressEvent' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'Progress', 'eventpayload' => true, ], ], 'event' => true, ], 'Protocol' => [ 'type' => 'string', 'enum' => [ 'http', 'https', ], ], 'PublicAccessBlockConfiguration' => [ 'type' => 'structure', 'members' => [ 'BlockPublicAcls' => [ 'shape' => 'Setting', 'locationName' => 'BlockPublicAcls', ], 'IgnorePublicAcls' => [ 'shape' => 'Setting', 'locationName' => 'IgnorePublicAcls', ], 'BlockPublicPolicy' => [ 'shape' => 'Setting', 'locationName' => 'BlockPublicPolicy', ], 'RestrictPublicBuckets' => [ 'shape' => 'Setting', 'locationName' => 'RestrictPublicBuckets', ], ], ], 'PutBucketAccelerateConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'AccelerateConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'AccelerateConfiguration' => [ 'shape' => 'AccelerateConfiguration', 'locationName' => 'AccelerateConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], ], 'payload' => 'AccelerateConfiguration', ], 'PutBucketAclRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'ACL' => [ 'shape' => 'BucketCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'AccessControlPolicy' => [ 'shape' => 'AccessControlPolicy', 'locationName' => 'AccessControlPolicy', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'GrantFullControl' => [ 'shape' => 'GrantFullControl', 'location' => 'header', 'locationName' => 'x-amz-grant-full-control', ], 'GrantRead' => [ 'shape' => 'GrantRead', 'location' => 'header', 'locationName' => 'x-amz-grant-read', ], 'GrantReadACP' => [ 'shape' => 'GrantReadACP', 'location' => 'header', 'locationName' => 'x-amz-grant-read-acp', ], 'GrantWrite' => [ 'shape' => 'GrantWrite', 'location' => 'header', 'locationName' => 'x-amz-grant-write', ], 'GrantWriteACP' => [ 'shape' => 'GrantWriteACP', 'location' => 'header', 'locationName' => 'x-amz-grant-write-acp', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'AccessControlPolicy', ], 'PutBucketAnalyticsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'AnalyticsConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'AnalyticsId', 'location' => 'querystring', 'locationName' => 'id', ], 'AnalyticsConfiguration' => [ 'shape' => 'AnalyticsConfiguration', 'locationName' => 'AnalyticsConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'AnalyticsConfiguration', ], 'PutBucketCorsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'CORSConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'CORSConfiguration' => [ 'shape' => 'CORSConfiguration', 'locationName' => 'CORSConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'CORSConfiguration', ], 'PutBucketEncryptionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'ServerSideEncryptionConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ServerSideEncryptionConfiguration' => [ 'shape' => 'ServerSideEncryptionConfiguration', 'locationName' => 'ServerSideEncryptionConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'ServerSideEncryptionConfiguration', ], 'PutBucketIntelligentTieringConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'IntelligentTieringConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'IntelligentTieringId', 'location' => 'querystring', 'locationName' => 'id', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'IntelligentTieringConfiguration' => [ 'shape' => 'IntelligentTieringConfiguration', 'locationName' => 'IntelligentTieringConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'IntelligentTieringConfiguration', ], 'PutBucketInventoryConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'InventoryConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'InventoryId', 'location' => 'querystring', 'locationName' => 'id', ], 'InventoryConfiguration' => [ 'shape' => 'InventoryConfiguration', 'locationName' => 'InventoryConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'InventoryConfiguration', ], 'PutBucketLifecycleConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'TransitionDefaultMinimumObjectSize' => [ 'shape' => 'TransitionDefaultMinimumObjectSize', 'location' => 'header', 'locationName' => 'x-amz-transition-default-minimum-object-size', ], ], ], 'PutBucketLifecycleConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'LifecycleConfiguration' => [ 'shape' => 'BucketLifecycleConfiguration', 'locationName' => 'LifecycleConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'TransitionDefaultMinimumObjectSize' => [ 'shape' => 'TransitionDefaultMinimumObjectSize', 'location' => 'header', 'locationName' => 'x-amz-transition-default-minimum-object-size', ], ], 'payload' => 'LifecycleConfiguration', ], 'PutBucketLifecycleRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'LifecycleConfiguration' => [ 'shape' => 'LifecycleConfiguration', 'locationName' => 'LifecycleConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'LifecycleConfiguration', ], 'PutBucketLoggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'BucketLoggingStatus', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'BucketLoggingStatus' => [ 'shape' => 'BucketLoggingStatus', 'locationName' => 'BucketLoggingStatus', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'BucketLoggingStatus', ], 'PutBucketMetricsConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Id', 'MetricsConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Id' => [ 'shape' => 'MetricsId', 'location' => 'querystring', 'locationName' => 'id', ], 'MetricsConfiguration' => [ 'shape' => 'MetricsConfiguration', 'locationName' => 'MetricsConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'MetricsConfiguration', ], 'PutBucketNotificationConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'NotificationConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'NotificationConfiguration' => [ 'shape' => 'NotificationConfiguration', 'locationName' => 'NotificationConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'SkipDestinationValidation' => [ 'shape' => 'SkipValidation', 'location' => 'header', 'locationName' => 'x-amz-skip-destination-validation', ], ], 'payload' => 'NotificationConfiguration', ], 'PutBucketNotificationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'NotificationConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'NotificationConfiguration' => [ 'shape' => 'NotificationConfigurationDeprecated', 'locationName' => 'NotificationConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'NotificationConfiguration', ], 'PutBucketOwnershipControlsRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'OwnershipControls', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'OwnershipControls' => [ 'shape' => 'OwnershipControls', 'locationName' => 'OwnershipControls', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], ], 'payload' => 'OwnershipControls', ], 'PutBucketPolicyRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Policy', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ConfirmRemoveSelfBucketAccess' => [ 'shape' => 'ConfirmRemoveSelfBucketAccess', 'location' => 'header', 'locationName' => 'x-amz-confirm-remove-self-bucket-access', ], 'Policy' => [ 'shape' => 'Policy', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'Policy', ], 'PutBucketReplicationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'ReplicationConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ReplicationConfiguration' => [ 'shape' => 'ReplicationConfiguration', 'locationName' => 'ReplicationConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'Token' => [ 'shape' => 'ObjectLockToken', 'location' => 'header', 'locationName' => 'x-amz-bucket-object-lock-token', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'ReplicationConfiguration', ], 'PutBucketRequestPaymentRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'RequestPaymentConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'RequestPaymentConfiguration' => [ 'shape' => 'RequestPaymentConfiguration', 'locationName' => 'RequestPaymentConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'RequestPaymentConfiguration', ], 'PutBucketTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Tagging', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'Tagging' => [ 'shape' => 'Tagging', 'locationName' => 'Tagging', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'Tagging', ], 'PutBucketVersioningRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'VersioningConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'MFA' => [ 'shape' => 'MFA', 'location' => 'header', 'locationName' => 'x-amz-mfa', ], 'VersioningConfiguration' => [ 'shape' => 'VersioningConfiguration', 'locationName' => 'VersioningConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'VersioningConfiguration', ], 'PutBucketWebsiteRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'WebsiteConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'WebsiteConfiguration' => [ 'shape' => 'WebsiteConfiguration', 'locationName' => 'WebsiteConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'WebsiteConfiguration', ], 'PutObjectAclOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectAclRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'ACL' => [ 'shape' => 'ObjectCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'AccessControlPolicy' => [ 'shape' => 'AccessControlPolicy', 'locationName' => 'AccessControlPolicy', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'GrantFullControl' => [ 'shape' => 'GrantFullControl', 'location' => 'header', 'locationName' => 'x-amz-grant-full-control', ], 'GrantRead' => [ 'shape' => 'GrantRead', 'location' => 'header', 'locationName' => 'x-amz-grant-read', ], 'GrantReadACP' => [ 'shape' => 'GrantReadACP', 'location' => 'header', 'locationName' => 'x-amz-grant-read-acp', ], 'GrantWrite' => [ 'shape' => 'GrantWrite', 'location' => 'header', 'locationName' => 'x-amz-grant-write', ], 'GrantWriteACP' => [ 'shape' => 'GrantWriteACP', 'location' => 'header', 'locationName' => 'x-amz-grant-write-acp', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'AccessControlPolicy', ], 'PutObjectLegalHoldOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectLegalHoldRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'LegalHold' => [ 'shape' => 'ObjectLockLegalHold', 'locationName' => 'LegalHold', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'LegalHold', ], 'PutObjectLockConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectLockConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ObjectLockConfiguration' => [ 'shape' => 'ObjectLockConfiguration', 'locationName' => 'ObjectLockConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'Token' => [ 'shape' => 'ObjectLockToken', 'location' => 'header', 'locationName' => 'x-amz-bucket-object-lock-token', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'ObjectLockConfiguration', ], 'PutObjectOutput' => [ 'type' => 'structure', 'members' => [ 'Expiration' => [ 'shape' => 'Expiration', 'location' => 'header', 'locationName' => 'x-amz-expiration', ], 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'ETag', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'ChecksumType' => [ 'shape' => 'ChecksumType', 'location' => 'header', 'locationName' => 'x-amz-checksum-type', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'Size' => [ 'shape' => 'Size', 'location' => 'header', 'locationName' => 'x-amz-object-size', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'ACL' => [ 'shape' => 'ObjectCannedACL', 'location' => 'header', 'locationName' => 'x-amz-acl', ], 'Body' => [ 'shape' => 'Body', 'streaming' => true, ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'CacheControl' => [ 'shape' => 'CacheControl', 'location' => 'header', 'locationName' => 'Cache-Control', ], 'ContentDisposition' => [ 'shape' => 'ContentDisposition', 'location' => 'header', 'locationName' => 'Content-Disposition', ], 'ContentEncoding' => [ 'shape' => 'ContentEncoding', 'location' => 'header', 'locationName' => 'Content-Encoding', ], 'ContentLanguage' => [ 'shape' => 'ContentLanguage', 'location' => 'header', 'locationName' => 'Content-Language', ], 'ContentLength' => [ 'shape' => 'ContentLength', 'location' => 'header', 'locationName' => 'Content-Length', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'Content-Type', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'Expires' => [ 'shape' => 'Expires', 'location' => 'header', 'locationName' => 'Expires', ], 'IfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'IfNoneMatch' => [ 'shape' => 'IfNoneMatch', 'location' => 'header', 'locationName' => 'If-None-Match', ], 'GrantFullControl' => [ 'shape' => 'GrantFullControl', 'location' => 'header', 'locationName' => 'x-amz-grant-full-control', ], 'GrantRead' => [ 'shape' => 'GrantRead', 'location' => 'header', 'locationName' => 'x-amz-grant-read', ], 'GrantReadACP' => [ 'shape' => 'GrantReadACP', 'location' => 'header', 'locationName' => 'x-amz-grant-read-acp', ], 'GrantWriteACP' => [ 'shape' => 'GrantWriteACP', 'location' => 'header', 'locationName' => 'x-amz-grant-write-acp', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'WriteOffsetBytes' => [ 'shape' => 'WriteOffsetBytes', 'location' => 'header', 'locationName' => 'x-amz-write-offset-bytes', ], 'Metadata' => [ 'shape' => 'Metadata', 'location' => 'headers', 'locationName' => 'x-amz-meta-', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-storage-class', ], 'WebsiteRedirectLocation' => [ 'shape' => 'WebsiteRedirectLocation', 'location' => 'header', 'locationName' => 'x-amz-website-redirect-location', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'SSEKMSEncryptionContext' => [ 'shape' => 'SSEKMSEncryptionContext', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-context', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'Tagging' => [ 'shape' => 'TaggingHeader', 'location' => 'header', 'locationName' => 'x-amz-tagging', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-object-lock-mode', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-object-lock-retain-until-date', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-object-lock-legal-hold', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'Body', ], 'PutObjectRetentionOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'PutObjectRetentionRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'Retention' => [ 'shape' => 'ObjectLockRetention', 'locationName' => 'Retention', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'BypassGovernanceRetention' => [ 'shape' => 'BypassGovernanceRetention', 'location' => 'header', 'locationName' => 'x-amz-bypass-governance-retention', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'Retention', ], 'PutObjectTaggingOutput' => [ 'type' => 'structure', 'members' => [ 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-version-id', ], ], ], 'PutObjectTaggingRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'Tagging', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'Tagging' => [ 'shape' => 'Tagging', 'locationName' => 'Tagging', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], ], 'payload' => 'Tagging', ], 'PutPublicAccessBlockRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'PublicAccessBlockConfiguration', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'PublicAccessBlockConfiguration' => [ 'shape' => 'PublicAccessBlockConfiguration', 'locationName' => 'PublicAccessBlockConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'PublicAccessBlockConfiguration', ], 'QueueArn' => [ 'type' => 'string', ], 'QueueConfiguration' => [ 'type' => 'structure', 'required' => [ 'QueueArn', 'Events', ], 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'QueueArn' => [ 'shape' => 'QueueArn', 'locationName' => 'Queue', ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'Filter' => [ 'shape' => 'NotificationConfigurationFilter', ], ], ], 'QueueConfigurationDeprecated' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'Event' => [ 'shape' => 'Event', 'deprecated' => true, ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'Queue' => [ 'shape' => 'QueueArn', ], ], ], 'QueueConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'QueueConfiguration', ], 'flattened' => true, ], 'Quiet' => [ 'type' => 'boolean', 'box' => true, ], 'QuoteCharacter' => [ 'type' => 'string', ], 'QuoteEscapeCharacter' => [ 'type' => 'string', ], 'QuoteFields' => [ 'type' => 'string', 'enum' => [ 'ALWAYS', 'ASNEEDED', ], ], 'Range' => [ 'type' => 'string', ], 'RecordDelimiter' => [ 'type' => 'string', ], 'RecordsEvent' => [ 'type' => 'structure', 'members' => [ 'Payload' => [ 'shape' => 'Body', 'eventpayload' => true, ], ], 'event' => true, ], 'Redirect' => [ 'type' => 'structure', 'members' => [ 'HostName' => [ 'shape' => 'HostName', ], 'HttpRedirectCode' => [ 'shape' => 'HttpRedirectCode', ], 'Protocol' => [ 'shape' => 'Protocol', ], 'ReplaceKeyPrefixWith' => [ 'shape' => 'ReplaceKeyPrefixWith', ], 'ReplaceKeyWith' => [ 'shape' => 'ReplaceKeyWith', ], ], ], 'RedirectAllRequestsTo' => [ 'type' => 'structure', 'required' => [ 'HostName', ], 'members' => [ 'HostName' => [ 'shape' => 'HostName', ], 'Protocol' => [ 'shape' => 'Protocol', ], ], ], 'Region' => [ 'type' => 'string', 'max' => 20, 'min' => 0, ], 'RenameObjectOutput' => [ 'type' => 'structure', 'members' => [], ], 'RenameObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'RenameSource', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'RenameSource' => [ 'shape' => 'RenameSource', 'location' => 'header', 'locationName' => 'x-amz-rename-source', ], 'DestinationIfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'DestinationIfNoneMatch' => [ 'shape' => 'IfNoneMatch', 'location' => 'header', 'locationName' => 'If-None-Match', ], 'DestinationIfModifiedSince' => [ 'shape' => 'IfModifiedSince', 'location' => 'header', 'locationName' => 'If-Modified-Since', ], 'DestinationIfUnmodifiedSince' => [ 'shape' => 'IfUnmodifiedSince', 'location' => 'header', 'locationName' => 'If-Unmodified-Since', ], 'SourceIfMatch' => [ 'shape' => 'RenameSourceIfMatch', 'location' => 'header', 'locationName' => 'x-amz-rename-source-if-match', ], 'SourceIfNoneMatch' => [ 'shape' => 'RenameSourceIfNoneMatch', 'location' => 'header', 'locationName' => 'x-amz-rename-source-if-none-match', ], 'SourceIfModifiedSince' => [ 'shape' => 'RenameSourceIfModifiedSince', 'location' => 'header', 'locationName' => 'x-amz-rename-source-if-modified-since', ], 'SourceIfUnmodifiedSince' => [ 'shape' => 'RenameSourceIfUnmodifiedSince', 'location' => 'header', 'locationName' => 'x-amz-rename-source-if-unmodified-since', ], 'ClientToken' => [ 'shape' => 'ClientToken', 'idempotencyToken' => true, 'location' => 'header', 'locationName' => 'x-amz-client-token', ], ], ], 'RenameSource' => [ 'type' => 'string', 'pattern' => '\\/?.+\\/.+', ], 'RenameSourceIfMatch' => [ 'type' => 'string', ], 'RenameSourceIfModifiedSince' => [ 'type' => 'timestamp', 'timestampFormat' => 'rfc822', ], 'RenameSourceIfNoneMatch' => [ 'type' => 'string', ], 'RenameSourceIfUnmodifiedSince' => [ 'type' => 'timestamp', 'timestampFormat' => 'rfc822', ], 'ReplaceKeyPrefixWith' => [ 'type' => 'string', ], 'ReplaceKeyWith' => [ 'type' => 'string', ], 'ReplicaKmsKeyID' => [ 'type' => 'string', ], 'ReplicaModifications' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'ReplicaModificationsStatus', ], ], ], 'ReplicaModificationsStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ReplicationConfiguration' => [ 'type' => 'structure', 'required' => [ 'Role', 'Rules', ], 'members' => [ 'Role' => [ 'shape' => 'Role', ], 'Rules' => [ 'shape' => 'ReplicationRules', 'locationName' => 'Rule', ], ], ], 'ReplicationRule' => [ 'type' => 'structure', 'required' => [ 'Status', 'Destination', ], 'members' => [ 'ID' => [ 'shape' => 'ID', ], 'Priority' => [ 'shape' => 'Priority', ], 'Prefix' => [ 'shape' => 'Prefix', 'deprecated' => true, ], 'Filter' => [ 'shape' => 'ReplicationRuleFilter', ], 'Status' => [ 'shape' => 'ReplicationRuleStatus', ], 'SourceSelectionCriteria' => [ 'shape' => 'SourceSelectionCriteria', ], 'ExistingObjectReplication' => [ 'shape' => 'ExistingObjectReplication', ], 'Destination' => [ 'shape' => 'Destination', ], 'DeleteMarkerReplication' => [ 'shape' => 'DeleteMarkerReplication', ], ], ], 'ReplicationRuleAndOperator' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tags' => [ 'shape' => 'TagSet', 'flattened' => true, 'locationName' => 'Tag', ], ], ], 'ReplicationRuleFilter' => [ 'type' => 'structure', 'members' => [ 'Prefix' => [ 'shape' => 'Prefix', ], 'Tag' => [ 'shape' => 'Tag', ], 'And' => [ 'shape' => 'ReplicationRuleAndOperator', ], ], ], 'ReplicationRuleStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ReplicationRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ReplicationRule', ], 'flattened' => true, ], 'ReplicationStatus' => [ 'type' => 'string', 'enum' => [ 'COMPLETE', 'PENDING', 'FAILED', 'REPLICA', 'COMPLETED', ], ], 'ReplicationTime' => [ 'type' => 'structure', 'required' => [ 'Status', 'Time', ], 'members' => [ 'Status' => [ 'shape' => 'ReplicationTimeStatus', ], 'Time' => [ 'shape' => 'ReplicationTimeValue', ], ], ], 'ReplicationTimeStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ReplicationTimeValue' => [ 'type' => 'structure', 'members' => [ 'Minutes' => [ 'shape' => 'Minutes', ], ], ], 'RequestCharged' => [ 'type' => 'string', 'enum' => [ 'requester', ], ], 'RequestPayer' => [ 'type' => 'string', 'enum' => [ 'requester', ], ], 'RequestPaymentConfiguration' => [ 'type' => 'structure', 'required' => [ 'Payer', ], 'members' => [ 'Payer' => [ 'shape' => 'Payer', ], ], ], 'RequestProgress' => [ 'type' => 'structure', 'members' => [ 'Enabled' => [ 'shape' => 'EnableRequestProgress', ], ], ], 'RequestRoute' => [ 'type' => 'string', ], 'RequestToken' => [ 'type' => 'string', ], 'ResponseCacheControl' => [ 'type' => 'string', ], 'ResponseContentDisposition' => [ 'type' => 'string', ], 'ResponseContentEncoding' => [ 'type' => 'string', ], 'ResponseContentLanguage' => [ 'type' => 'string', ], 'ResponseContentType' => [ 'type' => 'string', ], 'ResponseExpires' => [ 'type' => 'timestamp', 'timestampFormat' => 'rfc822', ], 'Restore' => [ 'type' => 'string', ], 'RestoreExpiryDate' => [ 'type' => 'timestamp', ], 'RestoreObjectOutput' => [ 'type' => 'structure', 'members' => [ 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], 'RestoreOutputPath' => [ 'shape' => 'RestoreOutputPath', 'location' => 'header', 'locationName' => 'x-amz-restore-output-path', ], ], ], 'RestoreObjectRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'querystring', 'locationName' => 'versionId', ], 'RestoreRequest' => [ 'shape' => 'RestoreRequest', 'locationName' => 'RestoreRequest', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'RestoreRequest', ], 'RestoreOutputPath' => [ 'type' => 'string', ], 'RestoreRequest' => [ 'type' => 'structure', 'members' => [ 'Days' => [ 'shape' => 'Days', ], 'GlacierJobParameters' => [ 'shape' => 'GlacierJobParameters', ], 'Type' => [ 'shape' => 'RestoreRequestType', ], 'Tier' => [ 'shape' => 'Tier', ], 'Description' => [ 'shape' => 'Description', ], 'SelectParameters' => [ 'shape' => 'SelectParameters', ], 'OutputLocation' => [ 'shape' => 'OutputLocation', ], ], ], 'RestoreRequestType' => [ 'type' => 'string', 'enum' => [ 'SELECT', ], ], 'RestoreStatus' => [ 'type' => 'structure', 'members' => [ 'IsRestoreInProgress' => [ 'shape' => 'IsRestoreInProgress', ], 'RestoreExpiryDate' => [ 'shape' => 'RestoreExpiryDate', ], ], ], 'Role' => [ 'type' => 'string', ], 'RoutingRule' => [ 'type' => 'structure', 'required' => [ 'Redirect', ], 'members' => [ 'Condition' => [ 'shape' => 'Condition', ], 'Redirect' => [ 'shape' => 'Redirect', ], ], ], 'RoutingRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoutingRule', 'locationName' => 'RoutingRule', ], ], 'Rule' => [ 'type' => 'structure', 'required' => [ 'Prefix', 'Status', ], 'members' => [ 'Expiration' => [ 'shape' => 'LifecycleExpiration', ], 'ID' => [ 'shape' => 'ID', ], 'Prefix' => [ 'shape' => 'Prefix', ], 'Status' => [ 'shape' => 'ExpirationStatus', ], 'Transition' => [ 'shape' => 'Transition', ], 'NoncurrentVersionTransition' => [ 'shape' => 'NoncurrentVersionTransition', ], 'NoncurrentVersionExpiration' => [ 'shape' => 'NoncurrentVersionExpiration', ], 'AbortIncompleteMultipartUpload' => [ 'shape' => 'AbortIncompleteMultipartUpload', ], ], ], 'Rules' => [ 'type' => 'list', 'member' => [ 'shape' => 'Rule', ], 'flattened' => true, ], 'S3KeyFilter' => [ 'type' => 'structure', 'members' => [ 'FilterRules' => [ 'shape' => 'FilterRuleList', 'locationName' => 'FilterRule', ], ], ], 'S3Location' => [ 'type' => 'structure', 'required' => [ 'BucketName', 'Prefix', ], 'members' => [ 'BucketName' => [ 'shape' => 'BucketName', ], 'Prefix' => [ 'shape' => 'LocationPrefix', ], 'Encryption' => [ 'shape' => 'Encryption', ], 'CannedACL' => [ 'shape' => 'ObjectCannedACL', ], 'AccessControlList' => [ 'shape' => 'Grants', ], 'Tagging' => [ 'shape' => 'Tagging', ], 'UserMetadata' => [ 'shape' => 'UserMetadata', ], 'StorageClass' => [ 'shape' => 'StorageClass', ], ], ], 'S3TablesArn' => [ 'type' => 'string', ], 'S3TablesBucketArn' => [ 'type' => 'string', ], 'S3TablesDestination' => [ 'type' => 'structure', 'required' => [ 'TableBucketArn', 'TableName', ], 'members' => [ 'TableBucketArn' => [ 'shape' => 'S3TablesBucketArn', ], 'TableName' => [ 'shape' => 'S3TablesName', ], ], ], 'S3TablesDestinationResult' => [ 'type' => 'structure', 'required' => [ 'TableBucketArn', 'TableName', 'TableArn', 'TableNamespace', ], 'members' => [ 'TableBucketArn' => [ 'shape' => 'S3TablesBucketArn', ], 'TableName' => [ 'shape' => 'S3TablesName', ], 'TableArn' => [ 'shape' => 'S3TablesArn', ], 'TableNamespace' => [ 'shape' => 'S3TablesNamespace', ], ], ], 'S3TablesName' => [ 'type' => 'string', ], 'S3TablesNamespace' => [ 'type' => 'string', ], 'SSECustomerAlgorithm' => [ 'type' => 'string', ], 'SSECustomerKey' => [ 'type' => 'string', 'sensitive' => true, ], 'SSECustomerKeyMD5' => [ 'type' => 'string', ], 'SSEKMS' => [ 'type' => 'structure', 'required' => [ 'KeyId', ], 'members' => [ 'KeyId' => [ 'shape' => 'SSEKMSKeyId', ], ], 'locationName' => 'SSE-KMS', ], 'SSEKMSEncryptionContext' => [ 'type' => 'string', 'sensitive' => true, ], 'SSEKMSKeyId' => [ 'type' => 'string', 'sensitive' => true, ], 'SSES3' => [ 'type' => 'structure', 'members' => [], 'locationName' => 'SSE-S3', ], 'ScanRange' => [ 'type' => 'structure', 'members' => [ 'Start' => [ 'shape' => 'Start', ], 'End' => [ 'shape' => 'End', ], ], ], 'SelectObjectContentEventStream' => [ 'type' => 'structure', 'members' => [ 'Records' => [ 'shape' => 'RecordsEvent', ], 'Stats' => [ 'shape' => 'StatsEvent', ], 'Progress' => [ 'shape' => 'ProgressEvent', ], 'Cont' => [ 'shape' => 'ContinuationEvent', ], 'End' => [ 'shape' => 'EndEvent', ], ], 'eventstream' => true, ], 'SelectObjectContentOutput' => [ 'type' => 'structure', 'members' => [ 'Payload' => [ 'shape' => 'SelectObjectContentEventStream', ], ], 'payload' => 'Payload', ], 'SelectObjectContentRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'Expression', 'ExpressionType', 'InputSerialization', 'OutputSerialization', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'Expression' => [ 'shape' => 'Expression', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'RequestProgress' => [ 'shape' => 'RequestProgress', ], 'InputSerialization' => [ 'shape' => 'InputSerialization', ], 'OutputSerialization' => [ 'shape' => 'OutputSerialization', ], 'ScanRange' => [ 'shape' => 'ScanRange', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], ], 'SelectParameters' => [ 'type' => 'structure', 'required' => [ 'InputSerialization', 'ExpressionType', 'Expression', 'OutputSerialization', ], 'members' => [ 'InputSerialization' => [ 'shape' => 'InputSerialization', ], 'ExpressionType' => [ 'shape' => 'ExpressionType', ], 'Expression' => [ 'shape' => 'Expression', ], 'OutputSerialization' => [ 'shape' => 'OutputSerialization', ], ], ], 'ServerSideEncryption' => [ 'type' => 'string', 'enum' => [ 'AES256', 'aws:kms', 'aws:kms:dsse', ], ], 'ServerSideEncryptionByDefault' => [ 'type' => 'structure', 'required' => [ 'SSEAlgorithm', ], 'members' => [ 'SSEAlgorithm' => [ 'shape' => 'ServerSideEncryption', ], 'KMSMasterKeyID' => [ 'shape' => 'SSEKMSKeyId', ], ], ], 'ServerSideEncryptionConfiguration' => [ 'type' => 'structure', 'required' => [ 'Rules', ], 'members' => [ 'Rules' => [ 'shape' => 'ServerSideEncryptionRules', 'locationName' => 'Rule', ], ], ], 'ServerSideEncryptionRule' => [ 'type' => 'structure', 'members' => [ 'ApplyServerSideEncryptionByDefault' => [ 'shape' => 'ServerSideEncryptionByDefault', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', ], ], ], 'ServerSideEncryptionRules' => [ 'type' => 'list', 'member' => [ 'shape' => 'ServerSideEncryptionRule', ], 'flattened' => true, ], 'SessionCredentialValue' => [ 'type' => 'string', 'sensitive' => true, ], 'SessionCredentials' => [ 'type' => 'structure', 'required' => [ 'AccessKeyId', 'SecretAccessKey', 'SessionToken', 'Expiration', ], 'members' => [ 'AccessKeyId' => [ 'shape' => 'AccessKeyIdValue', 'locationName' => 'AccessKeyId', ], 'SecretAccessKey' => [ 'shape' => 'SessionCredentialValue', 'locationName' => 'SecretAccessKey', ], 'SessionToken' => [ 'shape' => 'SessionCredentialValue', 'locationName' => 'SessionToken', ], 'Expiration' => [ 'shape' => 'SessionExpiration', 'locationName' => 'Expiration', ], ], ], 'SessionExpiration' => [ 'type' => 'timestamp', ], 'SessionMode' => [ 'type' => 'string', 'enum' => [ 'ReadOnly', 'ReadWrite', ], ], 'Setting' => [ 'type' => 'boolean', 'box' => true, ], 'SimplePrefix' => [ 'type' => 'structure', 'members' => [], 'locationName' => 'SimplePrefix', ], 'Size' => [ 'type' => 'long', 'box' => true, ], 'SkipValidation' => [ 'type' => 'boolean', 'box' => true, ], 'SourceSelectionCriteria' => [ 'type' => 'structure', 'members' => [ 'SseKmsEncryptedObjects' => [ 'shape' => 'SseKmsEncryptedObjects', ], 'ReplicaModifications' => [ 'shape' => 'ReplicaModifications', ], ], ], 'SseKmsEncryptedObjects' => [ 'type' => 'structure', 'required' => [ 'Status', ], 'members' => [ 'Status' => [ 'shape' => 'SseKmsEncryptedObjectsStatus', ], ], ], 'SseKmsEncryptedObjectsStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'Start' => [ 'type' => 'long', 'box' => true, ], 'StartAfter' => [ 'type' => 'string', ], 'Stats' => [ 'type' => 'structure', 'members' => [ 'BytesScanned' => [ 'shape' => 'BytesScanned', ], 'BytesProcessed' => [ 'shape' => 'BytesProcessed', ], 'BytesReturned' => [ 'shape' => 'BytesReturned', ], ], ], 'StatsEvent' => [ 'type' => 'structure', 'members' => [ 'Details' => [ 'shape' => 'Stats', 'eventpayload' => true, ], ], 'event' => true, ], 'StorageClass' => [ 'type' => 'string', 'enum' => [ 'STANDARD', 'REDUCED_REDUNDANCY', 'STANDARD_IA', 'ONEZONE_IA', 'INTELLIGENT_TIERING', 'GLACIER', 'DEEP_ARCHIVE', 'OUTPOSTS', 'GLACIER_IR', 'SNOW', 'EXPRESS_ONEZONE', ], ], 'StorageClassAnalysis' => [ 'type' => 'structure', 'members' => [ 'DataExport' => [ 'shape' => 'StorageClassAnalysisDataExport', ], ], ], 'StorageClassAnalysisDataExport' => [ 'type' => 'structure', 'required' => [ 'OutputSchemaVersion', 'Destination', ], 'members' => [ 'OutputSchemaVersion' => [ 'shape' => 'StorageClassAnalysisSchemaVersion', ], 'Destination' => [ 'shape' => 'AnalyticsExportDestination', ], ], ], 'StorageClassAnalysisSchemaVersion' => [ 'type' => 'string', 'enum' => [ 'V_1', ], ], 'Suffix' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'ObjectKey', ], 'Value' => [ 'shape' => 'Value', ], ], ], 'TagCount' => [ 'type' => 'integer', 'box' => true, ], 'TagSet' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', 'locationName' => 'Tag', ], ], 'Tagging' => [ 'type' => 'structure', 'required' => [ 'TagSet', ], 'members' => [ 'TagSet' => [ 'shape' => 'TagSet', ], ], ], 'TaggingDirective' => [ 'type' => 'string', 'enum' => [ 'COPY', 'REPLACE', ], ], 'TaggingHeader' => [ 'type' => 'string', ], 'TargetBucket' => [ 'type' => 'string', ], 'TargetGrant' => [ 'type' => 'structure', 'members' => [ 'Grantee' => [ 'shape' => 'Grantee', ], 'Permission' => [ 'shape' => 'BucketLogsPermission', ], ], ], 'TargetGrants' => [ 'type' => 'list', 'member' => [ 'shape' => 'TargetGrant', 'locationName' => 'Grant', ], ], 'TargetObjectKeyFormat' => [ 'type' => 'structure', 'members' => [ 'SimplePrefix' => [ 'shape' => 'SimplePrefix', 'locationName' => 'SimplePrefix', ], 'PartitionedPrefix' => [ 'shape' => 'PartitionedPrefix', 'locationName' => 'PartitionedPrefix', ], ], ], 'TargetPrefix' => [ 'type' => 'string', ], 'Tier' => [ 'type' => 'string', 'enum' => [ 'Standard', 'Bulk', 'Expedited', ], ], 'Tiering' => [ 'type' => 'structure', 'required' => [ 'Days', 'AccessTier', ], 'members' => [ 'Days' => [ 'shape' => 'IntelligentTieringDays', ], 'AccessTier' => [ 'shape' => 'IntelligentTieringAccessTier', ], ], ], 'TieringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tiering', ], 'flattened' => true, ], 'Token' => [ 'type' => 'string', ], 'TooManyParts' => [ 'type' => 'structure', 'members' => [], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'TopicArn' => [ 'type' => 'string', ], 'TopicConfiguration' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'Events', ], 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'TopicArn' => [ 'shape' => 'TopicArn', 'locationName' => 'Topic', ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'Filter' => [ 'shape' => 'NotificationConfigurationFilter', ], ], ], 'TopicConfigurationDeprecated' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'NotificationId', ], 'Events' => [ 'shape' => 'EventList', 'locationName' => 'Event', ], 'Event' => [ 'shape' => 'Event', 'deprecated' => true, ], 'Topic' => [ 'shape' => 'TopicArn', ], ], ], 'TopicConfigurationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TopicConfiguration', ], 'flattened' => true, ], 'Transition' => [ 'type' => 'structure', 'members' => [ 'Date' => [ 'shape' => 'Date', ], 'Days' => [ 'shape' => 'Days', ], 'StorageClass' => [ 'shape' => 'TransitionStorageClass', ], ], ], 'TransitionDefaultMinimumObjectSize' => [ 'type' => 'string', 'enum' => [ 'varies_by_storage_class', 'all_storage_classes_128K', ], ], 'TransitionList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Transition', ], 'flattened' => true, ], 'TransitionStorageClass' => [ 'type' => 'string', 'enum' => [ 'GLACIER', 'STANDARD_IA', 'ONEZONE_IA', 'INTELLIGENT_TIERING', 'DEEP_ARCHIVE', 'GLACIER_IR', ], ], 'Type' => [ 'type' => 'string', 'enum' => [ 'CanonicalUser', 'AmazonCustomerByEmail', 'Group', ], ], 'URI' => [ 'type' => 'string', ], 'UploadIdMarker' => [ 'type' => 'string', ], 'UploadPartCopyOutput' => [ 'type' => 'structure', 'members' => [ 'CopySourceVersionId' => [ 'shape' => 'CopySourceVersionId', 'location' => 'header', 'locationName' => 'x-amz-copy-source-version-id', ], 'CopyPartResult' => [ 'shape' => 'CopyPartResult', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], 'payload' => 'CopyPartResult', ], 'UploadPartCopyRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'CopySource', 'Key', 'PartNumber', 'UploadId', ], 'members' => [ 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'CopySource' => [ 'shape' => 'CopySource', 'location' => 'header', 'locationName' => 'x-amz-copy-source', ], 'CopySourceIfMatch' => [ 'shape' => 'CopySourceIfMatch', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-match', ], 'CopySourceIfModifiedSince' => [ 'shape' => 'CopySourceIfModifiedSince', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-modified-since', ], 'CopySourceIfNoneMatch' => [ 'shape' => 'CopySourceIfNoneMatch', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-none-match', ], 'CopySourceIfUnmodifiedSince' => [ 'shape' => 'CopySourceIfUnmodifiedSince', 'location' => 'header', 'locationName' => 'x-amz-copy-source-if-unmodified-since', ], 'CopySourceRange' => [ 'shape' => 'CopySourceRange', 'location' => 'header', 'locationName' => 'x-amz-copy-source-range', ], 'Key' => [ 'shape' => 'ObjectKey', 'location' => 'uri', 'locationName' => 'Key', ], 'PartNumber' => [ 'shape' => 'PartNumber', 'location' => 'querystring', 'locationName' => 'partNumber', ], 'UploadId' => [ 'shape' => 'MultipartUploadId', 'location' => 'querystring', 'locationName' => 'uploadId', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'CopySourceSSECustomerAlgorithm' => [ 'shape' => 'CopySourceSSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-copy-source-server-side-encryption-customer-algorithm', ], 'CopySourceSSECustomerKey' => [ 'shape' => 'CopySourceSSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-copy-source-server-side-encryption-customer-key', ], 'CopySourceSSECustomerKeyMD5' => [ 'shape' => 'CopySourceSSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-copy-source-server-side-encryption-customer-key-MD5', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'ExpectedSourceBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-source-expected-bucket-owner', ], ], ], 'UploadPartOutput' => [ 'type' => 'structure', 'members' => [ 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption', ], 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'ETag', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-aws-kms-key-id', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-bucket-key-enabled', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-request-charged', ], ], ], 'UploadPartRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'Key', 'PartNumber', 'UploadId', ], 'members' => [ 'Body' => [ 'shape' => 'Body', 'streaming' => true, ], 'Bucket' => [ 'shape' => 'BucketName', 'contextParam' => [ 'name' => 'Bucket', ], 'location' => 'uri', 'locationName' => 'Bucket', ], 'ContentLength' => [ 'shape' => 'ContentLength', 'location' => 'header', 'locationName' => 'Content-Length', ], 'ContentMD5' => [ 'shape' => 'ContentMD5', 'location' => 'header', 'locationName' => 'Content-MD5', ], 'ChecksumAlgorithm' => [ 'shape' => 'ChecksumAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-sdk-checksum-algorithm', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-checksum-sha256', ], 'Key' => [ 'shape' => 'ObjectKey', 'contextParam' => [ 'name' => 'Key', ], 'location' => 'uri', 'locationName' => 'Key', ], 'PartNumber' => [ 'shape' => 'PartNumber', 'location' => 'querystring', 'locationName' => 'partNumber', ], 'UploadId' => [ 'shape' => 'MultipartUploadId', 'location' => 'querystring', 'locationName' => 'uploadId', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-algorithm', ], 'SSECustomerKey' => [ 'shape' => 'SSECustomerKey', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-server-side-encryption-customer-key-MD5', ], 'RequestPayer' => [ 'shape' => 'RequestPayer', 'location' => 'header', 'locationName' => 'x-amz-request-payer', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'Body', ], 'UserMetadata' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetadataEntry', 'locationName' => 'MetadataEntry', ], ], 'Value' => [ 'type' => 'string', ], 'VersionCount' => [ 'type' => 'integer', 'box' => true, ], 'VersionIdMarker' => [ 'type' => 'string', ], 'VersioningConfiguration' => [ 'type' => 'structure', 'members' => [ 'MFADelete' => [ 'shape' => 'MFADelete', 'locationName' => 'MfaDelete', ], 'Status' => [ 'shape' => 'BucketVersioningStatus', ], ], ], 'WebsiteConfiguration' => [ 'type' => 'structure', 'members' => [ 'ErrorDocument' => [ 'shape' => 'ErrorDocument', ], 'IndexDocument' => [ 'shape' => 'IndexDocument', ], 'RedirectAllRequestsTo' => [ 'shape' => 'RedirectAllRequestsTo', ], 'RoutingRules' => [ 'shape' => 'RoutingRules', ], ], ], 'WebsiteRedirectLocation' => [ 'type' => 'string', ], 'WriteGetObjectResponseRequest' => [ 'type' => 'structure', 'required' => [ 'RequestRoute', 'RequestToken', ], 'members' => [ 'RequestRoute' => [ 'shape' => 'RequestRoute', 'hostLabel' => true, 'location' => 'header', 'locationName' => 'x-amz-request-route', ], 'RequestToken' => [ 'shape' => 'RequestToken', 'location' => 'header', 'locationName' => 'x-amz-request-token', ], 'Body' => [ 'shape' => 'Body', 'streaming' => true, ], 'StatusCode' => [ 'shape' => 'GetObjectResponseStatusCode', 'location' => 'header', 'locationName' => 'x-amz-fwd-status', ], 'ErrorCode' => [ 'shape' => 'ErrorCode', 'location' => 'header', 'locationName' => 'x-amz-fwd-error-code', ], 'ErrorMessage' => [ 'shape' => 'ErrorMessage', 'location' => 'header', 'locationName' => 'x-amz-fwd-error-message', ], 'AcceptRanges' => [ 'shape' => 'AcceptRanges', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-accept-ranges', ], 'CacheControl' => [ 'shape' => 'CacheControl', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Cache-Control', ], 'ContentDisposition' => [ 'shape' => 'ContentDisposition', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Content-Disposition', ], 'ContentEncoding' => [ 'shape' => 'ContentEncoding', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Content-Encoding', ], 'ContentLanguage' => [ 'shape' => 'ContentLanguage', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Content-Language', ], 'ContentLength' => [ 'shape' => 'ContentLength', 'location' => 'header', 'locationName' => 'Content-Length', ], 'ContentRange' => [ 'shape' => 'ContentRange', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Content-Range', ], 'ContentType' => [ 'shape' => 'ContentType', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Content-Type', ], 'ChecksumCRC32' => [ 'shape' => 'ChecksumCRC32', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-checksum-crc32', ], 'ChecksumCRC32C' => [ 'shape' => 'ChecksumCRC32C', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-checksum-crc32c', ], 'ChecksumCRC64NVME' => [ 'shape' => 'ChecksumCRC64NVME', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-checksum-crc64nvme', ], 'ChecksumSHA1' => [ 'shape' => 'ChecksumSHA1', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-checksum-sha1', ], 'ChecksumSHA256' => [ 'shape' => 'ChecksumSHA256', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-checksum-sha256', ], 'DeleteMarker' => [ 'shape' => 'DeleteMarker', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-delete-marker', ], 'ETag' => [ 'shape' => 'ETag', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-ETag', ], 'Expires' => [ 'shape' => 'Expires', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Expires', ], 'Expiration' => [ 'shape' => 'Expiration', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-expiration', ], 'LastModified' => [ 'shape' => 'LastModified', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-Last-Modified', ], 'MissingMeta' => [ 'shape' => 'MissingMeta', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-missing-meta', ], 'Metadata' => [ 'shape' => 'Metadata', 'location' => 'headers', 'locationName' => 'x-amz-meta-', ], 'ObjectLockMode' => [ 'shape' => 'ObjectLockMode', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-object-lock-mode', ], 'ObjectLockLegalHoldStatus' => [ 'shape' => 'ObjectLockLegalHoldStatus', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-object-lock-legal-hold', ], 'ObjectLockRetainUntilDate' => [ 'shape' => 'ObjectLockRetainUntilDate', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-object-lock-retain-until-date', ], 'PartsCount' => [ 'shape' => 'PartsCount', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-mp-parts-count', ], 'ReplicationStatus' => [ 'shape' => 'ReplicationStatus', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-replication-status', ], 'RequestCharged' => [ 'shape' => 'RequestCharged', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-request-charged', ], 'Restore' => [ 'shape' => 'Restore', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-restore', ], 'ServerSideEncryption' => [ 'shape' => 'ServerSideEncryption', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-server-side-encryption', ], 'SSECustomerAlgorithm' => [ 'shape' => 'SSECustomerAlgorithm', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm', ], 'SSEKMSKeyId' => [ 'shape' => 'SSEKMSKeyId', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id', ], 'SSECustomerKeyMD5' => [ 'shape' => 'SSECustomerKeyMD5', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5', ], 'StorageClass' => [ 'shape' => 'StorageClass', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-storage-class', ], 'TagCount' => [ 'shape' => 'TagCount', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-tagging-count', ], 'VersionId' => [ 'shape' => 'ObjectVersionId', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-version-id', ], 'BucketKeyEnabled' => [ 'shape' => 'BucketKeyEnabled', 'location' => 'header', 'locationName' => 'x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled', ], ], 'payload' => 'Body', ], 'WriteOffsetBytes' => [ 'type' => 'long', 'box' => true, ], 'Years' => [ 'type' => 'integer', 'box' => true, ], ], 'clientContextParams' => [ 'Accelerate' => [ 'documentation' => 'Enables this client to use S3 Transfer Acceleration endpoints.', 'type' => 'boolean', ], 'DisableMultiRegionAccessPoints' => [ 'documentation' => 'Disables this client\'s usage of Multi-Region Access Points.', 'type' => 'boolean', ], 'DisableS3ExpressSessionAuth' => [ 'documentation' => 'Disables this client\'s usage of Session Auth for S3Express buckets and reverts to using conventional SigV4 for those.', 'type' => 'boolean', ], 'ForcePathStyle' => [ 'documentation' => 'Forces this client to use path-style addressing for buckets.', 'type' => 'boolean', ], 'UseArnRegion' => [ 'documentation' => 'Enables this client to use an ARN\'s region when constructing an endpoint instead of the client\'s configured region.', 'type' => 'boolean', ], ],];
diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php
new file mode 100644
index 000000000..d9d6b0ec7
--- /dev/null
+++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php
@@ -0,0 +1,3 @@
+ '1.0', 'parameters' => [ 'Bucket' => [ 'required' => false, 'documentation' => 'The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.', 'type' => 'String', ], 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the request.', 'type' => 'String', ], 'UseFIPS' => [ 'builtIn' => 'AWS::UseFIPS', 'required' => true, 'default' => false, 'documentation' => 'When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.', 'type' => 'Boolean', ], 'UseDualStack' => [ 'builtIn' => 'AWS::UseDualStack', 'required' => true, 'default' => false, 'documentation' => 'When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.', 'type' => 'Boolean', ], 'Endpoint' => [ 'builtIn' => 'SDK::Endpoint', 'required' => false, 'documentation' => 'Override the endpoint used to send this request', 'type' => 'String', ], 'ForcePathStyle' => [ 'builtIn' => 'AWS::S3::ForcePathStyle', 'required' => true, 'default' => false, 'documentation' => 'When true, force a path-style endpoint to be used where the bucket name is part of the path.', 'type' => 'Boolean', ], 'Accelerate' => [ 'builtIn' => 'AWS::S3::Accelerate', 'required' => true, 'default' => false, 'documentation' => 'When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.', 'type' => 'Boolean', ], 'UseGlobalEndpoint' => [ 'builtIn' => 'AWS::S3::UseGlobalEndpoint', 'required' => true, 'default' => false, 'documentation' => 'Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.', 'type' => 'Boolean', ], 'UseObjectLambdaEndpoint' => [ 'required' => false, 'documentation' => 'Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)', 'type' => 'Boolean', ], 'Key' => [ 'required' => false, 'documentation' => 'The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.', 'type' => 'String', ], 'Prefix' => [ 'required' => false, 'documentation' => 'The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.', 'type' => 'String', ], 'CopySource' => [ 'required' => false, 'documentation' => 'The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.', 'type' => 'String', ], 'DisableAccessPoints' => [ 'required' => false, 'documentation' => 'Internal parameter to disable Access Point Buckets', 'type' => 'Boolean', ], 'DisableMultiRegionAccessPoints' => [ 'builtIn' => 'AWS::S3::DisableMultiRegionAccessPoints', 'required' => true, 'default' => false, 'documentation' => 'Whether multi-region access points (MRAP) should be disabled.', 'type' => 'Boolean', ], 'UseArnRegion' => [ 'builtIn' => 'AWS::S3::UseArnRegion', 'required' => false, 'documentation' => 'When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN\'s region when constructing the endpoint instead of the client\'s configured region.', 'type' => 'Boolean', ], 'UseS3ExpressControlEndpoint' => [ 'required' => false, 'documentation' => 'Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)', 'type' => 'Boolean', ], 'DisableS3ExpressSessionAuth' => [ 'required' => false, 'documentation' => 'Parameter to indicate whether S3Express session auth should be disabled', 'type' => 'Boolean', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'Accelerate cannot be used with FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], 'error' => 'Cannot set dual-stack in combination with a custom endpoint.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'A custom endpoint cannot be combined with FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'A custom endpoint cannot be combined with S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'partitionResult', ], 'name', ], ], 'aws-cn', ], ], ], 'error' => 'Partition does not support FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 0, 6, true, ], 'assign' => 'bucketSuffix', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'bucketSuffix', ], '--x-s3', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3Express does not support Dual-stack.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3Express does not support S3 Accelerate.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'S3Express bucket name is not a valid virtual hostable name.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'S3Express bucket name is not a valid virtual hostable name.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'UseS3ExpressControlEndpoint', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseS3ExpressControlEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 14, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 14, 16, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 15, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 15, 17, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 19, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 19, 21, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 20, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 20, 22, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 26, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 26, 28, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Unrecognized S3Express bucket name format.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 14, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 14, 16, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 15, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 15, 17, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 19, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 19, 21, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 20, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 20, 22, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 6, 26, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 26, 28, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Unrecognized S3Express bucket name format.', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'S3Express bucket name is not a valid virtual hostable name.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 0, 7, true, ], 'assign' => 'accessPointSuffix', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'accessPointSuffix', ], '--xa-s3', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3Express does not support Dual-stack.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3Express does not support S3 Accelerate.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'S3Express bucket name is not a valid virtual hostable name.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'S3Express bucket name is not a valid virtual hostable name.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableS3ExpressSessionAuth', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 15, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 15, 17, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 16, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 16, 18, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 20, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 20, 22, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 21, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 21, 23, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 27, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 27, 29, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Unrecognized S3Express bucket name format.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 15, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 15, 17, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 16, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 16, 18, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 20, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 20, 22, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 21, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 21, 23, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 7, 27, true, ], 'assign' => 's3expressAvailabilityZoneId', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 27, 29, true, ], 'assign' => 's3expressAvailabilityZoneDelim', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 's3expressAvailabilityZoneDelim', ], '--', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Unrecognized S3Express bucket name format.', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'S3Express bucket name is not a valid virtual hostable name.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'UseS3ExpressControlEndpoint', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseS3ExpressControlEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3express-control.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 49, 50, true, ], 'assign' => 'hardwareType', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 8, 12, true, ], 'assign' => 'regionPrefix', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 0, 7, true, ], 'assign' => 'bucketAliasSuffix', ], [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 32, 49, true, ], 'assign' => 'outpostId', ], [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'regionPartition', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'bucketAliasSuffix', ], '--op-s3', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'outpostId', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'hardwareType', ], 'e', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'regionPrefix', ], 'beta', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], ], 'error' => 'Expected a endpoint to be specified but no endpoint was found', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.ec2.{url#authority}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'hardwareType', ], 'o', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'regionPrefix', ], 'beta', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], ], 'error' => 'Expected a endpoint to be specified but no endpoint was found', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.op-{outpostId}.{url#authority}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], ], ], ], 'error' => 'Custom endpoint `{Endpoint}` was not a valid URI', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'ForcePathStyle', ], false, ], ], [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'Region', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'partitionResult', ], 'name', ], ], 'aws-cn', ], ], ], 'error' => 'S3 Accelerate cannot be used in this region', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-east-1', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-east-1', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'isIp', ], ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-east-1', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-east-1', ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid region: region was not a valid DNS name.', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'url', ], 'scheme', ], ], 'http', ], ], [ 'fn' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'ForcePathStyle', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'Region', ], false, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{Bucket}.{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid region: region was not a valid DNS name.', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'ForcePathStyle', ], false, ], ], [ 'fn' => 'aws.parseArn', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'bucketArn', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[0]', ], 'assign' => 'arnType', ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'arnType', ], '', ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'service', ], ], 's3-object-lambda', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'arnType', ], 'accesspoint', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[1]', ], 'assign' => 'accessPointName', ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'accessPointName', ], '', ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3 Object Lambda does not support Dual-stack', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3 Object Lambda does not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], '', ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'DisableAccessPoints', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableAccessPoints', ], true, ], ], ], 'error' => 'Access points are not supported for this operation', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[2]', ], ], ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'UseArnRegion', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseArnRegion', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], '{Region}', ], ], ], ], ], 'error' => 'Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], ], 'assign' => 'bucketPartition', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketPartition', ], 'name', ], ], [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'partitionResult', ], 'name', ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'accountId', ], ], '', ], ], ], 'error' => 'Invalid ARN: Missing account id', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'accountId', ], ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'accessPointName', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => '{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: bucket ARN is missing a region', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Expected a resource of the format `accesspoint:The STANDARD mode provides the latest recommended default values that should be safe to run in most scenarios
Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK
', 'in-region' => 'The IN_REGION mode builds on the standard mode and includes optimization tailored for applications which call AWS services from within the same AWS region
Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK
', 'cross-region' => 'The CROSS_REGION mode builds on the standard mode and includes optimization tailored for applications which call AWS services in a different region
Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK
', 'mobile' => 'The MOBILE mode builds on the standard mode and includes optimization tailored for mobile applications
Note that the default values vended from this mode might change as best practices may evolve. As a result, it is encouraged to perform tests when upgrading the SDK
', 'auto' => 'The AUTO mode is an experimental mode that builds on the standard mode. The SDK will attempt to discover the execution environment to determine the appropriate settings automatically.
Note that the auto detection is heuristics-based and does not guarantee 100% accuracy. STANDARD mode will be used if the execution environment cannot be determined. The auto detection might query EC2 Instance Metadata service, which might introduce latency. Therefore we recommend choosing an explicit defaults_mode instead if startup latency is critical to your application
', 'legacy' => 'The LEGACY mode provides default settings that vary per SDK and were used prior to establishment of defaults_mode
', ], 'configuration' => [ 'retryMode' => 'A retry mode specifies how the SDK attempts retries. See Retry Mode
', 'stsRegionalEndpoints' => 'Specifies how the SDK determines the AWS service endpoint that it uses to talk to the AWS Security Token Service (AWS STS). See Setting STS Regional endpoints
', 's3UsEast1RegionalEndpoints' => 'Specifies how the SDK determines the AWS service endpoint that it uses to talk to the Amazon S3 for the us-east-1 region
', 'connectTimeoutInMillis' => 'The amount of time after making an initial connection attempt on a socket, where if the client does not receive a completion of the connect handshake, the client gives up and fails the operation
', 'tlsNegotiationTimeoutInMillis' => 'The maximum amount of time that a TLS handshake is allowed to take from the time the CLIENT HELLO message is sent to ethe time the client and server have fully negotiated ciphers and exchanged keys
', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/api-2.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/api-2.json.php new file mode 100644 index 000000000..d1fdb5828 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/api-2.json.php @@ -0,0 +1,3 @@ + '2.0', 'metadata' => [ 'apiVersion' => '2010-03-31', 'endpointPrefix' => 'sns', 'protocol' => 'query', 'protocols' => [ 'query', ], 'serviceAbbreviation' => 'Amazon SNS', 'serviceFullName' => 'Amazon Simple Notification Service', 'serviceId' => 'SNS', 'signatureVersion' => 'v4', 'uid' => 'sns-2010-03-31', 'xmlNamespace' => 'http://sns.amazonaws.com/doc/2010-03-31/', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AddPermission' => [ 'name' => 'AddPermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AddPermissionInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CheckIfPhoneNumberIsOptedOut' => [ 'name' => 'CheckIfPhoneNumberIsOptedOut', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CheckIfPhoneNumberIsOptedOutInput', ], 'output' => [ 'shape' => 'CheckIfPhoneNumberIsOptedOutResponse', 'resultWrapper' => 'CheckIfPhoneNumberIsOptedOutResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ConfirmSubscription' => [ 'name' => 'ConfirmSubscription', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ConfirmSubscriptionInput', ], 'output' => [ 'shape' => 'ConfirmSubscriptionResponse', 'resultWrapper' => 'ConfirmSubscriptionResult', ], 'errors' => [ [ 'shape' => 'SubscriptionLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'FilterPolicyLimitExceededException', ], [ 'shape' => 'ReplayLimitExceededException', ], ], ], 'CreatePlatformApplication' => [ 'name' => 'CreatePlatformApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlatformApplicationInput', ], 'output' => [ 'shape' => 'CreatePlatformApplicationResponse', 'resultWrapper' => 'CreatePlatformApplicationResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'CreatePlatformEndpoint' => [ 'name' => 'CreatePlatformEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreatePlatformEndpointInput', ], 'output' => [ 'shape' => 'CreateEndpointResponse', 'resultWrapper' => 'CreatePlatformEndpointResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'CreateSMSSandboxPhoneNumber' => [ 'name' => 'CreateSMSSandboxPhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateSMSSandboxPhoneNumberInput', ], 'output' => [ 'shape' => 'CreateSMSSandboxPhoneNumberResult', 'resultWrapper' => 'CreateSMSSandboxPhoneNumberResult', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'OptedOutException', ], [ 'shape' => 'UserErrorException', ], [ 'shape' => 'ThrottledException', ], ], ], 'CreateTopic' => [ 'name' => 'CreateTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateTopicInput', ], 'output' => [ 'shape' => 'CreateTopicResponse', 'resultWrapper' => 'CreateTopicResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'TopicLimitExceededException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'StaleTagException', ], [ 'shape' => 'TagPolicyException', ], [ 'shape' => 'ConcurrentAccessException', ], ], ], 'DeleteEndpoint' => [ 'name' => 'DeleteEndpoint', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteEndpointInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'DeletePlatformApplication' => [ 'name' => 'DeletePlatformApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeletePlatformApplicationInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'DeleteSMSSandboxPhoneNumber' => [ 'name' => 'DeleteSMSSandboxPhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteSMSSandboxPhoneNumberInput', ], 'output' => [ 'shape' => 'DeleteSMSSandboxPhoneNumberResult', 'resultWrapper' => 'DeleteSMSSandboxPhoneNumberResult', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'UserErrorException', ], [ 'shape' => 'ThrottledException', ], ], ], 'DeleteTopic' => [ 'name' => 'DeleteTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteTopicInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidStateException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'StaleTagException', ], [ 'shape' => 'TagPolicyException', ], [ 'shape' => 'ConcurrentAccessException', ], ], ], 'GetDataProtectionPolicy' => [ 'name' => 'GetDataProtectionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDataProtectionPolicyInput', ], 'output' => [ 'shape' => 'GetDataProtectionPolicyResponse', 'resultWrapper' => 'GetDataProtectionPolicyResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'GetEndpointAttributes' => [ 'name' => 'GetEndpointAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetEndpointAttributesInput', ], 'output' => [ 'shape' => 'GetEndpointAttributesResponse', 'resultWrapper' => 'GetEndpointAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetPlatformApplicationAttributes' => [ 'name' => 'GetPlatformApplicationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetPlatformApplicationAttributesInput', ], 'output' => [ 'shape' => 'GetPlatformApplicationAttributesResponse', 'resultWrapper' => 'GetPlatformApplicationAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'GetSMSAttributes' => [ 'name' => 'GetSMSAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSMSAttributesInput', ], 'output' => [ 'shape' => 'GetSMSAttributesResponse', 'resultWrapper' => 'GetSMSAttributesResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'GetSMSSandboxAccountStatus' => [ 'name' => 'GetSMSSandboxAccountStatus', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSMSSandboxAccountStatusInput', ], 'output' => [ 'shape' => 'GetSMSSandboxAccountStatusResult', 'resultWrapper' => 'GetSMSSandboxAccountStatusResult', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'ThrottledException', ], ], ], 'GetSubscriptionAttributes' => [ 'name' => 'GetSubscriptionAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSubscriptionAttributesInput', ], 'output' => [ 'shape' => 'GetSubscriptionAttributesResponse', 'resultWrapper' => 'GetSubscriptionAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'GetTopicAttributes' => [ 'name' => 'GetTopicAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetTopicAttributesInput', ], 'output' => [ 'shape' => 'GetTopicAttributesResponse', 'resultWrapper' => 'GetTopicAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'ListEndpointsByPlatformApplication' => [ 'name' => 'ListEndpointsByPlatformApplication', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListEndpointsByPlatformApplicationInput', ], 'output' => [ 'shape' => 'ListEndpointsByPlatformApplicationResponse', 'resultWrapper' => 'ListEndpointsByPlatformApplicationResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'ListOriginationNumbers' => [ 'name' => 'ListOriginationNumbers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListOriginationNumbersRequest', ], 'output' => [ 'shape' => 'ListOriginationNumbersResult', 'resultWrapper' => 'ListOriginationNumbersResult', ], 'errors' => [ [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListPhoneNumbersOptedOut' => [ 'name' => 'ListPhoneNumbersOptedOut', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPhoneNumbersOptedOutInput', ], 'output' => [ 'shape' => 'ListPhoneNumbersOptedOutResponse', 'resultWrapper' => 'ListPhoneNumbersOptedOutResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'ListPlatformApplications' => [ 'name' => 'ListPlatformApplications', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListPlatformApplicationsInput', ], 'output' => [ 'shape' => 'ListPlatformApplicationsResponse', 'resultWrapper' => 'ListPlatformApplicationsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'ListSMSSandboxPhoneNumbers' => [ 'name' => 'ListSMSSandboxPhoneNumbers', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSMSSandboxPhoneNumbersInput', ], 'output' => [ 'shape' => 'ListSMSSandboxPhoneNumbersResult', 'resultWrapper' => 'ListSMSSandboxPhoneNumbersResult', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'ThrottledException', ], ], ], 'ListSubscriptions' => [ 'name' => 'ListSubscriptions', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscriptionsInput', ], 'output' => [ 'shape' => 'ListSubscriptionsResponse', 'resultWrapper' => 'ListSubscriptionsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'ListSubscriptionsByTopic' => [ 'name' => 'ListSubscriptionsByTopic', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListSubscriptionsByTopicInput', ], 'output' => [ 'shape' => 'ListSubscriptionsByTopicResponse', 'resultWrapper' => 'ListSubscriptionsByTopicResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', 'resultWrapper' => 'ListTagsForResourceResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TagPolicyException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ConcurrentAccessException', ], ], ], 'ListTopics' => [ 'name' => 'ListTopics', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTopicsInput', ], 'output' => [ 'shape' => 'ListTopicsResponse', 'resultWrapper' => 'ListTopicsResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'OptInPhoneNumber' => [ 'name' => 'OptInPhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'OptInPhoneNumberInput', ], 'output' => [ 'shape' => 'OptInPhoneNumberResponse', 'resultWrapper' => 'OptInPhoneNumberResult', ], 'errors' => [ [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidParameterException', ], ], ], 'Publish' => [ 'name' => 'Publish', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PublishInput', ], 'output' => [ 'shape' => 'PublishResponse', 'resultWrapper' => 'PublishResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'EndpointDisabledException', ], [ 'shape' => 'PlatformApplicationDisabledException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'InvalidSecurityException', ], [ 'shape' => 'ValidationException', ], ], ], 'PublishBatch' => [ 'name' => 'PublishBatch', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PublishBatchInput', ], 'output' => [ 'shape' => 'PublishBatchResponse', 'resultWrapper' => 'PublishBatchResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InvalidParameterValueException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'EndpointDisabledException', ], [ 'shape' => 'PlatformApplicationDisabledException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'BatchEntryIdsNotDistinctException', ], [ 'shape' => 'BatchRequestTooLongException', ], [ 'shape' => 'EmptyBatchRequestException', ], [ 'shape' => 'InvalidBatchEntryIdException', ], [ 'shape' => 'TooManyEntriesInBatchRequestException', ], [ 'shape' => 'KMSDisabledException', ], [ 'shape' => 'KMSInvalidStateException', ], [ 'shape' => 'KMSNotFoundException', ], [ 'shape' => 'KMSOptInRequired', ], [ 'shape' => 'KMSThrottlingException', ], [ 'shape' => 'KMSAccessDeniedException', ], [ 'shape' => 'InvalidSecurityException', ], [ 'shape' => 'ValidationException', ], ], ], 'PutDataProtectionPolicy' => [ 'name' => 'PutDataProtectionPolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'PutDataProtectionPolicyInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'RemovePermission' => [ 'name' => 'RemovePermission', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'RemovePermissionInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'SetEndpointAttributes' => [ 'name' => 'SetEndpointAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetEndpointAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'SetPlatformApplicationAttributes' => [ 'name' => 'SetPlatformApplicationAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetPlatformApplicationAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], ], ], 'SetSMSAttributes' => [ 'name' => 'SetSMSAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSMSAttributesInput', ], 'output' => [ 'shape' => 'SetSMSAttributesResponse', 'resultWrapper' => 'SetSMSAttributesResult', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ThrottledException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'SetSubscriptionAttributes' => [ 'name' => 'SetSubscriptionAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetSubscriptionAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'FilterPolicyLimitExceededException', ], [ 'shape' => 'ReplayLimitExceededException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], ], ], 'SetTopicAttributes' => [ 'name' => 'SetTopicAttributes', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SetTopicAttributesInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'Subscribe' => [ 'name' => 'Subscribe', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'SubscribeInput', ], 'output' => [ 'shape' => 'SubscribeResponse', 'resultWrapper' => 'SubscribeResult', ], 'errors' => [ [ 'shape' => 'SubscriptionLimitExceededException', ], [ 'shape' => 'FilterPolicyLimitExceededException', ], [ 'shape' => 'ReplayLimitExceededException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', 'resultWrapper' => 'TagResourceResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'StaleTagException', ], [ 'shape' => 'TagPolicyException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ConcurrentAccessException', ], ], ], 'Unsubscribe' => [ 'name' => 'Unsubscribe', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UnsubscribeInput', ], 'errors' => [ [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'NotFoundException', ], [ 'shape' => 'InvalidSecurityException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', 'resultWrapper' => 'UntagResourceResult', ], 'errors' => [ [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'TagLimitExceededException', ], [ 'shape' => 'StaleTagException', ], [ 'shape' => 'TagPolicyException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'ConcurrentAccessException', ], ], ], 'VerifySMSSandboxPhoneNumber' => [ 'name' => 'VerifySMSSandboxPhoneNumber', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'VerifySMSSandboxPhoneNumberInput', ], 'output' => [ 'shape' => 'VerifySMSSandboxPhoneNumberResult', 'resultWrapper' => 'VerifySMSSandboxPhoneNumberResult', ], 'errors' => [ [ 'shape' => 'AuthorizationErrorException', ], [ 'shape' => 'InternalErrorException', ], [ 'shape' => 'InvalidParameterException', ], [ 'shape' => 'ResourceNotFoundException', ], [ 'shape' => 'VerificationException', ], [ 'shape' => 'ThrottledException', ], ], ], ], 'shapes' => [ 'ActionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'action', ], ], 'AddPermissionInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'Label', 'AWSAccountId', 'ActionName', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'Label' => [ 'shape' => 'label', ], 'AWSAccountId' => [ 'shape' => 'DelegatesList', ], 'ActionName' => [ 'shape' => 'ActionsList', ], ], ], 'AmazonResourceName' => [ 'type' => 'string', 'max' => 1011, 'min' => 1, ], 'AuthorizationErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'AuthorizationError', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'BatchEntryIdsNotDistinctException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'BatchEntryIdsNotDistinct', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'BatchRequestTooLongException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'BatchRequestTooLong', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'BatchResultErrorEntry' => [ 'type' => 'structure', 'required' => [ 'Id', 'Code', 'SenderFault', ], 'members' => [ 'Id' => [ 'shape' => 'String', ], 'Code' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'String', ], 'SenderFault' => [ 'shape' => 'boolean', ], ], ], 'BatchResultErrorEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'BatchResultErrorEntry', ], ], 'Binary' => [ 'type' => 'blob', ], 'CheckIfPhoneNumberIsOptedOutInput' => [ 'type' => 'structure', 'required' => [ 'phoneNumber', ], 'members' => [ 'phoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'CheckIfPhoneNumberIsOptedOutResponse' => [ 'type' => 'structure', 'members' => [ 'isOptedOut' => [ 'shape' => 'boolean', ], ], ], 'ConcurrentAccessException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'ConcurrentAccess', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ConfirmSubscriptionInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'Token', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'Token' => [ 'shape' => 'token', ], 'AuthenticateOnUnsubscribe' => [ 'shape' => 'authenticateOnUnsubscribe', ], ], ], 'ConfirmSubscriptionResponse' => [ 'type' => 'structure', 'members' => [ 'SubscriptionArn' => [ 'shape' => 'subscriptionARN', ], ], ], 'CreateEndpointResponse' => [ 'type' => 'structure', 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], ], ], 'CreatePlatformApplicationInput' => [ 'type' => 'structure', 'required' => [ 'Name', 'Platform', 'Attributes', ], 'members' => [ 'Name' => [ 'shape' => 'String', ], 'Platform' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'CreatePlatformApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], ], ], 'CreatePlatformEndpointInput' => [ 'type' => 'structure', 'required' => [ 'PlatformApplicationArn', 'Token', ], 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], 'Token' => [ 'shape' => 'String', ], 'CustomUserData' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'CreateSMSSandboxPhoneNumberInput' => [ 'type' => 'structure', 'required' => [ 'PhoneNumber', ], 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumberString', ], 'LanguageCode' => [ 'shape' => 'LanguageCodeString', ], ], ], 'CreateSMSSandboxPhoneNumberResult' => [ 'type' => 'structure', 'members' => [], ], 'CreateTopicInput' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'topicName', ], 'Attributes' => [ 'shape' => 'TopicAttributesMap', ], 'Tags' => [ 'shape' => 'TagList', ], 'DataProtectionPolicy' => [ 'shape' => 'attributeValue', ], ], ], 'CreateTopicResponse' => [ 'type' => 'structure', 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], ], ], 'DelegatesList' => [ 'type' => 'list', 'member' => [ 'shape' => 'delegate', ], ], 'DeleteEndpointInput' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], ], ], 'DeletePlatformApplicationInput' => [ 'type' => 'structure', 'required' => [ 'PlatformApplicationArn', ], 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], ], ], 'DeleteSMSSandboxPhoneNumberInput' => [ 'type' => 'structure', 'required' => [ 'PhoneNumber', ], 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumberString', ], ], ], 'DeleteSMSSandboxPhoneNumberResult' => [ 'type' => 'structure', 'members' => [], ], 'DeleteTopicInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], ], ], 'EmptyBatchRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'EmptyBatchRequest', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Endpoint' => [ 'type' => 'structure', 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'EndpointDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'EndpointDisabled', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'FilterPolicyLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'FilterPolicyLimitExceeded', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'GetDataProtectionPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'topicARN', ], ], ], 'GetDataProtectionPolicyResponse' => [ 'type' => 'structure', 'members' => [ 'DataProtectionPolicy' => [ 'shape' => 'attributeValue', ], ], ], 'GetEndpointAttributesInput' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], ], ], 'GetEndpointAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'GetPlatformApplicationAttributesInput' => [ 'type' => 'structure', 'required' => [ 'PlatformApplicationArn', ], 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], ], ], 'GetPlatformApplicationAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'GetSMSAttributesInput' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'ListString', ], ], ], 'GetSMSAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'GetSMSSandboxAccountStatusInput' => [ 'type' => 'structure', 'members' => [], ], 'GetSMSSandboxAccountStatusResult' => [ 'type' => 'structure', 'required' => [ 'IsInSandbox', ], 'members' => [ 'IsInSandbox' => [ 'shape' => 'boolean', ], ], ], 'GetSubscriptionAttributesInput' => [ 'type' => 'structure', 'required' => [ 'SubscriptionArn', ], 'members' => [ 'SubscriptionArn' => [ 'shape' => 'subscriptionARN', ], ], ], 'GetSubscriptionAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'SubscriptionAttributesMap', ], ], ], 'GetTopicAttributesInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], ], ], 'GetTopicAttributesResponse' => [ 'type' => 'structure', 'members' => [ 'Attributes' => [ 'shape' => 'TopicAttributesMap', ], ], ], 'InternalErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'InternalError', 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'InvalidBatchEntryIdException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'InvalidBatchEntryId', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidParameterException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'InvalidParameter', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidParameterValueException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'ParameterValueInvalid', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidSecurityException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'InvalidSecurity', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'InvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'InvalidState', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Iso2CountryCode' => [ 'type' => 'string', 'max' => 2, 'pattern' => '^[A-Za-z]{2}$', ], 'KMSAccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSAccessDenied', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSDisabled', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSInvalidStateException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSInvalidState', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSNotFound', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'KMSOptInRequired' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSOptInRequired', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'KMSThrottlingException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'KMSThrottling', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'LanguageCodeString' => [ 'type' => 'string', 'enum' => [ 'en-US', 'en-GB', 'es-419', 'es-ES', 'de-DE', 'fr-CA', 'fr-FR', 'it-IT', 'ja-JP', 'pt-BR', 'kr-KR', 'zh-CN', 'zh-TW', ], ], 'ListEndpointsByPlatformApplicationInput' => [ 'type' => 'structure', 'required' => [ 'PlatformApplicationArn', ], 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListEndpointsByPlatformApplicationResponse' => [ 'type' => 'structure', 'members' => [ 'Endpoints' => [ 'shape' => 'ListOfEndpoints', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListOfEndpoints' => [ 'type' => 'list', 'member' => [ 'shape' => 'Endpoint', ], ], 'ListOfPlatformApplications' => [ 'type' => 'list', 'member' => [ 'shape' => 'PlatformApplication', ], ], 'ListOriginationNumbersRequest' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxItemsListOriginationNumbers', ], ], ], 'ListOriginationNumbersResult' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'nextToken', ], 'PhoneNumbers' => [ 'shape' => 'PhoneNumberInformationList', ], ], ], 'ListPhoneNumbersOptedOutInput' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'string', ], ], ], 'ListPhoneNumbersOptedOutResponse' => [ 'type' => 'structure', 'members' => [ 'phoneNumbers' => [ 'shape' => 'PhoneNumberList', ], 'nextToken' => [ 'shape' => 'string', ], ], ], 'ListPlatformApplicationsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListPlatformApplicationsResponse' => [ 'type' => 'structure', 'members' => [ 'PlatformApplications' => [ 'shape' => 'ListOfPlatformApplications', ], 'NextToken' => [ 'shape' => 'String', ], ], ], 'ListSMSSandboxPhoneNumbersInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'nextToken', ], 'MaxResults' => [ 'shape' => 'MaxItems', ], ], ], 'ListSMSSandboxPhoneNumbersResult' => [ 'type' => 'structure', 'required' => [ 'PhoneNumbers', ], 'members' => [ 'PhoneNumbers' => [ 'shape' => 'SMSSandboxPhoneNumberList', ], 'NextToken' => [ 'shape' => 'string', ], ], ], 'ListString' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'ListSubscriptionsByTopicInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'NextToken' => [ 'shape' => 'nextToken', ], ], ], 'ListSubscriptionsByTopicResponse' => [ 'type' => 'structure', 'members' => [ 'Subscriptions' => [ 'shape' => 'SubscriptionsList', ], 'NextToken' => [ 'shape' => 'nextToken', ], ], ], 'ListSubscriptionsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'nextToken', ], ], ], 'ListSubscriptionsResponse' => [ 'type' => 'structure', 'members' => [ 'Subscriptions' => [ 'shape' => 'SubscriptionsList', ], 'NextToken' => [ 'shape' => 'nextToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'Tags' => [ 'shape' => 'TagList', ], ], ], 'ListTopicsInput' => [ 'type' => 'structure', 'members' => [ 'NextToken' => [ 'shape' => 'nextToken', ], ], ], 'ListTopicsResponse' => [ 'type' => 'structure', 'members' => [ 'Topics' => [ 'shape' => 'TopicsList', ], 'NextToken' => [ 'shape' => 'nextToken', ], ], ], 'MapStringToString' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', ], 'value' => [ 'shape' => 'String', ], ], 'MaxItems' => [ 'type' => 'integer', 'max' => 100, 'min' => 1, ], 'MaxItemsListOriginationNumbers' => [ 'type' => 'integer', 'max' => 30, 'min' => 1, ], 'MessageAttributeMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'String', 'locationName' => 'Name', ], 'value' => [ 'shape' => 'MessageAttributeValue', 'locationName' => 'Value', ], ], 'MessageAttributeValue' => [ 'type' => 'structure', 'required' => [ 'DataType', ], 'members' => [ 'DataType' => [ 'shape' => 'String', ], 'StringValue' => [ 'shape' => 'String', ], 'BinaryValue' => [ 'shape' => 'Binary', ], ], ], 'NotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'NotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'NumberCapability' => [ 'type' => 'string', 'enum' => [ 'SMS', 'MMS', 'VOICE', ], ], 'NumberCapabilityList' => [ 'type' => 'list', 'member' => [ 'shape' => 'NumberCapability', ], ], 'OTPCode' => [ 'type' => 'string', 'max' => 8, 'min' => 5, 'pattern' => '^[0-9]+$', ], 'OptInPhoneNumberInput' => [ 'type' => 'structure', 'required' => [ 'phoneNumber', ], 'members' => [ 'phoneNumber' => [ 'shape' => 'PhoneNumber', ], ], ], 'OptInPhoneNumberResponse' => [ 'type' => 'structure', 'members' => [], ], 'OptedOutException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'OptedOut', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PhoneNumber' => [ 'type' => 'string', 'sensitive' => true, ], 'PhoneNumberInformation' => [ 'type' => 'structure', 'members' => [ 'CreatedAt' => [ 'shape' => 'Timestamp', ], 'PhoneNumber' => [ 'shape' => 'PhoneNumber', ], 'Status' => [ 'shape' => 'String', ], 'Iso2CountryCode' => [ 'shape' => 'Iso2CountryCode', ], 'RouteType' => [ 'shape' => 'RouteType', ], 'NumberCapabilities' => [ 'shape' => 'NumberCapabilityList', ], ], ], 'PhoneNumberInformationList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumberInformation', ], ], 'PhoneNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PhoneNumber', ], ], 'PhoneNumberString' => [ 'type' => 'string', 'max' => 20, 'pattern' => '^(\\+[0-9]{8,}|[0-9]{0,9})$', 'sensitive' => true, ], 'PlatformApplication' => [ 'type' => 'structure', 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'PlatformApplicationDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'PlatformApplicationDisabled', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PublishBatchInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'PublishBatchRequestEntries', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'PublishBatchRequestEntries' => [ 'shape' => 'PublishBatchRequestEntryList', ], ], ], 'PublishBatchRequestEntry' => [ 'type' => 'structure', 'required' => [ 'Id', 'Message', ], 'members' => [ 'Id' => [ 'shape' => 'String', ], 'Message' => [ 'shape' => 'message', ], 'Subject' => [ 'shape' => 'subject', ], 'MessageStructure' => [ 'shape' => 'messageStructure', ], 'MessageAttributes' => [ 'shape' => 'MessageAttributeMap', ], 'MessageDeduplicationId' => [ 'shape' => 'String', ], 'MessageGroupId' => [ 'shape' => 'String', ], ], ], 'PublishBatchRequestEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublishBatchRequestEntry', ], ], 'PublishBatchResponse' => [ 'type' => 'structure', 'members' => [ 'Successful' => [ 'shape' => 'PublishBatchResultEntryList', ], 'Failed' => [ 'shape' => 'BatchResultErrorEntryList', ], ], ], 'PublishBatchResultEntry' => [ 'type' => 'structure', 'members' => [ 'Id' => [ 'shape' => 'String', ], 'MessageId' => [ 'shape' => 'messageId', ], 'SequenceNumber' => [ 'shape' => 'String', ], ], ], 'PublishBatchResultEntryList' => [ 'type' => 'list', 'member' => [ 'shape' => 'PublishBatchResultEntry', ], ], 'PublishInput' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'TargetArn' => [ 'shape' => 'String', ], 'PhoneNumber' => [ 'shape' => 'PhoneNumber', ], 'Message' => [ 'shape' => 'message', ], 'Subject' => [ 'shape' => 'subject', ], 'MessageStructure' => [ 'shape' => 'messageStructure', ], 'MessageAttributes' => [ 'shape' => 'MessageAttributeMap', ], 'MessageDeduplicationId' => [ 'shape' => 'String', ], 'MessageGroupId' => [ 'shape' => 'String', ], ], ], 'PublishResponse' => [ 'type' => 'structure', 'members' => [ 'MessageId' => [ 'shape' => 'messageId', ], 'SequenceNumber' => [ 'shape' => 'String', ], ], ], 'PutDataProtectionPolicyInput' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'DataProtectionPolicy', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'topicARN', ], 'DataProtectionPolicy' => [ 'shape' => 'attributeValue', ], ], ], 'RemovePermissionInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'Label', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'Label' => [ 'shape' => 'label', ], ], ], 'ReplayLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'ReplayLimitExceeded', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'ResourceNotFound', 'httpStatusCode' => 404, 'senderFault' => true, ], 'exception' => true, ], 'RouteType' => [ 'type' => 'string', 'enum' => [ 'Transactional', 'Promotional', 'Premium', ], ], 'SMSSandboxPhoneNumber' => [ 'type' => 'structure', 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumberString', ], 'Status' => [ 'shape' => 'SMSSandboxPhoneNumberVerificationStatus', ], ], ], 'SMSSandboxPhoneNumberList' => [ 'type' => 'list', 'member' => [ 'shape' => 'SMSSandboxPhoneNumber', ], ], 'SMSSandboxPhoneNumberVerificationStatus' => [ 'type' => 'string', 'enum' => [ 'Pending', 'Verified', ], ], 'SetEndpointAttributesInput' => [ 'type' => 'structure', 'required' => [ 'EndpointArn', 'Attributes', ], 'members' => [ 'EndpointArn' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'SetPlatformApplicationAttributesInput' => [ 'type' => 'structure', 'required' => [ 'PlatformApplicationArn', 'Attributes', ], 'members' => [ 'PlatformApplicationArn' => [ 'shape' => 'String', ], 'Attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'SetSMSAttributesInput' => [ 'type' => 'structure', 'required' => [ 'attributes', ], 'members' => [ 'attributes' => [ 'shape' => 'MapStringToString', ], ], ], 'SetSMSAttributesResponse' => [ 'type' => 'structure', 'members' => [], ], 'SetSubscriptionAttributesInput' => [ 'type' => 'structure', 'required' => [ 'SubscriptionArn', 'AttributeName', ], 'members' => [ 'SubscriptionArn' => [ 'shape' => 'subscriptionARN', ], 'AttributeName' => [ 'shape' => 'attributeName', ], 'AttributeValue' => [ 'shape' => 'attributeValue', ], ], ], 'SetTopicAttributesInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'AttributeName', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'AttributeName' => [ 'shape' => 'attributeName', ], 'AttributeValue' => [ 'shape' => 'attributeValue', ], ], ], 'StaleTagException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'StaleTag', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'String' => [ 'type' => 'string', ], 'SubscribeInput' => [ 'type' => 'structure', 'required' => [ 'TopicArn', 'Protocol', ], 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], 'Protocol' => [ 'shape' => 'protocol', ], 'Endpoint' => [ 'shape' => 'endpoint', ], 'Attributes' => [ 'shape' => 'SubscriptionAttributesMap', ], 'ReturnSubscriptionArn' => [ 'shape' => 'boolean', ], ], ], 'SubscribeResponse' => [ 'type' => 'structure', 'members' => [ 'SubscriptionArn' => [ 'shape' => 'subscriptionARN', ], ], ], 'Subscription' => [ 'type' => 'structure', 'members' => [ 'SubscriptionArn' => [ 'shape' => 'subscriptionARN', ], 'Owner' => [ 'shape' => 'account', ], 'Protocol' => [ 'shape' => 'protocol', ], 'Endpoint' => [ 'shape' => 'endpoint', ], 'TopicArn' => [ 'shape' => 'topicARN', ], ], ], 'SubscriptionAttributesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'attributeName', ], 'value' => [ 'shape' => 'attributeValue', ], ], 'SubscriptionLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'SubscriptionLimitExceeded', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'SubscriptionsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Subscription', ], ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'TagKey', ], 'Value' => [ 'shape' => 'TagValue', ], ], ], 'TagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, ], 'TagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'TagKey', ], ], 'TagLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'TagLimitExceeded', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], ], 'TagPolicyException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'TagPolicy', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'Tags', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], 'Tags' => [ 'shape' => 'TagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, ], 'ThrottledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'Throttled', 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'Timestamp' => [ 'type' => 'timestamp', ], 'TooManyEntriesInBatchRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'TooManyEntriesInBatchRequest', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Topic' => [ 'type' => 'structure', 'members' => [ 'TopicArn' => [ 'shape' => 'topicARN', ], ], ], 'TopicAttributesMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'attributeName', ], 'value' => [ 'shape' => 'attributeValue', ], ], 'TopicLimitExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'TopicLimitExceeded', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'TopicsList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Topic', ], ], 'UnsubscribeInput' => [ 'type' => 'structure', 'required' => [ 'SubscriptionArn', ], 'members' => [ 'SubscriptionArn' => [ 'shape' => 'subscriptionARN', ], ], ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'ResourceArn', 'TagKeys', ], 'members' => [ 'ResourceArn' => [ 'shape' => 'AmazonResourceName', ], 'TagKeys' => [ 'shape' => 'TagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UserErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'UserError', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'Message', ], 'members' => [ 'Message' => [ 'shape' => 'string', ], ], 'error' => [ 'code' => 'ValidationException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'VerificationException' => [ 'type' => 'structure', 'required' => [ 'Message', 'Status', ], 'members' => [ 'Message' => [ 'shape' => 'string', ], 'Status' => [ 'shape' => 'string', ], ], 'exception' => true, ], 'VerifySMSSandboxPhoneNumberInput' => [ 'type' => 'structure', 'required' => [ 'PhoneNumber', 'OneTimePassword', ], 'members' => [ 'PhoneNumber' => [ 'shape' => 'PhoneNumberString', ], 'OneTimePassword' => [ 'shape' => 'OTPCode', ], ], ], 'VerifySMSSandboxPhoneNumberResult' => [ 'type' => 'structure', 'members' => [], ], 'account' => [ 'type' => 'string', ], 'action' => [ 'type' => 'string', ], 'attributeName' => [ 'type' => 'string', ], 'attributeValue' => [ 'type' => 'string', ], 'authenticateOnUnsubscribe' => [ 'type' => 'string', ], 'boolean' => [ 'type' => 'boolean', ], 'delegate' => [ 'type' => 'string', ], 'endpoint' => [ 'type' => 'string', ], 'label' => [ 'type' => 'string', ], 'message' => [ 'type' => 'string', ], 'messageId' => [ 'type' => 'string', ], 'messageStructure' => [ 'type' => 'string', ], 'nextToken' => [ 'type' => 'string', ], 'protocol' => [ 'type' => 'string', ], 'string' => [ 'type' => 'string', ], 'subject' => [ 'type' => 'string', ], 'subscriptionARN' => [ 'type' => 'string', ], 'token' => [ 'type' => 'string', ], 'topicARN' => [ 'type' => 'string', ], 'topicName' => [ 'type' => 'string', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/endpoint-rule-set-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/endpoint-rule-set-1.json.php new file mode 100644 index 000000000..96f2c6378 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/endpoint-rule-set-1.json.php @@ -0,0 +1,3 @@ + '1.0', 'parameters' => [ 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the request.', 'type' => 'String', ], 'UseDualStack' => [ 'builtIn' => 'AWS::UseDualStack', 'required' => true, 'default' => false, 'documentation' => 'When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.', 'type' => 'Boolean', ], 'UseFIPS' => [ 'builtIn' => 'AWS::UseFIPS', 'required' => true, 'default' => false, 'documentation' => 'When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.', 'type' => 'Boolean', ], 'Endpoint' => [ 'builtIn' => 'SDK::Endpoint', 'required' => false, 'documentation' => 'Override the endpoint used to send this request', 'type' => 'String', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'Invalid Configuration: FIPS and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'Invalid Configuration: Dualstack and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [], 'endpoint' => [ 'url' => [ 'ref' => 'Endpoint', ], 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS and DualStack are enabled, but this partition does not support one or both', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-gov-east-1', ], ], ], 'endpoint' => [ 'url' => 'https://sns.us-gov-east-1.amazonaws.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-gov-west-1', ], ], ], 'endpoint' => [ 'url' => 'https://sns.us-gov-west-1.amazonaws.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sns-fips.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS is enabled but this partition does not support FIPS', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sns.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'DualStack is enabled but this partition does not support DualStack', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sns.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/paginators-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/paginators-1.json.php new file mode 100644 index 000000000..2b74cc9b3 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/paginators-1.json.php @@ -0,0 +1,3 @@ + [ 'ListEndpointsByPlatformApplication' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Endpoints', ], 'ListOriginationNumbers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'PhoneNumbers', ], 'ListPhoneNumbersOptedOut' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'result_key' => 'phoneNumbers', ], 'ListPlatformApplications' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'PlatformApplications', ], 'ListSMSSandboxPhoneNumbers' => [ 'input_token' => 'NextToken', 'limit_key' => 'MaxResults', 'output_token' => 'NextToken', 'result_key' => 'PhoneNumbers', ], 'ListSubscriptions' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Subscriptions', ], 'ListSubscriptionsByTopic' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Subscriptions', ], 'ListTopics' => [ 'input_token' => 'NextToken', 'output_token' => 'NextToken', 'result_key' => 'Topics', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/smoke.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/smoke.json.php new file mode 100644 index 000000000..789d75740 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sns/2010-03-31/smoke.json.php @@ -0,0 +1,3 @@ + 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'ListTopics', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'Publish', 'input' => [ 'Message' => 'hello', 'TopicArn' => 'fake_topic', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php new file mode 100644 index 000000000..28a7ccc4c --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php @@ -0,0 +1,3 @@ + '2.0', 'metadata' => [ 'apiVersion' => '2019-06-10', 'endpointPrefix' => 'oidc', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceAbbreviation' => 'SSO OIDC', 'serviceFullName' => 'AWS SSO OIDC', 'serviceId' => 'SSO OIDC', 'signatureVersion' => 'v4', 'signingName' => 'sso-oauth', 'uid' => 'sso-oidc-2019-06-10', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'CreateToken' => [ 'name' => 'CreateToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/token', ], 'input' => [ 'shape' => 'CreateTokenRequest', ], 'output' => [ 'shape' => 'CreateTokenResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidClientException', ], [ 'shape' => 'InvalidGrantException', ], [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'UnsupportedGrantTypeException', ], [ 'shape' => 'InvalidScopeException', ], [ 'shape' => 'AuthorizationPendingException', ], [ 'shape' => 'SlowDownException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'InternalServerException', ], ], 'authtype' => 'none', 'auth' => [ 'smithy.api#noAuth', ], ], 'CreateTokenWithIAM' => [ 'name' => 'CreateTokenWithIAM', 'http' => [ 'method' => 'POST', 'requestUri' => '/token?aws_iam=t', ], 'input' => [ 'shape' => 'CreateTokenWithIAMRequest', ], 'output' => [ 'shape' => 'CreateTokenWithIAMResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidClientException', ], [ 'shape' => 'InvalidGrantException', ], [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'UnsupportedGrantTypeException', ], [ 'shape' => 'InvalidScopeException', ], [ 'shape' => 'AuthorizationPendingException', ], [ 'shape' => 'SlowDownException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRequestRegionException', ], ], ], 'RegisterClient' => [ 'name' => 'RegisterClient', 'http' => [ 'method' => 'POST', 'requestUri' => '/client/register', ], 'input' => [ 'shape' => 'RegisterClientRequest', ], 'output' => [ 'shape' => 'RegisterClientResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidScopeException', ], [ 'shape' => 'InvalidClientMetadataException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'InvalidRedirectUriException', ], [ 'shape' => 'UnsupportedGrantTypeException', ], ], 'authtype' => 'none', 'auth' => [ 'smithy.api#noAuth', ], ], 'StartDeviceAuthorization' => [ 'name' => 'StartDeviceAuthorization', 'http' => [ 'method' => 'POST', 'requestUri' => '/device_authorization', ], 'input' => [ 'shape' => 'StartDeviceAuthorizationRequest', ], 'output' => [ 'shape' => 'StartDeviceAuthorizationResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'InvalidClientException', ], [ 'shape' => 'UnauthorizedClientException', ], [ 'shape' => 'SlowDownException', ], [ 'shape' => 'InternalServerException', ], ], 'authtype' => 'none', 'auth' => [ 'smithy.api#noAuth', ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'AccessToken' => [ 'type' => 'string', 'sensitive' => true, ], 'ArnType' => [ 'type' => 'string', ], 'Assertion' => [ 'type' => 'string', 'sensitive' => true, ], 'AuthCode' => [ 'type' => 'string', ], 'AuthorizationPendingException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'AwsAdditionalDetails' => [ 'type' => 'structure', 'members' => [ 'identityContext' => [ 'shape' => 'IdentityContext', ], ], ], 'ClientId' => [ 'type' => 'string', ], 'ClientName' => [ 'type' => 'string', ], 'ClientSecret' => [ 'type' => 'string', 'sensitive' => true, ], 'ClientType' => [ 'type' => 'string', ], 'CodeVerifier' => [ 'type' => 'string', 'sensitive' => true, ], 'CreateTokenRequest' => [ 'type' => 'structure', 'required' => [ 'clientId', 'clientSecret', 'grantType', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientId', ], 'clientSecret' => [ 'shape' => 'ClientSecret', ], 'grantType' => [ 'shape' => 'GrantType', ], 'deviceCode' => [ 'shape' => 'DeviceCode', ], 'code' => [ 'shape' => 'AuthCode', ], 'refreshToken' => [ 'shape' => 'RefreshToken', ], 'scope' => [ 'shape' => 'Scopes', ], 'redirectUri' => [ 'shape' => 'URI', ], 'codeVerifier' => [ 'shape' => 'CodeVerifier', ], ], ], 'CreateTokenResponse' => [ 'type' => 'structure', 'members' => [ 'accessToken' => [ 'shape' => 'AccessToken', ], 'tokenType' => [ 'shape' => 'TokenType', ], 'expiresIn' => [ 'shape' => 'ExpirationInSeconds', ], 'refreshToken' => [ 'shape' => 'RefreshToken', ], 'idToken' => [ 'shape' => 'IdToken', ], ], ], 'CreateTokenWithIAMRequest' => [ 'type' => 'structure', 'required' => [ 'clientId', 'grantType', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientId', ], 'grantType' => [ 'shape' => 'GrantType', ], 'code' => [ 'shape' => 'AuthCode', ], 'refreshToken' => [ 'shape' => 'RefreshToken', ], 'assertion' => [ 'shape' => 'Assertion', ], 'scope' => [ 'shape' => 'Scopes', ], 'redirectUri' => [ 'shape' => 'URI', ], 'subjectToken' => [ 'shape' => 'SubjectToken', ], 'subjectTokenType' => [ 'shape' => 'TokenTypeURI', ], 'requestedTokenType' => [ 'shape' => 'TokenTypeURI', ], 'codeVerifier' => [ 'shape' => 'CodeVerifier', ], ], ], 'CreateTokenWithIAMResponse' => [ 'type' => 'structure', 'members' => [ 'accessToken' => [ 'shape' => 'AccessToken', ], 'tokenType' => [ 'shape' => 'TokenType', ], 'expiresIn' => [ 'shape' => 'ExpirationInSeconds', ], 'refreshToken' => [ 'shape' => 'RefreshToken', ], 'idToken' => [ 'shape' => 'IdToken', ], 'issuedTokenType' => [ 'shape' => 'TokenTypeURI', ], 'scope' => [ 'shape' => 'Scopes', ], 'awsAdditionalDetails' => [ 'shape' => 'AwsAdditionalDetails', ], ], ], 'DeviceCode' => [ 'type' => 'string', ], 'Error' => [ 'type' => 'string', ], 'ErrorDescription' => [ 'type' => 'string', ], 'ExpirationInSeconds' => [ 'type' => 'integer', ], 'ExpiredTokenException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'GrantType' => [ 'type' => 'string', ], 'GrantTypes' => [ 'type' => 'list', 'member' => [ 'shape' => 'GrantType', ], ], 'IdToken' => [ 'type' => 'string', 'sensitive' => true, ], 'IdentityContext' => [ 'type' => 'string', ], 'InternalServerException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'IntervalInSeconds' => [ 'type' => 'integer', ], 'InvalidClientException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], 'InvalidClientMetadataException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidGrantException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRedirectUriException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRequestRegionException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], 'endpoint' => [ 'shape' => 'Location', ], 'region' => [ 'shape' => 'Region', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidScopeException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'Location' => [ 'type' => 'string', ], 'LongTimeStampType' => [ 'type' => 'long', ], 'RedirectUris' => [ 'type' => 'list', 'member' => [ 'shape' => 'URI', ], ], 'RefreshToken' => [ 'type' => 'string', 'sensitive' => true, ], 'Region' => [ 'type' => 'string', ], 'RegisterClientRequest' => [ 'type' => 'structure', 'required' => [ 'clientName', 'clientType', ], 'members' => [ 'clientName' => [ 'shape' => 'ClientName', ], 'clientType' => [ 'shape' => 'ClientType', ], 'scopes' => [ 'shape' => 'Scopes', ], 'redirectUris' => [ 'shape' => 'RedirectUris', ], 'grantTypes' => [ 'shape' => 'GrantTypes', ], 'issuerUrl' => [ 'shape' => 'URI', ], 'entitledApplicationArn' => [ 'shape' => 'ArnType', ], ], ], 'RegisterClientResponse' => [ 'type' => 'structure', 'members' => [ 'clientId' => [ 'shape' => 'ClientId', ], 'clientSecret' => [ 'shape' => 'ClientSecret', ], 'clientIdIssuedAt' => [ 'shape' => 'LongTimeStampType', ], 'clientSecretExpiresAt' => [ 'shape' => 'LongTimeStampType', ], 'authorizationEndpoint' => [ 'shape' => 'URI', ], 'tokenEndpoint' => [ 'shape' => 'URI', ], ], ], 'Scope' => [ 'type' => 'string', ], 'Scopes' => [ 'type' => 'list', 'member' => [ 'shape' => 'Scope', ], ], 'SlowDownException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'StartDeviceAuthorizationRequest' => [ 'type' => 'structure', 'required' => [ 'clientId', 'clientSecret', 'startUrl', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientId', ], 'clientSecret' => [ 'shape' => 'ClientSecret', ], 'startUrl' => [ 'shape' => 'URI', ], ], ], 'StartDeviceAuthorizationResponse' => [ 'type' => 'structure', 'members' => [ 'deviceCode' => [ 'shape' => 'DeviceCode', ], 'userCode' => [ 'shape' => 'UserCode', ], 'verificationUri' => [ 'shape' => 'URI', ], 'verificationUriComplete' => [ 'shape' => 'URI', ], 'expiresIn' => [ 'shape' => 'ExpirationInSeconds', ], 'interval' => [ 'shape' => 'IntervalInSeconds', ], ], ], 'SubjectToken' => [ 'type' => 'string', 'sensitive' => true, ], 'TokenType' => [ 'type' => 'string', ], 'TokenTypeURI' => [ 'type' => 'string', ], 'URI' => [ 'type' => 'string', ], 'UnauthorizedClientException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UnsupportedGrantTypeException' => [ 'type' => 'structure', 'members' => [ 'error' => [ 'shape' => 'Error', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'UserCode' => [ 'type' => 'string', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php new file mode 100644 index 000000000..970e93b19 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php @@ -0,0 +1,3 @@ + '1.0', 'parameters' => [ 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the request.', 'type' => 'String', ], 'UseDualStack' => [ 'builtIn' => 'AWS::UseDualStack', 'required' => true, 'default' => false, 'documentation' => 'When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.', 'type' => 'Boolean', ], 'UseFIPS' => [ 'builtIn' => 'AWS::UseFIPS', 'required' => true, 'default' => false, 'documentation' => 'When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.', 'type' => 'Boolean', ], 'Endpoint' => [ 'builtIn' => 'SDK::Endpoint', 'required' => false, 'documentation' => 'Override the endpoint used to send this request', 'type' => 'String', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'Invalid Configuration: FIPS and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'Invalid Configuration: Dualstack and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [], 'endpoint' => [ 'url' => [ 'ref' => 'Endpoint', ], 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS and DualStack are enabled, but this partition does not support one or both', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'name', ], ], 'aws-us-gov', ], ], ], 'endpoint' => [ 'url' => 'https://oidc.{Region}.amazonaws.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS is enabled but this partition does not support FIPS', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'DualStack is enabled but this partition does not support DualStack', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://oidc.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/paginators-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/paginators-1.json.php new file mode 100644 index 000000000..188bff211 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/paginators-1.json.php @@ -0,0 +1,3 @@ + [],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php new file mode 100644 index 000000000..4a0c04fa7 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php @@ -0,0 +1,3 @@ + '2.0', 'metadata' => [ 'apiVersion' => '2019-06-10', 'endpointPrefix' => 'portal.sso', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceAbbreviation' => 'SSO', 'serviceFullName' => 'AWS Single Sign-On', 'serviceId' => 'SSO', 'signatureVersion' => 'v4', 'signingName' => 'awsssoportal', 'uid' => 'sso-2019-06-10', ], 'operations' => [ 'GetRoleCredentials' => [ 'name' => 'GetRoleCredentials', 'http' => [ 'method' => 'GET', 'requestUri' => '/federation/credentials', ], 'input' => [ 'shape' => 'GetRoleCredentialsRequest', ], 'output' => [ 'shape' => 'GetRoleCredentialsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], 'authtype' => 'none', ], 'ListAccountRoles' => [ 'name' => 'ListAccountRoles', 'http' => [ 'method' => 'GET', 'requestUri' => '/assignment/roles', ], 'input' => [ 'shape' => 'ListAccountRolesRequest', ], 'output' => [ 'shape' => 'ListAccountRolesResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], 'authtype' => 'none', ], 'ListAccounts' => [ 'name' => 'ListAccounts', 'http' => [ 'method' => 'GET', 'requestUri' => '/assignment/accounts', ], 'input' => [ 'shape' => 'ListAccountsRequest', ], 'output' => [ 'shape' => 'ListAccountsResponse', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], [ 'shape' => 'ResourceNotFoundException', ], ], 'authtype' => 'none', ], 'Logout' => [ 'name' => 'Logout', 'http' => [ 'method' => 'POST', 'requestUri' => '/logout', ], 'input' => [ 'shape' => 'LogoutRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'authtype' => 'none', ], ], 'shapes' => [ 'AccessKeyType' => [ 'type' => 'string', ], 'AccessTokenType' => [ 'type' => 'string', 'sensitive' => true, ], 'AccountIdType' => [ 'type' => 'string', ], 'AccountInfo' => [ 'type' => 'structure', 'members' => [ 'accountId' => [ 'shape' => 'AccountIdType', ], 'accountName' => [ 'shape' => 'AccountNameType', ], 'emailAddress' => [ 'shape' => 'EmailAddressType', ], ], ], 'AccountListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'AccountInfo', ], ], 'AccountNameType' => [ 'type' => 'string', ], 'EmailAddressType' => [ 'type' => 'string', 'max' => 254, 'min' => 1, ], 'ErrorDescription' => [ 'type' => 'string', ], 'ExpirationTimestampType' => [ 'type' => 'long', ], 'GetRoleCredentialsRequest' => [ 'type' => 'structure', 'required' => [ 'roleName', 'accountId', 'accessToken', ], 'members' => [ 'roleName' => [ 'shape' => 'RoleNameType', 'location' => 'querystring', 'locationName' => 'role_name', ], 'accountId' => [ 'shape' => 'AccountIdType', 'location' => 'querystring', 'locationName' => 'account_id', ], 'accessToken' => [ 'shape' => 'AccessTokenType', 'location' => 'header', 'locationName' => 'x-amz-sso_bearer_token', ], ], ], 'GetRoleCredentialsResponse' => [ 'type' => 'structure', 'members' => [ 'roleCredentials' => [ 'shape' => 'RoleCredentials', ], ], ], 'InvalidRequestException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'ListAccountRolesRequest' => [ 'type' => 'structure', 'required' => [ 'accessToken', 'accountId', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextTokenType', 'location' => 'querystring', 'locationName' => 'next_token', ], 'maxResults' => [ 'shape' => 'MaxResultType', 'location' => 'querystring', 'locationName' => 'max_result', ], 'accessToken' => [ 'shape' => 'AccessTokenType', 'location' => 'header', 'locationName' => 'x-amz-sso_bearer_token', ], 'accountId' => [ 'shape' => 'AccountIdType', 'location' => 'querystring', 'locationName' => 'account_id', ], ], ], 'ListAccountRolesResponse' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextTokenType', ], 'roleList' => [ 'shape' => 'RoleListType', ], ], ], 'ListAccountsRequest' => [ 'type' => 'structure', 'required' => [ 'accessToken', ], 'members' => [ 'nextToken' => [ 'shape' => 'NextTokenType', 'location' => 'querystring', 'locationName' => 'next_token', ], 'maxResults' => [ 'shape' => 'MaxResultType', 'location' => 'querystring', 'locationName' => 'max_result', ], 'accessToken' => [ 'shape' => 'AccessTokenType', 'location' => 'header', 'locationName' => 'x-amz-sso_bearer_token', ], ], ], 'ListAccountsResponse' => [ 'type' => 'structure', 'members' => [ 'nextToken' => [ 'shape' => 'NextTokenType', ], 'accountList' => [ 'shape' => 'AccountListType', ], ], ], 'LogoutRequest' => [ 'type' => 'structure', 'required' => [ 'accessToken', ], 'members' => [ 'accessToken' => [ 'shape' => 'AccessTokenType', 'location' => 'header', 'locationName' => 'x-amz-sso_bearer_token', ], ], ], 'MaxResultType' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'NextTokenType' => [ 'type' => 'string', ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 404, ], 'exception' => true, ], 'RoleCredentials' => [ 'type' => 'structure', 'members' => [ 'accessKeyId' => [ 'shape' => 'AccessKeyType', ], 'secretAccessKey' => [ 'shape' => 'SecretAccessKeyType', ], 'sessionToken' => [ 'shape' => 'SessionTokenType', ], 'expiration' => [ 'shape' => 'ExpirationTimestampType', ], ], ], 'RoleInfo' => [ 'type' => 'structure', 'members' => [ 'roleName' => [ 'shape' => 'RoleNameType', ], 'accountId' => [ 'shape' => 'AccountIdType', ], ], ], 'RoleListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'RoleInfo', ], ], 'RoleNameType' => [ 'type' => 'string', ], 'SecretAccessKeyType' => [ 'type' => 'string', 'sensitive' => true, ], 'SessionTokenType' => [ 'type' => 'string', 'sensitive' => true, ], 'TooManyRequestsException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 429, ], 'exception' => true, ], 'UnauthorizedException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 401, ], 'exception' => true, ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php new file mode 100644 index 000000000..06c7a5ba5 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php @@ -0,0 +1,3 @@ + '1.0', 'parameters' => [ 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the request.', 'type' => 'String', ], 'UseDualStack' => [ 'builtIn' => 'AWS::UseDualStack', 'required' => true, 'default' => false, 'documentation' => 'When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.', 'type' => 'Boolean', ], 'UseFIPS' => [ 'builtIn' => 'AWS::UseFIPS', 'required' => true, 'default' => false, 'documentation' => 'When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.', 'type' => 'Boolean', ], 'Endpoint' => [ 'builtIn' => 'SDK::Endpoint', 'required' => false, 'documentation' => 'Override the endpoint used to send this request', 'type' => 'String', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'Invalid Configuration: FIPS and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'Invalid Configuration: Dualstack and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [], 'endpoint' => [ 'url' => [ 'ref' => 'Endpoint', ], 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], ], [ 'conditions' => [], 'error' => 'FIPS and DualStack are enabled, but this partition does not support one or both', 'type' => 'error', ], ], ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ 'aws-us-gov', [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'name', ], ], ], ], ], 'endpoint' => [ 'url' => 'https://portal.sso.{Region}.amazonaws.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], ], [ 'conditions' => [], 'error' => 'FIPS is enabled but this partition does not support FIPS', 'type' => 'error', ], ], ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'type' => 'tree', 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], ], [ 'conditions' => [], 'error' => 'DualStack is enabled but this partition does not support DualStack', 'type' => 'error', ], ], ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://portal.sso.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], ], ], ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/paginators-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/paginators-1.json.php new file mode 100644 index 000000000..38d7738fd --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sso/2019-06-10/paginators-1.json.php @@ -0,0 +1,3 @@ + [ 'ListAccountRoles' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', 'result_key' => 'roleList', ], 'ListAccounts' => [ 'input_token' => 'nextToken', 'output_token' => 'nextToken', 'limit_key' => 'maxResults', 'result_key' => 'accountList', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php new file mode 100644 index 000000000..997cce48e --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php @@ -0,0 +1,3 @@ + '2.0', 'metadata' => [ 'apiVersion' => '2011-06-15', 'endpointPrefix' => 'sts', 'globalEndpoint' => 'sts.amazonaws.com', 'protocol' => 'query', 'protocols' => [ 'query', ], 'serviceAbbreviation' => 'AWS STS', 'serviceFullName' => 'AWS Security Token Service', 'serviceId' => 'STS', 'signatureVersion' => 'v4', 'uid' => 'sts-2011-06-15', 'xmlNamespace' => 'https://sts.amazonaws.com/doc/2011-06-15/', 'auth' => [ 'aws.auth#sigv4', ], ], 'operations' => [ 'AssumeRole' => [ 'name' => 'AssumeRole', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRoleRequest', ], 'output' => [ 'shape' => 'AssumeRoleResponse', 'resultWrapper' => 'AssumeRoleResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'RegionDisabledException', ], [ 'shape' => 'ExpiredTokenException', ], ], ], 'AssumeRoleWithSAML' => [ 'name' => 'AssumeRoleWithSAML', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRoleWithSAMLRequest', ], 'output' => [ 'shape' => 'AssumeRoleWithSAMLResponse', 'resultWrapper' => 'AssumeRoleWithSAMLResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'IDPRejectedClaimException', ], [ 'shape' => 'InvalidIdentityTokenException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'RegionDisabledException', ], ], 'authtype' => 'none', 'auth' => [ 'smithy.api#noAuth', ], ], 'AssumeRoleWithWebIdentity' => [ 'name' => 'AssumeRoleWithWebIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRoleWithWebIdentityRequest', ], 'output' => [ 'shape' => 'AssumeRoleWithWebIdentityResponse', 'resultWrapper' => 'AssumeRoleWithWebIdentityResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'IDPRejectedClaimException', ], [ 'shape' => 'IDPCommunicationErrorException', ], [ 'shape' => 'InvalidIdentityTokenException', ], [ 'shape' => 'ExpiredTokenException', ], [ 'shape' => 'RegionDisabledException', ], ], 'authtype' => 'none', 'auth' => [ 'smithy.api#noAuth', ], ], 'AssumeRoot' => [ 'name' => 'AssumeRoot', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'AssumeRootRequest', ], 'output' => [ 'shape' => 'AssumeRootResponse', 'resultWrapper' => 'AssumeRootResult', ], 'errors' => [ [ 'shape' => 'RegionDisabledException', ], [ 'shape' => 'ExpiredTokenException', ], ], ], 'DecodeAuthorizationMessage' => [ 'name' => 'DecodeAuthorizationMessage', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DecodeAuthorizationMessageRequest', ], 'output' => [ 'shape' => 'DecodeAuthorizationMessageResponse', 'resultWrapper' => 'DecodeAuthorizationMessageResult', ], 'errors' => [ [ 'shape' => 'InvalidAuthorizationMessageException', ], ], ], 'GetAccessKeyInfo' => [ 'name' => 'GetAccessKeyInfo', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetAccessKeyInfoRequest', ], 'output' => [ 'shape' => 'GetAccessKeyInfoResponse', 'resultWrapper' => 'GetAccessKeyInfoResult', ], ], 'GetCallerIdentity' => [ 'name' => 'GetCallerIdentity', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetCallerIdentityRequest', ], 'output' => [ 'shape' => 'GetCallerIdentityResponse', 'resultWrapper' => 'GetCallerIdentityResult', ], ], 'GetFederationToken' => [ 'name' => 'GetFederationToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetFederationTokenRequest', ], 'output' => [ 'shape' => 'GetFederationTokenResponse', 'resultWrapper' => 'GetFederationTokenResult', ], 'errors' => [ [ 'shape' => 'MalformedPolicyDocumentException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], [ 'shape' => 'RegionDisabledException', ], ], ], 'GetSessionToken' => [ 'name' => 'GetSessionToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetSessionTokenRequest', ], 'output' => [ 'shape' => 'GetSessionTokenResponse', 'resultWrapper' => 'GetSessionTokenResult', ], 'errors' => [ [ 'shape' => 'RegionDisabledException', ], ], ], ], 'shapes' => [ 'AssumeRoleRequest' => [ 'type' => 'structure', 'required' => [ 'RoleArn', 'RoleSessionName', ], 'members' => [ 'RoleArn' => [ 'shape' => 'arnType', ], 'RoleSessionName' => [ 'shape' => 'roleSessionNameType', ], 'PolicyArns' => [ 'shape' => 'policyDescriptorListType', ], 'Policy' => [ 'shape' => 'unrestrictedSessionPolicyDocumentType', ], 'DurationSeconds' => [ 'shape' => 'roleDurationSecondsType', ], 'Tags' => [ 'shape' => 'tagListType', ], 'TransitiveTagKeys' => [ 'shape' => 'tagKeyListType', ], 'ExternalId' => [ 'shape' => 'externalIdType', ], 'SerialNumber' => [ 'shape' => 'serialNumberType', ], 'TokenCode' => [ 'shape' => 'tokenCodeType', ], 'SourceIdentity' => [ 'shape' => 'sourceIdentityType', ], 'ProvidedContexts' => [ 'shape' => 'ProvidedContextsListType', ], ], ], 'AssumeRoleResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], 'AssumedRoleUser' => [ 'shape' => 'AssumedRoleUser', ], 'PackedPolicySize' => [ 'shape' => 'nonNegativeIntegerType', ], 'SourceIdentity' => [ 'shape' => 'sourceIdentityType', ], ], ], 'AssumeRoleWithSAMLRequest' => [ 'type' => 'structure', 'required' => [ 'RoleArn', 'PrincipalArn', 'SAMLAssertion', ], 'members' => [ 'RoleArn' => [ 'shape' => 'arnType', ], 'PrincipalArn' => [ 'shape' => 'arnType', ], 'SAMLAssertion' => [ 'shape' => 'SAMLAssertionType', ], 'PolicyArns' => [ 'shape' => 'policyDescriptorListType', ], 'Policy' => [ 'shape' => 'sessionPolicyDocumentType', ], 'DurationSeconds' => [ 'shape' => 'roleDurationSecondsType', ], ], ], 'AssumeRoleWithSAMLResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], 'AssumedRoleUser' => [ 'shape' => 'AssumedRoleUser', ], 'PackedPolicySize' => [ 'shape' => 'nonNegativeIntegerType', ], 'Subject' => [ 'shape' => 'Subject', ], 'SubjectType' => [ 'shape' => 'SubjectType', ], 'Issuer' => [ 'shape' => 'Issuer', ], 'Audience' => [ 'shape' => 'Audience', ], 'NameQualifier' => [ 'shape' => 'NameQualifier', ], 'SourceIdentity' => [ 'shape' => 'sourceIdentityType', ], ], ], 'AssumeRoleWithWebIdentityRequest' => [ 'type' => 'structure', 'required' => [ 'RoleArn', 'RoleSessionName', 'WebIdentityToken', ], 'members' => [ 'RoleArn' => [ 'shape' => 'arnType', ], 'RoleSessionName' => [ 'shape' => 'roleSessionNameType', ], 'WebIdentityToken' => [ 'shape' => 'clientTokenType', ], 'ProviderId' => [ 'shape' => 'urlType', ], 'PolicyArns' => [ 'shape' => 'policyDescriptorListType', ], 'Policy' => [ 'shape' => 'sessionPolicyDocumentType', ], 'DurationSeconds' => [ 'shape' => 'roleDurationSecondsType', ], ], ], 'AssumeRoleWithWebIdentityResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], 'SubjectFromWebIdentityToken' => [ 'shape' => 'webIdentitySubjectType', ], 'AssumedRoleUser' => [ 'shape' => 'AssumedRoleUser', ], 'PackedPolicySize' => [ 'shape' => 'nonNegativeIntegerType', ], 'Provider' => [ 'shape' => 'Issuer', ], 'Audience' => [ 'shape' => 'Audience', ], 'SourceIdentity' => [ 'shape' => 'sourceIdentityType', ], ], ], 'AssumeRootRequest' => [ 'type' => 'structure', 'required' => [ 'TargetPrincipal', 'TaskPolicyArn', ], 'members' => [ 'TargetPrincipal' => [ 'shape' => 'TargetPrincipalType', ], 'TaskPolicyArn' => [ 'shape' => 'PolicyDescriptorType', ], 'DurationSeconds' => [ 'shape' => 'RootDurationSecondsType', ], ], ], 'AssumeRootResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], 'SourceIdentity' => [ 'shape' => 'sourceIdentityType', ], ], ], 'AssumedRoleUser' => [ 'type' => 'structure', 'required' => [ 'AssumedRoleId', 'Arn', ], 'members' => [ 'AssumedRoleId' => [ 'shape' => 'assumedRoleIdType', ], 'Arn' => [ 'shape' => 'arnType', ], ], ], 'Audience' => [ 'type' => 'string', ], 'Credentials' => [ 'type' => 'structure', 'required' => [ 'AccessKeyId', 'SecretAccessKey', 'SessionToken', 'Expiration', ], 'members' => [ 'AccessKeyId' => [ 'shape' => 'accessKeyIdType', ], 'SecretAccessKey' => [ 'shape' => 'accessKeySecretType', ], 'SessionToken' => [ 'shape' => 'tokenType', ], 'Expiration' => [ 'shape' => 'dateType', ], ], ], 'DecodeAuthorizationMessageRequest' => [ 'type' => 'structure', 'required' => [ 'EncodedMessage', ], 'members' => [ 'EncodedMessage' => [ 'shape' => 'encodedMessageType', ], ], ], 'DecodeAuthorizationMessageResponse' => [ 'type' => 'structure', 'members' => [ 'DecodedMessage' => [ 'shape' => 'decodedMessageType', ], ], ], 'ExpiredTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'expiredIdentityTokenMessage', ], ], 'error' => [ 'code' => 'ExpiredTokenException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'FederatedUser' => [ 'type' => 'structure', 'required' => [ 'FederatedUserId', 'Arn', ], 'members' => [ 'FederatedUserId' => [ 'shape' => 'federatedIdType', ], 'Arn' => [ 'shape' => 'arnType', ], ], ], 'GetAccessKeyInfoRequest' => [ 'type' => 'structure', 'required' => [ 'AccessKeyId', ], 'members' => [ 'AccessKeyId' => [ 'shape' => 'accessKeyIdType', ], ], ], 'GetAccessKeyInfoResponse' => [ 'type' => 'structure', 'members' => [ 'Account' => [ 'shape' => 'accountType', ], ], ], 'GetCallerIdentityRequest' => [ 'type' => 'structure', 'members' => [], ], 'GetCallerIdentityResponse' => [ 'type' => 'structure', 'members' => [ 'UserId' => [ 'shape' => 'userIdType', ], 'Account' => [ 'shape' => 'accountType', ], 'Arn' => [ 'shape' => 'arnType', ], ], ], 'GetFederationTokenRequest' => [ 'type' => 'structure', 'required' => [ 'Name', ], 'members' => [ 'Name' => [ 'shape' => 'userNameType', ], 'Policy' => [ 'shape' => 'sessionPolicyDocumentType', ], 'PolicyArns' => [ 'shape' => 'policyDescriptorListType', ], 'DurationSeconds' => [ 'shape' => 'durationSecondsType', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], 'GetFederationTokenResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], 'FederatedUser' => [ 'shape' => 'FederatedUser', ], 'PackedPolicySize' => [ 'shape' => 'nonNegativeIntegerType', ], ], ], 'GetSessionTokenRequest' => [ 'type' => 'structure', 'members' => [ 'DurationSeconds' => [ 'shape' => 'durationSecondsType', ], 'SerialNumber' => [ 'shape' => 'serialNumberType', ], 'TokenCode' => [ 'shape' => 'tokenCodeType', ], ], ], 'GetSessionTokenResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], ], ], 'IDPCommunicationErrorException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'idpCommunicationErrorMessage', ], ], 'error' => [ 'code' => 'IDPCommunicationError', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'IDPRejectedClaimException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'idpRejectedClaimMessage', ], ], 'error' => [ 'code' => 'IDPRejectedClaim', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'InvalidAuthorizationMessageException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'invalidAuthorizationMessage', ], ], 'error' => [ 'code' => 'InvalidAuthorizationMessageException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'InvalidIdentityTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'invalidIdentityTokenMessage', ], ], 'error' => [ 'code' => 'InvalidIdentityToken', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'Issuer' => [ 'type' => 'string', ], 'MalformedPolicyDocumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'malformedPolicyDocumentMessage', ], ], 'error' => [ 'code' => 'MalformedPolicyDocument', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'NameQualifier' => [ 'type' => 'string', ], 'PackedPolicyTooLargeException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'packedPolicyTooLargeMessage', ], ], 'error' => [ 'code' => 'PackedPolicyTooLarge', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'PolicyDescriptorType' => [ 'type' => 'structure', 'members' => [ 'arn' => [ 'shape' => 'arnType', ], ], ], 'ProvidedContext' => [ 'type' => 'structure', 'members' => [ 'ProviderArn' => [ 'shape' => 'arnType', ], 'ContextAssertion' => [ 'shape' => 'contextAssertionType', ], ], ], 'ProvidedContextsListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'ProvidedContext', ], 'max' => 5, ], 'RegionDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'regionDisabledMessage', ], ], 'error' => [ 'code' => 'RegionDisabledException', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], 'RootDurationSecondsType' => [ 'type' => 'integer', 'max' => 900, 'min' => 0, ], 'SAMLAssertionType' => [ 'type' => 'string', 'max' => 100000, 'min' => 4, 'sensitive' => true, ], 'Subject' => [ 'type' => 'string', ], 'SubjectType' => [ 'type' => 'string', ], 'Tag' => [ 'type' => 'structure', 'required' => [ 'Key', 'Value', ], 'members' => [ 'Key' => [ 'shape' => 'tagKeyType', ], 'Value' => [ 'shape' => 'tagValueType', ], ], ], 'TargetPrincipalType' => [ 'type' => 'string', 'max' => 2048, 'min' => 12, ], 'accessKeyIdType' => [ 'type' => 'string', 'max' => 128, 'min' => 16, 'pattern' => '[\\w]*', ], 'accessKeySecretType' => [ 'type' => 'string', 'sensitive' => true, ], 'accountType' => [ 'type' => 'string', ], 'arnType' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]+', ], 'assumedRoleIdType' => [ 'type' => 'string', 'max' => 193, 'min' => 2, 'pattern' => '[\\w+=,.@:-]*', ], 'clientTokenType' => [ 'type' => 'string', 'max' => 20000, 'min' => 4, 'sensitive' => true, ], 'contextAssertionType' => [ 'type' => 'string', 'max' => 2048, 'min' => 4, ], 'dateType' => [ 'type' => 'timestamp', ], 'decodedMessageType' => [ 'type' => 'string', ], 'durationSecondsType' => [ 'type' => 'integer', 'max' => 129600, 'min' => 900, ], 'encodedMessageType' => [ 'type' => 'string', 'max' => 10240, 'min' => 1, ], 'expiredIdentityTokenMessage' => [ 'type' => 'string', ], 'externalIdType' => [ 'type' => 'string', 'max' => 1224, 'min' => 2, 'pattern' => '[\\w+=,.@:\\/-]*', ], 'federatedIdType' => [ 'type' => 'string', 'max' => 193, 'min' => 2, 'pattern' => '[\\w+=,.@\\:-]*', ], 'idpCommunicationErrorMessage' => [ 'type' => 'string', ], 'idpRejectedClaimMessage' => [ 'type' => 'string', ], 'invalidAuthorizationMessage' => [ 'type' => 'string', ], 'invalidIdentityTokenMessage' => [ 'type' => 'string', ], 'malformedPolicyDocumentMessage' => [ 'type' => 'string', ], 'nonNegativeIntegerType' => [ 'type' => 'integer', 'min' => 0, ], 'packedPolicyTooLargeMessage' => [ 'type' => 'string', ], 'policyDescriptorListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'PolicyDescriptorType', ], ], 'regionDisabledMessage' => [ 'type' => 'string', ], 'roleDurationSecondsType' => [ 'type' => 'integer', 'max' => 43200, 'min' => 900, ], 'roleSessionNameType' => [ 'type' => 'string', 'max' => 64, 'min' => 2, 'pattern' => '[\\w+=,.@-]*', ], 'serialNumberType' => [ 'type' => 'string', 'max' => 256, 'min' => 9, 'pattern' => '[\\w+=/:,.@-]*', ], 'sessionPolicyDocumentType' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'sourceIdentityType' => [ 'type' => 'string', 'max' => 64, 'min' => 2, 'pattern' => '[\\w+=,.@-]*', ], 'tagKeyListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'tagKeyType', ], 'max' => 50, ], 'tagKeyType' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+', ], 'tagListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'Tag', ], 'max' => 50, ], 'tagValueType' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*', ], 'tokenCodeType' => [ 'type' => 'string', 'max' => 6, 'min' => 6, 'pattern' => '[\\d]*', ], 'tokenType' => [ 'type' => 'string', ], 'unrestrictedSessionPolicyDocumentType' => [ 'type' => 'string', 'min' => 1, 'pattern' => '[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+', ], 'urlType' => [ 'type' => 'string', 'max' => 2048, 'min' => 4, ], 'userIdType' => [ 'type' => 'string', ], 'userNameType' => [ 'type' => 'string', 'max' => 32, 'min' => 2, 'pattern' => '[\\w+=,.@-]*', ], 'webIdentitySubjectType' => [ 'type' => 'string', 'max' => 255, 'min' => 6, ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php new file mode 100644 index 000000000..2429fcafc --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php @@ -0,0 +1,3 @@ + '1.0', 'parameters' => [ 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the request.', 'type' => 'String', ], 'UseDualStack' => [ 'builtIn' => 'AWS::UseDualStack', 'required' => true, 'default' => false, 'documentation' => 'When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.', 'type' => 'Boolean', ], 'UseFIPS' => [ 'builtIn' => 'AWS::UseFIPS', 'required' => true, 'default' => false, 'documentation' => 'When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.', 'type' => 'Boolean', ], 'Endpoint' => [ 'builtIn' => 'SDK::Endpoint', 'required' => false, 'documentation' => 'Override the endpoint used to send this request', 'type' => 'String', ], 'UseGlobalEndpoint' => [ 'builtIn' => 'AWS::STS::UseGlobalEndpoint', 'required' => true, 'default' => false, 'documentation' => 'Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.', 'type' => 'Boolean', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'ap-northeast-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'ap-south-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'ap-southeast-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'ap-southeast-2', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'ca-central-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'eu-central-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'eu-north-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'eu-west-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'eu-west-2', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'eu-west-3', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'sa-east-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-east-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-east-2', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-west-1', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'us-west-2', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sts.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'Invalid Configuration: FIPS and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'Invalid Configuration: Dualstack and custom endpoint are not supported', 'type' => 'error', ], [ 'conditions' => [], 'endpoint' => [ 'url' => [ 'ref' => 'Endpoint', ], 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS and DualStack are enabled, but this partition does not support one or both', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'name', ], ], 'aws-us-gov', ], ], ], 'endpoint' => [ 'url' => 'https://sts.{Region}.amazonaws.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sts-fips.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'FIPS is enabled but this partition does not support FIPS', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'DualStack is enabled but this partition does not support DualStack', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://sts.amazonaws.com', 'properties' => [ 'authSchemes' => [ [ 'name' => 'sigv4', 'signingName' => 'sts', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://sts.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/paginators-1.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/paginators-1.json.php new file mode 100644 index 000000000..d76231321 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/paginators-1.json.php @@ -0,0 +1,3 @@ + [],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/smoke.json.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/smoke.json.php new file mode 100644 index 000000000..28082e83e --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/data/sts/2011-06-15/smoke.json.php @@ -0,0 +1,3 @@ + 1, 'defaultRegion' => 'us-west-2', 'testCases' => [ [ 'operationName' => 'GetSessionToken', 'input' => [], 'errorExpectedFromService' => false, ], [ 'operationName' => 'GetFederationToken', 'input' => [ 'Name' => 'temp', 'Policy' => '{\\"temp\\":true}', ], 'errorExpectedFromService' => true, ], ],]; diff --git a/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/functions.php b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/functions.php new file mode 100644 index 000000000..166e74936 --- /dev/null +++ b/lam/lib/3rdParty/composer/aws/aws-sdk-php/src/functions.php @@ -0,0 +1,573 @@ + true, '..' => true]; + $pathLen = strlen($path) + 1; + $iterator = dir_iterator($path, $context); + $queue = []; + do { + while ($iterator->valid()) { + $file = $iterator->current(); + $iterator->next(); + if (isset($invalid[basename($file)])) { + continue; + } + $fullPath = "{$path}/{$file}"; + yield $fullPath; + if (is_dir($fullPath)) { + $queue[] = $iterator; + $iterator = map( + dir_iterator($fullPath, $context), + function ($file) use ($fullPath, $pathLen) { + return substr("{$fullPath}/{$file}", $pathLen); + } + ); + continue; + } + } + $iterator = array_pop($queue); + } while ($iterator); +} + +//----------------------------------------------------------------------------- +// Misc. functions. +//----------------------------------------------------------------------------- + +/** + * Debug function used to describe the provided value type and class. + * + * @param mixed $input + * + * @return string Returns a string containing the type of the variable and + * if a class is provided, the class name. + */ +function describe_type($input) +{ + switch (gettype($input)) { + case 'object': + return 'object(' . get_class($input) . ')'; + case 'array': + return 'array(' . count($input) . ')'; + default: + ob_start(); + var_dump($input); + // normalize float vs double + return str_replace('double(', 'float(', rtrim(ob_get_clean())); + } +} + +/** + * Creates a default HTTP handler based on the available clients. + * + * @return callable + */ +function default_http_handler() +{ + return new \Aws\Handler\Guzzle\GuzzleHandler(); +} + +/** + * Gets the default user agent string depending on the Guzzle version + * + * @return string + */ +function default_user_agent() +{ + return Utils::defaultUserAgent(); +} + +/** + * Serialize a request for a command but do not send it. + * + * Returns a promise that is fulfilled with the serialized request. + * + * @param CommandInterface $command Command to serialize. + * + * @return RequestInterface + * @throws \RuntimeException + */ +function serialize(CommandInterface $command) +{ + $request = null; + $handlerList = $command->getHandlerList(); + + // Return a mock result. + $handlerList->setHandler( + function (CommandInterface $_, RequestInterface $r) use (&$request) { + $request = $r; + return new FulfilledPromise(new Result([])); + } + ); + + call_user_func($handlerList->resolve(), $command)->wait(); + if (!$request instanceof RequestInterface) { + throw new \RuntimeException( + 'Calling handler did not serialize request' + ); + } + + return $request; +} + +/** + * Retrieves data for a service from the SDK's service manifest file. + * + * Manifest data is stored statically, so it does not need to be loaded more + * than once per process. The JSON data is also cached in opcache. + * + * @param string $service Case-insensitive namespace or endpoint prefix of the + * service for which you are retrieving manifest data. + * + * @return array + * @throws \InvalidArgumentException if the service is not supported. + */ +function manifest($service = null) +{ + // Load the manifest and create aliases for lowercased namespaces + static $manifest = []; + static $aliases = []; + if (empty($manifest)) { + $manifest = load_compiled_json(__DIR__ . '/data/manifest.json'); + foreach ($manifest as $endpoint => $info) { + $alias = strtolower($info['namespace']); + if ($alias !== $endpoint) { + $aliases[$alias] = $endpoint; + } + } + } + + // If no service specified, then return the whole manifest. + if ($service === null) { + return $manifest; + } + + // Look up the service's info in the manifest data. + $service = strtolower($service); + if (isset($manifest[$service])) { + return $manifest[$service] + ['endpoint' => $service]; + } + + if (isset($aliases[$service])) { + return manifest($aliases[$service]); + } + + throw new \InvalidArgumentException( + "The service \"{$service}\" is not provided by the AWS SDK for PHP." + ); +} + +/** + * Checks if supplied parameter is a valid hostname + * + * @param string $hostname + * @return bool + */ +function is_valid_hostname($hostname) +{ + return ( + preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*\.?$/i", $hostname) + && preg_match("/^.{1,253}$/", $hostname) + && preg_match("/^[^\.]{1,63}(\.[^\.]{0,63})*$/", $hostname) + ); +} + +/** + * Checks if supplied parameter is a valid host label + * + * @param $label + * @return bool + */ +function is_valid_hostlabel($label) +{ + return preg_match("/^(?!-)[a-zA-Z0-9-]{1,63}(? $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/AwsCredentials.php', + 'AWS\\CRT\\Auth\\CredentialsProvider' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/CredentialsProvider.php', + 'AWS\\CRT\\Auth\\Signable' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php', + 'AWS\\CRT\\Auth\\SignatureType' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/SignatureType.php', + 'AWS\\CRT\\Auth\\SignedBodyHeaderType' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/SignedBodyHeaderType.php', + 'AWS\\CRT\\Auth\\Signing' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/Signing.php', + 'AWS\\CRT\\Auth\\SigningAlgorithm' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/SigningAlgorithm.php', + 'AWS\\CRT\\Auth\\SigningConfigAWS' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php', + 'AWS\\CRT\\Auth\\SigningResult' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/SigningResult.php', + 'AWS\\CRT\\Auth\\StaticCredentialsProvider' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Auth/StaticCredentialsProvider.php', + 'AWS\\CRT\\CRT' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/CRT.php', + 'AWS\\CRT\\HTTP\\Headers' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php', + 'AWS\\CRT\\HTTP\\Message' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Message.php', + 'AWS\\CRT\\HTTP\\Request' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Request.php', + 'AWS\\CRT\\HTTP\\Response' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Response.php', + 'AWS\\CRT\\IO\\EventLoopGroup' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/IO/EventLoopGroup.php', + 'AWS\\CRT\\IO\\InputStream' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/IO/InputStream.php', + 'AWS\\CRT\\Internal\\Encoding' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Internal/Encoding.php', + 'AWS\\CRT\\Internal\\Extension' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Internal/Extension.php', + 'AWS\\CRT\\Log' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Log.php', + 'AWS\\CRT\\NativeResource' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/NativeResource.php', + 'AWS\\CRT\\OptionValue' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Options.php', + 'AWS\\CRT\\Options' => $vendorDir . '/aws/aws-crt-php/src/AWS/CRT/Options.php', 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php', 'DateException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateException.php', diff --git a/lam/lib/3rdParty/composer/composer/autoload_files.php b/lam/lib/3rdParty/composer/composer/autoload_files.php index e7d556ba3..fcd9afcdd 100644 --- a/lam/lib/3rdParty/composer/composer/autoload_files.php +++ b/lam/lib/3rdParty/composer/composer/autoload_files.php @@ -14,14 +14,17 @@ return array( 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', '3109cb1a231dcd04bee1f9f620d46975' => $vendorDir . '/paragonie/sodium_compat/autoload.php', '662a729f963d39afe703c9d9b7ab4a8c' => $vendorDir . '/symfony/polyfill-php83/bootstrap.php', + '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php', '72579e7bd17821bb1321b87411366eae' => $vendorDir . '/illuminate/support/helpers.php', - '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', '2203a247e6fda86070a5e4e07aed533a' => $vendorDir . '/symfony/clock/Resources/now.php', '09f6b20656683369174dd6fa83b7e5fb' => $vendorDir . '/symfony/polyfill-uuid/bootstrap.php', 'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php', 'c2b3214084883d700175de676a4fc127' => $vendorDir . '/facile-it/php-jose-verifier/src/functions/derived_key.php', '16040cf78e404de30085045d3863ed51' => $vendorDir . '/facile-it/php-jose-verifier/src/functions/jose_secret_key.php', + '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', + 'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php', + '8a9dc1de0ca7e01f3e08231539562f61' => $vendorDir . '/aws/aws-sdk-php/src/functions.php', 'ba61337b858c088ff9f16a5fc3badbeb' => $vendorDir . '/facile-it/php-openid-client/src/functions/base64url_decode.php', 'd4a8a901fd39fc07eb96403508f8f03f' => $vendorDir . '/facile-it/php-openid-client/src/functions/base64url_encode.php', 'c81c91c32460d498a356b65d5a21fc4c' => $vendorDir . '/facile-it/php-openid-client/src/functions/check_server_response.php', diff --git a/lam/lib/3rdParty/composer/composer/autoload_psr4.php b/lam/lib/3rdParty/composer/composer/autoload_psr4.php index b870bcce7..be0565ff8 100644 --- a/lam/lib/3rdParty/composer/composer/autoload_psr4.php +++ b/lam/lib/3rdParty/composer/composer/autoload_psr4.php @@ -41,12 +41,15 @@ return array( 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), 'Lcobucci\\Clock\\' => array($vendorDir . '/lcobucci/clock/src'), 'Jose\\Component\\' => array($vendorDir . '/web-token/jwt-library'), + 'JmesPath\\' => array($vendorDir . '/mtdowling/jmespath.php/src'), 'Illuminate\\Support\\' => array($vendorDir . '/illuminate/support'), 'Illuminate\\Pagination\\' => array($vendorDir . '/illuminate/pagination'), 'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), 'Http\\Factory\\Guzzle\\' => array($vendorDir . '/http-interop/http-factory-guzzle/src'), 'Http\\Discovery\\' => array($vendorDir . '/php-http/discovery/src'), 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), + 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), + 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), 'Firebase\\JWT\\' => array($vendorDir . '/firebase/php-jwt/src'), 'Facile\\OpenIDClient\\' => array($vendorDir . '/facile-it/php-openid-client/src'), 'Facile\\JoseVerifier\\' => array($vendorDir . '/facile-it/php-jose-verifier/src'), @@ -60,5 +63,6 @@ return array( 'Brick\\Math\\' => array($vendorDir . '/brick/math/src'), 'Base64Url\\' => array($vendorDir . '/spomky-labs/base64url/src'), 'Base32\\' => array($vendorDir . '/christian-riesen/base32/src'), + 'Aws\\' => array($vendorDir . '/aws/aws-sdk-php/src'), 'AESKW\\' => array($vendorDir . '/spomky-labs/aes-key-wrap/src'), ); diff --git a/lam/lib/3rdParty/composer/composer/autoload_static.php b/lam/lib/3rdParty/composer/composer/autoload_static.php index 5eae4e057..c5f83ec7f 100644 --- a/lam/lib/3rdParty/composer/composer/autoload_static.php +++ b/lam/lib/3rdParty/composer/composer/autoload_static.php @@ -15,14 +15,17 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', '3109cb1a231dcd04bee1f9f620d46975' => __DIR__ . '/..' . '/paragonie/sodium_compat/autoload.php', '662a729f963d39afe703c9d9b7ab4a8c' => __DIR__ . '/..' . '/symfony/polyfill-php83/bootstrap.php', + '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php', '72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php', - '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', '2203a247e6fda86070a5e4e07aed533a' => __DIR__ . '/..' . '/symfony/clock/Resources/now.php', '09f6b20656683369174dd6fa83b7e5fb' => __DIR__ . '/..' . '/symfony/polyfill-uuid/bootstrap.php', 'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php', 'c2b3214084883d700175de676a4fc127' => __DIR__ . '/..' . '/facile-it/php-jose-verifier/src/functions/derived_key.php', '16040cf78e404de30085045d3863ed51' => __DIR__ . '/..' . '/facile-it/php-jose-verifier/src/functions/jose_secret_key.php', + '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', + 'b067bc7112e384b61c701452d53a14a8' => __DIR__ . '/..' . '/mtdowling/jmespath.php/src/JmesPath.php', + '8a9dc1de0ca7e01f3e08231539562f61' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/functions.php', 'ba61337b858c088ff9f16a5fc3badbeb' => __DIR__ . '/..' . '/facile-it/php-openid-client/src/functions/base64url_decode.php', 'd4a8a901fd39fc07eb96403508f8f03f' => __DIR__ . '/..' . '/facile-it/php-openid-client/src/functions/base64url_encode.php', 'c81c91c32460d498a356b65d5a21fc4c' => __DIR__ . '/..' . '/facile-it/php-openid-client/src/functions/check_server_response.php', @@ -90,6 +93,7 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 'J' => array ( 'Jose\\Component\\' => 15, + 'JmesPath\\' => 9, ), 'I' => array ( @@ -105,6 +109,8 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 'G' => array ( 'GuzzleHttp\\Psr7\\' => 16, + 'GuzzleHttp\\Promise\\' => 19, + 'GuzzleHttp\\' => 11, ), 'F' => array ( @@ -133,6 +139,7 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 ), 'A' => array ( + 'Aws\\' => 4, 'AESKW\\' => 6, ), ); @@ -280,6 +287,10 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 array ( 0 => __DIR__ . '/..' . '/web-token/jwt-library', ), + 'JmesPath\\' => + array ( + 0 => __DIR__ . '/..' . '/mtdowling/jmespath.php/src', + ), 'Illuminate\\Support\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/support', @@ -304,6 +315,14 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 array ( 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', ), + 'GuzzleHttp\\Promise\\' => + array ( + 0 => __DIR__ . '/..' . '/guzzlehttp/promises/src', + ), + 'GuzzleHttp\\' => + array ( + 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src', + ), 'Firebase\\JWT\\' => array ( 0 => __DIR__ . '/..' . '/firebase/php-jwt/src', @@ -356,6 +375,10 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 array ( 0 => __DIR__ . '/..' . '/christian-riesen/base32/src', ), + 'Aws\\' => + array ( + 0 => __DIR__ . '/..' . '/aws/aws-sdk-php/src', + ), 'AESKW\\' => array ( 0 => __DIR__ . '/..' . '/spomky-labs/aes-key-wrap/src', @@ -363,6 +386,29 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5 ); public static $classMap = array ( + 'AWS\\CRT\\Auth\\AwsCredentials' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/AwsCredentials.php', + 'AWS\\CRT\\Auth\\CredentialsProvider' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/CredentialsProvider.php', + 'AWS\\CRT\\Auth\\Signable' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/Signable.php', + 'AWS\\CRT\\Auth\\SignatureType' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/SignatureType.php', + 'AWS\\CRT\\Auth\\SignedBodyHeaderType' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/SignedBodyHeaderType.php', + 'AWS\\CRT\\Auth\\Signing' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/Signing.php', + 'AWS\\CRT\\Auth\\SigningAlgorithm' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/SigningAlgorithm.php', + 'AWS\\CRT\\Auth\\SigningConfigAWS' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/SigningConfigAWS.php', + 'AWS\\CRT\\Auth\\SigningResult' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/SigningResult.php', + 'AWS\\CRT\\Auth\\StaticCredentialsProvider' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Auth/StaticCredentialsProvider.php', + 'AWS\\CRT\\CRT' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/CRT.php', + 'AWS\\CRT\\HTTP\\Headers' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php', + 'AWS\\CRT\\HTTP\\Message' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Message.php', + 'AWS\\CRT\\HTTP\\Request' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Request.php', + 'AWS\\CRT\\HTTP\\Response' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/HTTP/Response.php', + 'AWS\\CRT\\IO\\EventLoopGroup' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/IO/EventLoopGroup.php', + 'AWS\\CRT\\IO\\InputStream' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/IO/InputStream.php', + 'AWS\\CRT\\Internal\\Encoding' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Internal/Encoding.php', + 'AWS\\CRT\\Internal\\Extension' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Internal/Extension.php', + 'AWS\\CRT\\Log' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Log.php', + 'AWS\\CRT\\NativeResource' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/NativeResource.php', + 'AWS\\CRT\\OptionValue' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Options.php', + 'AWS\\CRT\\Options' => __DIR__ . '/..' . '/aws/aws-crt-php/src/AWS/CRT/Options.php', 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php', 'DateException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateException.php', diff --git a/lam/lib/3rdParty/composer/composer/installed.json b/lam/lib/3rdParty/composer/composer/installed.json index f5dc69dcd..a5e398b23 100644 --- a/lam/lib/3rdParty/composer/composer/installed.json +++ b/lam/lib/3rdParty/composer/composer/installed.json @@ -1,5 +1,162 @@ { "packages": [ + { + "name": "aws/aws-crt-php", + "version": "v1.2.7", + "version_normalized": "1.2.7.0", + "source": { + "type": "git", + "url": "https://github.com/awslabs/aws-crt-php.git", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality." + }, + "time": "2024-10-18T22:15:13+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "AWS SDK Common Runtime Team", + "email": "aws-sdk-common-runtime@amazon.com" + } + ], + "description": "AWS Common Runtime for PHP", + "homepage": "https://github.com/awslabs/aws-crt-php", + "keywords": [ + "amazon", + "aws", + "crt", + "sdk" + ], + "support": { + "issues": "https://github.com/awslabs/aws-crt-php/issues", + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7" + }, + "install-path": "../aws/aws-crt-php" + }, + { + "name": "aws/aws-sdk-php", + "version": "3.346.2", + "version_normalized": "3.346.2.0", + "source": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-php.git", + "reference": "d1403b5a39af7ab7af4fc538deb33013c19c8d33" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d1403b5a39af7ab7af4fc538deb33013c19c8d33", + "reference": "d1403b5a39af7ab7af4fc538deb33013c19c8d33", + "shasum": "" + }, + "require": { + "aws/aws-crt-php": "^1.2.3", + "ext-json": "*", + "ext-pcre": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.4.5", + "mtdowling/jmespath.php": "^2.8.0", + "php": ">=8.1", + "psr/http-message": "^2.0" + }, + "require-dev": { + "andrewsville/php-token-reflection": "^1.4", + "aws/aws-php-sns-message-validator": "~1.0", + "behat/behat": "~3.0", + "composer/composer": "^2.7.8", + "dms/phpunit-arraysubset-asserts": "^0.4.0", + "doctrine/cache": "~1.4", + "ext-dom": "*", + "ext-openssl": "*", + "ext-pcntl": "*", + "ext-sockets": "*", + "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "psr/cache": "^2.0 || ^3.0", + "psr/simple-cache": "^2.0 || ^3.0", + "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", + "symfony/filesystem": "^v6.4.0 || ^v7.1.0", + "yoast/phpunit-polyfills": "^2.0" + }, + "suggest": { + "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", + "doctrine/cache": "To use the DoctrineCacheAdapter", + "ext-curl": "To send requests using cURL", + "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", + "ext-sockets": "To use client-side monitoring" + }, + "time": "2025-06-20T18:10:21+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Aws\\": "src/" + }, + "exclude-from-classmap": [ + "src/data/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Amazon Web Services", + "homepage": "http://aws.amazon.com" + } + ], + "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", + "homepage": "http://aws.amazon.com/sdkforphp", + "keywords": [ + "amazon", + "aws", + "cloud", + "dynamodb", + "ec2", + "glacier", + "s3", + "sdk" + ], + "support": { + "forum": "https://github.com/aws/aws-sdk-php/discussions", + "issues": "https://github.com/aws/aws-sdk-php/issues", + "source": "https://github.com/aws/aws-sdk-php/tree/3.346.2" + }, + "install-path": "../aws/aws-sdk-php" + }, { "name": "brick/math", "version": "0.12.3", @@ -619,6 +776,221 @@ }, "install-path": "../firebase/php-jwt" }, + { + "name": "guzzlehttp/guzzle", + "version": "7.9.3", + "version_normalized": "7.9.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "time": "2025-03-27T13:37:11+00:00", + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "install-path": "../guzzlehttp/guzzle" + }, + { + "name": "guzzlehttp/promises", + "version": "2.2.0", + "version_normalized": "2.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "time": "2025-03-27T13:27:01+00:00", + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "install-path": "../guzzlehttp/promises" + }, { "name": "guzzlehttp/psr7", "version": "2.7.1", @@ -1136,6 +1508,75 @@ ], "install-path": "../monolog/monolog" }, + { + "name": "mtdowling/jmespath.php", + "version": "2.8.0", + "version_normalized": "2.8.0.0", + "source": { + "type": "git", + "url": "https://github.com/jmespath/jmespath.php.git", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" + }, + "require-dev": { + "composer/xdebug-handler": "^3.0.3", + "phpunit/phpunit": "^8.5.33" + }, + "time": "2024-09-04T18:46:31+00:00", + "bin": [ + "bin/jp.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/JmesPath.php" + ], + "psr-4": { + "JmesPath\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Declaratively specify how to extract elements from a JSON document", + "keywords": [ + "json", + "jsonpath" + ], + "support": { + "issues": "https://github.com/jmespath/jmespath.php/issues", + "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" + }, + "install-path": "../mtdowling/jmespath.php" + }, { "name": "nesbot/carbon", "version": "3.9.1", diff --git a/lam/lib/3rdParty/composer/composer/installed.php b/lam/lib/3rdParty/composer/composer/installed.php index b5cf0d49e..276243f77 100644 --- a/lam/lib/3rdParty/composer/composer/installed.php +++ b/lam/lib/3rdParty/composer/composer/installed.php @@ -1,8 +1,8 @@ array( 'name' => 'ldap-account-manager/ldap-account-manager', - 'pretty_version' => '9.1', - 'version' => '9.1.0.0', + 'pretty_version' => '9.2', + 'version' => '9.2.0.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../../../', @@ -10,6 +10,24 @@ 'dev' => true, ), 'versions' => array( + 'aws/aws-crt-php' => array( + 'pretty_version' => 'v1.2.7', + 'version' => '1.2.7.0', + 'reference' => 'd71d9906c7bb63a28295447ba12e74723bd3730e', + 'type' => 'library', + 'install_path' => __DIR__ . '/../aws/aws-crt-php', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'aws/aws-sdk-php' => array( + 'pretty_version' => '3.346.2', + 'version' => '3.346.2.0', + 'reference' => 'd1403b5a39af7ab7af4fc538deb33013c19c8d33', + 'type' => 'library', + 'install_path' => __DIR__ . '/../aws/aws-sdk-php', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'brick/math' => array( 'pretty_version' => '0.12.3', 'version' => '0.12.3.0', @@ -82,6 +100,24 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'guzzlehttp/guzzle' => array( + 'pretty_version' => '7.9.3', + 'version' => '7.9.3.0', + 'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77', + 'type' => 'library', + 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'guzzlehttp/promises' => array( + 'pretty_version' => '2.2.0', + 'version' => '2.2.0.0', + 'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../guzzlehttp/promises', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'guzzlehttp/psr7' => array( 'pretty_version' => '2.7.1', 'version' => '2.7.1.0', @@ -137,8 +173,8 @@ 'dev_requirement' => false, ), 'ldap-account-manager/ldap-account-manager' => array( - 'pretty_version' => '9.1', - 'version' => '9.1.0.0', + 'pretty_version' => '9.2', + 'version' => '9.2.0.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../../../', @@ -154,6 +190,15 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'mtdowling/jmespath.php' => array( + 'pretty_version' => '2.8.0', + 'version' => '2.8.0.0', + 'reference' => 'a2a865e05d5f420b50cc2f85bb78d565db12a6bc', + 'type' => 'library', + 'install_path' => __DIR__ . '/../mtdowling/jmespath.php', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'nesbot/carbon' => array( 'pretty_version' => '3.9.1', 'version' => '3.9.1.0', @@ -299,9 +344,9 @@ 'psr/http-factory-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '^1.0', - 1 => '*', - 2 => '1.0', + 0 => '1.0', + 1 => '^1.0', + 2 => '*', ), ), 'psr/http-message' => array( @@ -316,8 +361,8 @@ 'psr/http-message-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '*', - 1 => '1.0', + 0 => '1.0', + 1 => '*', ), ), 'psr/http-server-handler' => array( @@ -350,8 +395,8 @@ 'psr/log-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '1.0|2.0|3.0', - 1 => '3.0.0', + 0 => '3.0.0', + 1 => '1.0|2.0|3.0', ), ), 'psr/simple-cache' => array( diff --git a/lam/lib/3rdParty/composer/guzzlehttp/guzzle/CHANGELOG.md b/lam/lib/3rdParty/composer/guzzlehttp/guzzle/CHANGELOG.md new file mode 100644 index 000000000..7600ef497 --- /dev/null +++ b/lam/lib/3rdParty/composer/guzzlehttp/guzzle/CHANGELOG.md @@ -0,0 +1,1672 @@ +# Change Log + +Please refer to [UPGRADING](UPGRADING.md) guide for upgrading to a major version. + + +## 7.9.3 - 2025-03-27 + +### Changed + +- Remove explicit content-length header for GET requests +- Improve compatibility with bad servers for boolean cookie values + + +## 7.9.2 - 2024-07-24 + +### Fixed + +- Adjusted handler selection to use cURL if its version is 7.21.2 or higher, rather than 7.34.0 + + +## 7.9.1 - 2024-07-19 + +### Fixed + +- Fix TLS 1.3 check for HTTP/2 requests + + +## 7.9.0 - 2024-07-18 + +### Changed + +- Improve protocol version checks to provide feedback around unsupported protocols +- Only select the cURL handler by default if 7.34.0 or higher is linked +- Improved `CurlMultiHandler` to avoid busy wait if possible +- Dropped support for EOL `guzzlehttp/psr7` v1 +- Improved URI user info redaction in errors + +## 7.8.2 - 2024-07-18 + +### Added + +- Support for PHP 8.4 + + +## 7.8.1 - 2023-12-03 + +### Changed + +- Updated links in docs to their canonical versions +- Replaced `call_user_func*` with native calls + + +## 7.8.0 - 2023-08-27 + +### Added + +- Support for PHP 8.3 +- Added automatic closing of handles on `CurlFactory` object destruction + + +## 7.7.1 - 2023-08-27 + +### Changed + +- Remove the need for `AllowDynamicProperties` in `CurlMultiHandler` + + +## 7.7.0 - 2023-05-21 + +### Added + +- Support `guzzlehttp/promises` v2 + + +## 7.6.1 - 2023-05-15 + +### Fixed + +- Fix `SetCookie::fromString` MaxAge deprecation warning and skip invalid MaxAge values + + +## 7.6.0 - 2023-05-14 + +### Added + +- Support for setting the minimum TLS version in a unified way +- Apply on request the version set in options parameters + + +## 7.5.2 - 2023-05-14 + +### Fixed + +- Fixed set cookie constructor validation +- Fixed handling of files with `'0'` body + +### Changed + +- Corrected docs and default connect timeout value to 300 seconds + + +## 7.5.1 - 2023-04-17 + +### Fixed + +- Fixed `NO_PROXY` settings so that setting the `proxy` option to `no` overrides the env variable + +### Changed + +- Adjusted `guzzlehttp/psr7` version constraint to `^1.9.1 || ^2.4.5` + + +## 7.5.0 - 2022-08-28 + +### Added + +- Support PHP 8.2 +- Add request to delay closure params + + +## 7.4.5 - 2022-06-20 + +### Fixed + +* Fix change in port should be considered a change in origin +* Fix `CURLOPT_HTTPAUTH` option not cleared on change of origin + + +## 7.4.4 - 2022-06-09 + +### Fixed + +* Fix failure to strip Authorization header on HTTP downgrade +* Fix failure to strip the Cookie header on change in host or HTTP downgrade + + +## 7.4.3 - 2022-05-25 + +### Fixed + +* Fix cross-domain cookie leakage + + +## 7.4.2 - 2022-03-20 + +### Fixed + +- Remove curl auth on cross-domain redirects to align with the Authorization HTTP header +- Reject non-HTTP schemes in StreamHandler +- Set a default ssl.peer_name context in StreamHandler to allow `force_ip_resolve` + + +## 7.4.1 - 2021-12-06 + +### Changed + +- Replaced implicit URI to string coercion [#2946](https://github.com/guzzle/guzzle/pull/2946) +- Allow `symfony/deprecation-contracts` version 3 [#2961](https://github.com/guzzle/guzzle/pull/2961) + +### Fixed + +- Only close curl handle if it's done [#2950](https://github.com/guzzle/guzzle/pull/2950) + + +## 7.4.0 - 2021-10-18 + +### Added + +- Support PHP 8.1 [#2929](https://github.com/guzzle/guzzle/pull/2929), [#2939](https://github.com/guzzle/guzzle/pull/2939) +- Support `psr/log` version 2 and 3 [#2943](https://github.com/guzzle/guzzle/pull/2943) + +### Fixed + +- Make sure we always call `restore_error_handler()` [#2915](https://github.com/guzzle/guzzle/pull/2915) +- Fix progress parameter type compatibility between the cURL and stream handlers [#2936](https://github.com/guzzle/guzzle/pull/2936) +- Throw `InvalidArgumentException` when an incorrect `headers` array is provided [#2916](https://github.com/guzzle/guzzle/pull/2916), [#2942](https://github.com/guzzle/guzzle/pull/2942) + +### Changed + +- Be more strict with types [#2914](https://github.com/guzzle/guzzle/pull/2914), [#2917](https://github.com/guzzle/guzzle/pull/2917), [#2919](https://github.com/guzzle/guzzle/pull/2919), [#2945](https://github.com/guzzle/guzzle/pull/2945) + + +## 7.3.0 - 2021-03-23 + +### Added + +- Support for DER and P12 certificates [#2413](https://github.com/guzzle/guzzle/pull/2413) +- Support the cURL (http://) scheme for StreamHandler proxies [#2850](https://github.com/guzzle/guzzle/pull/2850) +- Support for `guzzlehttp/psr7:^2.0` [#2878](https://github.com/guzzle/guzzle/pull/2878) + +### Fixed + +- Handle exceptions on invalid header consistently between PHP versions and handlers [#2872](https://github.com/guzzle/guzzle/pull/2872) + + +## 7.2.0 - 2020-10-10 + +### Added + +- Support for PHP 8 [#2712](https://github.com/guzzle/guzzle/pull/2712), [#2715](https://github.com/guzzle/guzzle/pull/2715), [#2789](https://github.com/guzzle/guzzle/pull/2789) +- Support passing a body summarizer to the http errors middleware [#2795](https://github.com/guzzle/guzzle/pull/2795) + +### Fixed + +- Handle exceptions during response creation [#2591](https://github.com/guzzle/guzzle/pull/2591) +- Fix CURLOPT_ENCODING not to be overwritten [#2595](https://github.com/guzzle/guzzle/pull/2595) +- Make sure the Request always has a body object [#2804](https://github.com/guzzle/guzzle/pull/2804) + +### Changed + +- The `TooManyRedirectsException` has a response [#2660](https://github.com/guzzle/guzzle/pull/2660) +- Avoid "functions" from dependencies [#2712](https://github.com/guzzle/guzzle/pull/2712) + +### Deprecated + +- Using environment variable GUZZLE_CURL_SELECT_TIMEOUT [#2786](https://github.com/guzzle/guzzle/pull/2786) + + +## 7.1.1 - 2020-09-30 + +### Fixed + +- Incorrect EOF detection for response body streams on Windows. + +### Changed + +- We dont connect curl `sink` on HEAD requests. +- Removed some PHP 5 workarounds + + +## 7.1.0 - 2020-09-22 + +### Added + +- `GuzzleHttp\MessageFormatterInterface` + +### Fixed + +- Fixed issue that caused cookies with no value not to be stored. +- On redirects, we allow all safe methods like GET, HEAD and OPTIONS. +- Fixed logging on empty responses. +- Make sure MessageFormatter::format returns string + +### Deprecated + +- All functions in `GuzzleHttp` has been deprecated. Use static methods on `Utils` instead. +- `ClientInterface::getConfig()` +- `Client::getConfig()` +- `Client::__call()` +- `Utils::defaultCaBundle()` +- `CurlFactory::LOW_CURL_VERSION_NUMBER` + + +## 7.0.1 - 2020-06-27 + +* Fix multiply defined functions fatal error [#2699](https://github.com/guzzle/guzzle/pull/2699) + + +## 7.0.0 - 2020-06-27 + +No changes since 7.0.0-rc1. + + +## 7.0.0-rc1 - 2020-06-15 + +### Changed + +* Use error level for logging errors in Middleware [#2629](https://github.com/guzzle/guzzle/pull/2629) +* Disabled IDN support by default and require ext-intl to use it [#2675](https://github.com/guzzle/guzzle/pull/2675) + + +## 7.0.0-beta2 - 2020-05-25 + +### Added + +* Using `Utils` class instead of functions in the `GuzzleHttp` namespace. [#2546](https://github.com/guzzle/guzzle/pull/2546) +* `ClientInterface::MAJOR_VERSION` [#2583](https://github.com/guzzle/guzzle/pull/2583) + +### Changed + +* Avoid the `getenv` function when unsafe [#2531](https://github.com/guzzle/guzzle/pull/2531) +* Added real client methods [#2529](https://github.com/guzzle/guzzle/pull/2529) +* Avoid functions due to global install conflicts [#2546](https://github.com/guzzle/guzzle/pull/2546) +* Use Symfony intl-idn polyfill [#2550](https://github.com/guzzle/guzzle/pull/2550) +* Adding methods for HTTP verbs like `Client::get()`, `Client::head()`, `Client::patch()` etc [#2529](https://github.com/guzzle/guzzle/pull/2529) +* `ConnectException` extends `TransferException` [#2541](https://github.com/guzzle/guzzle/pull/2541) +* Updated the default User Agent to "GuzzleHttp/7" [#2654](https://github.com/guzzle/guzzle/pull/2654) + +### Fixed + +* Various intl icu issues [#2626](https://github.com/guzzle/guzzle/pull/2626) + +### Removed + +* Pool option `pool_size` [#2528](https://github.com/guzzle/guzzle/pull/2528) + + +## 7.0.0-beta1 - 2019-12-30 + +The diff might look very big but 95% of Guzzle users will be able to upgrade without modification. +Please see [the upgrade document](UPGRADING.md) that describes all BC breaking changes. + +### Added + +* Implement PSR-18 and dropped PHP 5 support [#2421](https://github.com/guzzle/guzzle/pull/2421) [#2474](https://github.com/guzzle/guzzle/pull/2474) +* PHP 7 types [#2442](https://github.com/guzzle/guzzle/pull/2442) [#2449](https://github.com/guzzle/guzzle/pull/2449) [#2466](https://github.com/guzzle/guzzle/pull/2466) [#2497](https://github.com/guzzle/guzzle/pull/2497) [#2499](https://github.com/guzzle/guzzle/pull/2499) +* IDN support for redirects [2424](https://github.com/guzzle/guzzle/pull/2424) + +### Changed + +* Dont allow passing null as third argument to `BadResponseException::__construct()` [#2427](https://github.com/guzzle/guzzle/pull/2427) +* Use SAPI constant instead of method call [#2450](https://github.com/guzzle/guzzle/pull/2450) +* Use native function invocation [#2444](https://github.com/guzzle/guzzle/pull/2444) +* Better defaults for PHP installations with old ICU lib [2454](https://github.com/guzzle/guzzle/pull/2454) +* Added visibility to all constants [#2462](https://github.com/guzzle/guzzle/pull/2462) +* Dont allow passing `null` as URI to `Client::request()` and `Client::requestAsync()` [#2461](https://github.com/guzzle/guzzle/pull/2461) +* Widen the exception argument to throwable [#2495](https://github.com/guzzle/guzzle/pull/2495) + +### Fixed + +* Logging when Promise rejected with a string [#2311](https://github.com/guzzle/guzzle/pull/2311) + +### Removed + +* Class `SeekException` [#2162](https://github.com/guzzle/guzzle/pull/2162) +* `RequestException::getResponseBodySummary()` [#2425](https://github.com/guzzle/guzzle/pull/2425) +* `CookieJar::getCookieValue()` [#2433](https://github.com/guzzle/guzzle/pull/2433) +* `uri_template()` and `UriTemplate` [#2440](https://github.com/guzzle/guzzle/pull/2440) +* Request options `save_to` and `exceptions` [#2464](https://github.com/guzzle/guzzle/pull/2464) + + +## 6.5.2 - 2019-12-23 + +* idn_to_ascii() fix for old PHP versions [#2489](https://github.com/guzzle/guzzle/pull/2489) + + +## 6.5.1 - 2019-12-21 + +* Better defaults for PHP installations with old ICU lib [#2454](https://github.com/guzzle/guzzle/pull/2454) +* IDN support for redirects [#2424](https://github.com/guzzle/guzzle/pull/2424) + + +## 6.5.0 - 2019-12-07 + +* Improvement: Added support for reset internal queue in MockHandler. [#2143](https://github.com/guzzle/guzzle/pull/2143) +* Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287) +* Fix: Gracefully handle passing `null` to the `header` option. [#2132](https://github.com/guzzle/guzzle/pull/2132) +* Fix: `RetryMiddleware` did not do exponential delay between retires due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132) +* Fix: Prevent undefined offset when using array for ssl_key options. [#2348](https://github.com/guzzle/guzzle/pull/2348) +* Deprecated `ClientInterface::VERSION` + + +## 6.4.1 - 2019-10-23 + +* No `guzzle.phar` was created in 6.4.0 due expired API token. This release will fix that +* Added `parent::__construct()` to `FileCookieJar` and `SessionCookieJar` + + +## 6.4.0 - 2019-10-23 + +* Improvement: Improved error messages when using curl < 7.21.2 [#2108](https://github.com/guzzle/guzzle/pull/2108) +* Fix: Test if response is readable before returning a summary in `RequestException::getResponseBodySummary()` [#2081](https://github.com/guzzle/guzzle/pull/2081) +* Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable [#2161](https://github.com/guzzle/guzzle/pull/2161) +* Improvement: Added `GuzzleHttp\Exception\InvalidArgumentException` [#2163](https://github.com/guzzle/guzzle/pull/2163) +* Improvement: Added `GuzzleHttp\_current_time()` to use `hrtime()` if that function exists. [#2242](https://github.com/guzzle/guzzle/pull/2242) +* Improvement: Added curl's `appconnect_time` in `TransferStats` [#2284](https://github.com/guzzle/guzzle/pull/2284) +* Improvement: Make GuzzleException extend Throwable wherever it's available [#2273](https://github.com/guzzle/guzzle/pull/2273) +* Fix: Prevent concurrent writes to file when saving `CookieJar` [#2335](https://github.com/guzzle/guzzle/pull/2335) +* Improvement: Update `MockHandler` so we can test transfer time [#2362](https://github.com/guzzle/guzzle/pull/2362) + + +## 6.3.3 - 2018-04-22 + +* Fix: Default headers when decode_content is specified + + +## 6.3.2 - 2018-03-26 + +* Fix: Release process + + +## 6.3.1 - 2018-03-26 + +* Bug fix: Parsing 0 epoch expiry times in cookies [#2014](https://github.com/guzzle/guzzle/pull/2014) +* Improvement: Better ConnectException detection [#2012](https://github.com/guzzle/guzzle/pull/2012) +* Bug fix: Malformed domain that contains a "/" [#1999](https://github.com/guzzle/guzzle/pull/1999) +* Bug fix: Undefined offset when a cookie has no first key-value pair [#1998](https://github.com/guzzle/guzzle/pull/1998) +* Improvement: Support PHPUnit 6 [#1953](https://github.com/guzzle/guzzle/pull/1953) +* Bug fix: Support empty headers [#1915](https://github.com/guzzle/guzzle/pull/1915) +* Bug fix: Ignore case during header modifications [#1916](https://github.com/guzzle/guzzle/pull/1916) + ++ Minor code cleanups, documentation fixes and clarifications. + + +## 6.3.0 - 2017-06-22 + +* Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659) +* Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621) +* Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580) +* Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609) +* Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641) +* Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611) +* Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811) +* Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642) +* Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569) +* Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711) +* Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745) +* Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721) +* Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318) +* Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684) +* Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827) + ++ Minor code cleanups, documentation fixes and clarifications. + + +## 6.2.3 - 2017-02-28 + +* Fix deprecations with guzzle/psr7 version 1.4 + + +## 6.2.2 - 2016-10-08 + +* Allow to pass nullable Response to delay callable +* Only add scheme when host is present +* Fix drain case where content-length is the literal string zero +* Obfuscate in-URL credentials in exceptions + + +## 6.2.1 - 2016-07-18 + +* Address HTTP_PROXY security vulnerability, CVE-2016-5385: + https://httpoxy.org/ +* Fixing timeout bug with StreamHandler: + https://github.com/guzzle/guzzle/pull/1488 +* Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when + a server does not honor `Connection: close`. +* Ignore URI fragment when sending requests. + + +## 6.2.0 - 2016-03-21 + +* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`. + https://github.com/guzzle/guzzle/pull/1389 +* Bug fix: Fix sleep calculation when waiting for delayed requests. + https://github.com/guzzle/guzzle/pull/1324 +* Feature: More flexible history containers. + https://github.com/guzzle/guzzle/pull/1373 +* Bug fix: defer sink stream opening in StreamHandler. + https://github.com/guzzle/guzzle/pull/1377 +* Bug fix: do not attempt to escape cookie values. + https://github.com/guzzle/guzzle/pull/1406 +* Feature: report original content encoding and length on decoded responses. + https://github.com/guzzle/guzzle/pull/1409 +* Bug fix: rewind seekable request bodies before dispatching to cURL. + https://github.com/guzzle/guzzle/pull/1422 +* Bug fix: provide an empty string to `http_build_query` for HHVM workaround. + https://github.com/guzzle/guzzle/pull/1367 + + +## 6.1.1 - 2015-11-22 + +* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler + https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4 +* Feature: HandlerStack is now more generic. + https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e +* Bug fix: setting verify to false in the StreamHandler now disables peer + verification. https://github.com/guzzle/guzzle/issues/1256 +* Feature: Middleware now uses an exception factory, including more error + context. https://github.com/guzzle/guzzle/pull/1282 +* Feature: better support for disabled functions. + https://github.com/guzzle/guzzle/pull/1287 +* Bug fix: fixed regression where MockHandler was not using `sink`. + https://github.com/guzzle/guzzle/pull/1292 + + +## 6.1.0 - 2015-09-08 + +* Feature: Added the `on_stats` request option to provide access to transfer + statistics for requests. https://github.com/guzzle/guzzle/pull/1202 +* Feature: Added the ability to persist session cookies in CookieJars. + https://github.com/guzzle/guzzle/pull/1195 +* Feature: Some compatibility updates for Google APP Engine + https://github.com/guzzle/guzzle/pull/1216 +* Feature: Added support for NO_PROXY to prevent the use of a proxy based on + a simple set of rules. https://github.com/guzzle/guzzle/pull/1197 +* Feature: Cookies can now contain square brackets. + https://github.com/guzzle/guzzle/pull/1237 +* Bug fix: Now correctly parsing `=` inside of quotes in Cookies. + https://github.com/guzzle/guzzle/pull/1232 +* Bug fix: Cusotm cURL options now correctly override curl options of the + same name. https://github.com/guzzle/guzzle/pull/1221 +* Bug fix: Content-Type header is now added when using an explicitly provided + multipart body. https://github.com/guzzle/guzzle/pull/1218 +* Bug fix: Now ignoring Set-Cookie headers that have no name. +* Bug fix: Reason phrase is no longer cast to an int in some cases in the + cURL handler. https://github.com/guzzle/guzzle/pull/1187 +* Bug fix: Remove the Authorization header when redirecting if the Host + header changes. https://github.com/guzzle/guzzle/pull/1207 +* Bug fix: Cookie path matching fixes + https://github.com/guzzle/guzzle/issues/1129 +* Bug fix: Fixing the cURL `body_as_string` setting + https://github.com/guzzle/guzzle/pull/1201 +* Bug fix: quotes are no longer stripped when parsing cookies. + https://github.com/guzzle/guzzle/issues/1172 +* Bug fix: `form_params` and `query` now always uses the `&` separator. + https://github.com/guzzle/guzzle/pull/1163 +* Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set. + https://github.com/guzzle/guzzle/pull/1189 + + +## 6.0.2 - 2015-07-04 + +* Fixed a memory leak in the curl handlers in which references to callbacks + were not being removed by `curl_reset`. +* Cookies are now extracted properly before redirects. +* Cookies now allow more character ranges. +* Decoded Content-Encoding responses are now modified to correctly reflect + their state if the encoding was automatically removed by a handler. This + means that the `Content-Encoding` header may be removed an the + `Content-Length` modified to reflect the message size after removing the + encoding. +* Added a more explicit error message when trying to use `form_params` and + `multipart` in the same request. +* Several fixes for HHVM support. +* Functions are now conditionally required using an additional level of + indirection to help with global Composer installations. + + +## 6.0.1 - 2015-05-27 + +* Fixed a bug with serializing the `query` request option where the `&` + separator was missing. +* Added a better error message for when `body` is provided as an array. Please + use `form_params` or `multipart` instead. +* Various doc fixes. + + +## 6.0.0 - 2015-05-26 + +* See the UPGRADING.md document for more information. +* Added `multipart` and `form_params` request options. +* Added `synchronous` request option. +* Added the `on_headers` request option. +* Fixed `expect` handling. +* No longer adding default middlewares in the client ctor. These need to be + present on the provided handler in order to work. +* Requests are no longer initiated when sending async requests with the + CurlMultiHandler. This prevents unexpected recursion from requests completing + while ticking the cURL loop. +* Removed the semantics of setting `default` to `true`. This is no longer + required now that the cURL loop is not ticked for async requests. +* Added request and response logging middleware. +* No longer allowing self signed certificates when using the StreamHandler. +* Ensuring that `sink` is valid if saving to a file. +* Request exceptions now include a "handler context" which provides handler + specific contextual information. +* Added `GuzzleHttp\RequestOptions` to allow request options to be applied + using constants. +* `$maxHandles` has been removed from CurlMultiHandler. +* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package. + + +## 5.3.0 - 2015-05-19 + +* Mock now supports `save_to` +* Marked `AbstractRequestEvent::getTransaction()` as public. +* Fixed a bug in which multiple headers using different casing would overwrite + previous headers in the associative array. +* Added `Utils::getDefaultHandler()` +* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated. +* URL scheme is now always lowercased. + + +## 6.0.0-beta.1 + +* Requires PHP >= 5.5 +* Updated to use PSR-7 + * Requires immutable messages, which basically means an event based system + owned by a request instance is no longer possible. + * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7). + * Removed the dependency on `guzzlehttp/streams`. These stream abstractions + are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7` + namespace. +* Added middleware and handler system + * Replaced the Guzzle event and subscriber system with a middleware system. + * No longer depends on RingPHP, but rather places the HTTP handlers directly + in Guzzle, operating on PSR-7 messages. + * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which + means the `guzzlehttp/retry-subscriber` is now obsolete. + * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`. +* Asynchronous responses + * No longer supports the `future` request option to send an async request. + Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`, + `getAsync`, etc.). + * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid + recursion required by chaining and forwarding react promises. See + https://github.com/guzzle/promises + * Added `requestAsync` and `sendAsync` to send request asynchronously. + * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests + asynchronously. +* Request options + * POST and form updates + * Added the `form_fields` and `form_files` request options. + * Removed the `GuzzleHttp\Post` namespace. + * The `body` request option no longer accepts an array for POST requests. + * The `exceptions` request option has been deprecated in favor of the + `http_errors` request options. + * The `save_to` request option has been deprecated in favor of `sink` request + option. +* Clients no longer accept an array of URI template string and variables for + URI variables. You will need to expand URI templates before passing them + into a client constructor or request method. +* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are + now magic methods that will send synchronous requests. +* Replaced `Utils.php` with plain functions in `functions.php`. +* Removed `GuzzleHttp\Collection`. +* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as + an array. +* Removed `GuzzleHttp\Query`. Query string handling is now handled using an + associative array passed into the `query` request option. The query string + is serialized using PHP's `http_build_query`. If you need more control, you + can pass the query string in as a string. +* `GuzzleHttp\QueryParser` has been replaced with the + `GuzzleHttp\Psr7\parse_query`. + + +## 5.2.0 - 2015-01-27 + +* Added `AppliesHeadersInterface` to make applying headers to a request based + on the body more generic and not specific to `PostBodyInterface`. +* Reduced the number of stack frames needed to send requests. +* Nested futures are now resolved in the client rather than the RequestFsm +* Finishing state transitions is now handled in the RequestFsm rather than the + RingBridge. +* Added a guard in the Pool class to not use recursion for request retries. + + +## 5.1.0 - 2014-12-19 + +* Pool class no longer uses recursion when a request is intercepted. +* The size of a Pool can now be dynamically adjusted using a callback. + See https://github.com/guzzle/guzzle/pull/943. +* Setting a request option to `null` when creating a request with a client will + ensure that the option is not set. This allows you to overwrite default + request options on a per-request basis. + See https://github.com/guzzle/guzzle/pull/937. +* Added the ability to limit which protocols are allowed for redirects by + specifying a `protocols` array in the `allow_redirects` request option. +* Nested futures due to retries are now resolved when waiting for synchronous + responses. See https://github.com/guzzle/guzzle/pull/947. +* `"0"` is now an allowed URI path. See + https://github.com/guzzle/guzzle/pull/935. +* `Query` no longer typehints on the `$query` argument in the constructor, + allowing for strings and arrays. +* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle + specific exceptions if necessary. + + +## 5.0.3 - 2014-11-03 + +This change updates query strings so that they are treated as un-encoded values +by default where the value represents an un-encoded value to send over the +wire. A Query object then encodes the value before sending over the wire. This +means that even value query string values (e.g., ":") are url encoded. This +makes the Query class match PHP's http_build_query function. However, if you +want to send requests over the wire using valid query string characters that do +not need to be encoded, then you can provide a string to Url::setQuery() and +pass true as the second argument to specify that the query string is a raw +string that should not be parsed or encoded (unless a call to getQuery() is +subsequently made, forcing the query-string to be converted into a Query +object). + + +## 5.0.2 - 2014-10-30 + +* Added a trailing `\r\n` to multipart/form-data payloads. See + https://github.com/guzzle/guzzle/pull/871 +* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs. +* Status codes are now returned as integers. See + https://github.com/guzzle/guzzle/issues/881 +* No longer overwriting an existing `application/x-www-form-urlencoded` header + when sending POST requests, allowing for customized headers. See + https://github.com/guzzle/guzzle/issues/877 +* Improved path URL serialization. + + * No longer double percent-encoding characters in the path or query string if + they are already encoded. + * Now properly encoding the supplied path to a URL object, instead of only + encoding ' ' and '?'. + * Note: This has been changed in 5.0.3 to now encode query string values by + default unless the `rawString` argument is provided when setting the query + string on a URL: Now allowing many more characters to be present in the + query string without being percent encoded. See + https://datatracker.ietf.org/doc/html/rfc3986#appendix-A + + +## 5.0.1 - 2014-10-16 + +Bugfix release. + +* Fixed an issue where connection errors still returned response object in + error and end events event though the response is unusable. This has been + corrected so that a response is not returned in the `getResponse` method of + these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867 +* Fixed an issue where transfer statistics were not being populated in the + RingBridge. https://github.com/guzzle/guzzle/issues/866 + + +## 5.0.0 - 2014-10-12 + +Adding support for non-blocking responses and some minor API cleanup. + +### New Features + +* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`. +* Added a public API for creating a default HTTP adapter. +* Updated the redirect plugin to be non-blocking so that redirects are sent + concurrently. Other plugins like this can now be updated to be non-blocking. +* Added a "progress" event so that you can get upload and download progress + events. +* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers + requests concurrently using a capped pool size as efficiently as possible. +* Added `hasListeners()` to EmitterInterface. +* Removed `GuzzleHttp\ClientInterface::sendAll` and marked + `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the + recommended way). + +### Breaking changes + +The breaking changes in this release are relatively minor. The biggest thing to +look out for is that request and response objects no longer implement fluent +interfaces. + +* Removed the fluent interfaces (i.e., `return $this`) from requests, + responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`, + `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and + `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of + why I did this: https://ocramius.github.io/blog/fluent-interfaces-are-evil/. + This also makes the Guzzle message interfaces compatible with the current + PSR-7 message proposal. +* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except + for the HTTP request functions from function.php, these functions are now + implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode` + moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to + `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to + `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be + `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php + caused problems for many users: they aren't PSR-4 compliant, require an + explicit include, and needed an if-guard to ensure that the functions are not + declared multiple times. +* Rewrote adapter layer. + * Removing all classes from `GuzzleHttp\Adapter`, these are now + implemented as callables that are stored in `GuzzleHttp\Ring\Client`. + * Removed the concept of "parallel adapters". Sending requests serially or + concurrently is now handled using a single adapter. + * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The + Transaction object now exposes the request, response, and client as public + properties. The getters and setters have been removed. +* Removed the "headers" event. This event was only useful for changing the + body a response once the headers of the response were known. You can implement + a similar behavior in a number of ways. One example might be to use a + FnStream that has access to the transaction being sent. For example, when the + first byte is written, you could check if the response headers match your + expectations, and if so, change the actual stream body that is being + written to. +* Removed the `asArray` parameter from + `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header + value as an array, then use the newly added `getHeaderAsArray()` method of + `MessageInterface`. This change makes the Guzzle interfaces compatible with + the PSR-7 interfaces. +* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add + custom request options using double-dispatch (this was an implementation + detail). Instead, you should now provide an associative array to the + constructor which is a mapping of the request option name mapping to a + function that applies the option value to a request. +* Removed the concept of "throwImmediately" from exceptions and error events. + This control mechanism was used to stop a transfer of concurrent requests + from completing. This can now be handled by throwing the exception or by + cancelling a pool of requests or each outstanding future request individually. +* Updated to "GuzzleHttp\Streams" 3.0. + * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a + `maxLen` parameter. This update makes the Guzzle streams project + compatible with the current PSR-7 proposal. + * `GuzzleHttp\Stream\Stream::__construct`, + `GuzzleHttp\Stream\Stream::factory`, and + `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second + argument. They now accept an associative array of options, including the + "size" key and "metadata" key which can be used to provide custom metadata. + + +## 4.2.2 - 2014-09-08 + +* Fixed a memory leak in the CurlAdapter when reusing cURL handles. +* No longer using `request_fulluri` in stream adapter proxies. +* Relative redirects are now based on the last response, not the first response. + +## 4.2.1 - 2014-08-19 + +* Ensuring that the StreamAdapter does not always add a Content-Type header +* Adding automated github releases with a phar and zip + +## 4.2.0 - 2014-08-17 + +* Now merging in default options using a case-insensitive comparison. + Closes https://github.com/guzzle/guzzle/issues/767 +* Added the ability to automatically decode `Content-Encoding` response bodies + using the `decode_content` request option. This is set to `true` by default + to decode the response body if it comes over the wire with a + `Content-Encoding`. Set this value to `false` to disable decoding the + response content, and pass a string to provide a request `Accept-Encoding` + header and turn on automatic response decoding. This feature now allows you + to pass an `Accept-Encoding` header in the headers of a request but still + disable automatic response decoding. + Closes https://github.com/guzzle/guzzle/issues/764 +* Added the ability to throw an exception immediately when transferring + requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760 +* Updating guzzlehttp/streams dependency to ~2.1 +* No longer utilizing the now deprecated namespaced methods from the stream + package. + +## 4.1.8 - 2014-08-14 + +* Fixed an issue in the CurlFactory that caused setting the `stream=false` + request option to throw an exception. + See: https://github.com/guzzle/guzzle/issues/769 +* TransactionIterator now calls rewind on the inner iterator. + See: https://github.com/guzzle/guzzle/pull/765 +* You can now set the `Content-Type` header to `multipart/form-data` + when creating POST requests to force multipart bodies. + See https://github.com/guzzle/guzzle/issues/768 + +## 4.1.7 - 2014-08-07 + +* Fixed an error in the HistoryPlugin that caused the same request and response + to be logged multiple times when an HTTP protocol error occurs. +* Ensuring that cURL does not add a default Content-Type when no Content-Type + has been supplied by the user. This prevents the adapter layer from modifying + the request that is sent over the wire after any listeners may have already + put the request in a desired state (e.g., signed the request). +* Throwing an exception when you attempt to send requests that have the + "stream" set to true in parallel using the MultiAdapter. +* Only calling curl_multi_select when there are active cURL handles. This was + previously changed and caused performance problems on some systems due to PHP + always selecting until the maximum select timeout. +* Fixed a bug where multipart/form-data POST fields were not correctly + aggregated (e.g., values with "&"). + +## 4.1.6 - 2014-08-03 + +* Added helper methods to make it easier to represent messages as strings, + including getting the start line and getting headers as a string. + +## 4.1.5 - 2014-08-02 + +* Automatically retrying cURL "Connection died, retrying a fresh connect" + errors when possible. +* cURL implementation cleanup +* Allowing multiple event subscriber listeners to be registered per event by + passing an array of arrays of listener configuration. + +## 4.1.4 - 2014-07-22 + +* Fixed a bug that caused multi-part POST requests with more than one field to + serialize incorrectly. +* Paths can now be set to "0" +* `ResponseInterface::xml` now accepts a `libxml_options` option and added a + missing default argument that was required when parsing XML response bodies. +* A `save_to` stream is now created lazily, which means that files are not + created on disk unless a request succeeds. + +## 4.1.3 - 2014-07-15 + +* Various fixes to multipart/form-data POST uploads +* Wrapping function.php in an if-statement to ensure Guzzle can be used + globally and in a Composer install +* Fixed an issue with generating and merging in events to an event array +* POST headers are only applied before sending a request to allow you to change + the query aggregator used before uploading +* Added much more robust query string parsing +* Fixed various parsing and normalization issues with URLs +* Fixing an issue where multi-valued headers were not being utilized correctly + in the StreamAdapter + +## 4.1.2 - 2014-06-18 + +* Added support for sending payloads with GET requests + +## 4.1.1 - 2014-06-08 + +* Fixed an issue related to using custom message factory options in subclasses +* Fixed an issue with nested form fields in a multi-part POST +* Fixed an issue with using the `json` request option for POST requests +* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar` + +## 4.1.0 - 2014-05-27 + +* Added a `json` request option to easily serialize JSON payloads. +* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON. +* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`. +* Added the ability to provide an emitter to a client in the client constructor. +* Added the ability to persist a cookie session using $_SESSION. +* Added a trait that can be used to add event listeners to an iterator. +* Removed request method constants from RequestInterface. +* Fixed warning when invalid request start-lines are received. +* Updated MessageFactory to work with custom request option methods. +* Updated cacert bundle to latest build. + +4.0.2 (2014-04-16) +------------------ + +* Proxy requests using the StreamAdapter now properly use request_fulluri (#632) +* Added the ability to set scalars as POST fields (#628) + +## 4.0.1 - 2014-04-04 + +* The HTTP status code of a response is now set as the exception code of + RequestException objects. +* 303 redirects will now correctly switch from POST to GET requests. +* The default parallel adapter of a client now correctly uses the MultiAdapter. +* HasDataTrait now initializes the internal data array as an empty array so + that the toArray() method always returns an array. + +## 4.0.0 - 2014-03-29 + +* For information on changes and upgrading, see: + https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 +* Added `GuzzleHttp\batch()` as a convenience function for sending requests in + parallel without needing to write asynchronous code. +* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`. + You can now pass a callable or an array of associative arrays where each + associative array contains the "fn", "priority", and "once" keys. + +## 4.0.0.rc-2 - 2014-03-25 + +* Removed `getConfig()` and `setConfig()` from clients to avoid confusion + around whether things like base_url, message_factory, etc. should be able to + be retrieved or modified. +* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface +* functions.php functions were renamed using snake_case to match PHP idioms +* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and + `GUZZLE_CURL_SELECT_TIMEOUT` environment variables +* Added the ability to specify custom `sendAll()` event priorities +* Added the ability to specify custom stream context options to the stream + adapter. +* Added a functions.php function for `get_path()` and `set_path()` +* CurlAdapter and MultiAdapter now use a callable to generate curl resources +* MockAdapter now properly reads a body and emits a `headers` event +* Updated Url class to check if a scheme and host are set before adding ":" + and "//". This allows empty Url (e.g., "") to be serialized as "". +* Parsing invalid XML no longer emits warnings +* Curl classes now properly throw AdapterExceptions +* Various performance optimizations +* Streams are created with the faster `Stream\create()` function +* Marked deprecation_proxy() as internal +* Test server is now a collection of static methods on a class + +## 4.0.0-rc.1 - 2014-03-15 + +* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40 + +## 3.8.1 - 2014-01-28 + +* Bug: Always using GET requests when redirecting from a 303 response +* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in + `Guzzle\Http\ClientInterface::setSslVerification()` +* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL +* Bug: The body of a request can now be set to `"0"` +* Sending PHP stream requests no longer forces `HTTP/1.0` +* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of + each sub-exception +* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than + clobbering everything). +* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators) +* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`. + For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`. +* Now properly escaping the regular expression delimiter when matching Cookie domains. +* Network access is now disabled when loading XML documents + +## 3.8.0 - 2013-12-05 + +* Added the ability to define a POST name for a file +* JSON response parsing now properly walks additionalProperties +* cURL error code 18 is now retried automatically in the BackoffPlugin +* Fixed a cURL error when URLs contain fragments +* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were + CurlExceptions +* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e) +* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS` +* Fixed a bug that was encountered when parsing empty header parameters +* UriTemplate now has a `setRegex()` method to match the docs +* The `debug` request parameter now checks if it is truthy rather than if it exists +* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin +* Added the ability to combine URLs using strict RFC 3986 compliance +* Command objects can now return the validation errors encountered by the command +* Various fixes to cache revalidation (#437 and 29797e5) +* Various fixes to the AsyncPlugin +* Cleaned up build scripts + +## 3.7.4 - 2013-10-02 + +* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430) +* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp + (see https://github.com/aws/aws-sdk-php/issues/147) +* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots +* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420) +* Updated the bundled cacert.pem (#419) +* OauthPlugin now supports adding authentication to headers or query string (#425) + +## 3.7.3 - 2013-09-08 + +* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and + `CommandTransferException`. +* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description +* Schemas are only injected into response models when explicitly configured. +* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of + an EntityBody. +* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator. +* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`. +* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody() +* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin +* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests +* Bug fix: Properly parsing headers that contain commas contained in quotes +* Bug fix: mimetype guessing based on a filename is now case-insensitive + +## 3.7.2 - 2013-08-02 + +* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander + See https://github.com/guzzle/guzzle/issues/371 +* Bug fix: Cookie domains are now matched correctly according to RFC 6265 + See https://github.com/guzzle/guzzle/issues/377 +* Bug fix: GET parameters are now used when calculating an OAuth signature +* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted +* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched +* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input. + See https://github.com/guzzle/guzzle/issues/379 +* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See + https://github.com/guzzle/guzzle/pull/380 +* cURL multi cleanup and optimizations + +## 3.7.1 - 2013-07-05 + +* Bug fix: Setting default options on a client now works +* Bug fix: Setting options on HEAD requests now works. See #352 +* Bug fix: Moving stream factory before send event to before building the stream. See #353 +* Bug fix: Cookies no longer match on IP addresses per RFC 6265 +* Bug fix: Correctly parsing header parameters that are in `<>` and quotes +* Added `cert` and `ssl_key` as request options +* `Host` header can now diverge from the host part of a URL if the header is set manually +* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter +* OAuth parameters are only added via the plugin if they aren't already set +* Exceptions are now thrown when a URL cannot be parsed +* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails +* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin + +## 3.7.0 - 2013-06-10 + +* See UPGRADING.md for more information on how to upgrade. +* Requests now support the ability to specify an array of $options when creating a request to more easily modify a + request. You can pass a 'request.options' configuration setting to a client to apply default request options to + every request created by a client (e.g. default query string variables, headers, curl options, etc.). +* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`. + See `Guzzle\Http\StaticClient::mount`. +* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests + created by a command (e.g. custom headers, query string variables, timeout settings, etc.). +* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the + headers of a response +* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key + (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`) +* ServiceBuilders now support storing and retrieving arbitrary data +* CachePlugin can now purge all resources for a given URI +* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource +* CachePlugin now uses the Vary header to determine if a resource is a cache hit +* `Guzzle\Http\Message\Response` now implements `\Serializable` +* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters +* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable +* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()` +* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size +* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message +* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older + Symfony users can still use the old version of Monolog. +* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`. + Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`. +* Several performance improvements to `Guzzle\Common\Collection` +* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`: + createRequest, head, delete, put, patch, post, options, prepareRequest +* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()` +* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface` +* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to + `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a + resource, string, or EntityBody into the $options parameter to specify the download location of the response. +* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a + default `array()` +* Added `Guzzle\Stream\StreamInterface::isRepeatable` +* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use + $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or + $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`. +* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`. +* Removed `Guzzle\Http\ClientInterface::expandTemplate()` +* Removed `Guzzle\Http\ClientInterface::setRequestFactory()` +* Removed `Guzzle\Http\ClientInterface::getCurlMulti()` +* Removed `Guzzle\Http\Message\RequestInterface::canCache` +* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect` +* Removed `Guzzle\Http\Message\RequestInterface::isRedirect` +* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods. +* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting + `Guzzle\Common\Version::$emitWarnings` to true. +* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use + `$request->getResponseBody()->isRepeatable()` instead. +* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use + `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. +* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use + `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead. +* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead. +* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead. +* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated +* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. + These will work through Guzzle 4.0 +* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params]. +* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client. +* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`. +* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. +* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8. +* Marked `Guzzle\Common\Collection::inject()` as deprecated. +* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');` +* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a + CacheStorageInterface. These two objects and interface will be removed in a future version. +* Always setting X-cache headers on cached responses +* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin +* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface + $request, Response $response);` +* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);` +* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);` +* Added `CacheStorageInterface::purge($url)` +* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin + $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache, + CanCacheStrategyInterface $canCache = null)` +* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)` + +## 3.6.0 - 2013-05-29 + +* ServiceDescription now implements ToArrayInterface +* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters +* Guzzle can now correctly parse incomplete URLs +* Mixed casing of headers are now forced to be a single consistent casing across all values for that header. +* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution +* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader(). +* Specific header implementations can be created for complex headers. When a message creates a header, it uses a + HeaderFactory which can map specific headers to specific header classes. There is now a Link header and + CacheControl header implementation. +* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate +* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti() +* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in + Guzzle\Http\Curl\RequestMediator +* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string. +* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface +* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders() +* Removed Guzzle\Parser\ParserRegister::get(). Use getParser() +* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser(). +* All response header helper functions return a string rather than mixing Header objects and strings inconsistently +* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle + directly via interfaces +* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist + but are a no-op until removed. +* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a + `Guzzle\Service\Command\ArrayCommandInterface`. +* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response + on a request while the request is still being transferred +* The ability to case-insensitively search for header values +* Guzzle\Http\Message\Header::hasExactHeader +* Guzzle\Http\Message\Header::raw. Use getAll() +* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object + instead. +* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess +* Added the ability to cast Model objects to a string to view debug information. + +## 3.5.0 - 2013-05-13 + +* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times +* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove + itself from the EventDispatcher) +* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values +* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too +* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a + non-existent key +* Bug: All __call() method arguments are now required (helps with mocking frameworks) +* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference + to help with refcount based garbage collection of resources created by sending a request +* Deprecating ZF1 cache and log adapters. These will be removed in the next major version. +* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the + HistoryPlugin for a history. +* Added a `responseBody` alias for the `response_body` location +* Refactored internals to no longer rely on Response::getRequest() +* HistoryPlugin can now be cast to a string +* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests + and responses that are sent over the wire +* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects + +## 3.4.3 - 2013-04-30 + +* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response +* Added a check to re-extract the temp cacert bundle from the phar before sending each request + +## 3.4.2 - 2013-04-29 + +* Bug fix: Stream objects now work correctly with "a" and "a+" modes +* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present +* Bug fix: AsyncPlugin no longer forces HEAD requests +* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter +* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails +* Setting a response on a request will write to the custom request body from the response body if one is specified +* LogPlugin now writes to php://output when STDERR is undefined +* Added the ability to set multiple POST files for the same key in a single call +* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default +* Added the ability to queue CurlExceptions to the MockPlugin +* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send) +* Configuration loading now allows remote files + +## 3.4.1 - 2013-04-16 + +* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti + handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost. +* Exceptions are now properly grouped when sending requests in parallel +* Redirects are now properly aggregated when a multi transaction fails +* Redirects now set the response on the original object even in the event of a failure +* Bug fix: Model names are now properly set even when using $refs +* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax +* Added support for oauth_callback in OAuth signatures +* Added support for oauth_verifier in OAuth signatures +* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection + +## 3.4.0 - 2013-04-11 + +* Bug fix: URLs are now resolved correctly based on https://datatracker.ietf.org/doc/html/rfc3986#section-5.2. #289 +* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289 +* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263 +* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264. +* Bug fix: Added `number` type to service descriptions. +* Bug fix: empty parameters are removed from an OAuth signature +* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header +* Bug fix: Fixed "array to string" error when validating a union of types in a service description +* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream +* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin. +* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs. +* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections. +* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if + the Content-Type can be determined based on the entity body or the path of the request. +* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder. +* Added support for a PSR-3 LogAdapter. +* Added a `command.after_prepare` event +* Added `oauth_callback` parameter to the OauthPlugin +* Added the ability to create a custom stream class when using a stream factory +* Added a CachingEntityBody decorator +* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized. +* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar. +* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies +* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This + means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use + POST fields or files (the latter is only used when emulating a form POST in the browser). +* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest + +## 3.3.1 - 2013-03-10 + +* Added the ability to create PHP streaming responses from HTTP requests +* Bug fix: Running any filters when parsing response headers with service descriptions +* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing +* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across + response location visitors. +* Bug fix: Removed the possibility of creating configuration files with circular dependencies +* RequestFactory::create() now uses the key of a POST file when setting the POST file name +* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set + +## 3.3.0 - 2013-03-03 + +* A large number of performance optimizations have been made +* Bug fix: Added 'wb' as a valid write mode for streams +* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned +* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()` +* BC: Removed `Guzzle\Http\Utils` class +* BC: Setting a service description on a client will no longer modify the client's command factories. +* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using + the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io' +* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to + lowercase +* Operation parameter objects are now lazy loaded internally +* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses +* Added support for instantiating responseType=class responseClass classes. Classes must implement + `Guzzle\Service\Command\ResponseClassInterface` +* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These + additional properties also support locations and can be used to parse JSON responses where the outermost part of the + JSON is an array +* Added support for nested renaming of JSON models (rename sentAs to name) +* CachePlugin + * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error + * Debug headers can now added to cached response in the CachePlugin + +## 3.2.0 - 2013-02-14 + +* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients. +* URLs with no path no longer contain a "/" by default +* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url. +* BadResponseException no longer includes the full request and response message +* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface +* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface +* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription +* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list +* xmlEncoding can now be customized for the XML declaration of a XML service description operation +* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value + aggregation and no longer uses callbacks +* The URL encoding implementation of Guzzle\Http\QueryString can now be customized +* Bug fix: Filters were not always invoked for array service description parameters +* Bug fix: Redirects now use a target response body rather than a temporary response body +* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded +* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives + +## 3.1.2 - 2013-01-27 + +* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the + response body. For example, the XmlVisitor now parses the XML response into an array in the before() method. +* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent +* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444) +* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse() +* Setting default headers on a client after setting the user-agent will not erase the user-agent setting + +## 3.1.1 - 2013-01-20 + +* Adding wildcard support to Guzzle\Common\Collection::getPath() +* Adding alias support to ServiceBuilder configs +* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface + +## 3.1.0 - 2013-01-12 + +* BC: CurlException now extends from RequestException rather than BadResponseException +* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse() +* Added getData to ServiceDescriptionInterface +* Added context array to RequestInterface::setState() +* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http +* Bug: Adding required content-type when JSON request visitor adds JSON to a command +* Bug: Fixing the serialization of a service description with custom data +* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing + an array of successful and failed responses +* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection +* Added Guzzle\Http\IoEmittingEntityBody +* Moved command filtration from validators to location visitors +* Added `extends` attributes to service description parameters +* Added getModels to ServiceDescriptionInterface + +## 3.0.7 - 2012-12-19 + +* Fixing phar detection when forcing a cacert to system if null or true +* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()` +* Cleaning up `Guzzle\Common\Collection::inject` method +* Adding a response_body location to service descriptions + +## 3.0.6 - 2012-12-09 + +* CurlMulti performance improvements +* Adding setErrorResponses() to Operation +* composer.json tweaks + +## 3.0.5 - 2012-11-18 + +* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin +* Bug: Response body can now be a string containing "0" +* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert +* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs +* Added support for XML attributes in service description responses +* DefaultRequestSerializer now supports array URI parameter values for URI template expansion +* Added better mimetype guessing to requests and post files + +## 3.0.4 - 2012-11-11 + +* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value +* Bug: Cookies can now be added that have a name, domain, or value set to "0" +* Bug: Using the system cacert bundle when using the Phar +* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures +* Enhanced cookie jar de-duplication +* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added +* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies +* Added the ability to create any sort of hash for a stream rather than just an MD5 hash + +## 3.0.3 - 2012-11-04 + +* Implementing redirects in PHP rather than cURL +* Added PECL URI template extension and using as default parser if available +* Bug: Fixed Content-Length parsing of Response factory +* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams. +* Adding ToArrayInterface throughout library +* Fixing OauthPlugin to create unique nonce values per request + +## 3.0.2 - 2012-10-25 + +* Magic methods are enabled by default on clients +* Magic methods return the result of a command +* Service clients no longer require a base_url option in the factory +* Bug: Fixed an issue with URI templates where null template variables were being expanded + +## 3.0.1 - 2012-10-22 + +* Models can now be used like regular collection objects by calling filter, map, etc. +* Models no longer require a Parameter structure or initial data in the constructor +* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator` + +## 3.0.0 - 2012-10-15 + +* Rewrote service description format to be based on Swagger + * Now based on JSON schema + * Added nested input structures and nested response models + * Support for JSON and XML input and output models + * Renamed `commands` to `operations` + * Removed dot class notation + * Removed custom types +* Broke the project into smaller top-level namespaces to be more component friendly +* Removed support for XML configs and descriptions. Use arrays or JSON files. +* Removed the Validation component and Inspector +* Moved all cookie code to Guzzle\Plugin\Cookie +* Magic methods on a Guzzle\Service\Client now return the command un-executed. +* Calling getResult() or getResponse() on a command will lazily execute the command if needed. +* Now shipping with cURL's CA certs and using it by default +* Added previousResponse() method to response objects +* No longer sending Accept and Accept-Encoding headers on every request +* Only sending an Expect header by default when a payload is greater than 1MB +* Added/moved client options: + * curl.blacklist to curl.option.blacklist + * Added ssl.certificate_authority +* Added a Guzzle\Iterator component +* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin +* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin) +* Added a more robust caching plugin +* Added setBody to response objects +* Updating LogPlugin to use a more flexible MessageFormatter +* Added a completely revamped build process +* Cleaning up Collection class and removing default values from the get method +* Fixed ZF2 cache adapters + +## 2.8.8 - 2012-10-15 + +* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did + +## 2.8.7 - 2012-09-30 + +* Bug: Fixed config file aliases for JSON includes +* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests +* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload +* Bug: Hardening request and response parsing to account for missing parts +* Bug: Fixed PEAR packaging +* Bug: Fixed Request::getInfo +* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail +* Adding the ability for the namespace Iterator factory to look in multiple directories +* Added more getters/setters/removers from service descriptions +* Added the ability to remove POST fields from OAuth signatures +* OAuth plugin now supports 2-legged OAuth + +## 2.8.6 - 2012-09-05 + +* Added the ability to modify and build service descriptions +* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command +* Added a `json` parameter location +* Now allowing dot notation for classes in the CacheAdapterFactory +* Using the union of two arrays rather than an array_merge when extending service builder services and service params +* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references + in service builder config files. +* Services defined in two different config files that include one another will by default replace the previously + defined service, but you can now create services that extend themselves and merge their settings over the previous +* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like + '_default' with a default JSON configuration file. + +## 2.8.5 - 2012-08-29 + +* Bug: Suppressed empty arrays from URI templates +* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching +* Added support for HTTP responses that do not contain a reason phrase in the start-line +* AbstractCommand commands are now invokable +* Added a way to get the data used when signing an Oauth request before a request is sent + +## 2.8.4 - 2012-08-15 + +* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin +* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable. +* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream +* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream +* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5()) +* Added additional response status codes +* Removed SSL information from the default User-Agent header +* DELETE requests can now send an entity body +* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries +* Added the ability of the MockPlugin to consume mocked request bodies +* LogPlugin now exposes request and response objects in the extras array + +## 2.8.3 - 2012-07-30 + +* Bug: Fixed a case where empty POST requests were sent as GET requests +* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body +* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new +* Added multiple inheritance to service description commands +* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()` +* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything +* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles + +## 2.8.2 - 2012-07-24 + +* Bug: Query string values set to 0 are no longer dropped from the query string +* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()` +* Bug: `+` is now treated as an encoded space when parsing query strings +* QueryString and Collection performance improvements +* Allowing dot notation for class paths in filters attribute of a service descriptions + +## 2.8.1 - 2012-07-16 + +* Loosening Event Dispatcher dependency +* POST redirects can now be customized using CURLOPT_POSTREDIR + +## 2.8.0 - 2012-07-15 + +* BC: Guzzle\Http\Query + * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl) + * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding() + * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool) + * Changed the aggregation functions of QueryString to be static methods + * Can now use fromString() with querystrings that have a leading ? +* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters +* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body +* Cookies are no longer URL decoded by default +* Bug: URI template variables set to null are no longer expanded + +## 2.7.2 - 2012-07-02 + +* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser. +* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty() +* CachePlugin now allows for a custom request parameter function to check if a request can be cached +* Bug fix: CachePlugin now only caches GET and HEAD requests by default +* Bug fix: Using header glue when transferring headers over the wire +* Allowing deeply nested arrays for composite variables in URI templates +* Batch divisors can now return iterators or arrays + +## 2.7.1 - 2012-06-26 + +* Minor patch to update version number in UA string +* Updating build process + +## 2.7.0 - 2012-06-25 + +* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes. +* BC: Removed magic setX methods from commands +* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method +* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable. +* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity) +* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace +* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin +* Added the ability to set POST fields and files in a service description +* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method +* Adding a command.before_prepare event to clients +* Added BatchClosureTransfer and BatchClosureDivisor +* BatchTransferException now includes references to the batch divisor and transfer strategies +* Fixed some tests so that they pass more reliably +* Added Guzzle\Common\Log\ArrayLogAdapter + +## 2.6.6 - 2012-06-10 + +* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin +* BC: Removing Guzzle\Service\Command\CommandSet +* Adding generic batching system (replaces the batch queue plugin and command set) +* Updating ZF cache and log adapters and now using ZF's composer repository +* Bug: Setting the name of each ApiParam when creating through an ApiCommand +* Adding result_type, result_doc, deprecated, and doc_url to service descriptions +* Bug: Changed the default cookie header casing back to 'Cookie' + +## 2.6.5 - 2012-06-03 + +* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource() +* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from +* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data +* BC: Renaming methods in the CookieJarInterface +* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations +* Making the default glue for HTTP headers ';' instead of ',' +* Adding a removeValue to Guzzle\Http\Message\Header +* Adding getCookies() to request interface. +* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber() + +## 2.6.4 - 2012-05-30 + +* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class. +* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand +* Bug: Fixing magic method command calls on clients +* Bug: Email constraint only validates strings +* Bug: Aggregate POST fields when POST files are present in curl handle +* Bug: Fixing default User-Agent header +* Bug: Only appending or prepending parameters in commands if they are specified +* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes +* Allowing the use of dot notation for class namespaces when using instance_of constraint +* Added any_match validation constraint +* Added an AsyncPlugin +* Passing request object to the calculateWait method of the ExponentialBackoffPlugin +* Allowing the result of a command object to be changed +* Parsing location and type sub values when instantiating a service description rather than over and over at runtime + +## 2.6.3 - 2012-05-23 + +* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options. +* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields. +* You can now use an array of data when creating PUT request bodies in the request factory. +* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable. +* [Http] Adding support for Content-Type in multipart POST uploads per upload +* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1]) +* Adding more POST data operations for easier manipulation of POST data. +* You can now set empty POST fields. +* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files. +* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate. +* CS updates + +## 2.6.2 - 2012-05-19 + +* [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method. + +## 2.6.1 - 2012-05-19 + +* [BC] Removing 'path' support in service descriptions. Use 'uri'. +* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache. +* [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it. +* [BC] Removing Guzzle\Common\XmlElement. +* All commands, both dynamic and concrete, have ApiCommand objects. +* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits. +* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored. +* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible. + +## 2.6.0 - 2012-05-15 + +* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder +* [BC] Executing a Command returns the result of the command rather than the command +* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed. +* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args. +* [BC] Moving ResourceIterator* to Guzzle\Service\Resource +* [BC] Completely refactored ResourceIterators to iterate over a cloned command object +* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate +* [BC] Guzzle\Guzzle is now deprecated +* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject +* Adding Guzzle\Version class to give version information about Guzzle +* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate() +* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data +* ServiceDescription and ServiceBuilder are now cacheable using similar configs +* Changing the format of XML and JSON service builder configs. Backwards compatible. +* Cleaned up Cookie parsing +* Trimming the default Guzzle User-Agent header +* Adding a setOnComplete() method to Commands that is called when a command completes +* Keeping track of requests that were mocked in the MockPlugin +* Fixed a caching bug in the CacheAdapterFactory +* Inspector objects can be injected into a Command object +* Refactoring a lot of code and tests to be case insensitive when dealing with headers +* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL +* Adding the ability to set global option overrides to service builder configs +* Adding the ability to include other service builder config files from within XML and JSON files +* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method. + +## 2.5.0 - 2012-05-08 + +* Major performance improvements +* [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated. +* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component. +* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}" +* Added the ability to passed parameters to all requests created by a client +* Added callback functionality to the ExponentialBackoffPlugin +* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies. +* Rewinding request stream bodies when retrying requests +* Exception is thrown when JSON response body cannot be decoded +* Added configurable magic method calls to clients and commands. This is off by default. +* Fixed a defect that added a hash to every parsed URL part +* Fixed duplicate none generation for OauthPlugin. +* Emitting an event each time a client is generated by a ServiceBuilder +* Using an ApiParams object instead of a Collection for parameters of an ApiCommand +* cache.* request parameters should be renamed to params.cache.* +* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle. +* Added the ability to disable type validation of service descriptions +* ServiceDescriptions and ServiceBuilders are now Serializable diff --git a/lam/lib/3rdParty/composer/guzzlehttp/guzzle/LICENSE b/lam/lib/3rdParty/composer/guzzlehttp/guzzle/LICENSE new file mode 100644 index 000000000..fd2375d88 --- /dev/null +++ b/lam/lib/3rdParty/composer/guzzlehttp/guzzle/LICENSE @@ -0,0 +1,27 @@ +The MIT License (MIT) + +Copyright (c) 2011 Michael Dowling