diff --git a/aws/aws-sdk-php/src/Api/ErrorParser/JsonParserTrait.php b/aws/aws-sdk-php/src/Api/ErrorParser/JsonParserTrait.php index da825979f..67afb1645 100644 --- a/aws/aws-sdk-php/src/Api/ErrorParser/JsonParserTrait.php +++ b/aws/aws-sdk-php/src/Api/ErrorParser/JsonParserTrait.php @@ -12,41 +12,133 @@ trait JsonParserTrait { use PayloadParserTrait; - private function genericHandler(ResponseInterface $response) + private function genericHandler(ResponseInterface $response): array { $code = (string) $response->getStatusCode(); + $error_code = null; + $error_type = null; + + // Parse error code and type for query compatible services if ($this->api && !is_null($this->api->getMetadata('awsQueryCompatible')) - && $response->getHeaderLine('x-amzn-query-error') + && $response->hasHeader('x-amzn-query-error') ) { - $queryError = $response->getHeaderLine('x-amzn-query-error'); - $parts = explode(';', $queryError); - if (isset($parts) && count($parts) == 2 && $parts[0] && $parts[1]) { - $error_code = $parts[0]; - $error_type = $parts[1]; + $awsQueryError = $this->parseAwsQueryCompatibleHeader($response); + if ($awsQueryError) { + $error_code = $awsQueryError['code']; + $error_type = $awsQueryError['type']; } } + + // Parse error code from X-Amzn-Errortype header + if (!$error_code && $response->hasHeader('X-Amzn-Errortype')) { + $error_code = $this->extractErrorCode( + $response->getHeaderLine('X-Amzn-Errortype') + ); + } + + $parsedBody = null; + $body = $response->getBody(); + if (!$body->isSeekable() || $body->getSize()) { + $parsedBody = $this->parseJson((string) $body, $response); + } + + // Parse error code from response body + if (!$error_code && $parsedBody) { + $error_code = $this->parseErrorFromBody($parsedBody); + } + if (!isset($error_type)) { $error_type = $code[0] == '4' ? 'client' : 'server'; } return [ - 'request_id' => (string) $response->getHeaderLine('x-amzn-requestid'), - 'code' => isset($error_code) ? $error_code : null, + 'request_id' => $response->getHeaderLine('x-amzn-requestid'), + 'code' => $error_code ?? null, 'message' => null, 'type' => $error_type, - 'parsed' => $this->parseJson($response->getBody(), $response) + 'parsed' => $parsedBody ]; } + /** + * Parse AWS Query Compatible error from header + * + * @param ResponseInterface $response + * @return array|null Returns ['code' => string, 'type' => string] or null + */ + private function parseAwsQueryCompatibleHeader(ResponseInterface $response): ?array + { + $queryError = $response->getHeaderLine('x-amzn-query-error'); + $parts = explode(';', $queryError); + + if (count($parts) === 2 && $parts[0] && $parts[1]) { + return [ + 'code' => $parts[0], + 'type' => $parts[1] + ]; + } + + return null; + } + + /** + * Parse error code from response body + * + * @param array|null $parsedBody + * @return string|null + */ + private function parseErrorFromBody(?array $parsedBody): ?string + { + if (!$parsedBody + || (!isset($parsedBody['code']) && !isset($parsedBody['__type'])) + ) { + return null; + } + + $error_code = $parsedBody['code'] ?? $parsedBody['__type']; + return $this->extractErrorCode($error_code); + } + + /** + * Extract error code from raw error string containing # and/or : delimiters + * + * @param string $rawErrorCode + * @return string + */ + private function extractErrorCode(string $rawErrorCode): string + { + // Handle format with both # and uri (e.g., "namespace#http://foo-bar") + if (str_contains($rawErrorCode, ':') && str_contains($rawErrorCode, '#')) { + $start = strpos($rawErrorCode, '#') + 1; + $end = strpos($rawErrorCode, ':', $start); + return substr($rawErrorCode, $start, $end - $start); + } + + // Handle format with uri only : (e.g., "ErrorCode:http://foo-bar.com/baz") + if (str_contains($rawErrorCode, ':')) { + return substr($rawErrorCode, 0, strpos($rawErrorCode, ':')); + } + + // Handle format with only # (e.g., "namespace#ErrorCode") + if (str_contains($rawErrorCode, '#')) { + return substr($rawErrorCode, strpos($rawErrorCode, '#') + 1); + } + + return $rawErrorCode; + } + protected function payload( ResponseInterface $response, StructureShape $member ) { - $jsonBody = $this->parseJson($response->getBody(), $response); - - if ($jsonBody) { - return $this->parser->parse($member, $jsonBody); + $body = $response->getBody(); + if (!$body->isSeekable() || $body->getSize()) { + $jsonBody = $this->parseJson($body, $response); + } else { + $jsonBody = (string) $body; } + + return $this->parser->parse($member, $jsonBody); } } diff --git a/aws/aws-sdk-php/src/Api/ErrorParser/RestJsonErrorParser.php b/aws/aws-sdk-php/src/Api/ErrorParser/RestJsonErrorParser.php index e060d1045..3d50a73ca 100644 --- a/aws/aws-sdk-php/src/Api/ErrorParser/RestJsonErrorParser.php +++ b/aws/aws-sdk-php/src/Api/ErrorParser/RestJsonErrorParser.php @@ -30,7 +30,7 @@ public function __invoke( // Merge in error data from the JSON body if ($json = $data['parsed']) { - $data = array_replace($data, $json); + $data = array_replace($json, $data); } // Correct error type from services like Amazon Glacier @@ -38,18 +38,9 @@ public function __invoke( $data['type'] = strtolower($data['type']); } - // Retrieve the error code from services like Amazon Elastic Transcoder - if ($code = $response->getHeaderLine('x-amzn-errortype')) { - $colon = strpos($code, ':'); - $data['code'] = $colon ? substr($code, 0, $colon) : $code; - } - // Retrieve error message directly - $data['message'] = isset($data['parsed']['message']) - ? $data['parsed']['message'] - : (isset($data['parsed']['Message']) - ? $data['parsed']['Message'] - : null); + $data['message'] = $data['parsed']['message'] + ?? ($data['parsed']['Message'] ?? null); $this->populateShape($data, $response, $command); diff --git a/aws/aws-sdk-php/src/Api/Parser/AbstractRestParser.php b/aws/aws-sdk-php/src/Api/Parser/AbstractRestParser.php index c977588bd..a0267e8d7 100644 --- a/aws/aws-sdk-php/src/Api/Parser/AbstractRestParser.php +++ b/aws/aws-sdk-php/src/Api/Parser/AbstractRestParser.php @@ -55,8 +55,9 @@ public function __invoke( } } + $body = $response->getBody(); if (!$payload - && $response->getBody()->getSize() > 0 + && (!$body->isSeekable() || $body->getSize()) && count($output->getMembers()) > 0 ) { // if no payload was found, then parse the contents of the body @@ -73,20 +74,26 @@ private function extractPayload( array &$result ) { $member = $output->getMember($payload); + $body = $response->getBody(); if (!empty($member['eventstream'])) { $result[$payload] = new EventParsingIterator( - $response->getBody(), + $body, $member, $this ); - } else if ($member instanceof StructureShape) { - // Structure members parse top-level data into a specific key. + } elseif ($member instanceof StructureShape) { + //Unions must have at least one member set to a non-null value + // If the body is empty, we can assume it is unset + if (!empty($member['union']) && ($body->isSeekable() && !$body->getSize())) { + return; + } + $result[$payload] = []; $this->payload($response, $member, $result[$payload]); } else { - // Streaming data is just the stream from the response body. - $result[$payload] = $response->getBody(); + // Always set the payload to the body stream, regardless of content + $result[$payload] = $body; } } @@ -100,13 +107,21 @@ private function extractHeader( &$result ) { $value = $response->getHeaderLine($shape['locationName'] ?: $name); + // Empty headers should not be deserialized + if ($value === null || $value === '') { + return; + } switch ($shape->getType()) { case 'float': case 'double': - $value = (float) $value; + $value = match ($value) { + 'NaN', 'Infinity', '-Infinity' => $value, + default => (float) $value + }; break; case 'long': + case 'integer': $value = (int) $value; break; case 'boolean': @@ -143,6 +158,23 @@ private function extractHeader( //output structure. return; } + case 'list': + $listMember = $shape->getMember(); + $type = $listMember->getType(); + + // Only boolean lists require special handling + // other types can be returned as-is + if ($type !== 'boolean') { + break; + } + + $items = array_map('trim', explode(',', $value)); + $value = array_map( + static fn($item) => filter_var($item, FILTER_VALIDATE_BOOLEAN), + $items + ); + + break; } $result[$name] = $value; diff --git a/aws/aws-sdk-php/src/Api/Parser/JsonParser.php b/aws/aws-sdk-php/src/Api/Parser/JsonParser.php index ef981541b..da11e31bd 100644 --- a/aws/aws-sdk-php/src/Api/Parser/JsonParser.php +++ b/aws/aws-sdk-php/src/Api/Parser/JsonParser.php @@ -50,7 +50,10 @@ public function parse(Shape $shape, $value) $values = $shape->getValue(); $target = []; foreach ($value as $k => $v) { - $target[$k] = $this->parse($values, $v); + // null map values should not be deserialized + if (!is_null($v)) { + $target[$k] = $this->parse($values, $v); + } } return $target; diff --git a/aws/aws-sdk-php/src/Api/Parser/MetadataParserTrait.php b/aws/aws-sdk-php/src/Api/Parser/MetadataParserTrait.php index e64d5a851..b3bba9938 100644 --- a/aws/aws-sdk-php/src/Api/Parser/MetadataParserTrait.php +++ b/aws/aws-sdk-php/src/Api/Parser/MetadataParserTrait.php @@ -17,6 +17,10 @@ protected function extractHeader( &$result ) { $value = $response->getHeaderLine($shape['locationName'] ?: $name); + // Empty values should not be deserialized + if ($value === null || $value === '') { + return; + } switch ($shape->getType()) { case 'float': @@ -24,6 +28,7 @@ protected function extractHeader( $value = (float) $value; break; case 'long': + case 'integer': $value = (int) $value; break; case 'boolean': diff --git a/aws/aws-sdk-php/src/Api/Parser/NonSeekableStreamDecodingEventStreamIterator.php b/aws/aws-sdk-php/src/Api/Parser/NonSeekableStreamDecodingEventStreamIterator.php index ca5388db6..d59f200e4 100644 --- a/aws/aws-sdk-php/src/Api/Parser/NonSeekableStreamDecodingEventStreamIterator.php +++ b/aws/aws-sdk-php/src/Api/Parser/NonSeekableStreamDecodingEventStreamIterator.php @@ -64,10 +64,21 @@ protected function readAndHashBytes($num): string while (!empty($this->tempBuffer) && $num > 0) { $byte = array_shift($this->tempBuffer); $bytes .= $byte; - $num = $num - 1; + $num -= 1; + } + + // Loop until we've read the expected number of bytes + while ($num > 0 && !$this->stream->eof()) { + $chunk = $this->stream->read($num); + $chunkLen = strlen($chunk); + $bytes .= $chunk; + $num -= $chunkLen; + + if ($chunkLen === 0) { + break; // Prevent infinite loop on unexpected EOF + } } - $bytes = $bytes . $this->stream->read($num); hash_update($this->hashContext, $bytes); return $bytes; diff --git a/aws/aws-sdk-php/src/Api/Parser/QueryParser.php b/aws/aws-sdk-php/src/Api/Parser/QueryParser.php index 7762ac59d..2ea067667 100644 --- a/aws/aws-sdk-php/src/Api/Parser/QueryParser.php +++ b/aws/aws-sdk-php/src/Api/Parser/QueryParser.php @@ -40,7 +40,15 @@ public function __invoke( ResponseInterface $response ) { $output = $this->api->getOperation($command->getName())->getOutput(); - $xml = $this->parseXml($response->getBody(), $response); + $body = $response->getBody(); + $xml = !$body->isSeekable() || $body->getSize() + ? $this->parseXml($body, $response) + : null; + + // Empty request bodies should not be deserialized. + if (is_null($xml)) { + return new Result(); + } if ($this->honorResultWrapper && $output['resultWrapper']) { $xml = $xml->{$output['resultWrapper']}; diff --git a/aws/aws-sdk-php/src/Api/Parser/RestJsonParser.php b/aws/aws-sdk-php/src/Api/Parser/RestJsonParser.php index bb09f4018..8c14e07a1 100644 --- a/aws/aws-sdk-php/src/Api/Parser/RestJsonParser.php +++ b/aws/aws-sdk-php/src/Api/Parser/RestJsonParser.php @@ -28,10 +28,25 @@ protected function payload( StructureShape $member, array &$result ) { - $jsonBody = $this->parseJson($response->getBody(), $response); + $responseBody = (string) $response->getBody(); - if ($jsonBody) { - $result += $this->parser->parse($member, $jsonBody); + // Parse JSON if we have content + $parsedJson = null; + if (!empty($responseBody)) { + $parsedJson = $this->parseJson($responseBody, $response); + } else { + // An empty response body should be deserialized as null + $result = $parsedJson; + return; + } + + $parsedBody = $this->parser->parse($member, $parsedJson); + if (is_string($parsedBody) && $member['document']) { + // Document types can be strings: replace entire result + $result = $parsedBody; + } else { + // Merge array/object results into existing result + $result = array_merge($result, (array) $parsedBody); } } diff --git a/aws/aws-sdk-php/src/Api/Parser/XmlParser.php b/aws/aws-sdk-php/src/Api/Parser/XmlParser.php index 744f02e77..c9d47d235 100644 --- a/aws/aws-sdk-php/src/Api/Parser/XmlParser.php +++ b/aws/aws-sdk-php/src/Api/Parser/XmlParser.php @@ -76,15 +76,18 @@ private function parse_structure( private function memberKey(Shape $shape, $name) { - if (null !== $shape['locationName']) { - return $shape['locationName']; - } - - if ($shape instanceof ListShape && $shape['flattened']) { - return $shape->getMember()['locationName'] ?: $name; + // Check if locationName came from shape definition + if ($shape instanceof StructureShape && isset($shape['locationName'])) { + $originalDef = $shape->getOriginalDefinition($shape->getName()); + + if ($originalDef && isset($originalDef['locationName']) + && $originalDef['locationName'] === $shape['locationName'] + ) { + return $name; + } } - return $name; + return $shape['locationName'] ?? $name; } private function parse_list(ListShape $shape, \SimpleXMLElement $value) @@ -132,7 +135,12 @@ private function parse_blob(Shape $shape, $value) private function parse_float(Shape $shape, $value) { - return (float) (string) $value; + $value = (string) $value; + + return match ($value) { + 'NaN', 'Infinity', '-Infinity' => $value, + default => (float) $value + }; } private function parse_integer(Shape $shape, $value) @@ -162,12 +170,8 @@ private function parse_timestamp(Shape $shape, $value) private function parse_xml_attribute(Shape $shape, Shape $memberShape, $value) { - $namespace = $shape['xmlNamespace']['uri'] - ? $shape['xmlNamespace']['uri'] - : ''; - $prefix = $shape['xmlNamespace']['prefix'] - ? $shape['xmlNamespace']['prefix'] - : ''; + $namespace = $shape['xmlNamespace']['uri'] ?? ''; + $prefix = $shape['xmlNamespace']['prefix'] ?? ''; if (!empty($prefix)) { $prefix .= ':'; } diff --git a/aws/aws-sdk-php/src/Api/Serializer/JsonBody.php b/aws/aws-sdk-php/src/Api/Serializer/JsonBody.php index 0b116e0e4..6ac2dd988 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/JsonBody.php +++ b/aws/aws-sdk-php/src/Api/Serializer/JsonBody.php @@ -45,14 +45,22 @@ public static function getContentType(Service $service) * Builds the JSON body based on an array of arguments. * * @param Shape $shape Operation being constructed - * @param array $args Associative array of arguments + * @param array|string $args Associative array of arguments, or a string. * * @return string */ - public function build(Shape $shape, array $args) + public function build(Shape $shape, array|string $args) { - $result = json_encode($this->format($shape, $args)); - return $result == '[]' ? '{}' : $result; + try { + $result = json_encode($this->format($shape, $args), JSON_THROW_ON_ERROR); + } catch (\JsonException $e) { + throw new InvalidJsonException( + 'Unable to encode JSON document ' . $shape->getName() . ': ' . + $e->getMessage() . PHP_EOL + ); + } + + return $result === '[]' ? '{}' : $result; } private function format(Shape $shape, $value) @@ -60,7 +68,7 @@ private function format(Shape $shape, $value) switch ($shape['type']) { case 'structure': $data = []; - if (isset($shape['document']) && $shape['document']) { + if ($shape['document'] ?? false) { return $value; } foreach ($value as $k => $v) { diff --git a/aws/aws-sdk-php/src/Api/Serializer/JsonRpcSerializer.php b/aws/aws-sdk-php/src/Api/Serializer/JsonRpcSerializer.php index 61845b08f..a4f5e6f2e 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/JsonRpcSerializer.php +++ b/aws/aws-sdk-php/src/Api/Serializer/JsonRpcSerializer.php @@ -62,23 +62,26 @@ public function __invoke( $operationName = $command->getName(); $operation = $this->api->getOperation($operationName); $commandArgs = $command->toArray(); + $body = $this->jsonFormatter->build($operation->getInput(), $commandArgs); $headers = [ 'X-Amz-Target' => $this->api->getMetadata('targetPrefix') . '.' . $operationName, - 'Content-Type' => $this->contentType - ]; + 'Content-Type' => $this->contentType, + 'Content-Length' => strlen($body) + ]; if ($endpoint instanceof RulesetEndpoint) { $this->setEndpointV2RequestOptions($endpoint, $headers); } + $requestUri = $operation['http']['requestUri'] ?? null; + $absoluteUri = str_ends_with($this->endpoint, '/') + ? $this->endpoint : $this->endpoint . $requestUri; + return new Request( $operation['http']['method'], - $this->endpoint, + $absoluteUri, $headers, - $this->jsonFormatter->build( - $operation->getInput(), - $commandArgs - ) + $body ); } } diff --git a/aws/aws-sdk-php/src/Api/Serializer/QueryParamBuilder.php b/aws/aws-sdk-php/src/Api/Serializer/QueryParamBuilder.php index 3d96334ea..29168da88 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/QueryParamBuilder.php +++ b/aws/aws-sdk-php/src/Api/Serializer/QueryParamBuilder.php @@ -98,7 +98,8 @@ protected function format_list( if (!$this->isFlat($shape)) { $locationName = $shape->getMember()['locationName'] ?: 'member'; $prefix .= ".$locationName"; - } elseif ($name = $this->queryName($items)) { + // flattened lists can also model a `locationName` + } elseif ($name = $shape['locationName'] ?? $this->queryName($items)) { $parts = explode('.', $prefix); $parts[count($parts) - 1] = $name; $prefix = implode('.', $parts); diff --git a/aws/aws-sdk-php/src/Api/Serializer/QuerySerializer.php b/aws/aws-sdk-php/src/Api/Serializer/QuerySerializer.php index 1a55b03e3..c38c88181 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/QuerySerializer.php +++ b/aws/aws-sdk-php/src/Api/Serializer/QuerySerializer.php @@ -36,9 +36,7 @@ public function __construct( * containing "method", "uri", "headers", and "body" key value pairs. * * @param CommandInterface $command Command to serialize into a request. - * @param $endpointProvider Provider used for dynamic endpoint resolution. - * @param $clientArgs Client arguments used for dynamic endpoint resolution. - * + * @param null $endpoint Endpoint resolved using EndpointProviderV2 * @return RequestInterface */ public function __invoke( @@ -66,14 +64,17 @@ public function __invoke( 'Content-Length' => strlen($body), 'Content-Type' => 'application/x-www-form-urlencoded' ]; + $requestUri = $operation['http']['requestUri'] ?? null; if ($endpoint instanceof RulesetEndpoint) { $this->setEndpointV2RequestOptions($endpoint, $headers); } + $absoluteUri = str_ends_with($this->endpoint, '/') + ? $this->endpoint : $this->endpoint . $requestUri; return new Request( 'POST', - $this->endpoint, + $absoluteUri, $headers, $body ); diff --git a/aws/aws-sdk-php/src/Api/Serializer/RestJsonSerializer.php b/aws/aws-sdk-php/src/Api/Serializer/RestJsonSerializer.php index 2e281211f..e198664c6 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/RestJsonSerializer.php +++ b/aws/aws-sdk-php/src/Api/Serializer/RestJsonSerializer.php @@ -31,12 +31,11 @@ public function __construct( $this->jsonFormatter = $jsonFormatter ?: new JsonBody($api); } - protected function payload(StructureShape $member, array $value, array &$opts) + protected function payload(StructureShape $member, array|string $value, array &$opts) { - $body = isset($value) ? - ((string) $this->jsonFormatter->build($member, $value)) - : "{}"; $opts['headers']['Content-Type'] = $this->contentType; + $body = $this->jsonFormatter->build($member, $value); + $opts['headers']['Content-Length'] = strlen($body); $opts['body'] = $body; } } diff --git a/aws/aws-sdk-php/src/Api/Serializer/RestSerializer.php b/aws/aws-sdk-php/src/Api/Serializer/RestSerializer.php index dfc133628..520020856 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/RestSerializer.php +++ b/aws/aws-sdk-php/src/Api/Serializer/RestSerializer.php @@ -1,6 +1,7 @@ true, + 'glacier' => true + ]; /** @var Service */ - private $api; + private Service $api; /** @var Uri */ private $endpoint; @@ -33,9 +41,11 @@ abstract class RestSerializer /** @var bool */ private $isUseEndpointV2; + use EndpointV2SerializerTrait; + /** - * @param Service $api Service API description - * @param string $endpoint Endpoint to connect to + * @param Service $api Service API description + * @param string $endpoint Endpoint to connect to */ public function __construct(Service $api, $endpoint) { @@ -45,19 +55,18 @@ public function __construct(Service $api, $endpoint) /** * @param CommandInterface $command Command to serialize into a request. - * @param $clientArgs Client arguments used for dynamic endpoint resolution. - * + * @param mixed|null $endpoint * @return RequestInterface */ public function __invoke( CommandInterface $command, - $endpoint = null + mixed $endpoint = null ) { $operation = $this->api->getOperation($command->getName()); $commandArgs = $command->toArray(); $opts = $this->serialize($operation, $commandArgs); - $headers = isset($opts['headers']) ? $opts['headers'] : []; + $headers = $opts['headers'] ?? []; if ($endpoint instanceof RulesetEndpoint) { $this->isUseEndpointV2 = true; @@ -70,16 +79,16 @@ public function __invoke( $operation['http']['method'], $uri, $headers, - isset($opts['body']) ? $opts['body'] : null + $opts['body'] ?? null ); } /** * Modifies a hash of request options for a payload body. * - * @param StructureShape $member Member to serialize - * @param array $value Value to serialize - * @param array $opts Request options to modify. + * @param StructureShape $member Member to serialize + * @param array $value Value to serialize + * @param array $opts Request options to modify. */ abstract protected function payload( StructureShape $member, @@ -103,20 +112,20 @@ private function serialize(Operation $operation, array $args) $location = $member['location']; if (!$payload && !$location) { $bodyMembers[$name] = $value; - } elseif ($location == 'header') { + } elseif ($location === 'header') { $this->applyHeader($name, $member, $value, $opts); - } elseif ($location == 'querystring') { + } elseif ($location === 'querystring') { $this->applyQuery($name, $member, $value, $opts); - } elseif ($location == 'headers') { + } elseif ($location === 'headers') { $this->applyHeaderMap($name, $member, $value, $opts); } } } if (isset($bodyMembers)) { - $this->payload($operation->getInput(), $bodyMembers, $opts); + $this->payload($input, $bodyMembers, $opts); } else if (!isset($opts['body']) && $this->hasPayloadParam($input, $payload)) { - $this->payload($operation->getInput(), [], $opts); + $this->payload($input, [], $opts); } return $opts; @@ -130,12 +139,32 @@ private function applyPayload(StructureShape $input, $name, array $args, array & $m = $input->getMember($name); + $type = $m->getType(); if ($m['streaming'] || - ($m['type'] == 'string' || $m['type'] == 'blob') + ($type === 'string' || $type === 'blob') ) { + // This path skips setting the content-type header usually done in + // RestJsonSerializer and RestXmlSerializer.certain S3 and glacier + // operations determine content type in Middleware::ContentType() + if (!isset(self::$excludeContentType[$this->api->getServiceName() ?? ''])) { + switch ($type) { + case 'string': + $opts['headers']['Content-Type'] = 'text/plain'; + break; + case 'blob': + $opts['headers']['Content-Type'] = 'application/octet-stream'; + break; + } + } + + $body = $args[$name]; + if (!$m['streaming'] && is_string($body)) { + $opts['headers']['Content-Length'] = strlen($body); + } + // Streaming bodies or payloads that are strings are // always just a stream of data. - $opts['body'] = Psr7\Utils::streamFor($args[$name]); + $opts['body'] = Psr7\Utils::streamFor($body); return; } @@ -144,13 +173,29 @@ private function applyPayload(StructureShape $input, $name, array $args, array & private function applyHeader($name, Shape $member, $value, array &$opts) { - if ($member->getType() === 'timestamp') { - $timestampFormat = !empty($member['timestampFormat']) - ? $member['timestampFormat'] - : 'rfc822'; - $value = TimestampShape::format($value, $timestampFormat); - } elseif ($member->getType() === 'boolean') { - $value = $value ? 'true' : 'false'; + // Handle lists by recursively applying header logic to each element + if ($member instanceof ListShape) { + $listMember = $member->getMember(); + $headerValues = []; + + foreach ($value as $listValue) { + $tempOpts = ['headers' => []]; + $this->applyHeader('temp', $listMember, $listValue, $tempOpts); + $convertedValue = $tempOpts['headers']['temp']; + $headerValues[] = $convertedValue; + } + + $value = $headerValues; + } elseif (!is_null($value)) { + switch ($member->getType()) { + case 'timestamp': + $timestampFormat = $member['timestampFormat'] ?? 'rfc822'; + $value = $this->formatTimestamp($value, $timestampFormat); + break; + case 'boolean': + $value = $this->formatBoolean($value); + break; + } } if ($member['jsonvalue']) { @@ -183,148 +228,259 @@ private function applyQuery($name, Shape $member, $value, array &$opts) $opts['query'] = isset($opts['query']) && is_array($opts['query']) ? $opts['query'] + $value : $value; - } elseif ($value !== null) { - $type = $member->getType(); - if ($type === 'boolean') { - $value = $value ? 'true' : 'false'; - } elseif ($type === 'timestamp') { - $timestampFormat = !empty($member['timestampFormat']) - ? $member['timestampFormat'] - : 'iso8601'; - $value = TimestampShape::format($value, $timestampFormat); + } elseif ($member instanceof ListShape) { + $listMember = $member->getMember(); + $paramName = $member['locationName'] ?: $name; + + foreach ($value as $listValue) { + // Recursively call applyQuery for each list element + $tempOpts = ['query' => []]; + $this->applyQuery('temp', $listMember, $listValue, $tempOpts); + $opts['query'][$paramName][] = $tempOpts['query']['temp']; + } + } elseif (!is_null($value)) { + switch ($member->getType()) { + case 'timestamp': + $timestampFormat = $member['timestampFormat'] ?? 'iso8601'; + $value = $this->formatTimestamp($value, $timestampFormat); + break; + case 'boolean': + $value = $this->formatBoolean($value); + break; } $opts['query'][$member['locationName'] ?: $name] = $value; } } - private function buildEndpoint(Operation $operation, array $args, array $opts) + private function buildEndpoint( + Operation $operation, + array $args, + array $opts + ): UriInterface + { + // Expand `requestUri` field members + $relativeUri = $this->expandUriTemplate($operation, $args); + + // Add query members to relativeUri + if (!empty($opts['query'])) { + $relativeUri = $this->appendQuery($opts['query'], $relativeUri); + } + + // Special case - S3 keys that need path preservation + if ($this->api->getServiceName() === 's3' + && isset($args['Key']) + && $this->shouldPreservePath($args['Key']) + ) { + return new Uri($this->endpoint . $relativeUri); + } + + return $this->resolveUri($relativeUri, $opts); + } + + /** + * Expands `requestUri` members + * + * @param Operation $operation + * @param array $args + * + * @return string + */ + private function expandUriTemplate(Operation $operation, array $args): string { - $serviceName = $this->api->getServiceName(); - // Create an associative array of variable definitions used in expansions $varDefinitions = $this->getVarDefinitions($operation, $args); - $relative = preg_replace_callback( - '/\{([^\}]+)\}/', - function (array $matches) use ($varDefinitions) { - $isGreedy = substr($matches[1], -1, 1) == '+'; - $k = $isGreedy ? substr($matches[1], 0, -1) : $matches[1]; - if (!isset($varDefinitions[$k])) { + return preg_replace_callback( + self::TEMPLATE_STRING_REGEX, + static function (array $matches) use ($varDefinitions) { + $isGreedy = str_ends_with($matches[1], '+'); + $varName = $isGreedy ? substr($matches[1], 0, -1) : $matches[1]; + + if (!isset($varDefinitions[$varName])) { return ''; } + $value = $varDefinitions[$varName]; + if ($isGreedy) { - return str_replace('%2F', '/', rawurlencode($varDefinitions[$k])); + return str_replace('%2F', '/', rawurlencode($value)); } - return rawurlencode($varDefinitions[$k]); + return rawurlencode($value); }, $operation['http']['requestUri'] ); + } - // Add the query string variables or appending to one if needed. - if (!empty($opts['query'])) { - $relative = $this->appendQuery($opts['query'], $relative); + /** + * Checks for path-like key names. If detected, traditional + * URI resolution is bypassed. + * + * @param string $key + * @return bool + */ + private function shouldPreservePath(string $key): bool + { + // Keys with dot segments + if (str_contains($key, '.')) { + $segments = explode('/', $key); + foreach ($segments as $segment) { + if ($segment === '.' || $segment === '..') { + return true; + } + } } - $path = $this->endpoint->getPath(); + // Keys starting with slash + if (str_starts_with($key, '/')) { + return true; + } - if ($this->isUseEndpointV2 && $serviceName === 's3') { - if (substr($path, -1) === '/' && $relative[0] === '/') { - $path = rtrim($path, '/'); + return false; + } + + /** + * @param string $relativeUri + * @param array $opts + * + * @return UriInterface + */ + private function resolveUri(string $relativeUri, array $opts): UriInterface + { + $basePath = $this->endpoint->getPath(); + + // Only process if we have a non-empty base path + if (!empty($basePath) && $basePath !== '/') { + // if relative is just '/', we want just the base path without trailing slash + if ($relativeUri === '/' || empty($relativeUri)) { + // Remove trailing slash if present + return $this->endpoint->withPath(rtrim($basePath, '/')); } - $relative = $path . $relative; - if (strpos($relative, '../') !== false - || substr($relative, -2) === '..' + // if relative is '/?query', we want base path without trailing slash + query + // for now, this is only seen with S3 GetBucketLocation after processing the model + if (empty($opts['query']) + && str_starts_with($relativeUri, '/?') ) { - if ($relative[0] !== '/') { - $relative = '/' . $relative; - } - - return new Uri($this->endpoint->withPath('') . $relative); + $query = substr($relativeUri, 2); // Remove '/?' + return $this->endpoint->withQuery($query); } - } - if (((!empty($relative) && $relative !== '/') - && !$this->isUseEndpointV2) - || (isset($serviceName) && str_starts_with($serviceName, 'geo-')) - ) { - $this->normalizePath($path); - } - - // If endpoint has path, remove leading '/' to preserve URI resolution. - if ($path && $relative[0] === '/') { - $relative = substr($relative, 1); - } + // Ensure base path has trailing slash + if (!str_ends_with($basePath, '/')) { + $this->endpoint = $this->endpoint->withPath($basePath . '/'); + } - //Append path to endpoint when leading '//...' - // present as uri cannot be properly resolved - if ($this->isUseEndpointV2 && strpos($relative, '//') === 0) { - return new Uri($this->endpoint . $relative); + // Remove leading slash from relative path to make it relative + if (str_starts_with($relativeUri, '/')) { + $relativeUri = substr($relativeUri, 1); + } } - // Expand path place holders using Amazon's slightly different URI - // template syntax. - return UriResolver::resolve($this->endpoint, new Uri($relative)); + return UriResolver::resolve($this->endpoint, new Uri($relativeUri)); } /** * @param StructureShape $input + * @param $payload + * + * @return bool */ private function hasPayloadParam(StructureShape $input, $payload) { if ($payload) { $potentiallyEmptyTypes = ['blob','string']; - if ($this->api->getMetadata('protocol') == 'rest-xml') { + if ($this->api->getProtocol() === 'rest-xml') { $potentiallyEmptyTypes[] = 'structure'; } + $payloadMember = $input->getMember($payload); - if (in_array($payloadMember['type'], $potentiallyEmptyTypes)) { + //unions may also be empty/unset + if (!empty($payloadMember['union']) + || in_array($payloadMember['type'], $potentiallyEmptyTypes) + ) { return false; } } + foreach ($input->getMembers() as $member) { if (!isset($member['location'])) { return true; } } + return false; } - private function appendQuery($query, $endpoint) + /** + * @param $query + * @param $relativeUri + * + * @return string + */ + private function appendQuery($query, $relativeUri): string { $append = Psr7\Query::build($query); - return $endpoint .= strpos($endpoint, '?') !== false ? "&{$append}" : "?{$append}"; + return $relativeUri + . (str_contains($relativeUri, '?') ? "&{$append}" : "?{$append}"); } - private function getVarDefinitions($command, $args) + /** + * @param CommandInterface $command + * @param array $args + * + * @return array + */ + private function getVarDefinitions( + Operation $operation, + array $args + ): array { $varDefinitions = []; - foreach ($command->getInput()->getMembers() as $name => $member) { - if ($member['location'] == 'uri') { - $varDefinitions[$member['locationName'] ?: $name] = - isset($args[$name]) - ? $args[$name] - : null; + foreach ($operation->getInput()->getMembers() as $name => $member) { + if ($member['location'] === 'uri') { + $value = $args[$name] ?? null; + if (!is_null($value)) { + switch ($member->getType()) { + case 'timestamp': + $timestampFormat = $member['timestampFormat'] ?? 'iso8601'; + $value = $this->formatTimestamp($value, $timestampFormat); + break; + case 'boolean': + $value = $this->formatBoolean($value); + break; + } + } + + $varDefinitions[$member['locationName'] ?: $name] = $value; } } + return $varDefinitions; } /** - * Appends trailing slash to non-empty paths with at least one segment - * to ensure proper URI resolution + * @param DateTimeInterface|string|int $value + * @param string $timestampFormat * - * @param string $path + * @return string + */ + private function formatTimestamp( + DateTimeInterface|string|int $value, + string $timestampFormat + ): string + { + return TimestampShape::format($value, $timestampFormat); + } + + /** + * @param $value * - * @return void + * @return string */ - private function normalizePath(string $path): void + private function formatBoolean($value): string { - if (!empty($path) && $path !== '/' && substr($path, -1) !== '/') { - $this->endpoint = $this->endpoint->withPath($path . '/'); - } + return $value ? 'true' : 'false'; } } diff --git a/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php b/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php index 5e7bc6460..2cf496a4b 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php +++ b/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php @@ -29,7 +29,9 @@ public function __construct( protected function payload(StructureShape $member, array $value, array &$opts) { $opts['headers']['Content-Type'] = 'application/xml'; - $opts['body'] = $this->getXmlBody($member, $value); + $body = $this->getXmlBody($member, $value); + $opts['headers']['Content-Length'] = strlen($body); + $opts['body'] = $body; } /** @@ -39,7 +41,7 @@ protected function payload(StructureShape $member, array $value, array &$opts) */ private function getXmlBody(StructureShape $member, array $value) { - $xmlBody = (string)$this->xmlBody->build($member, $value); + $xmlBody = $this->xmlBody->build($member, $value); $xmlBody = str_replace("'", "'", $xmlBody); $xmlBody = str_replace('\r', " ", $xmlBody); $xmlBody = str_replace('\n', " ", $xmlBody); diff --git a/aws/aws-sdk-php/src/Api/Serializer/XmlBody.php b/aws/aws-sdk-php/src/Api/Serializer/XmlBody.php index 0488eba3d..28393bbf2 100644 --- a/aws/aws-sdk-php/src/Api/Serializer/XmlBody.php +++ b/aws/aws-sdk-php/src/Api/Serializer/XmlBody.php @@ -14,8 +14,8 @@ */ class XmlBody { - /** @var \Aws\Api\Service */ - private $api; + /** @var Service */ + private Service $api; /** * @param Service $api API being used to create the XML body. @@ -38,7 +38,10 @@ public function build(Shape $shape, array $args) $xml = new XMLWriter(); $xml->openMemory(); $xml->startDocument('1.0', 'UTF-8'); - $this->format($shape, $shape['locationName'] ?: $shape['name'], $args, $xml); + + $rootElementName = $this->determineRootElementName($shape); + + $this->format($shape, $rootElementName, $args, $xml); $xml->endDocument(); return $xml->outputMemory(); @@ -51,7 +54,7 @@ private function startElement(Shape $shape, $name, XMLWriter $xml) if ($ns = $shape['xmlNamespace']) { $xml->writeAttribute( isset($ns['prefix']) ? "xmlns:{$ns['prefix']}" : 'xmlns', - $shape['xmlNamespace']['uri'] + $ns['uri'] ); } } @@ -93,9 +96,17 @@ private function add_structure( $this->startElement($shape, $name, $xml); foreach ($this->getStructureMembers($shape, $value) as $k => $definition) { + // Default to member name + $elementName = $k; + + if ($definition['member']['locationName'] + && !isset($definition['member']['locationNameAtStructureLevel'])) { + $elementName = $definition['member']['locationName']; + } + $this->format( $definition['member'], - $definition['member']['locationName'] ?: $k, + $elementName, $definition['value'], $xml ); @@ -157,11 +168,13 @@ private function add_map( array $value, XMLWriter $xml ) { - $xmlEntry = $shape['flattened'] ? $shape['locationName'] : 'entry'; + $xmlEntry = $shape['flattened'] ? $name : 'entry'; $xmlKey = $shape->getKey()['locationName'] ?: 'key'; $xmlValue = $shape->getValue()['locationName'] ?: 'value'; - $this->startElement($shape, $name, $xml); + if (!$shape['flattened']) { + $this->startElement($shape, $name, $xml); + } foreach ($value as $key => $v) { $this->startElement($shape, $xmlEntry, $xml); @@ -170,7 +183,9 @@ private function add_map( $xml->endElement(); } - $xml->endElement(); + if (!$shape['flattened']) { + $xml->endElement(); + } } private function add_blob(Shape $shape, $name, $value, XMLWriter $xml) @@ -217,4 +232,23 @@ private function add_string( $this->defaultShape($shape, $name, $value, $xml); } } + + private function determineRootElementName(Shape $shape): string + { + $shapeName = $shape->getName(); + + // Look up the shape definition first + if ($shapeName && $shapeMap = $shape->getShapeMap()) { + if (isset($shapeMap[$shapeName]['locationName'])) { + return $shapeMap[$shapeName]['locationName']; + } + } + + // Fall back to shape's current locationName + if ($shape['locationName']) { + return $shape['locationName']; + } + + return $shapeName; + } } diff --git a/aws/aws-sdk-php/src/Api/ShapeMap.php b/aws/aws-sdk-php/src/Api/ShapeMap.php index b576e9ba2..1593c2e32 100644 --- a/aws/aws-sdk-php/src/Api/ShapeMap.php +++ b/aws/aws-sdk-php/src/Api/ShapeMap.php @@ -4,7 +4,7 @@ /** * Builds shape based on shape references. */ -class ShapeMap +class ShapeMap implements \ArrayAccess { /** @var array */ private $definitions; @@ -51,7 +51,14 @@ public function resolve(array $shapeRef) return $this->simple[$shape]; } - $definition = $shapeRef + $this->definitions[$shape]; + $shapeDefinition = $this->definitions[$shape]; + $definition = $shapeRef + $shapeDefinition; + // Property to know whether the locationName was set at member level + // or the structure level. + if (isset($shapeDefinition['locationName'])) { + $definition['locationNameAtStructureLevel'] = true; + } + $definition['name'] = $definition['shape']; if (isset($definition['shape'])) { unset($definition['shape']); @@ -65,4 +72,45 @@ public function resolve(array $shapeRef) return $result; } + + /** + * @param mixed $offset + * @return bool + */ + public function offsetExists(mixed $offset): bool + { + return isset($this->definitions[$offset]); + } + + /** + * @param mixed $offset + * @return mixed + */ + public function offsetGet(mixed $offset): mixed + { + return $this->definitions[$offset] ?? null; + } + + /** + * @param mixed $offset + * @param mixed $value + * @throws \BadMethodCallException + */ + public function offsetSet(mixed $offset, mixed $value): void + { + throw new \BadMethodCallException( + 'ShapeMap is read-only and cannot be modified.' + ); + } + + /** + * @param mixed $offset + * @throws \BadMethodCallException + */ + public function offsetUnset(mixed $offset): void + { + throw new \BadMethodCallException( + 'ShapeMap is read-only and cannot be modified.' + ); + } } diff --git a/aws/aws-sdk-php/src/Api/StructureShape.php b/aws/aws-sdk-php/src/Api/StructureShape.php index a28793599..2cfe7702e 100644 --- a/aws/aws-sdk-php/src/Api/StructureShape.php +++ b/aws/aws-sdk-php/src/Api/StructureShape.php @@ -67,6 +67,32 @@ public function getMember($name) return $members[$name]; } + /** + * Used to look up the shape's original definition. + * ShapeMap::resolve() merges properties from both + * member and target shape definitions, causing certain + * properties like `locationName` to be overwritten. + * + * @return ShapeMap + * @internal This method is for internal use only and should not be used + * by external code. It may be changed or removed without notice. + */ + public function getShapeMap(): ShapeMap + { + return $this->shapeMap; + } + + /** + * Used to look up a shape's original definition. + * + * @param string $name + * + * @return array|null + */ + public function getOriginalDefinition(string $name): ?array + { + return $this->shapeMap[$name] ?? null; + } private function generateMembersHash() { diff --git a/aws/aws-sdk-php/src/Api/Validator.php b/aws/aws-sdk-php/src/Api/Validator.php index 886092645..818bdbee4 100644 --- a/aws/aws-sdk-php/src/Api/Validator.php +++ b/aws/aws-sdk-php/src/Api/Validator.php @@ -2,6 +2,7 @@ namespace Aws\Api; use Aws; +use stdClass; /** * Validates a schema against a hash of input. @@ -248,17 +249,7 @@ private function validateRange(Shape $shape, $length, $descriptor) private function checkArray($arr) { - return $this->isIndexed($arr) || $this->isAssociative($arr); - } - - private function isAssociative($arr) - { - return count(array_filter(array_keys($arr), "is_string")) == count($arr); - } - - private function isIndexed(array $arr) - { - return $arr == array_values($arr); + return array_is_list($arr) || Aws\is_associative($arr); } private function checkCanString($value) @@ -302,6 +293,12 @@ private function checkAssociativeArray($value) private function checkDocumentType($value) { + // To allow objects like value, which + // can be used within a member which type is `Document` + if ($value instanceof stdClass) { + $value = (array) $value; + } + if (is_array($value)) { $typeOfFirstKey = gettype(key($value)); foreach ($value as $key => $val) { diff --git a/aws/aws-sdk-php/src/Auth/AuthSchemeResolverInterface.php b/aws/aws-sdk-php/src/Auth/AuthSchemeResolverInterface.php index 54a59aa68..22f1311e8 100644 --- a/aws/aws-sdk-php/src/Auth/AuthSchemeResolverInterface.php +++ b/aws/aws-sdk-php/src/Auth/AuthSchemeResolverInterface.php @@ -13,9 +13,9 @@ interface AuthSchemeResolverInterface * Selects an auth scheme for request signing. * * @param array $authSchemes a priority-ordered list of authentication schemes. - * @param IdentityInterface $identity Credentials to be used in request signing. + * @param array $args * - * @return string + * @return string|null */ public function selectAuthScheme( array $authSchemes, diff --git a/aws/aws-sdk-php/src/Auth/AuthSelectionMiddleware.php b/aws/aws-sdk-php/src/Auth/AuthSelectionMiddleware.php index da6609826..40e08ce98 100644 --- a/aws/aws-sdk-php/src/Auth/AuthSelectionMiddleware.php +++ b/aws/aws-sdk-php/src/Auth/AuthSelectionMiddleware.php @@ -28,38 +28,50 @@ class AuthSelectionMiddleware /** @var Service */ private $api; + /** @var array|null */ + private ?array $configuredAuthSchemes; + /** * Create a middleware wrapper function * * @param AuthSchemeResolverInterface $authResolver * @param Service $api + * @param array|null $configuredAuthSchemes + * * @return Closure */ public static function wrap( AuthSchemeResolverInterface $authResolver, - Service $api + Service $api, + ?array $configuredAuthSchemes ): Closure { - return function (callable $handler) use ($authResolver, $api) { - return new self($handler, $authResolver, $api); + return function (callable $handler) use ( + $authResolver, + $api, + $configuredAuthSchemes + ) { + return new self($handler, $authResolver, $api, $configuredAuthSchemes); }; } /** * @param callable $nextHandler - * @param $authResolver - * @param callable $identityProvider + * @param AuthSchemeResolverInterface $authResolver * @param Service $api + * @param array|null $configuredAuthSchemes */ public function __construct( callable $nextHandler, AuthSchemeResolverInterface $authResolver, - Service $api + Service $api, + ?array $configuredAuthSchemes = null ) { $this->nextHandler = $nextHandler; $this->authResolver = $authResolver; $this->api = $api; + $this->configuredAuthSchemes = $configuredAuthSchemes; } /** @@ -86,21 +98,62 @@ public function __invoke(CommandInterface $command) } try { - $selectedAuthScheme = $resolver->selectAuthScheme( + $authSchemeList = $this->buildAuthSchemeList( $resolvableAuth, + $command['@context']['auth_scheme_preference'] + ?? null, + ); + $selectedAuthScheme = $resolver->selectAuthScheme( + $authSchemeList, ['unsigned_payload' => $unsignedPayload] ); - } catch (UnresolvedAuthSchemeException $e) { + + if (!empty($selectedAuthScheme)) { + $command['@context']['signature_version'] = $selectedAuthScheme; + } + } catch (UnresolvedAuthSchemeException $ignored) { // There was an error resolving auth // The signature version will fall back to the modeled `signatureVersion` // or auth schemes resolved during endpoint resolution } - - if (!empty($selectedAuthScheme)) { - $command['@context']['signature_version'] = $selectedAuthScheme; - } } return $nextHandler($command); } + + /** + * Prioritizes auth schemes according to user preference order. + * User-preferred schemes that are available will be placed first, + * followed by remaining available schemes. + * + * @param array $resolvableAuthSchemeList Available auth schemes + * @param array|null $commandConfiguredAuthSchemes Command-level preferences (overrides config) + * + * @return array Reordered auth schemes with user preferences first + */ + private function buildAuthSchemeList( + array $resolvableAuthSchemeList, + ?array $commandConfiguredAuthSchemes, + ): array + { + $userConfiguredAuthSchemes = $commandConfiguredAuthSchemes + ?? $this->configuredAuthSchemes; + + if (empty($userConfiguredAuthSchemes)) { + return $resolvableAuthSchemeList; + } + + $prioritizedAuthSchemes = array_intersect( + $userConfiguredAuthSchemes, + $resolvableAuthSchemeList + ); + + // Get remaining schemes not in user preferences + $remainingAuthSchemes = array_diff( + $resolvableAuthSchemeList, + $prioritizedAuthSchemes + ); + + return array_merge($prioritizedAuthSchemes, $remainingAuthSchemes); + } } diff --git a/aws/aws-sdk-php/src/AwsClient.php b/aws/aws-sdk-php/src/AwsClient.php index 55da96b7b..a19b79411 100644 --- a/aws/aws-sdk-php/src/AwsClient.php +++ b/aws/aws-sdk-php/src/AwsClient.php @@ -272,7 +272,7 @@ public function __construct(array $args) if ($this->isUseEndpointV2()) { $this->addEndpointV2Middleware(); } - $this->addAuthSelectionMiddleware(); + $this->addAuthSelectionMiddleware($config['config']); if (!is_null($this->api->getMetadata('awsQueryCompatible'))) { $this->addQueryCompatibleInputMiddleware($this->api); @@ -303,6 +303,12 @@ public function getCredentials() return $fn(); } + public function getToken() + { + $fn = $this->tokenProvider; + return $fn(); + } + public function getEndpoint() { @@ -562,8 +568,14 @@ private function loadAliases($file = null) $aliases = \Aws\load_compiled_json($file); $serviceId = $this->api->getServiceId(); $version = $this->getApi()->getApiVersion(); - if (!empty($aliases['operations'][$serviceId][$version])) { - $this->aliases = array_flip($aliases['operations'][$serviceId][$version]); + $serviceAliases = null; + + if (!is_null($serviceId) && isset($aliases['operations'][$serviceId])) { + $serviceAliases = $aliases['operations'][$serviceId]; + } + + if ($serviceAliases && isset($serviceAliases[$version])) { + $this->aliases = array_flip($serviceAliases[$version]); } } } @@ -589,14 +601,15 @@ private function addRecursionDetection() ); } - private function addAuthSelectionMiddleware() + private function addAuthSelectionMiddleware(array $args) { $list = $this->getHandlerList(); $list->prependBuild( AuthSelectionMiddleware::wrap( $this->authSchemeResolver, - $this->getApi() + $this->getApi(), + $args['auth_scheme_preference'] ?? null ), 'auth-selection' ); diff --git a/aws/aws-sdk-php/src/ClientResolver.php b/aws/aws-sdk-php/src/ClientResolver.php index efd015b87..d8751b114 100644 --- a/aws/aws-sdk-php/src/ClientResolver.php +++ b/aws/aws-sdk-php/src/ClientResolver.php @@ -34,6 +34,7 @@ use Aws\Signature\SignatureProvider; use Aws\Token\Token; use Aws\Token\TokenInterface; +use Aws\Token\BedrockTokenProvider; use Aws\Token\TokenProvider; use GuzzleHttp\Promise\PromiseInterface; use InvalidArgumentException as IAE; @@ -60,6 +61,8 @@ class ClientResolver __CLASS__, '_resolve_from_env_ini' ]; + private const ANONYMOUS_SIGNATURE = 'anonymous'; + private const DPOP_SIGNATURE = 'dpop'; /** @var array Map of types to a corresponding function */ private static $typeMap = [ @@ -206,6 +209,13 @@ class ClientResolver 'fn' => [__CLASS__, '_apply_credentials'], 'default' => [__CLASS__, '_default_credential_provider'], ], + 'auth_scheme_preference' => [ + 'type' => 'value', + 'valid' => ['string', 'array'], + 'doc' => 'Comma-separated list of authentication scheme preferences in priority order. Configure via environment variable `AWS_AUTH_SCHEME_PREFERENCE`, INI config file `auth_scheme_preference`, or client constructor parameter `auth_scheme_preference` (string or array).\nExample: `AWS_AUTH_SCHEME_PREFERENCE=aws.auth#sigv4a,aws.auth#sigv4,smithy.api#httpBearerAuth`', + 'default' => self::DEFAULT_FROM_ENV_INI, + 'fn' => [__CLASS__, '_apply_auth_scheme_preference'], + ], 'token' => [ 'type' => 'value', 'valid' => [TokenInterface::class, CacheInterface::class, 'array', 'bool', 'callable'], @@ -660,7 +670,10 @@ public static function _apply_credentials($value, array &$args) $args['credentials'] = CredentialProvider::fromCredentials( new Credentials('', '') ); - $args['config']['signature_version'] = 'anonymous'; + if ($args['config']['signature_version'] !== self::DPOP_SIGNATURE) { + $args['config']['signature_version'] = self::ANONYMOUS_SIGNATURE; + } + $args['config']['configured_signature_version'] = true; } elseif ($value instanceof CacheInterface) { $args['credentials'] = CredentialProvider::defaultProvider($args); @@ -704,8 +717,17 @@ public static function _apply_token($value, array &$args) } } - public static function _default_token_provider(array $args) + public static function _default_token_provider(array &$args) { + if (($args['config']['signing_name'] ?? '') === 'bedrock') { + // Checks for env value, if present, sets auth_scheme_preference + // to bearer auth and returns a provider + $provider = BedrockTokenProvider::createIfAvailable($args); + if (!is_null($provider)) { + return $provider; + } + } + return TokenProvider::defaultProvider($args); } @@ -1122,6 +1144,32 @@ public static function _default_auth_scheme_resolver(array $args) return new AuthSchemeResolver($args['credentials'], $args['token']); } + public static function _apply_auth_scheme_preference( + string|array|null &$value, + array &$args + ): void + { + // Not provided user's preference auth scheme list + if (empty($value)) { + $value = null; + $args['config']['auth_scheme_preference'] = $value; + return; + } + + // Normalize it as an array + if (is_string($value)) { + $value = explode(',', $value); + } + + // Let`s trim each value to remove break lines, spaces and/or tabs + foreach ($value as &$val) { + $val = trim($val); + } + + // Assign user's preferred auth scheme list + $args['auth_scheme_preference'] = $value; + } + public static function _default_signature_version(array &$args) { if (isset($args['config']['signature_version'])) { diff --git a/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php b/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php index a08595a75..b85b79c3f 100644 --- a/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php +++ b/aws/aws-sdk-php/src/Configuration/ConfigurationResolver.php @@ -68,7 +68,7 @@ public static function resolve( * * @return null | mixed */ - public static function env($key, $expectedType) + public static function env($key, $expectedType = 'string') { // Use config from environment variables, if available $envValue = getenv(self::$envPrefix . strtoupper($key)); @@ -203,6 +203,7 @@ private static function convertType($value, $type) ) { $value = intVal($value); } + return $value; } @@ -237,8 +238,11 @@ private static function retrieveValueFromIniSubsection( "services {$data[$profile]['services']}" ); - if (!isset($services_section[$options['subsection']][$options['key']]) - ) { + if (empty($options['subsection']) || empty($options['key'])) { + return null; + } + + if (!isset($services_section[$options['subsection']][$options['key']])) { return null; } diff --git a/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php b/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php index ea7052236..2c862c0c9 100644 --- a/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php +++ b/aws/aws-sdk-php/src/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php @@ -36,6 +36,7 @@ class AssumeRoleWithWebIdentityCredentialProvider /** @var integer */ private $tokenFileReadAttempts; + /** @var string */ private $source; @@ -72,15 +73,15 @@ public function __construct(array $config = []) $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' - ]); + $region = $config['region'] + ?? getEnv(CredentialProvider::ENV_REGION) + ?: null; + + $this->client = $this->createDefaultStsClient($region); } $this->source = $config['source'] @@ -167,4 +168,34 @@ public function __invoke() ); }); } + + /** + * @param string|null $region + * + * @return StsClient + */ + private function createDefaultStsClient( + ?string $region + ): StsClient + { + if (empty($region)) { + $region = CredentialProvider::FALLBACK_REGION; + trigger_error( + 'NOTICE: STS client created without explicit `region` configuration.' . PHP_EOL + . "Defaulting to {$region}. This fallback behavior may be removed." . PHP_EOL + . 'To avoid potential disruptions, configure a region using one of the following methods:' . PHP_EOL + . '(1) Pass `region` in the `$config` array when calling the provider,' . PHP_EOL + . '(2) Set the `AWS_REGION` environment variable.' . PHP_EOL + . 'OR provide an STS client in the `$config` array when creating the provider as `client`.' . PHP_EOL + . 'See: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/assume-role-with-web-identity-provider.html' + . PHP_EOL, + E_USER_NOTICE + ); + } + + return new StsClient([ + 'credentials' => false, + 'region' => $region + ]); + } } diff --git a/aws/aws-sdk-php/src/Credentials/CredentialProvider.php b/aws/aws-sdk-php/src/Credentials/CredentialProvider.php index 698e60956..b0c54bc28 100644 --- a/aws/aws-sdk-php/src/Credentials/CredentialProvider.php +++ b/aws/aws-sdk-php/src/Credentials/CredentialProvider.php @@ -43,15 +43,19 @@ */ 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'; + public const ENV_ARN = 'AWS_ROLE_ARN'; + public const ENV_KEY = 'AWS_ACCESS_KEY_ID'; + public const ENV_PROFILE = 'AWS_PROFILE'; + public const ENV_ROLE_SESSION_NAME = 'AWS_ROLE_SESSION_NAME'; + public const ENV_SECRET = 'AWS_SECRET_ACCESS_KEY'; + public const ENV_ACCOUNT_ID = 'AWS_ACCOUNT_ID'; + public const ENV_SESSION = 'AWS_SESSION_TOKEN'; + public const ENV_TOKEN_FILE = 'AWS_WEB_IDENTITY_TOKEN_FILE'; + public const ENV_SHARED_CREDENTIALS_FILE = 'AWS_SHARED_CREDENTIALS_FILE'; + public const ENV_CONFIG_FILE = 'AWS_CONFIG_FILE'; + public const ENV_REGION = 'AWS_REGION'; + public const FALLBACK_REGION = 'us-east-1'; + public const REFRESH_WINDOW = 60; /** * Create a default credential provider that @@ -79,6 +83,7 @@ public static function defaultProvider(array $config = []) $cacheable = [ 'web_identity', 'sso', + 'login', 'process_credentials', 'process_config', 'ecs', @@ -91,24 +96,24 @@ public static function defaultProvider(array $config = []) 'env' => self::env(), 'web_identity' => self::assumeRoleWithWebIdentityCredentialProvider($config), ]; - if ( - !isset($config['use_aws_shared_config_files']) + if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] !== false ) { $defaultChain['sso'] = self::sso( $profileName, - self::getHomeDir() . '/.aws/config', + self::getConfigFileName(), $config ); + $defaultChain['login'] = self::login($profileName, $config); $defaultChain['process_credentials'] = self::process(); - $defaultChain['ini'] = self::ini(); + $defaultChain['ini'] = self::ini(null, null, $config); $defaultChain['process_config'] = self::process( 'profile ' . $profileName, - self::getHomeDir() . '/.aws/config' + self::getConfigFileName() ); $defaultChain['ini_config'] = self::ini( 'profile '. $profileName, - self::getHomeDir() . '/.aws/config' + self::getConfigFileName() ); } @@ -224,10 +229,14 @@ public static function memoize(callable $provider) return $creds; } - // Refresh expired credentials. - if (!$creds->isExpired()) { + // Check if credentials are expired or will expire in 1 minute + $needsRefresh = $creds->getExpiration() - time() <= self::REFRESH_WINDOW; + + // Refresh if expired or expiring soon + if (!$needsRefresh && !$creds->isExpired()) { return $creds; } + // Refresh the result and forward the promise. return $result = $provider($creds); }) @@ -332,11 +341,12 @@ public static function instanceProfile(array $config = []) * * @return callable */ - public static function sso($ssoProfileName = 'default', - $filename = null, - $config = [] + public static function sso( + $ssoProfileName = 'default', + $filename = null, + $config = [] ) { - $filename = $filename ?: (self::getHomeDir() . '/.aws/config'); + $filename = $filename ?? self::getConfigFileName(); return function () use ($ssoProfileName, $filename, $config) { if (!@is_readable($filename)) { @@ -482,17 +492,13 @@ public static function assumeRoleWithWebIdentityCredentialProvider(array $config */ public static function ini($profile = null, $filename = null, array $config = []) { - $filename = self::getFileName($filename); + $filename = self::getCredentialsFileName($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; + $preferStaticCredentials = $config['preferStaticCredentials'] ?? false; + $disableAssumeRole = $config['disableAssumeRole'] ?? false; + $stsClient = $config['stsClient'] ?? null; if (!@is_readable($filename)) { return self::reject("Cannot read credentials from $filename"); @@ -576,7 +582,7 @@ public static function ini($profile = null, $filename = null, array $config = [] */ public static function process($profile = null, $filename = null) { - $filename = self::getFileName($filename); + $filename = self::getCredentialsFileName($filename); $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default'); return function () use ($profile, $filename) { @@ -652,6 +658,41 @@ public static function process($profile = null, $filename = null) }; } + /** + * Login credential provider for AWS local development using console credentials + * + * @param string|null $profileName profile containing your console login session information + * @param array $config region used for refresh requests. + * pass `'region' => ` to configure a region, + * otherwise, provider construction falls back to AWS_REGION, + * then the profile specified for `login` + * + * @return callable + */ + public static function login( + ?string $profileName = null, + array $config = [], + ): callable + { + $resolvedProfile = $profileName ?? getenv(self::ENV_PROFILE) ?: 'default'; + + return static function () use ($resolvedProfile, $config) { + try { + $provider = new LoginCredentialProvider( + $resolvedProfile, + $config['region'] ?? null + ); + } catch (\Exception $e) { + return self::reject( + "Failed to initialize login credential provider for profile '{$resolvedProfile}': " + . $e->getMessage() + ); + } + + return $provider(); + }; + } + /** * Assumes role for profile that includes role_arn * @@ -665,13 +706,11 @@ private static function loadRoleProfile( $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); + $roleArn = $roleProfile['role_arn'] ?? ''; + $roleSessionName = $roleProfile['role_session_name'] + ?? 'aws-sdk-php-' . round(microtime(true) * 1000); - if ( - empty($roleProfile['source_profile']) + if (empty($roleProfile['source_profile']) == empty($roleProfile['credential_source']) ) { return self::reject("Either source_profile or credential_source must be set " . @@ -703,9 +742,6 @@ private static function loadRoleProfile( } if (empty($stsClient)) { - $sourceRegion = isset($profiles[$sourceProfileName]['region']) - ? $profiles[$sourceProfileName]['region'] - : 'us-east-1'; $config['preferStaticCredentials'] = true; $sourceCredentials = null; if (!empty($roleProfile['source_profile'])){ @@ -718,11 +754,13 @@ private static function loadRoleProfile( $filename ); } - $stsClient = new StsClient([ - 'credentials' => $sourceCredentials, - 'region' => $sourceRegion, - 'version' => '2011-06-15', - ]); + + $region = $profiles[$sourceProfileName]['region'] + ?? $config['region'] + ?? getEnv(self::ENV_REGION) + ?: null; + + $stsClient = self::createDefaultStsClient($sourceCredentials, $region); } $result = $stsClient->assumeRole([ @@ -742,7 +780,7 @@ private static function loadRoleProfile( * * @return null|string */ - private static function getHomeDir() + public static function getHomeDir() { // On Linux/Unix-like systems, use the HOME environment variable if ($homeDir = getenv('HOME')) { @@ -759,7 +797,7 @@ private static function getHomeDir() /** * Gets profiles from specified $filename, or default ini files. */ - private static function loadProfiles($filename) + public static function loadProfiles($filename) { $profileData = \Aws\parse_ini_file($filename, true, INI_SCANNER_RAW); @@ -767,7 +805,7 @@ private static function loadProfiles($filename) if ($filename === self::getHomeDir() . '/.aws/credentials' && getenv('AWS_SDK_LOAD_NONDEFAULT_CONFIG') ) { - $configFilename = self::getHomeDir() . '/.aws/config'; + $configFilename = self::getConfigFileName(); $configProfileData = \Aws\parse_ini_file($configFilename, true, INI_SCANNER_RAW); foreach ($configProfileData as $name => $profile) { // standardize config profile names @@ -784,7 +822,8 @@ private static function loadProfiles($filename) /** * Gets profiles from ~/.aws/credentials and ~/.aws/config ini files */ - private static function loadDefaultProfiles() { + private static function loadDefaultProfiles() + { $profiles = []; $credFile = self::getHomeDir() . '/.aws/credentials'; $configFile = self::getHomeDir() . '/.aws/config'; @@ -855,15 +894,32 @@ private static function reject($msg) } /** + * Locates shared configuration file by first checking for AWS_CONFIG, + * then falling back to the default location. Returns the path of the + * resolved configuration file. + * + * @return string + */ + public static function getConfigFileName(): string + { + return getenv(self::ENV_CONFIG_FILE) ?: self::getHomeDir() . '/.aws/config'; + } + + /** + * Locates credentials file by first checking for AWS_SHARED_CREDENTIALS_FILE, + * then falling back to the default location. Returns the path of the + * resolved credentials file. + * * @param $filename * @return string */ - private static function getFileName($filename) + public static function getCredentialsFileName($filename): string { if (!isset($filename)) { $filename = getenv(self::ENV_SHARED_CREDENTIALS_FILE) ?: (self::getHomeDir() . '/.aws/credentials'); } + return $filename; } @@ -1021,5 +1077,37 @@ private static function getCredentialsFromSsoService($ssoProfile, $clientRegion, $ssoCredentials = $ssoResponse['roleCredentials']; return $ssoCredentials; } + + /** + * @param CredentialsInterface $credentials + * @param string|null $region + * + * @return StsClient + */ + private static function createDefaultStsClient( + CredentialsInterface|callable $credentials, + ?string $region + ): StsClient + { + if (empty($region)) { + $region = self::FALLBACK_REGION; + trigger_error( + 'NOTICE: STS client created without explicit `region` configuration.' . PHP_EOL + . "Defaulting to `{$region}`. This fallback behavior may be removed." . PHP_EOL + . 'To avoid potential disruptions, configure a `region` using one of the following methods:' . PHP_EOL + . '(1) Add `region` to your source profile in ~/.aws/credentials,' . PHP_EOL + . '(2) Pass `region` in the `$config` array when calling the provider,' . PHP_EOL + . '(3) Set the `AWS_REGION` environment variable.' . PHP_EOL + . 'See: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_assume_role.html#assume-role-with-profile' + . PHP_EOL, + E_USER_NOTICE + ); + } + + return new StsClient([ + 'credentials' => $credentials, + 'region' => $region + ]); + } } diff --git a/aws/aws-sdk-php/src/Credentials/CredentialSources.php b/aws/aws-sdk-php/src/Credentials/CredentialSources.php index 829aa919c..de8a765dd 100644 --- a/aws/aws-sdk-php/src/Credentials/CredentialSources.php +++ b/aws/aws-sdk-php/src/Credentials/CredentialSources.php @@ -19,4 +19,5 @@ final class CredentialSources const PROFILE_SSO = 'profile_sso'; const PROFILE_SSO_LEGACY = 'profile_sso_legacy'; const PROFILE_PROCESS = 'profile_process'; + const PROFILE_LOGIN = 'profile_login'; } diff --git a/aws/aws-sdk-php/src/Credentials/LoginCredentialProvider.php b/aws/aws-sdk-php/src/Credentials/LoginCredentialProvider.php new file mode 100644 index 000000000..21c188dde --- /dev/null +++ b/aws/aws-sdk-php/src/Credentials/LoginCredentialProvider.php @@ -0,0 +1,527 @@ +profileName = $profileName; + $this->client = $this->createSigninClient($profileName, $region); + $this->tokenLocation = $this->resolveTokenLocation($profileName); + } + + /** + * Returns a promise that resolves to AWS credentials + * + * This method loads the cached token, refreshes it if necessary, + * and returns AWS credentials sourced from the access token. + * + * @return Promise\PromiseInterface A promise that resolves to a Credentials object + * @throws CredentialsException If re-authentication is required or credentials cannot be loaded + * @throws SigninException If the token refresh fails with a SigninException + */ + public function __invoke(): Promise\PromiseInterface + { + return Promise\Coroutine::of(function () { + $this->token ??= $this->loadToken(); + $credentials = $this->token[self::KEY_ACCESS_TOKEN]; + + if ($this->shouldRefresh($credentials)) { + try { + $credentials = yield from $this->refresh($credentials); + } catch (CredentialsException $e) { + // For specific re-authentication errors, re-throw + throw $e; + } catch (SigninException $e) { + // For SigninException not handled by refresh(), re-throw + throw new CredentialsException( + 'Unable to refresh login credentials: ' . $e->getAwsErrorMessage(), + $e->getCode(), + $e + ); + } catch (\Exception $e) { + // For other refresh failures, log and continue with existing token + trigger_error( + 'Continuing with existing token after refresh failure: ' . $e->getMessage(), + E_USER_NOTICE + ); + } + } + + yield $credentials; + }); + } + + /** + * Refreshes the access token using the refresh token and returns new credentials, + * or, if refreshed from another source, returns the externally refreshed credentials. + * + * @param Credentials $currentCredentials The current credentials to refresh + * + * @return \Generator Generator that yields and returns refreshed credentials + * @throws CredentialsException If re-authentication is required due to expired or changed credentials + * @throws SigninException If the token refresh fails with a SigninException + * @throws \Exception For unexpected errors during refresh + */ + private function refresh(Credentials $currentCredentials): \Generator + { + // Check for external refresh + if ($refreshedToken = $this->getExternalRefresh($currentCredentials)) { + $this->token = $refreshedToken; + + return $refreshedToken[self::KEY_ACCESS_TOKEN]; + } + + try { + $refreshed = (yield $this->client->createOAuth2TokenAsync([ + self::REQUEST_KEY_TOKEN_INPUT => [ + self::REQUEST_KEY_CLIENT_ID => $this->token[self::REQUEST_KEY_CLIENT_ID], + self::REQUEST_KEY_GRANT_TYPE => self::GRANT_TYPE, + self::REQUEST_KEY_REFRESH_TOKEN => $this->token[self::REQUEST_KEY_REFRESH_TOKEN] + ], + self::KEY_DPOP_KEY => $this->token[self::KEY_DPOP_KEY] + ]))->get(self::RESULT_TOKEN_OUTPUT); + + $newCredentials = self::createCredentials( + $refreshed[self::KEY_ACCESS_TOKEN], + time() + $refreshed[self::RESULT_EXPIRES_IN], + $currentCredentials->getAccountId() + ); + + $this->token[self::KEY_ACCESS_TOKEN] = $newCredentials; + $this->token[self::REQUEST_KEY_REFRESH_TOKEN] = $refreshed[self::REQUEST_KEY_REFRESH_TOKEN]; + } catch (\Exception $e) { + throw $this->handleRefreshException($e); + } + + try { + $this->writeToCache(); + } catch (\JsonException|\RuntimeException $e) { + trigger_error( + 'Failed to update credential cache during refresh: ' . $e->getMessage() + . '. Using refreshed credentials in memory.', + E_USER_NOTICE + ); + } + + return $newCredentials; + } + + /** + * Gets externally refreshed token if token has been refreshed from another source. + * If the new token does not need refreshing, returns it. + * + * @param Credentials $currentCredentials Current credentials to compare against + * @return array|null Returns the updated token array if externally refreshed, null otherwise + */ + private function getExternalRefresh(Credentials $currentCredentials): ?array + { + try { + $latestToken = $this->loadToken(); + $latestCredentials = $latestToken[self::KEY_ACCESS_TOKEN]; + + // Refresh token must be different + if ($latestToken[self::REQUEST_KEY_REFRESH_TOKEN] + === $this->token[self::REQUEST_KEY_REFRESH_TOKEN] + ) { + return null; + } + + // Expiration must be newer + if ($latestCredentials->getExpiration() + <= $currentCredentials->getExpiration() + ) { + return null; + } + + // New token should not need refresh itself + if ($this->shouldRefresh($latestCredentials)) { + return null; + } + + return $latestToken; + } catch (\Exception $e) { + return null; + } + } + + /** + * Writes the updated access token and refresh token to the cache file + * + * @throws \JsonException|\RuntimeException + */ + private function writeToCache(): void + { + $credentials = $this->token[self::KEY_ACCESS_TOKEN]; + $updates = [ + self::KEY_ACCESS_TOKEN => [ + self::KEY_ACCESS_KEY_ID => $credentials->getAccessKeyId(), + self::KEY_SECRET_ACCESS_KEY => $credentials->getSecretKey(), + self::KEY_SESSION_TOKEN => $credentials->getSecurityToken(), + self::KEY_ACCOUNT_ID => $credentials->getAccountId(), + self::KEY_EXPIRES_AT => gmdate('Y-m-d\TH:i:s\Z', $credentials->getExpiration()) + ], + self::REQUEST_KEY_REFRESH_TOKEN => $this->token[self::REQUEST_KEY_REFRESH_TOKEN] + ]; + + $existing = json_decode( + file_get_contents($this->tokenLocation), true, 512, JSON_THROW_ON_ERROR + ); + $merged = array_merge($existing, $updates); + + $result = file_put_contents( + $this->tokenLocation, + json_encode($merged, JSON_THROW_ON_ERROR), + LOCK_EX + ); + + if (!$result) { + throw new \RuntimeException('Failed to write cache file'); + } + } + + /** + * Loads and validates the token from the cache file + * + * @return array The loaded token data with Credentials object, DPoP key, and other fields + * @throws CredentialsException If the cache file is invalid, missing required keys, + * or DPoP key cannot be loaded + */ + private function loadToken(): array + { + try { + $cached = json_decode( + file_get_contents($this->tokenLocation), + true, 512, JSON_THROW_ON_ERROR + ); + } catch (\JsonException $e) { + throw new CredentialsException( + 'Invalid JSON in cache file: ' . $e->getMessage(), + 0, + $e + ); + } + + if (self::hasAllRequiredKeys($cached, self::REQUIRED_CACHE_KEYS) + && self::hasAllRequiredKeys( + $cached[self::KEY_ACCESS_TOKEN] ?? [], + self::REQUIRED_ACCESS_TOKEN_KEYS + ) + ) { + // Convert expiresAt to Unix timestamp + $expiresAt = strtotime($cached[self::KEY_ACCESS_TOKEN][self::KEY_EXPIRES_AT]); + if ($expiresAt === false) { + throw new CredentialsException( + 'Invalid expiration date format in cached token `' + . self::KEY_EXPIRES_AT . '` field.' . self::REAUTHENTICATE_MSG + ); + } + + $cached[self::KEY_ACCESS_TOKEN] = self::createCredentials( + $cached[self::KEY_ACCESS_TOKEN], + $expiresAt, + $cached[self::KEY_ACCESS_TOKEN][self::KEY_ACCOUNT_ID] + ); + + // Load DPoP key + $cached[self::KEY_DPOP_KEY] = openssl_pkey_get_private($cached[self::KEY_DPOP_KEY]); + if ($cached[self::KEY_DPOP_KEY] === false) { + $error = openssl_error_string(); + throw new CredentialsException( + 'Failed to load DPoP private key from cached token for profile ' + . "{$this->profileName}: " . ($error ? ": {$error}" : '.') + . self::REAUTHENTICATE_MSG + ); + } + + return $cached; + } + + throw new CredentialsException( + 'Missing required keys in cached token for profile ' + . $this->profileName . '.' . self::REAUTHENTICATE_MSG + ); + } + + /** + * @param Credentials $credentials The credentials to check for expiration + * + * @return bool True if the token expires within the refresh threshold + */ + private function shouldRefresh(Credentials $credentials): bool + { + return ($credentials->getExpiration() - time()) <= self::DEFAULT_REFRESH_THRESHOLD; + } + + /** + * Handles exceptions thrown during token refresh + * + * @param \Exception $e The exception thrown during refresh + * + * @return \Exception The exception to be thrown (either transformed or original) + */ + private function handleRefreshException(\Exception $e): \Exception + { + if ($e instanceof SigninException) { + trigger_error( + 'Failed to refresh login credentials: ' . $e->getAwsErrorMessage(), + E_USER_NOTICE + ); + + if ($e->getAwsErrorCode() === 'AccessDeniedException') { + $error = strtolower($e->get('error')); + switch ($error) { + case 'token_expired': + return new CredentialsException( + 'Your session has expired.' . self::REAUTHENTICATE_MSG, + 0, + $e + ); + case 'user_credentials_changed': + return new CredentialsException( + 'Unable to refresh credentials because of a change in your password. ' + . 'Please reauthenticate with your new password.', + 0, + $e + ); + case 'insufficient_permissions': + return new CredentialsException( + 'Unable to refresh credentials due to insufficient permissions. ' + . 'You may be missing permission for the `CreateOAuth2Token` action.', + 0, + $e + ); + } + } + + return $e; + } + + // For all other exceptions + trigger_error( + 'Unexpected error refreshing login credentials: ' . $e->getMessage(), + E_USER_NOTICE + ); + + return $e; + } + + /** + * Resolves the cache file location for the given profile + * + * @param string $profileName The profile name to resolve the token location for + * + * @return string The full path to the cache file + * @throws CredentialsException If the profile doesn't exist, lacks login_session, + * or cache file is not readable + */ + private function resolveTokenLocation(string $profileName): string + { + $configFile = CredentialProvider::getConfigFileName(); + if (!is_readable($configFile)) { + throw new CredentialsException( + 'Unable to load configuration file at ' . $configFile + . '. Please ensure the file exists at the specified location.' + ); + } + + // Ensure profile and session are set + $profiles = CredentialProvider::loadProfiles($configFile); + if ($profileName === self::PROFILE_DEFAULT) { + $profileData = $profiles[self::PROFILE_DEFAULT] ?? null; + } elseif (str_starts_with($profileName, self::PROFILE_SECONDARY)) { + $profileData = $profiles[$profileName] ?? null; + } else { + // Try without prefix first, then with prefix + $profileData = $profiles[$profileName] + ?? $profiles[self::PROFILE_SECONDARY . $profileName] + ?? null; + } + + if (!$profileData) { + throw new CredentialsException( + "Profile '{$profileName}' does not exist. " + . "Please ensure the specified profile is set at {$configFile}." + ); + } + + if (empty($session = $profileData[self::KEY_PROFILE_LOGIN_SESSION] ?? null)) { + throw new CredentialsException( + "Profile '{$profileName}' did not contain a " + . self::KEY_PROFILE_LOGIN_SESSION . " value. " + . 're-authentication using `aws login` may be needed.' + ); + } + + // Resolve location and ensure it exists + $cacheDirectory = getenv(self::ENV_CACHE_DIRECTORY) + ?: CredentialProvider::getHomeDir() . self::DEFAULT_CACHE_DIRECTORY; + $cacheFile = $cacheDirectory . DIRECTORY_SEPARATOR . hash('sha256', trim($session)) . '.json'; + if (!@is_readable($cacheFile)) { + throw new CredentialsException( + "Failed to load cached credentials for profile " + . "'{$profileName}'." . self::REAUTHENTICATE_MSG + ); + } + + return $cacheFile; + } + + /** + * Creates a SigninClient configured for DPoP authentication + * + * @param string $profile + * @param string|null $region The AWS region for the Signin service + * + * @return SigninClient A configured SigninClient instance with DPoP signature version + */ + private function createSigninClient(string $profile, ?string $region): SigninClient + { + $resolvedRegion = $region + ?? ConfigurationResolver::env(self::KEY_CLIENT_REGION) + ?? ConfigurationResolver::ini(self::KEY_CLIENT_REGION, 'string', $profile) + ?? ConfigurationResolver::ini( + self::KEY_CLIENT_REGION, + 'string', + self::PROFILE_SECONDARY . $profile + ); + + if (empty($resolvedRegion)) { + throw new CredentialsException( + 'Unable to determine region for the Sign-In service client ' + . ' used for refreshing Login credentials. You can provide a region in-code ' + . 'when constructing the provider, by setting the AWS_REGION environment variable' + . ', or by setting a `region` in your specified profile.' + ); + } + + return new SigninClient([ + self::KEY_CLIENT_REGION => $resolvedRegion, + self::KEY_CLIENT_SIGNATURE_VERSION => self::CLIENT_SIGNATURE_DPOP, + self::KEY_CLIENT_CREDENTIALS => false + ]); + } + + /** + * Creates a Credentials object from token data + * + * @param array $tokenData The token data containing access key, secret, and session token + * @param int $expiration Unix timestamp for credential expiration + * @param string $accountId The AWS account ID + * + * @return Credentials The created Credentials object + */ + private static function createCredentials( + array $tokenData, + int $expiration, + string $accountId + ): Credentials + { + return new Credentials( + $tokenData[self::KEY_ACCESS_KEY_ID], + $tokenData[self::KEY_SECRET_ACCESS_KEY], + $tokenData[self::KEY_SESSION_TOKEN], + $expiration, + $accountId, + CredentialSources::PROFILE_LOGIN + ); + } + + /** + * Checks if all required keys are present and non-empty in the data array + * + * @param array $data The data array to check + * @param array $requiredKeys The list of keys that must be present and non-empty + * + * @return bool True if all required keys are present and non-empty, false otherwise + */ + private static function hasAllRequiredKeys( + array $data, + array $requiredKeys + ): bool + { + foreach ($requiredKeys as $key) { + if (empty($data[$key])) { + return false; + } + } + + return true; + } +} diff --git a/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV2.php b/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV2.php index 2c7e7c26f..9c8bca7b3 100644 --- a/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV2.php +++ b/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV2.php @@ -9,6 +9,10 @@ */ abstract class AbstractCryptoClientV2 { + const KEY_COMMITMENT_POLICIES = [ + 'FORBID_ENCRYPT_ALLOW_DECRYPT' + ]; + public static $supportedCiphers = ['gcm']; public static $supportedKeyWraps = [ @@ -19,6 +23,18 @@ abstract class AbstractCryptoClientV2 public static $legacySecurityProfiles = ['V2_AND_LEGACY']; + /** + * Returns if the passed policy name is supported for encryption by the SDK. + * + * @param string $policy The name of a key commitment policy to verify is registered. + * + * @return bool If the key commitment policy passed is in our supported list. + */ + public static function isSupportedKeyCommitmentPolicy(string $policy): bool + { + return in_array($policy, self::KEY_COMMITMENT_POLICIES, strict: true); + } + /** * Returns if the passed cipher name is supported for encryption by the SDK. * diff --git a/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV3.php b/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV3.php new file mode 100644 index 000000000..977ea0bf9 --- /dev/null +++ b/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV3.php @@ -0,0 +1,151 @@ +value; + } + + public function isLegacy(): bool + { + return match ($this) { + self::ALG_AES_256_CBC_IV16_NO_KDF => true, + default => false, + }; + } + + public function isKeyCommitting(): bool + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => true, + default => false, + }; + } + + public function getDataKeyAlgorithm(): string + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF, + self::ALG_AES_256_CBC_IV16_NO_KDF => "AES", + }; + } + + public function getDataKeyLengthBits(): string + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF, + self::ALG_AES_256_CBC_IV16_NO_KDF => "256", + }; + } + + public function getCipherName(): string + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF => "gcm", + self::ALG_AES_256_CBC_IV16_NO_KDF => "cbc", + }; + } + + public function getCipherBlockSizeBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF, + self::ALG_AES_256_CBC_IV16_NO_KDF => 128, + }; + } + + public function getCipherBlockSizeBytes(): int + { + return $this->getCipherBlockSizeBits() / 8; + } + + public function getIvLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF => 96, + self::ALG_AES_256_CBC_IV16_NO_KDF => 128, + }; + } + + public function getIvLengthBytes(): int + { + return $this->getIvLengthBits() / 8; + } + + public function getCipherTagLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF => 128, + self::ALG_AES_256_CBC_IV16_NO_KDF => 0, + }; + } + + public function getCipherTagLengthInBytes(): int + { + return $this->getCipherTagLengthBits() / 8; + } + + public function getCipherMaxContentLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF => AlgorithmConstants::GCM_MAX_CONTENT_LENGTH_BITS, + self::ALG_AES_256_CBC_IV16_NO_KDF => AlgorithmConstants::CBC_MAX_CONTENT_LENGTH_BYTES, + }; + } + + public function getCipherMaxContentLengthBytes(): int + { + return $this->getCipherMaxContentLengthBits() / 8; + } + + public function getHashingAlgorithm(): string + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => "sha512", + default => "", + }; + } + + public function getDerivationInputKeyLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => 256, + default => 0, + }; + } + + public function getDerivationInputKeyLengthBytes(): int + { + return $this->getDerivationInputKeyLengthBits() / 8; + } + + public function getDerivationOutputKeyLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => 256, + default => 0, + }; + } + + public function getDerivationOutputKeyLengthBytes(): int + { + return $this->getDerivationOutputKeyLengthBits() / 8; + } + + public function getCommitmentInputKeyLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => 256, + default => 0, + }; + } + + public function getCommitmentInputKeyLengthBytes(): int + { + return $this->getCommitmentInputKeyLengthBits() / 8; + } + + public function getCommitmentOutputKeyLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => 224, + default => 0, + }; + } + + public function getCommitmentOutputKeyLengthBytes(): int + { + return $this->getCommitmentOutputKeyLengthBits() / 8; + } + + public function getKeyCommitmentSaltLengthBits(): int + { + return match ($this) { + self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY => 224, + default => 0, + }; + } + + //= ../specification/s3-encryption/client.md#key-commitment + //# The S3EC MUST validate the configured Encryption Algorithm against the provided key commitment policy. + public static function validateCommitmentPolicyOnEncrypt( + array $cipherOptions, + string $keyCommitmentPolicy + ): self { + $cipherOptions['Cipher'] = strtolower($cipherOptions['Cipher']); + //= ../specification/s3-encryption/client.md#encryption-algorithm + //# The S3EC MUST validate that the configured encryption algorithm is not legacy. + if (!S3EncryptionClientV3::isSupportedCipher($cipherOptions['Cipher'])) { + //= ../specification/s3-encryption/client.md#encryption-algorithm + //# If the configured encryption algorithm is legacy, then the S3EC MUST throw an exception. + throw new \InvalidArgumentException('The cipher requested is not' + . ' supported by the SDK.'); + } + + if (empty($cipherOptions['KeySize'])) { + $cipherOptions['KeySize'] = 256; + } + + if (!is_int($cipherOptions['KeySize'])) { + throw new \InvalidArgumentException('The cipher "KeySize" must be' + . ' an integer.'); + } + + if (!MaterialsProviderV3::isSupportedKeySize($cipherOptions['KeySize'])) { + throw new \InvalidArgumentException('The cipher "KeySize" requested' + . ' is not supported by AES (256).'); + } + + //= ../specification/s3-encryption/key-commitment.md#commitment-policy + //# When the commitment policy is FORBID_ENCRYPT_ALLOW_DECRYPT, the S3EC MUST NOT encrypt using an algorithm suite which supports key commitment. + if ($keyCommitmentPolicy === 'FORBID_ENCRYPT_ALLOW_DECRYPT') { + return self::ALG_AES_256_GCM_IV12_TAG16_NO_KDF; + } else { + //= ../specification/s3-encryption/key-commitment.md#commitment-policy + //# When the commitment policy is REQUIRE_ENCRYPT_ALLOW_DECRYPT, the S3EC MUST only encrypt using an algorithm suite which supports key commitment. + + //= ../specification/s3-encryption/key-commitment.md#commitment-policy + //# When the commitment policy is REQUIRE_ENCRYPT_REQUIRE_DECRYPT, the S3EC MUST only encrypt using an algorithm suite which supports key commitment. + return self::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY; + } + } +} diff --git a/aws/aws-sdk-php/src/Crypto/DecryptionTraitV2.php b/aws/aws-sdk-php/src/Crypto/DecryptionTraitV2.php index ed63e0bef..d250f1d8d 100644 --- a/aws/aws-sdk-php/src/Crypto/DecryptionTraitV2.php +++ b/aws/aws-sdk-php/src/Crypto/DecryptionTraitV2.php @@ -60,48 +60,138 @@ public function decrypt( MaterialsProviderInterfaceV2 $provider, MetadataEnvelope $envelope, array $options = [] - ) { - $options['@CipherOptions'] = !empty($options['@CipherOptions']) - ? $options['@CipherOptions'] - : []; - $options['@CipherOptions']['Iv'] = base64_decode( - $envelope[MetadataEnvelope::IV_HEADER] - ); + ) + { + $commitmentPolicy = $this->getKeyCommitmentPolicy($options); + unset($options['@CommitmentPolicy']); + if (isset($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3])) { + if ($commitmentPolicy !== "FORBID_ENCRYPT_ALLOW_DECRYPT") { + throw new CryptoException( + "The requested item is encrypted" + . " with Key Commitment. The current policy {$commitmentPolicy}" + . " conflicts with the object metadata. Select an appropriate" + . " '@CommitmentPolicy' to decrypt this item." + ); + } + $algorithmSuite = AlgorithmSuite::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY; + $options['@CipherOptions'] = $options['@CipherOptions'] ?? []; + $options['@CipherOptions']['Iv'] = str_repeat("\1", 12); + $options['@CipherOptions']['TagLength'] = $algorithmSuite->getCipherTagLengthInBytes(); + $materialDescription = json_decode( + $envelope[MetadataEnvelope::ENCRYPTION_CONTEXT_V3], + true + ); - $options['@CipherOptions']['TagLength'] = - $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8; - $cek = $provider->decryptCek( - base64_decode( - $envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER] - ), - json_decode( - $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], - true - ), - $options - ); - $options['@CipherOptions']['KeySize'] = strlen($cek) * 8; - $options['@CipherOptions']['Cipher'] = $this->getCipherFromAesName( - $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] - ); + $cek = $provider->decryptCek( + base64_decode($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3]), + $materialDescription, + $options + ); - $this->validateOptionsAndEnvelope($options, $envelope); + $options['@CipherOptions']['KeySize'] = strlen($cek) * 8; + $options['@CipherOptions']['Cipher'] = $this->getCipherFromAesName( + $this->numericalContenCipherToAesName($envelope) + ); + $this->validateOptionsAndEnvelope($options, $envelope); - $decryptionStream = $this->getDecryptingStream( - $cipherText, - $cek, - $options['@CipherOptions'] - ); - unset($cek); + $messageId = base64_decode($envelope[MetadataEnvelope::MESSAGE_ID_V3]); + $commitmentKey = base64_decode($envelope[MetadataEnvelope::KEY_COMMITMENT_V3]); + + if (strlen($messageId) !== ($algorithmSuite->getKeyCommitmentSaltLengthBits()) / 8) { + throw new CryptoException("Invalid MessageId length found in object envelope."); + } + + if (strlen($commitmentKey) !== $algorithmSuite->getCommitmentOutputKeyLengthBytes()) { + throw new CryptoException("Invalid Commitment Key length found in object envelope."); + } + + $decryptionStream = $this->getCommitingDecryptingStream( + $cipherText, + $cek, + $options['@CipherOptions'], + $messageId, + $commitmentKey, + $algorithmSuite + ); + unset($cek); + + return $decryptionStream; + } else { + $options['@CipherOptions'] = $options['@CipherOptions'] ?? []; + $options['@CipherOptions']['Iv'] = base64_decode( + $envelope[MetadataEnvelope::IV_HEADER] + ); + + $options['@CipherOptions']['TagLength'] = + $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8; + + $cek = $provider->decryptCek( + base64_decode( + $envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER] + ), + json_decode( + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], + true + ), + $options + ); + $options['@CipherOptions']['KeySize'] = strlen($cek) * 8; + $options['@CipherOptions']['Cipher'] = $this->getCipherFromAesName( + $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] + ); + + $this->validateOptionsAndEnvelope($options, $envelope); + + $decryptionStream = $this->getDecryptingStream( + $cipherText, + $cek, + $options['@CipherOptions'] + ); + unset($cek); + + return $decryptionStream; + } + } + + private function buildMaterialDescription( + MetadataEnvelope $envelope + ): array + { + switch ($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]) { + case 12: + return ['aws:x-amz-cek-alg' => '115']; + default: + throw new CryptoException( + "Unknown Encrypted Data Key " + . "wrapping algorithm found: " + . "{$envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]}" + ); + } + } + + private function numericalContenCipherToAesName( + MetadataEnvelope $envelope + ): string + { + switch ($envelope[MetadataEnvelope::CONTENT_CIPHER_V3]) { + case 115: + return 'AES/GCM/NoPadding'; + default: + throw new CryptoException( + "Unknown Encrypted Data Key " + . "wrapping algorithm found: " + . "{$envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]}" + ); + } - return $decryptionStream; } private function getTagFromCiphertextStream( StreamInterface $cipherText, $tagLength - ) { + ) + { $cipherTextSize = $cipherText->getSize(); if ($cipherTextSize == null || $cipherTextSize <= 0) { throw new \RuntimeException('Cannot decrypt a stream of unknown' @@ -117,7 +207,8 @@ private function getTagFromCiphertextStream( private function getStrippedCiphertextStream( StreamInterface $cipherText, $tagLength - ) { + ) + { $cipherTextSize = $cipherText->getSize(); if ($cipherTextSize == null || $cipherTextSize <= 0) { throw new \RuntimeException('Cannot decrypt a stream of unknown' @@ -130,7 +221,7 @@ private function getStrippedCiphertextStream( ); } - private function validateOptionsAndEnvelope($options, $envelope) + private function validateOptionsAndEnvelope($options, $envelope): void { $allowedCiphers = AbstractCryptoClientV2::$supportedCiphers; $allowedKeywraps = AbstractCryptoClientV2::$supportedKeyWraps; @@ -160,34 +251,38 @@ private function validateOptionsAndEnvelope($options, $envelope) . " This profile allows decryption with: " . implode(", ", $allowedCiphers)); } - if (!in_array( - $envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], - $allowedKeywraps - )) { - if (in_array( - $envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], - AbstractCryptoClient::$supportedKeyWraps) - ) { - throw $v1SchemaException; + + if (isset($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3])) { + if ($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3] !== '12') { + throw new CryptoException("The requested object is encrypted with" + . " the keywrap schema '{$envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]}'," + . " which is not supported for decryption with the current security" + . " profile."); } - throw new CryptoException("The requested object is encrypted with" - . " the keywrap schema '{$envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER]}'," - . " which is not supported for decryption with the current security" - . " profile."); - } + } else { + if (!in_array($envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], $allowedKeywraps)) { + if (in_array($envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], AbstractCryptoClient::$supportedKeyWraps)) { + throw $v1SchemaException; + } - $matdesc = json_decode( - $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], - true - ); - if (isset($matdesc['aws:x-amz-cek-alg']) - && $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] !== - $matdesc['aws:x-amz-cek-alg'] - ) { - throw new CryptoException("There is a mismatch in specified content" - . " encryption algrithm between the materials description value" - . " and the metadata envelope value: {$matdesc['aws:x-amz-cek-alg']}" - . " vs. {$envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]}."); + throw new CryptoException("The requested object is encrypted with" + . " the keywrap schema '{$envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER]}'," + . " which is not supported for decryption with the current security" + . " profile."); + } + $matdesc = json_decode( + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], + true + ); + if (isset($matdesc['aws:x-amz-cek-alg']) + && ($envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] + !== $matdesc['aws:x-amz-cek-alg']) + ) { + throw new CryptoException("There is a mismatch in specified content" + . " encryption algrithm between the materials description value" + . " and the metadata envelope value: {$matdesc['aws:x-amz-cek-alg']}" + . " vs. {$envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]}."); + } } } @@ -210,14 +305,15 @@ protected function getDecryptingStream( $cipherText, $cek, $cipherOptions - ) { + ) + { $cipherTextStream = Psr7\Utils::streamFor($cipherText); switch ($cipherOptions['Cipher']) { case 'gcm': $cipherOptions['Tag'] = $this->getTagFromCiphertextStream( - $cipherTextStream, - $cipherOptions['TagLength'] - ); + $cipherTextStream, + $cipherOptions['TagLength'] + ); return new AesGcmDecryptingStream( $this->getStrippedCiphertextStream( @@ -227,9 +323,7 @@ protected function getDecryptingStream( $cek, $cipherOptions['Iv'], $cipherOptions['Tag'], - $cipherOptions['Aad'] = isset($cipherOptions['Aad']) - ? $cipherOptions['Aad'] - : '', + $cipherOptions['Aad'] = $cipherOptions['Aad'] ?? '', $cipherOptions['TagLength'] ?: null, $cipherOptions['KeySize'] ); @@ -246,4 +340,85 @@ protected function getDecryptingStream( ); } } + + /** + * Generates a stream that wraps the cipher text with the proper cipher and + * uses the content encryption key (CEK) to derive both a derived content encryption key + * and a commitment key to decrypt the data when read. + * + * @param string $cipherText Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * @param string $messageId a string value used to calculate both a commitment + * key and derived content encryption key + * @param string $commitmentKey a string value to compare with the calculated commitment + * key value, if the values don't match an exception is raised. + * + * @return AesStreamInterface | CryptoException + * + * @internal + */ + protected function getCommitingDecryptingStream( + string $cipherText, + string $cek, + array $cipherOptions, + string $messageId, + string $commitmentKey, + AlgorithmSuite $algorithmSuite + ): AesStreamInterface|CryptoException + { + $algorithmSuiteIdAsBytes = pack('n', $algorithmSuite->getId()); + $derivedEncryptionKeyInfo = $algorithmSuiteIdAsBytes . "DERIVEKEY"; + $commitmentKeyInfo = $algorithmSuiteIdAsBytes . "COMMITKEY"; + $derivedEncryptionKey = hash_hkdf( + $algorithmSuite->getHashingAlgorithm(), + $cek, + $algorithmSuite->getDerivationOutputKeyLengthBytes(), + $derivedEncryptionKeyInfo, + $messageId + ); + $calculatedCommitmentKey = hash_hkdf( + $algorithmSuite->getHashingAlgorithm(), + $cek, + $algorithmSuite->getCommitmentOutputKeyLengthBytes(), + $commitmentKeyInfo, + $messageId + ); + + if ($commitmentKey != $calculatedCommitmentKey) { + throw new CryptoException("Calculated commitment key does " + . "not match expected commitment key value "); + } + + $cipherTextStream = Psr7\Utils::streamFor($cipherText); + switch ($cipherOptions['Cipher']) { + case 'gcm': + $cipherOptions['Tag'] = $this->getTagFromCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ); + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + $algorithmSuiteIdAsBytes + : $algorithmSuiteIdAsBytes; + + return new AesGcmDecryptingStream( + $this->getStrippedCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ), + $derivedEncryptionKey, + $cipherOptions['Iv'], + $cipherOptions['Tag'], + $cipherOptions['Aad'], + $cipherOptions['TagLength'] ?: null, + $cipherOptions['KeySize'] + ); + default: + throw new CryptoException("Unsupported Cipher used for key commitment messages." + . " Found {$cipherOptions["Cipher"]}. Only 'gcm' is supported."); + } + } } diff --git a/aws/aws-sdk-php/src/Crypto/DecryptionTraitV3.php b/aws/aws-sdk-php/src/Crypto/DecryptionTraitV3.php new file mode 100644 index 000000000..3b809f845 --- /dev/null +++ b/aws/aws-sdk-php/src/Crypto/DecryptionTraitV3.php @@ -0,0 +1,530 @@ +checkEnvelopeForExclusiveMapKeys( + $envelope, + MetadataEnvelope::getV2Fields(), + "Expected V3 only fields but found V2 fields in header metadata." + ); + // PHP only supports one commiting algorithm suite + $algorithmSuite = AlgorithmSuite::ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY; + $options['@CipherOptions'] = $options['@CipherOptions'] ?? []; + $options['@CipherOptions']['Iv'] = str_repeat("\1", 12); + $options['@CipherOptions']['TagLength'] = $algorithmSuite->getCipherTagLengthInBytes(); + + //= ../specification/s3-encryption/data-format/content-metadata.md#v3-only + //= type=implication + //# - The wrapping algorithm value "12" MUST be translated to kms+context upon retrieval, and vice versa on write. + $materialDescription = $this->buildMaterialDescription($envelope); + + $cek = $provider->decryptCek( + base64_decode($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3]), + $materialDescription, + $options + ); + + $options['@CipherOptions']['KeySize'] = strlen($cek) * 8; + $options['@CipherOptions']['Cipher'] = $this->getCipherFromAesName( + $this->numericalContenCipherToAesName($envelope) + ); + $this->validateOptionsAndEnvelope($options, $envelope, $commitmentPolicy); + + $messageId = base64_decode($envelope[MetadataEnvelope::MESSAGE_ID_V3]); + $commitmentKey = base64_decode($envelope[MetadataEnvelope::KEY_COMMITMENT_V3]); + + if (strlen($messageId) !== ($algorithmSuite->getKeyCommitmentSaltLengthBits()) / 8) { + throw new CryptoException("Invalid MessageId length found in object envelope."); + } + + if (strlen($commitmentKey) !== $algorithmSuite->getCommitmentOutputKeyLengthBytes()) { + throw new CryptoException("Invalid Commitment Key length found in object envelope."); + } + + $decryptionStream = $this->getCommitingDecryptingStream( + $cipherText, + $cek, + $options['@CipherOptions'], + $messageId, + $commitmentKey, + $algorithmSuite + ); + unset($cek); + + return $decryptionStream; + } else { + //= ../specification/s3-encryption/key-commitment.md#commitment-policy + //# When the commitment policy is REQUIRE_ENCRYPT_REQUIRE_DECRYPT, + //# the S3EC MUST NOT allow decryption using algorithm suites which do not support key commitment. + if ($commitmentPolicy == "REQUIRE_ENCRYPT_REQUIRE_DECRYPT") { + //= ../specification/s3-encryption/client.md#key-commitment + //# If the configured Encryption Algorithm is incompatible with + //# the key commitment policy, then it MUST throw an exception. + throw new CryptoException("Message is encrypted with a " + . "non commiting algorithm but commitment policy is set " + . "to {$commitmentPolicy}. Select a valid commitment " + . "policy to decrypt this object. "); + } + $this->checkEnvelopeForExclusiveMapKeys( + $envelope, + MetadataEnvelope::getV3Fields(), + "Expected V2 only fields but found V3 fields in header metadata." + ); + $options['@CipherOptions'] = $options['@CipherOptions'] ?? []; + $options['@CipherOptions']['Iv'] = base64_decode( + $envelope[MetadataEnvelope::IV_HEADER] + ); + + $options['@CipherOptions']['TagLength'] = + $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] / 8; + + $cek = $provider->decryptCek( + base64_decode( + $envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER] + ), + json_decode( + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], + true + ), + $options + ); + $options['@CipherOptions']['KeySize'] = strlen($cek) * 8; + $options['@CipherOptions']['Cipher'] = $this->getCipherFromAesName( + $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] + ); + + //= ../specification/s3-encryption/decryption.md#key-commitment + //= type=implication + //# The S3EC MUST validate the algorithm suite used for decryption + //# against the key commitment policy before attempting to decrypt + //# the content ciphertext. + $this->validateOptionsAndEnvelope($options, $envelope, $commitmentPolicy); + + $decryptionStream = $this->getNonCommitingDecryptingStream( + $cipherText, + $cek, + $options['@CipherOptions'] + ); + unset($cek); + + return $decryptionStream; + } + } + + private function checkEnvelopeForExclusiveMapKeys( + MetadataEnvelope $envelope, + array $exclusiveKeys, + string $errorMessage + ): void + { + foreach ($exclusiveKeys as $exclusiveKey) { + //= ../specification/s3-encryption/data-format/content-metadata.md#determining-s3ec-object-status + //# If there are multiple mapkeys which are meant to be exclusive, such as "x-amz-key", "x-amz-key-v2", and "x-amz-3" then the S3EC SHOULD throw an exception. + if (isset($envelope[$exclusiveKey])) { + throw new CryptoException($errorMessage); + } + } + } + + private function numericalContenCipherToAesName( + MetadataEnvelope $envelope + ): string + { + switch ($envelope[MetadataEnvelope::CONTENT_CIPHER_V3]) { + case 115: + return 'AES/GCM/NoPadding'; + default: + throw new CryptoException( + "Unknown Encrypted Data Key " + . "wrapping algorithm found: " + . "{$envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]}" + ); + } + + } + + private function buildMaterialDescription( + MetadataEnvelope $envelope + ): array + { + switch ($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]) { + case 12: + return json_decode( + $envelope[MetadataEnvelope::ENCRYPTION_CONTEXT_V3], + true + ); + default: + throw new CryptoException( + "Unknown Encrypted Data Key " + . "wrapping algorithm found: " + . "{$envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]}" + ); + } + } + + private function getTagFromCiphertextStream( + StreamInterface $cipherText, + $tagLength + ): string + { + $cipherTextSize = $cipherText->getSize(); + if ($cipherTextSize == null || $cipherTextSize <= 0) { + throw new \RuntimeException('Cannot decrypt a stream of unknown size'); + } + + return (string) new LimitStream( + $cipherText, + $tagLength, + $cipherTextSize - $tagLength + ); + } + + private function getStrippedCiphertextStream( + StreamInterface $cipherText, + $tagLength + ): LimitStream + { + $cipherTextSize = $cipherText->getSize(); + if ($cipherTextSize == null || $cipherTextSize <= 0) { + throw new \RuntimeException('Cannot decrypt a stream of unknown size'); + } + + return new LimitStream( + $cipherText, + $cipherTextSize - $tagLength, + 0 + ); + } + + private function validateOptionsAndEnvelope( + array $options, + MetadataEnvelope $envelope, + string $commitmentPolicy + ): void + { + //= ../specification/s3-encryption/key-commitment.md#commitment-policy + //# When the commitment policy is REQUIRE_ENCRYPT_ALLOW_DECRYPT, + //# the S3EC MUST allow decryption using algorithm suites which do not support key commitment. + + //= ../specification/s3-encryption/key-commitment.md#commitment-policy + //# When the commitment policy is FORBID_ENCRYPT_ALLOW_DECRYPT, + //# the S3EC MUST allow decryption using algorithm suites which do not support key commitment. + + $allowedCiphers = AbstractCryptoClientV3::$supportedCiphers; + $allowedKeywraps = AbstractCryptoClientV3::$supportedKeyWraps; + //= ../specification/s3-encryption/client.md#enable-legacy-wrapping-algorithms + //# When enabled, the S3EC MUST be able to decrypt objects encrypted with all + //# supported wrapping algorithms (both legacy and fully supported). + if ($options['@SecurityProfile'] == 'V3_AND_LEGACY') { + $allowedCiphers = array_unique(array_merge( + $allowedCiphers, + AbstractCryptoClient::$supportedCiphers + )); + $allowedKeywraps = array_unique(array_merge( + $allowedKeywraps, + AbstractCryptoClient::$supportedKeyWraps + )); + } + + $v1SchemaException = new CryptoException("The requested object is encrypted" + . " with V1 encryption schemas that have been disabled by" + . " client configuration @SecurityProfile=V3. Retry with" + . " V3_AND_LEGACY enabled or reencrypt the object."); + + if (!in_array($options['@CipherOptions']['Cipher'], $allowedCiphers)) { + //= ../specification/s3-encryption/client.md#enable-legacy-wrapping-algorithms + //= type=implication + //# When disabled, the S3EC MUST NOT decrypt objects encrypted using legacy wrapping algorithms; + //# it MUST throw an exception when attempting to decrypt an object encrypted with a legacy wrapping algorithm. + + //= ../specification/s3-encryption/decryption.md#legacy-decryption + //# The S3EC MUST NOT decrypt objects encrypted using legacy unauthenticated algorithm suites unless specifically configured to do so. + if (in_array($options['@CipherOptions']['Cipher'], AbstractCryptoClient::$supportedCiphers)) { + //= ../specification/s3-encryption/decryption.md#legacy-decryption + //# If the S3EC is not configured to enable legacy unauthenticated content decryption, the client MUST throw an exception when attempting to decrypt an object encrypted with a legacy unauthenticated algorithm suite. + throw $v1SchemaException; + } + + throw new CryptoException("The requested object is encrypted with" + . " the cipher '{$options['@CipherOptions']['Cipher']}', which is not" + . " supported for decryption with the selected security profile." + . " This profile allows decryption with: " + . implode(", ", $allowedCiphers)); + } + + if (isset($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3])) { + if ($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3] !== '12') { + throw new CryptoException("The requested object is encrypted with" + . " the keywrap schema '{$envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]}'," + . " which is not supported for decryption with the current security" + . " profile."); + } + } else { + if (!in_array($envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], $allowedKeywraps)) { + if (in_array($envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER], AbstractCryptoClient::$supportedKeyWraps)) { + throw $v1SchemaException; + } + + throw new CryptoException("The requested object is encrypted with" + . " the keywrap schema '{$envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER]}'," + . " which is not supported for decryption with the current security" + . " profile."); + } + $matdesc = json_decode( + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER], + true + ); + if (isset($matdesc['aws:x-amz-cek-alg']) + && ($envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] + !== $matdesc['aws:x-amz-cek-alg']) + ) { + throw new CryptoException("There is a mismatch in specified content" + . " encryption algrithm between the materials description value" + . " and the metadata envelope value: {$matdesc['aws:x-amz-cek-alg']}" + . " vs. {$envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]}."); + } + } + //= ../specification/s3-encryption/data-format/content-metadata.md#determining-s3ec-object-status + //= type=implication + //# - If the metadata contains "x-amz-3" and "x-amz-d" and "x-amz-i" then the object MUST be considered an S3EC-encrypted object using the V3 format. + if (!MetadataEnvelope::isV3Envelope($envelope) + && $commitmentPolicy == "REQUIRE_ENCRYPT_REQUIRE_DECRYPT" + ) { + //= ../specification/s3-encryption/decryption.md#key-commitment + //# If the commitment policy requires decryption using a committing algorithm suite + //# and the algorithm suite associated with the object does not support key commitment, + //# then the S3EC MUST throw an exception. + throw new CryptoException("There is a mismatch in specified" + . "commitment policy value {$commitmentPolicy} and" + . "Metadata Envelope found in object."); + } + + } + + /** + * Generates a stream that wraps the cipher text with the proper cipher and + * uses the content encryption key (CEK) to decrypt the data when read. + * + * @param string $cipherText Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * + * @return AesStreamInterface + * + * @internal + */ + protected function getNonCommitingDecryptingStream( + string $cipherText, + string $cek, + array $cipherOptions + ): AesStreamInterface + { + $cipherTextStream = Psr7\Utils::streamFor($cipherText); + switch ($cipherOptions['Cipher']) { + case 'gcm': + $cipherOptions['Tag'] = $this->getTagFromCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ); + + return new AesGcmDecryptingStream( + $this->getStrippedCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ), + $cek, + $cipherOptions['Iv'], + $cipherOptions['Tag'], + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + : '', + $cipherOptions['TagLength'] ?: null, + $cipherOptions['KeySize'] + ); + default: + $cipherMethod = $this->buildCipherMethod( + $cipherOptions['Cipher'], + $cipherOptions['Iv'], + $cipherOptions['KeySize'] + ); + + return new AesDecryptingStream( + $cipherTextStream, + $cek, + $cipherMethod + ); + } + } + + /** + * Generates a stream that wraps the cipher text with the proper cipher and + * uses the content encryption key (CEK) to derive both a derived content encryption key + * and a commitment key to decrypt the data when read. + * + * @param string $cipherText Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * @param string $messageId a string value used to calculate both a commitment + * key and derived content encryption key + * @param string $commitmentKey a string value to compare with the calculated commitment + * key value, if the values don't match an exception is raised. + * + * @return AesStreamInterface | CryptoException + * + * @internal + */ + protected function getCommitingDecryptingStream( + string $cipherText, + string $cek, + array $cipherOptions, + string $messageId, + string $commitmentKey, + AlgorithmSuite $algorithmSuite + ): AesStreamInterface|CryptoException + { + $algorithmSuiteIdAsBytes = pack('n', $algorithmSuite->getId()); + $derivedEncryptionKeyInfo = $algorithmSuiteIdAsBytes . "DERIVEKEY"; + $commitmentKeyInfo = $algorithmSuiteIdAsBytes . "COMMITKEY"; + $calculatedCommitmentKey = hash_hkdf( + $algorithmSuite->getHashingAlgorithm(), + $cek, + $algorithmSuite->getCommitmentOutputKeyLengthBytes(), + $commitmentKeyInfo, + $messageId + ); + //= ../specification/s3-encryption/decryption.md#decrypting-with-commitment + //= type=implication + //# When using an algorithm suite which supports key commitment, the client MUST verify that the [derived key commitment](./key-derivation.md#hkdf-operation) contains the same bytes as the stored key commitment retrieved from the stored object's metadata. + if ( + //= ../specification/s3-encryption/decryption.md#decrypting-with-commitment + //= type=implication + //# When using an algorithm suite which supports key commitment, + //# the verification of the derived key commitment value MUST be done in constant time. + !hash_equals($commitmentKey, $calculatedCommitmentKey) + ) { + //= ../specification/s3-encryption/decryption.md#decrypting-with-commitment + //= type=implication + //# When using an algorithm suite which supports key commitment, the client MUST + //# throw an exception when the derived key commitment value + //# and stored key commitment value do not match. + throw new CryptoException("Calculated commitment key does " + . "not match expected commitment key value "); + } + //= ../specification/s3-encryption/decryption.md#decrypting-with-commitment + //= type=implication + //# When using an algorithm suite which supports key commitment, + //# the client MUST verify the key commitment values match before + //# deriving the [derived encryption key](./key-derivation.md#hkdf-operation). + $derivedEncryptionKey = hash_hkdf( + $algorithmSuite->getHashingAlgorithm(), + $cek, + $algorithmSuite->getDerivationOutputKeyLengthBytes(), + $derivedEncryptionKeyInfo, + $messageId + ); + + $cipherTextStream = Psr7\Utils::streamFor($cipherText); + switch ($cipherOptions['Cipher']) { + case 'gcm': + $cipherOptions['Tag'] = $this->getTagFromCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ); + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + $algorithmSuiteIdAsBytes + : $algorithmSuiteIdAsBytes; + + return new AesGcmDecryptingStream( + $this->getStrippedCiphertextStream( + $cipherTextStream, + $cipherOptions['TagLength'] + ), + $derivedEncryptionKey, + $cipherOptions['Iv'], + $cipherOptions['Tag'], + $cipherOptions['Aad'], + $cipherOptions['TagLength'] ?: null, + $cipherOptions['KeySize'] + ); + default: + throw new CryptoException("Unsupported Cipher used for key commitment messages." + . " Found {$cipherOptions["Cipher"]}. Only 'gcm' is supported."); + } + } +} diff --git a/aws/aws-sdk-php/src/Crypto/EncryptionTraitV2.php b/aws/aws-sdk-php/src/Crypto/EncryptionTraitV2.php index 2bce1833b..784b91664 100644 --- a/aws/aws-sdk-php/src/Crypto/EncryptionTraitV2.php +++ b/aws/aws-sdk-php/src/Crypto/EncryptionTraitV2.php @@ -85,9 +85,7 @@ public function encrypt( . ' an integer.'); } - if (!MaterialsProviderV2::isSupportedKeySize( - $cipherOptions['KeySize'] - )) { + if (!MaterialsProviderV2::isSupportedKeySize($cipherOptions['KeySize'])) { throw new \InvalidArgumentException('The cipher "KeySize" requested' . ' is not supported by AES (128 or 256).'); } @@ -130,12 +128,12 @@ public function encrypt( $provider->getWrapAlgorithmName(); $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] = $aesName; $envelope[MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER] = - strlen($plaintext); + (string) strlen($plaintext); $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER] = json_encode($materialsDescription); if (!empty($cipherOptions['Tag'])) { $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] = - strlen($cipherOptions['Tag']) * 8; + (string) (strlen($cipherOptions['Tag']) * 8); } return $encryptingStream; @@ -170,9 +168,7 @@ protected function getEncryptingStream( $plaintext, $cek, $cipherOptions['Iv'], - $cipherOptions['Aad'] = isset($cipherOptions['Aad']) - ? $cipherOptions['Aad'] - : '', + $cipherOptions['Aad'] = $cipherOptions['Aad'] ?? '', $cipherOptions['TagLength'], $cipherOptions['KeySize'] ); diff --git a/aws/aws-sdk-php/src/Crypto/EncryptionTraitV3.php b/aws/aws-sdk-php/src/Crypto/EncryptionTraitV3.php new file mode 100644 index 000000000..62e3ced85 --- /dev/null +++ b/aws/aws-sdk-php/src/Crypto/EncryptionTraitV3.php @@ -0,0 +1,474 @@ + true, + 'KeySize' => true, + 'Aad' => true, + ]; + + private static array $encryptClasses = [ + 'gcm' => AesGcmEncryptingStream::class + ]; + + /** + * Dependency to generate a CipherMethod from a set of inputs for loading + * in to an AesEncryptingStream. + * + * @param string $cipherName Name of the cipher to generate for encrypting. + * @param string $iv Base Initialization Vector for the cipher. + * @param int $keySize Size of the encryption key, in bits, that will be + * used. + * + * @return Cipher\CipherMethod + * + * @internal + */ + abstract protected function buildCipherMethod( + $cipherName, + $iv, + $keySize + ); + + /** + * Builds an AesStreamInterface and populates encryption metadata into the + * supplied envelope. + * + * @param Stream $plaintext Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param AlgorithmSuite $algorithmSuite Algorithm Suite for use in encryption + * @param array $options Options for use in encryption, including cipher + * options, and encryption context. + * @param MaterialsProviderV3 $provider A provider to supply and encrypt + * materials used in encryption. + * @param MetadataEnvelope $envelope A storage envelope for encryption + * metadata to be added to. + * + * @return AppendStream + * + * @throws \InvalidArgumentException Thrown when a value in $options['@CipherOptions'] + * is not valid. + *s + * @internal + */ + public function encrypt( + Stream $plaintext, + AlgorithmSuite $algorithmSuite, + array $options, + MaterialsProviderV3 $provider, + MetadataEnvelope $envelope + ): AppendStream + { + $options = array_change_key_case($options); + $cipherOptions = array_intersect_key( + $options['@cipheroptions'], + self::$allowedOptions + ); + //= ../specification/s3-encryption/encryption.md#content-encryption + //= type=implication + //# The client MUST validate that the length of the plaintext bytes does not exceed + //# the algorithm suite's cipher's maximum content length in bytes. + if (strlen($plaintext) > $algorithmSuite->getCipherMaxContentLengthBytes()) { + throw new \InvalidArgumentException("The contentLength of the object you are attempting" + . " to encrypt exceeds the maximum length allowed for GCM encryption."); + } + $cipherOptions['Cipher'] = strtolower($cipherOptions['Cipher']); + + if (!self::isSupportedCipher($cipherOptions['Cipher'])) { + throw new \InvalidArgumentException('The cipher requested is not' + . ' supported by the SDK.'); + } + + if (empty($cipherOptions['KeySize'])) { + $cipherOptions['KeySize'] = 256; + } + + if (!is_int($cipherOptions['KeySize'])) { + throw new \InvalidArgumentException('The cipher "KeySize" must be' + . ' an integer.'); + } + + if (!MaterialsProviderV3::isSupportedKeySize($cipherOptions['KeySize'])) { + throw new \InvalidArgumentException('The cipher "KeySize" requested' + . ' is not supported by AES (256).'); + } + + $encryptClass = self::$encryptClasses[$algorithmSuite->getCipherName()]; + $aesName = $encryptClass::getStaticAesName(); + $materialsDescription = $algorithmSuite->isKeyCommitting() + ? ['aws:x-amz-cek-alg' => '115'] + : ['aws:x-amz-cek-alg' => $aesName]; + + $keys = $provider->generateCek( + $algorithmSuite->getDataKeyLengthBits(), + $materialsDescription, + $options + ); + + // Some providers modify materials description based on options + if (isset($keys['UpdatedContext'])) { + $materialsDescription = $keys['UpdatedContext']; + } + + if ($algorithmSuite->isKeyCommitting()) { + return $this->encryptCommitingStream( + $plaintext, + $algorithmSuite, + $cipherOptions, + $keys, + $materialsDescription, + $provider, + $envelope + ); + } else { + return $this->encryptNonCommitingStream( + $plaintext, + $cipherOptions, + $keys, + $materialsDescription, + $aesName, + $provider, + $envelope + ); + } + } + + private function encryptNonCommitingStream( + Stream $plaintext, + array &$cipherOptions, + array $keys, + array $materialsDescription, + string $aesName, + MaterialsProviderV3 $provider, + MetadataEnvelope $envelope + ): AppendStream + { + //= ../specification/s3-encryption/encryption.md#content-encryption + //# The generated IV or Message ID MUST be set or returned from the + //# encryption process such that it can be included in the content metadata. + //= ../specification/s3-encryption/encryption.md#content-encryption + //# The client MUST generate an IV or Message ID using the length of the IV or Message ID defined in the algorithm suite. + $cipherOptions['Iv'] = $provider->generateIv( + $this->getCipherOpenSslName( + $cipherOptions['Cipher'], + $cipherOptions['KeySize'] + ) + ); + // Some providers modify materials description based on options + if (isset($keys['UpdatedContext'])) { + $materialsDescription = $keys['UpdatedContext']; + } + + $encryptingStream = $this->getNonCommittingEncryptingStream( + $plaintext, + $keys['Plaintext'], + $cipherOptions + ); + + // Populate envelope data + //= ../specification/s3-encryption/data-format/content-metadata.md#determining-s3ec-object-status + //# - If the metadata contains "x-amz-iv" and "x-amz-metadata-x-amz-key-v2" then the object MUST be considered as an S3EC-encrypted object using the V2 format. + $envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER] = $keys['Ciphertext']; + unset($keys); + + $envelope[MetadataEnvelope::IV_HEADER] = + base64_encode($cipherOptions['Iv']); + $envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER] = + $provider->getWrapAlgorithmName(); + $envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER] = $aesName; + $envelope[MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER] = + (string) strlen($plaintext); + $envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER] = + json_encode($materialsDescription); + if (!empty($cipherOptions['Tag'])) { + $envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER] = + (string) (strlen($cipherOptions['Tag']) * 8); + } + if (!MetadataEnvelope::isV2Envelope($envelope)) { + throw new CryptoException("Error while writing metadata envelope." + . " Not all required fields were set."); + } + + return $encryptingStream; + } + + private function encryptCommitingStream( + Stream $plaintext, + AlgorithmSuite $algorithmSuite, + array &$options, + array $keys, + array $materialsDescription, + MaterialsProviderV3 $provider, + MetadataEnvelope $envelope + ): AppendStream + { + //= ../specification/s3-encryption/encryption.md#content-encryption + //# The generated IV or Message ID MUST be set or returned from the + //# encryption process such that it can be included in the content metadata. + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# When encrypting or decrypting with ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY, + //# the IV used in the AES-GCM content encryption/decryption + //# MUST consist entirely of bytes with the value 0x01. + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# The IV's total length MUST match the IV length defined by the algorithm suite. + $options['Iv'] = str_repeat("\1", $algorithmSuite->getIvLengthBytes()); + $messageId = $provider->generateIv( + $this->getCipherOpenSslName( + $algorithmSuite->getCipherName(), + //= ../specification/s3-encryption/encryption.md#content-encryption + //# The client MUST generate an IV or Message ID using the length of + //# the IV or Message ID defined in the algorithm suite. + $algorithmSuite->getKeyCommitmentSaltLengthBits() + ) + ); + // Some providers modify materials description based on options + if (isset($keys['UpdatedContext'])) { + $materialsDescription["aws:x-amz-cek-alg"] = (string) $algorithmSuite->getId(); + } + $commitingEncryptingArray = $this->getCommitingEncryptionStream( + $plaintext, + $keys['Plaintext'], + $options, + $messageId, + $algorithmSuite + ); + //= ../specification/s3-encryption/encryption.md#alg-aes-256-gcm-hkdf-sha512-commit-key + //= type=implication + //# The derived key commitment value MUST be set or returned from the encryption process + //# such that it can be included in the content metadata. + $commitmentKey = $commitingEncryptingArray[0]; + $encryptionStream = $commitingEncryptingArray[1]; + + // Populate envelope data + $envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3] = $keys['Ciphertext']; + unset($keys); + + $envelope[MetadataEnvelope::CONTENT_CIPHER_V3] = $algorithmSuite->getId(); + // we are able to always set the encryption context in the envelope because PHP + // only supports a KMS Material Provider. + $envelope[MetadataEnvelope::ENCRYPTION_CONTEXT_V3] = + json_encode($materialsDescription); + //= ../specification/s3-encryption/data-format/content-metadata.md#v3-only + //# The Encryption Context value MUST be used for wrapping algorithm `kms+context` or `12`. + $envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3] = '12'; + $envelope[MetadataEnvelope::KEY_COMMITMENT_V3] = $commitmentKey; + $envelope[MetadataEnvelope::MESSAGE_ID_V3] = base64_encode($messageId); + if (!MetadataEnvelope::isV3Envelope($envelope)) { + throw new CryptoException("Error while writing metadata envelope." + . " Not all required fields were set."); + } + + return $encryptionStream; + } + + /** + * Generates a stream that wraps the plaintext with the proper cipher and + * uses the content encryption key (CEK) to encrypt the data when read. + * + * @param Stream $plaintext Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * + * @return AppendStream returns an AppendStream + * + * @internal + */ + protected function getNonCommittingEncryptingStream( + Stream $plaintext, + string $cek, + array &$cipherOptions + ): AppendStream + { + // Only 'gcm' is supported for encryption currently + switch ($cipherOptions['Cipher']) { + //= ../specification/s3-encryption/encryption.md#content-encryption + //= type=implication + //# The S3EC MUST use the encryption algorithm configured during [client](./client.md) initialization. + case 'gcm': + $cipherOptions['TagLength'] = 16; + $encryptClass = self::$encryptClasses['gcm']; + //= ../specification/s3-encryption/encryption.md#alg-aes-256-gcm-iv12-tag16-no-kdf + //= type=implication + //# The client MUST initialize the cipher, or call an AES-GCM encryption API, + //# with the plaintext data key, the generated IV, and the tag length defined + //# in the Algorithm Suite when encrypting with ALG_AES_256_GCM_IV12_TAG16_NO_KDF. + $cipherTextStream = new $encryptClass( + $plaintext, + $cek, + $cipherOptions['Iv'], + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + : '', + $cipherOptions['TagLength'], + $cipherOptions['KeySize'] + ); + + if (!empty($cipherOptions['Aad'])) { + trigger_error("'Aad' has been supplied for content encryption" + . " with " . $cipherTextStream->getAesName() . ". The" + . " PHP SDK encryption client can decrypt an object" + . " encrypted in this way, but other AWS SDKs may not be" + . " able to.", E_USER_WARNING); + } + + $appendStream = new AppendStream([ + $cipherTextStream->createStream() + ]); + //= ../specification/s3-encryption/encryption.md#alg-aes-256-gcm-iv12-tag16-no-kdf + //= type=implication + //# The client MUST append the GCM auth tag to the ciphertext if the underlying + //# crypto provider does not do so automatically. + $cipherOptions['Tag'] = $cipherTextStream->getTag(); + $appendStream->addStream(Psr7\Utils::streamFor($cipherOptions['Tag'])); + + return $appendStream; + default: + throw new CryptoException("Unsupported Cipher used for key commitment messages." + . " Found {$cipherOptions["Cipher"]}. Only 'gcm' is supported."); + } + } + + /** + * Generates a stream that wraps the plaintext with the proper cipher and + * uses the content encryption key (CEK) to encrypt the data when read. + * + * @param Stream $plaintext Plain-text data to be encrypted using the + * materials, algorithm, and data provided. + * @param string $cek A content encryption key for use by the stream for + * encrypting the plaintext data. + * @param array $cipherOptions Options for use in determining the cipher to + * be used for encrypting data. + * @param string $messageId salt value used for key extraction step in the key + * derivation process. + * @param AlgorithmSuite $algorithmSuite options used for key commitment + * + * @return array returns an array with two elements as follows: [commitmentKey, AppendStream] + * + * @internal + */ + protected function getCommitingEncryptionStream( + Stream $plaintext, + string $dek, + array &$cipherOptions, + string $messageId, + AlgorithmSuite $algorithmSuite + ): array + { + $algorithmSuiteIdAsBytes = pack('n', $algorithmSuite->getId()); + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The input info MUST be a concatenation of the algorithm suite ID as bytes followed by the string DERIVEKEY as UTF8 encoded bytes. + $derivedEncryptionKeyInfo = $algorithmSuiteIdAsBytes . "DERIVEKEY"; + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The input info MUST be a concatenation of the algorithm suite ID as bytes followed by the string COMMITKEY as UTF8 encoded bytes. + $commitmentKeyInfo = $algorithmSuiteIdAsBytes . "COMMITKEY"; + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The length of the input keying material MUST equal the key derivation + //# input length specified by the algorithm suite commit key derivation setting. + if (strlen($dek) !== $algorithmSuite->getDerivationInputKeyLengthBytes()) { + throw new CryptoException("Input Key Material length exceeds " + . "key derivation input length specified by the algorithm suite."); + } + //= ../specification/s3-encryption/encryption.md#alg-aes-256-gcm-hkdf-sha512-commit-key + //= type=implication + //# The client MUST use HKDF to derive the key commitment value and + //# the derived encrypting key as described in [Key Derivation](key-derivation.md). + $cek = hash_hkdf( + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The hash function MUST be specified by the algorithm suite commitment settings. + $algorithmSuite->getHashingAlgorithm(), + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The input keying material MUST be the plaintext data key (PDK) generated by the key provider. + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The DEK input pseudorandom key MUST be the output from the extract step. + $dek, + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The length of the output keying material MUST equal the encryption key length specified by the algorithm suite encryption settings. + $algorithmSuite->getDerivationOutputKeyLengthBytes(), + $derivedEncryptionKeyInfo, + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The salt MUST be the Message ID with the length defined in the algorithm suite. + $messageId + ); + $commitmentKey = hash_hkdf( + $algorithmSuite->getHashingAlgorithm(), + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The CK input pseudorandom key MUST be the output from the extract step. + $dek, + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# - The length of the output keying material MUST equal the commit key length specified by the supported algorithm suites. + $algorithmSuite->getCommitmentOutputKeyLengthBytes(), + $commitmentKeyInfo, + $messageId + ); + + switch ($cipherOptions['Cipher']) { + // Only 'gcm' is supported for encryption currently + case 'gcm': + $cipherOptions['TagLength'] = $algorithmSuite->getCipherTagLengthInBytes(); + $encryptClass = self::$encryptClasses[$algorithmSuite->getCipherName()]; + + if (!empty($cipherOptions['Aad'])) { + trigger_error("'Aad' has been supplied for content encryption" + . " with " . $encryptClass->getAesName() . ". The" + . " PHP SDK encryption client can decrypt an object" + . " encrypted in this way, but other AWS SDKs may not be" + . " able to.", E_USER_NOTICE); + } + $cipherOptions['Aad'] = isset($cipherOptions['Aad']) + ? $cipherOptions['Aad'] + $algorithmSuiteIdAsBytes + : $algorithmSuiteIdAsBytes; + //= ../specification/s3-encryption/key-derivation.md#hkdf-operation + //= type=implication + //# The client MUST initialize the cipher, or call an AES-GCM encryption API, + //# with the derived encryption key, an IV containing only bytes with the value 0x01, + //# and the tag length defined in the Algorithm Suite when encrypting or + //# decrypting with ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY. + $cipherTextStream = new $encryptClass( + $plaintext, + $cek, + $cipherOptions['Iv'], + $cipherOptions['Aad'], + $cipherOptions['TagLength'], + $cipherOptions['KeySize'] + ); + + $appendStream = new AppendStream([ + $cipherTextStream->createStream() + ]); + //= ../specification/s3-encryption/encryption.md#alg-aes-256-gcm-hkdf-sha512-commit-key + //= type=implication + //# The client MUST append the GCM auth tag to the ciphertext if the underlying + //# crypto provider does not do so automatically. + $cipherOptions['Tag'] = $cipherTextStream->getTag(); + $appendStream->addStream(Psr7\Utils::streamFor($cipherOptions['Tag'])); + + return [base64_encode($commitmentKey), $appendStream]; + default: + throw new CryptoException("Unsupported Cipher used for content encryption"); + } + } +} diff --git a/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV3.php b/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV3.php new file mode 100644 index 000000000..666585a36 --- /dev/null +++ b/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV3.php @@ -0,0 +1,159 @@ +kmsClient = $kmsClient; + $this->kmsKeyId = $kmsKeyId; + } + + /** + * @inheritDoc + */ + public function getWrapAlgorithmName(): string + { + return self::WRAP_ALGORITHM_NAME; + } + + /** + * @inheritDoc + */ + public function decryptCek( + string $encryptedCek, + array $materialDescription, + array $options + ): string + { + $options = array_change_key_case($options); + $encryptionContext = null; + + // no encryption context was provided we will use the one in the metadata + if (!isset($options['@kmsencryptioncontext'])) { + $encryptionContext = $materialDescription; + } else { + // encryption context was passed in, we have to make sure it is an array + // and that the reserved keywords were not used + if (!is_array($options['@kmsencryptioncontext'])) { + throw new CryptoException("'When using @KmsMaterialsProviderV3, it" + . " must be an associative array (or empty array)."); + } + + if (isset($options['@kmsencryptioncontext']['aws:x-amz-cek-alg'])) { + throw new CryptoException("Conflict in reserved @KmsEncryptionContext" + . " key aws:x-amz-cek-alg. This value is reserved for the S3" + . " Encryption Client and cannot be set by the user."); + } + + if (isset($options['@kmsencryptioncontext']['kms_cmk_id'])) { + throw new CryptoException("Conflict in reserved @KmsEncryptionContext" + . " key kms_cmk_id. This value is reserved for the S3" + . " Encryption Client and cannot be set by the user."); + } + //= specification/s3-encryption/materials/s3-kms-keyring.md#kms-context + //= type=implication + //# When decrypting using Kms+Context mode, the KmsKeyring MUST validate the provided (request) encryption context with the stored (materials) encryption context. + // We are validating the encryption context to match S3EC V2 behavior + // Refer to KMSMaterialsHandler in the V2 client for details + $materialsDescriptionContextCopy = $materialDescription; + unset($materialsDescriptionContextCopy["aws:x-amz-cek-alg"]); + unset($materialsDescriptionContextCopy["kms_cmk_id"]); + + $requestEncryptionContext = $options['@kmsencryptioncontext']; + //= specification/s3-encryption/materials/s3-kms-keyring.md#kms-context + //= type=implication + //# The stored encryption context with the two reserved keys removed MUST match the provided encryption context. + if ($materialsDescriptionContextCopy !== $requestEncryptionContext) { + //= specification/s3-encryption/materials/s3-kms-keyring.md#kms-context + //= type=implication + //# If the stored encryption context with the two reserved keys removed does not match the provided encryption context, the KmsKeyring MUST throw an exception. + throw new CryptoException("Provided encryption context does not match information retrieved from S3"); + } + $encryptionContext = $materialDescription; + } + $params = [ + 'CiphertextBlob' => $encryptedCek, + 'EncryptionContext' => $encryptionContext + ]; + + if (empty($options['@kmsallowdecryptwithanycmk'])) { + if (empty($this->kmsKeyId)) { + throw new CryptoException('KMS CMK ID was not specified and the' + . ' operation is not opted-in to attempting to use any valid' + . ' CMK it discovers. Please specify a CMK ID, or explicitly' + . ' enable attempts to use any valid KMS CMK with the' + . ' @KmsAllowDecryptWithAnyCmk option.'); + } + $params['KeyId'] = $this->kmsKeyId; + } + + $result = $this->kmsClient->decrypt($params); + + return $result['Plaintext']; + } + + /** + * @inheritDoc + */ + public function generateCek($keySize, $context, $options): array + { + if (empty($this->kmsKeyId)) { + throw new CryptoException('A KMS key id is required for encryption' + . ' with KMS keywrap. Use a KmsMaterialsProviderV2 that has been' + . ' instantiated with a KMS key id.'); + } + $options = array_change_key_case($options); + if (!isset($options['@kmsencryptioncontext']) + || !is_array($options['@kmsencryptioncontext']) + ) { + throw new CryptoException("'@KmsEncryptionContext' is a" + . " required argument when using KmsMaterialsProviderV3, and" + . " must be an associative array (or empty array)."); + } + + if (isset($options['@kmsencryptioncontext']['aws:x-amz-cek-alg'])) { + throw new CryptoException("Conflict in reserved @KmsEncryptionContext" + . " key aws:x-amz-cek-alg. This value is reserved for the S3" + . " Encryption Client and cannot be set by the user."); + } + + if (isset($options['@kmsencryptioncontext']['kms_cmk_id'])) { + throw new CryptoException("Conflict in reserved @KmsEncryptionContext" + . " key kms_cmk_id. This value is reserved for the S3" + . " Encryption Client and cannot be set by the user."); + } + $context = array_merge($options['@kmsencryptioncontext'], $context); + $result = $this->kmsClient->generateDataKey([ + 'KeyId' => $this->kmsKeyId, + 'KeySpec' => "AES_{$keySize}", + 'EncryptionContext' => $context + ]); + + return [ + 'Plaintext' => $result['Plaintext'], + 'Ciphertext' => base64_encode($result['CiphertextBlob']), + 'UpdatedContext' => $context + ]; + } +} diff --git a/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV3.php b/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV3.php new file mode 100644 index 000000000..13b255db6 --- /dev/null +++ b/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV3.php @@ -0,0 +1,61 @@ + true + ]; + + /** + * Returns if the requested size is supported by AES. + * + * @param int $keySize Size of the requested key in bits. + * + * @return bool + */ + public static function isSupportedKeySize(int $keySize): bool + { + return isset(self::$supportedKeySizes[$keySize]); + } + + /** + * Returns the wrap algorithm name for this Provider. + * + * @return string + */ + abstract public function getWrapAlgorithmName(): string; + + /** + * Takes an encrypted content encryption key (CEK) and material description + * for use decrypting the key according to the Provider's specifications. + * + * @param string $encryptedCek Encrypted key to be decrypted by the Provider + * for use decrypting other data. + * @param array $materialDescription Material Description for use in + * decrypting the CEK. + * @param array $options Options for use in decrypting the CEK. + * + * @return string + */ + abstract public function decryptCek( + string $encryptedCek, + array $materialDescription, + array $options + ): string; + + /** + * @param string $keySize Length of a cipher key in bits for generating a + * random content encryption key (CEK). + * @param array $context Context map needed for key encryption + * @param array $options Additional options to be used in CEK generation + * + * @return array + */ + abstract public function generateCek( + string $keySize, + array $context, + array $options + ): array; + + /** + * @param string $openSslName Cipher OpenSSL name to use for generating + * an initialization vector. + * + * @return string + */ + public function generateIv(string $openSslName): string + { + $iv = null; + $cstrong = null; + + if ($openSslName === "aes-96-gcm") { + $iv = openssl_random_pseudo_bytes(12, $cstrong); + } else if ($openSslName === "aes-224-gcm") { + $iv = openssl_random_pseudo_bytes(28, $cstrong); + } else { + $iv = openssl_random_pseudo_bytes( + openssl_cipher_iv_length($openSslName), + $cstrong + ); + } + if (!$cstrong) { + throw new CryptoException("No strong cryptographic source available to generate a random IV."); + } + + return $iv; + } +} diff --git a/aws/aws-sdk-php/src/Crypto/MetadataEnvelope.php b/aws/aws-sdk-php/src/Crypto/MetadataEnvelope.php index 5a7c69205..f24a8da49 100644 --- a/aws/aws-sdk-php/src/Crypto/MetadataEnvelope.php +++ b/aws/aws-sdk-php/src/Crypto/MetadataEnvelope.php @@ -16,13 +16,63 @@ class MetadataEnvelope implements ArrayAccess, IteratorAggregate, JsonSerializab { use HasDataTrait; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# The "x-amz-" prefix denotes that the metadata is owned by an Amazon product + //# and MUST be prepended to all S3EC metadata mapkeys. + + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-key-v2" MUST be present for V2 format objects. const CONTENT_KEY_V2_HEADER = 'x-amz-key-v2'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-3") SHOULD be represented by a constant named "ENCRYPTED_DATA_KEY_V3" or similar in the implementation code. + const ENCRYPTED_DATA_KEY_V3 = 'x-amz-3'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-iv" MUST be present for V1 format objects. const IV_HEADER = 'x-amz-iv'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-matdesc" MUST be present for V1 format objects. + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-matdesc" MUST be present for V2 format objects. + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-iv" MUST be present for V2 format objects. const MATERIALS_DESCRIPTION_HEADER = 'x-amz-matdesc'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-m") SHOULD be represented by a constant named "MAT_DESC_V3" or similar in the implementation code. + const MAT_DESC_V3 = 'x-amz-m'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-wrap-alg" MUST be present for V2 format objects. const KEY_WRAP_ALGORITHM_HEADER = 'x-amz-wrap-alg'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-w") SHOULD be represented by a constant named "ENCRYPTED_DATA_KEY_ALGORITHM_V3" or similar in the implementation code. + const ENCRYPTED_DATA_KEY_ALGORITHM_V3 = 'x-amz-w'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-cek-alg" MUST be present for V2 format objects. const CONTENT_CRYPTO_SCHEME_HEADER = 'x-amz-cek-alg'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-c") SHOULD be represented by a constant named "CONTENT_CIPHER_V3" or similar in the implementation code. + const CONTENT_CIPHER_V3 = 'x-amz-c'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-tag-len" MUST be present for V2 format objects. const CRYPTO_TAG_LENGTH_HEADER = 'x-amz-tag-len'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-unencrypted-content-length" SHOULD be present for V1 format objects. const UNENCRYPTED_CONTENT_LENGTH_HEADER = 'x-amz-unencrypted-content-length'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-t") SHOULD be represented by a constant named "ENCRYPTION_CONTEXT_V3" or similar in the implementation code. + const ENCRYPTION_CONTEXT_V3 = 'x-amz-t'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-d") SHOULD be represented by a constant named "KEY_COMMITMENT_V3" or similar in the implementation code. + const KEY_COMMITMENT_V3 = 'x-amz-d'; + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - This mapkey ("x-amz-i") SHOULD be represented by a constant named "MESSAGE_ID_V3" or similar in the implementation code. + const MESSAGE_ID_V3 = 'x-amz-i'; private static $constants = []; @@ -30,6 +80,8 @@ public static function getConstantValues() { if (empty(self::$constants)) { $reflection = new \ReflectionClass(static::class); + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# The "x-amz-meta-" prefix is automatically added by the S3 server and MUST NOT be included in implementation code. foreach (array_values($reflection->getConstants()) as $constant) { self::$constants[$constant] = true; } @@ -45,6 +97,8 @@ public static function getConstantValues() public function offsetSet($name, $value) { $constants = self::getConstantValues(); + //= ../specification/s3-encryption/data-format/content-metadata.md#determining-s3ec-object-status + //# In general, if there is any deviation from the above format, with the exception of additional unrelated mapkeys, then the S3EC SHOULD throw an exception. if (is_null($name) || !in_array($name, $constants)) { throw new InvalidArgumentException('MetadataEnvelope fields must' . ' must match a predefined offset; use the header constants.'); @@ -58,4 +112,96 @@ public function jsonSerialize() { return $this->data; } + + public static function isV2Envelope(MetadataEnvelope $envelope): bool + { + if (!isset($envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER]) + || !isset($envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER]) + || !isset($envelope[MetadataEnvelope::IV_HEADER]) + || !isset($envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER]) + || !isset($envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]) + || !isset($envelope[MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER]) + ) { + return false; + } + return true; + } + + public static function isV1Envelope(MetadataEnvelope $envelope): bool + { + if (!isset($envelope[MetadataEnvelope::CONTENT_KEY_V2_HEADER]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-matdesc" MUST be present for V1 format objects. + || !isset($envelope[MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-iv" MUST be present for V1 format objects. + || !isset($envelope[MetadataEnvelope::IV_HEADER]) + || !isset($envelope[MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER]) + || !isset($envelope[MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# - The mapkey "x-amz-unencrypted-content-length" SHOULD be present for V1 format objects. + || !isset($envelope[MetadataEnvelope::UNENCRYPTED_CONTENT_LENGTH_HEADER]) + ) { + return false; + } + return true; + } + + public static function isV3Envelope(MetadataEnvelope $envelope): bool + { + + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - The mapkey "x-amz-3" MUST be present for V3 format objects. + if (!isset($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - The mapkey "x-amz-c" MUST be present for V3 format objects. + || !isset($envelope[MetadataEnvelope::CONTENT_CIPHER_V3]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - The mapkey "x-amz-d" MUST be present for V3 format objects. + || !isset($envelope[MetadataEnvelope::KEY_COMMITMENT_V3]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - The mapkey "x-amz-i" MUST be present for V3 format objects. + || !isset($envelope[MetadataEnvelope::MESSAGE_ID_V3]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - The mapkey "x-amz-w" MUST be present for V3 format objects. + || !isset($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3]) + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //= type=implication + //# - The mapkey "x-amz-t" SHOULD be present for V3 format objects that use KMS Encryption Context. + || !isset($envelope[MetadataEnvelope::ENCRYPTION_CONTEXT_V3]) + ) { + return false; + } + + return true; + } + + public static function getV2Fields(): array + { + return [ + MetadataEnvelope::CONTENT_KEY_V2_HEADER, + MetadataEnvelope::MATERIALS_DESCRIPTION_HEADER, + MetadataEnvelope::IV_HEADER, + MetadataEnvelope::KEY_WRAP_ALGORITHM_HEADER, + MetadataEnvelope::CONTENT_CRYPTO_SCHEME_HEADER, + MetadataEnvelope::CRYPTO_TAG_LENGTH_HEADER + ]; + } + + public static function getV3Fields(): array + { + return [ + MetadataEnvelope::ENCRYPTED_DATA_KEY_V3, + MetadataEnvelope::CONTENT_CIPHER_V3, + MetadataEnvelope::KEY_COMMITMENT_V3, + MetadataEnvelope::MESSAGE_ID_V3, + MetadataEnvelope::ENCRYPTED_DATA_KEY_ALGORITHM_V3, + MetadataEnvelope::ENCRYPTION_CONTEXT_V3 + ]; + } } diff --git a/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php b/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php index 30f18200e..75d8bec81 100644 --- a/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php +++ b/aws/aws-sdk-php/src/EndpointDiscovery/EndpointDiscoveryMiddleware.php @@ -322,8 +322,8 @@ private function handleInvalidEndpoint( // If no more cached endpoints, make discovery call // if none made within cooldown for given key - if (time() - $this->discoveryTimes[$cacheKey] - < self::$discoveryCooldown + if (isset($this->discoveryTimes[$cacheKey]) + && time() - $this->discoveryTimes[$cacheKey] < self::$discoveryCooldown ) { // If no more cached endpoints and it's required, diff --git a/aws/aws-sdk-php/src/Exception/AwsException.php b/aws/aws-sdk-php/src/Exception/AwsException.php index 05b7b955f..54d7549f0 100644 --- a/aws/aws-sdk-php/src/Exception/AwsException.php +++ b/aws/aws-sdk-php/src/Exception/AwsException.php @@ -11,6 +11,7 @@ use JmesPath\Env as JmesPath; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\RequestInterface; +use Throwable; /** * Represents an AWS exception that is thrown when a command fails. @@ -39,35 +40,29 @@ class AwsException extends \RuntimeException implements /** - * @param string $message Exception message + * @param string $message Exception message * @param CommandInterface $command - * @param array $context Exception context - * @param \Exception $previous Previous exception (if any) + * @param array $context Exception context + * @param Throwable|null $previous Previous exception (if any) */ public function __construct( $message, CommandInterface $command, array $context = [], - ?\Exception $previous = null + ?Throwable $previous = null ) { - $this->data = isset($context['body']) ? $context['body'] : []; + $this->data = $context['body'] ?? []; $this->command = $command; - $this->response = isset($context['response']) ? $context['response'] : null; - $this->request = isset($context['request']) ? $context['request'] : null; - $this->requestId = isset($context['request_id']) - ? $context['request_id'] - : null; - $this->errorType = isset($context['type']) ? $context['type'] : null; - $this->errorCode = isset($context['code']) ? $context['code'] : null; - $this->errorShape = isset($context['error_shape']) ? $context['error_shape'] : null; + $this->response = $context['response'] ?? null; + $this->request = $context['request'] ?? null; + $this->requestId = $context['request_id'] ?? null; + $this->errorType = $context['type'] ?? null; + $this->errorCode = $context['code'] ?? null; + $this->errorShape = $context['error_shape'] ?? null; $this->connectionError = !empty($context['connection_error']); - $this->result = isset($context['result']) ? $context['result'] : null; - $this->transferInfo = isset($context['transfer_stats']) - ? $context['transfer_stats'] - : []; - $this->errorMessage = isset($context['message']) - ? $context['message'] - : null; + $this->result = $context['result'] ?? null; + $this->transferInfo = $context['transfer_stats'] ?? []; + $this->errorMessage = $context['message'] ?? null; $this->monitoringEvents = []; $this->maxRetriesExceeded = false; parent::__construct($message, 0, $previous); @@ -220,9 +215,7 @@ public function getTransferInfo($name = null) return $this->transferInfo; } - return isset($this->transferInfo[$name]) - ? $this->transferInfo[$name] - : null; + return $this->transferInfo[$name] ?? null; } /** diff --git a/aws/aws-sdk-php/src/LruArrayCache.php b/aws/aws-sdk-php/src/LruArrayCache.php index 84dfb1377..928900bb5 100644 --- a/aws/aws-sdk-php/src/LruArrayCache.php +++ b/aws/aws-sdk-php/src/LruArrayCache.php @@ -29,6 +29,7 @@ public function __construct($maxItems = 1000) public function get($key) { + $key = $key ?? ''; if (!isset($this->items[$key])) { return null; } @@ -49,6 +50,7 @@ public function get($key) public function set($key, $value, $ttl = 0) { + $key = $key ?? ''; // Only call time() if the TTL is not 0/false/null $ttl = $ttl ? time() + $ttl : 0; $this->items[$key] = [$value, $ttl]; @@ -69,6 +71,7 @@ public function set($key, $value, $ttl = 0) public function remove($key) { + $key = $key ?? ''; unset($this->items[$key]); } diff --git a/aws/aws-sdk-php/src/MetricsBuilder.php b/aws/aws-sdk-php/src/MetricsBuilder.php index 2d634cf57..af11847af 100644 --- a/aws/aws-sdk-php/src/MetricsBuilder.php +++ b/aws/aws-sdk-php/src/MetricsBuilder.php @@ -4,6 +4,8 @@ use Aws\Credentials\CredentialsInterface; use Aws\Credentials\CredentialSources; +use Aws\Token; +use Aws\Token\TokenInterface; /** * A placeholder for gathering metrics in a request. @@ -20,6 +22,7 @@ final class MetricsBuilder const S3_TRANSFER = "G"; const S3_CRYPTO_V1N = "H"; const S3_CRYPTO_V2 = "I"; + const S3_CRYPTO_V3 = "AE"; const S3_EXPRESS_BUCKET = "J"; const GZIP_REQUEST_COMPRESSION = "L"; const ENDPOINT_OVERRIDE = "N"; @@ -27,6 +30,7 @@ final class MetricsBuilder const ACCOUNT_ID_MODE_PREFERRED = "P"; const ACCOUNT_ID_MODE_DISABLED = "Q"; const ACCOUNT_ID_MODE_REQUIRED = "R"; + const BEARER_SERVICE_ENV_VARS = "3"; const SIGV4A_SIGNING = "S"; const RESOLVED_ACCOUNT_ID = "T"; const FLEXIBLE_CHECKSUMS_REQ_CRC32 = "U"; @@ -50,6 +54,9 @@ final class MetricsBuilder const CREDENTIALS_PROFILE_PROCESS = "v"; const CREDENTIALS_PROFILE_SSO = "r"; const CREDENTIALS_PROFILE_SSO_LEGACY = "t"; + const S3_TRANSFER_UPLOAD_DIRECTORY = "9"; + const S3_TRANSFER_DOWNLOAD_DIRECTORY = "+"; + const CREDENTIALS_PROFILE_LOGIN = "AC"; /** @var int */ private static $MAX_METRICS_SIZE = 1024; // 1KB or 1024 B @@ -129,7 +136,7 @@ public function append(string $metric): void */ public function identifyMetricByValueAndAppend( string $featureGroup, - $value + mixed $value ): void { if (empty($value)) { @@ -144,6 +151,7 @@ public function identifyMetricByValueAndAppend( 'account_id_endpoint_mode' => 'appendAccountIdEndpointMode', 'account_id_endpoint' => 'appendAccountIdEndpoint', 'request_checksum_calculation' => 'appendRequestChecksumCalculationMetric', + 'token' => 'appendTokenMetric' ]; $fn = $appendMetricFns[$featureGroup]; @@ -245,12 +253,30 @@ private function appendCredentialsMetric( self::CREDENTIALS_PROFILE_SSO, CredentialSources::PROFILE_SSO_LEGACY => self::CREDENTIALS_PROFILE_SSO_LEGACY, + CredentialSources::PROFILE_LOGIN => + self::CREDENTIALS_PROFILE_LOGIN ]; if (isset($credentialsMetricMapping[$source])) { $this->append($credentialsMetricMapping[$source]); } } + private function appendTokenMetric(TokenInterface $token): void + { + $source = $token->getSource(); + if (empty($source)) { + return; + } + + static $tokenMetricMapping = [ + 'bearer_service_env_vars' => self::BEARER_SERVICE_ENV_VARS + ]; + + if (isset($tokenMetricMapping[$source])) { + $this->append($tokenMetricMapping[$source]); + } + } + private function appendRequestChecksumCalculationMetric( string $checkSumCalculation ): void diff --git a/aws/aws-sdk-php/src/Middleware.php b/aws/aws-sdk-php/src/Middleware.php index edfddf2c4..fa5e4d803 100644 --- a/aws/aws-sdk-php/src/Middleware.php +++ b/aws/aws-sdk-php/src/Middleware.php @@ -6,6 +6,7 @@ use Aws\Credentials\CredentialsInterface; use Aws\EndpointV2\EndpointProviderV2; use Aws\Exception\AwsException; +use Aws\Signature\DpopSignature; use Aws\Signature\S3ExpressSignature; use Aws\Token\TokenAuthorization; use Aws\Token\TokenInterface; @@ -142,47 +143,53 @@ public static function requestBuilder($serializer) * * @return callable */ - public static function signer(callable $credProvider, callable $signatureFunction, $tokenProvider = null, $config = []) - { + public static function signer( + callable $credProvider, + callable $signatureFunction, + $tokenProvider = null, + $config = [] + ) { return function (callable $handler) use ($signatureFunction, $credProvider, $tokenProvider, $config) { return function ( CommandInterface $command, RequestInterface $request ) use ($handler, $signatureFunction, $credProvider, $tokenProvider, $config) { $signer = $signatureFunction($command); + + // Token authorization path if ($signer instanceof TokenAuthorization) { - return $tokenProvider()->then( - function (TokenInterface $token) - use ($handler, $command, $signer, $request) { - return $handler( - $command, - $signer->authorizeRequest($request, $token) - ); - } - ); + return $tokenProvider()->then(function (TokenInterface $token) use ($handler, $command, $signer, $request) { + $command->getMetricsBuilder()->identifyMetricByValueAndAppend('token', $token); + return $handler($command, $signer->authorizeRequest($request, $token)); + }); } - if ($signer instanceof S3ExpressSignature) { - $credentialPromise = $config['s3_express_identity_provider']($command); - } else { - $credentialPromise = $credProvider(); + // DPoP path + if ($signer instanceof DpopSignature) { + if (empty($key = $command['dpopKey']) + || !($key instanceof \OpenSSLAsymmetricKey) + ) { + throw new \RuntimeException( + 'A valid DPoP key must be present for DPoP signatures' + ); + } + + return $handler($command, $signer->signRequest($request, $key)); } - return $credentialPromise->then( - function (CredentialsInterface $creds) - use ($handler, $command, $signer, $request) { - // Capture credentials metric - $command->getMetricsBuilder()->identifyMetricByValueAndAppend( - 'credentials', - $creds - ); + // Credential signing path + $credentialPromise = ($signer instanceof S3ExpressSignature) + ? $config['s3_express_identity_provider']($command) + : $credProvider(); - return $handler( - $command, - $signer->signRequest($request, $creds) - ); - } - ); + return $credentialPromise->then(function (CredentialsInterface $creds) use ($handler, + $command, + $signer, + $request + ) { + $command->getMetricsBuilder()->identifyMetricByValueAndAppend('credentials', $creds); + return $handler($command, $signer->signRequest($request, $creds)); + }); }; }; } diff --git a/aws/aws-sdk-php/src/MultiRegionClient.php b/aws/aws-sdk-php/src/MultiRegionClient.php index 33e6bdf3e..f2641cd71 100644 --- a/aws/aws-sdk-php/src/MultiRegionClient.php +++ b/aws/aws-sdk-php/src/MultiRegionClient.php @@ -231,6 +231,7 @@ private function isUseCustomHandler() */ protected function getClientFromPool($region = '') { + $region = $region ?? ''; if (empty($this->clientPool[$region])) { $factory = $this->factory; $this->clientPool[$region] = $factory( diff --git a/aws/aws-sdk-php/src/PresignUrlMiddleware.php b/aws/aws-sdk-php/src/PresignUrlMiddleware.php index 6fb3c92fa..67ca7888e 100644 --- a/aws/aws-sdk-php/src/PresignUrlMiddleware.php +++ b/aws/aws-sdk-php/src/PresignUrlMiddleware.php @@ -114,7 +114,7 @@ private function createPresignedUrl( if (!empty($this->extraQueryParams[$cmdName])) { foreach ($this->extraQueryParams[$cmdName] as $param) { if (!strpos($currentQueryParams, $param)) { - $paramsToAdd = "&{$param}={$cmd[$param]}"; + $paramsToAdd = "&{$param}=" . urlencode($cmd[$param]); } } } diff --git a/aws/aws-sdk-php/src/RequestCompressionMiddleware.php b/aws/aws-sdk-php/src/RequestCompressionMiddleware.php index 667761df4..f8e5015a5 100644 --- a/aws/aws-sdk-php/src/RequestCompressionMiddleware.php +++ b/aws/aws-sdk-php/src/RequestCompressionMiddleware.php @@ -51,9 +51,7 @@ public function __invoke(CommandInterface $command, RequestInterface $request) } $nextHandler = $this->nextHandler; $operation = $this->api->getOperation($command->getName()); - $compressionInfo = isset($operation['requestcompression']) - ? $operation['requestcompression'] - : null; + $compressionInfo = $operation['requestcompression'] ?? null; if (!$this->shouldCompressRequestBody( $compressionInfo, @@ -87,8 +85,12 @@ private function compressRequestBody( $body = $request->getBody()->getContents(); $compressedBody = $fn($body); - return $request->withBody(Psr7\Utils::streamFor($compressedBody)) - ->withHeader('content-encoding', $this->encoding); + $request = $request->withBody(Psr7\Utils::streamFor($compressedBody)); + if ($request->hasHeader('Content-Encoding')) { + return $request->withAddedHeader('Content-Encoding', $this->encoding); + } + + return $request->withHeader('Content-Encoding', $this->encoding); } private function determineEncoding() diff --git a/aws/aws-sdk-php/src/RetryMiddleware.php b/aws/aws-sdk-php/src/RetryMiddleware.php index bb550df97..b76c6f937 100644 --- a/aws/aws-sdk-php/src/RetryMiddleware.php +++ b/aws/aws-sdk-php/src/RetryMiddleware.php @@ -163,11 +163,13 @@ private static function isRetryable( return true; } - if (isset($errorCodes[$error->getAwsErrorCode()])) { + $awsCode = $error->getAwsErrorCode(); + if (!is_null($awsCode) && isset($errorCodes[$awsCode])) { return true; } - if (isset($statusCodes[$error->getStatusCode()])) { + $status = $error->getStatusCode(); + if (!is_null($status) && isset($statusCodes[$status])) { return true; } diff --git a/aws/aws-sdk-php/src/RetryMiddlewareV2.php b/aws/aws-sdk-php/src/RetryMiddlewareV2.php index ba989ad6c..5c620c951 100644 --- a/aws/aws-sdk-php/src/RetryMiddlewareV2.php +++ b/aws/aws-sdk-php/src/RetryMiddlewareV2.php @@ -6,6 +6,7 @@ use Aws\Retry\QuotaManager; use Aws\Retry\RateLimiter; use Aws\Retry\RetryHelperTrait; +use Exception; use GuzzleHttp\Exception\RequestException; use GuzzleHttp\Promise; use Psr\Http\Message\RequestInterface; @@ -200,7 +201,7 @@ public function __invoke(CommandInterface $cmd, RequestInterface $req) $value->prependMonitoringEvent($event); } } - if ($value instanceof \Exception || $value instanceof \Throwable) { + if ($value instanceof Exception || $value instanceof \Throwable) { if (!$decider($attempts, $cmd, $value)) { return Promise\Create::rejectionFor( $this->bindStatsToReturn($value, $requestStats) @@ -245,7 +246,14 @@ public function __invoke(CommandInterface $cmd, RequestInterface $req) */ public function exponentialDelayWithJitter($attempts) { - $rand = mt_rand() / mt_getrandmax(); + $max = mt_getrandmax(); + try { + $rand = random_int(0, $max) / $max; + } catch (Exception $_) { + // fallback to prevent failing + $rand = mt_rand(0, $max) / $max; + } + return min(1000 * $rand * pow(2, $attempts) , $this->maxBackoff); } @@ -287,7 +295,7 @@ private static function isRetryable( } } - if ($result instanceof \Exception || $result instanceof \Throwable) { + if ($result instanceof Exception || $result instanceof \Throwable) { $isError = true; } else { $isError = false; @@ -308,11 +316,13 @@ private static function isRetryable( return true; } - if (!empty($errorCodes[$result->getAwsErrorCode()])) { + $awsCode = $result->getAwsErrorCode(); + if (!is_null($awsCode) && isset($errorCodes[$awsCode])) { return true; } - if (!empty($statusCodes[$result->getStatusCode()])) { + $status = $result->getStatusCode(); + if (!is_null($status) && isset($statusCodes[$status])) { return true; } diff --git a/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php b/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php index 2ed451927..fcdd7af1c 100644 --- a/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php +++ b/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php @@ -76,7 +76,8 @@ public function __invoke( $name = $command->getName(); $body = $request->getBody(); $operation = $this->api->getOperation($name); - $mode = $this->config['request_checksum_calculation'] + $mode = $command['@context']['request_checksum_calculation'] + ?? $this->config['request_checksum_calculation'] ?? self::DEFAULT_CALCULATION_MODE; $command->getMetricsBuilder()->identifyMetricByValueAndAppend( diff --git a/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php b/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php index 1a915ca58..131043b21 100644 --- a/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php +++ b/aws/aws-sdk-php/src/S3/BucketEndpointMiddleware.php @@ -2,6 +2,7 @@ namespace Aws\S3; use Aws\CommandInterface; +use GuzzleHttp\Psr7\Uri; use Psr\Http\Message\RequestInterface; /** @@ -16,22 +17,36 @@ class BucketEndpointMiddleware { private static $exclusions = ['GetBucketLocation' => true]; private $nextHandler; + private bool $useEndpointV2; + private ?string $endpoint; /** * Create a middleware wrapper function. * + * @param bool $useEndpointV2 + * @param string|null $endpoint + * * @return callable */ - public static function wrap() + public static function wrap( + bool $useEndpointV2 = false, + ?string $endpoint = null + ): callable { - return function (callable $handler) { - return new self($handler); + return function (callable $handler) use ($useEndpointV2, $endpoint) { + return new self($handler, $useEndpointV2, $endpoint); }; } - public function __construct(callable $nextHandler) + public function __construct( + callable $nextHandler, + bool $useEndpointV2, + ?string $endpoint = null + ) { $this->nextHandler = $nextHandler; + $this->useEndpointV2 = $useEndpointV2; + $this->endpoint = $endpoint; } public function __invoke(CommandInterface $command, RequestInterface $request) @@ -47,74 +62,50 @@ public function __invoke(CommandInterface $command, RequestInterface $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. + * @param string $path + * @param string $bucket * * @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) + private function removeBucketFromPath(string $path, string $bucket): string { - $occurrences = 0; - if (empty($key)) { - return $occurrences; + $len = strlen($bucket) + 1; + if (str_starts_with($path, "/{$bucket}")) { + $path = substr($path, $len); } - $segments = explode('/', $key); - foreach($segments as $segment) { - if (strpos($segment, $bucket) === 0) { - $occurrences++; - } - } - return $occurrences; + return $path ?: '/'; } + /** + * @param RequestInterface $request + * @param CommandInterface $command + * + * @return RequestInterface + */ private function modifyRequest( RequestInterface $request, CommandInterface $command - ) { - $key = isset($command['Key']) ? $command['Key'] : null; + ): RequestInterface + { $uri = $request->getUri(); $path = $uri->getPath(); $host = $uri->getHost(); $bucket = $command['Bucket']; - $path = $this->removeBucketFromPath($path, $bucket, $key); - $host = $this->removeDuplicateBucketFromHost($host, $bucket); + + if ($this->useEndpointV2 && !empty($this->endpoint)) { + // V2 provider adds bucket name to host by default + // preserve original host + $host = (new Uri($this->endpoint))->getHost(); + } + + $path = $this->removeBucketFromPath($path, $bucket); // Modify the Key to make sure the key is encoded, but slashes are not. - if ($key) { + if ($command['Key']) { $path = S3Client::encodeKey(rawurldecode($path)); } - return $request->withUri( - $uri->withHost($host) - ->withPath($path) - ); + return $request->withUri($uri->withPath($path)->withHost($host)); } } diff --git a/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php b/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php index 57253a4d3..1bd796a42 100644 --- a/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php +++ b/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php @@ -19,6 +19,8 @@ protected function getMaterialsProvider(array $args) protected function getInstructionFileSuffix(array $args) { + //= ../specification/s3-encryption/data-format/metadata-strategy.md#instruction-file + //# Instruction File writes MUST be optionally configured during client creation or on each PutObject request. return !empty($args['@InstructionFileSuffix']) ? $args['@InstructionFileSuffix'] : $this->instructionFileSuffix; @@ -28,7 +30,9 @@ protected function determineGetObjectStrategy( $result, $instructionFileSuffix ) { - if (isset($result['Metadata'][MetadataEnvelope::CONTENT_KEY_V2_HEADER])) { + if (isset($result['Metadata'][MetadataEnvelope::CONTENT_KEY_V2_HEADER]) || + isset($result['Metadata'][MetadataEnvelope::ENCRYPTED_DATA_KEY_V3]) + ) { return new HeadersMetadataStrategy(); } diff --git a/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php b/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php index 05498176c..9302bc3e2 100644 --- a/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php +++ b/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php @@ -16,4 +16,19 @@ protected function getMaterialsProvider(array $args) throw new \InvalidArgumentException('An instance of MaterialsProviderInterfaceV2' . ' must be passed in the "MaterialsProvider" field.'); } + + protected function getKeyCommitmentPolicy(array $args): string + { + if (empty($args['@CommitmentPolicy'])) { + throw new \InvalidArgumentException('A commitment policy must be' + . ' specified in the CommitmentPolicy field.'); + } + + if (!S3EncryptionClientV2::isSupportedKeyCommitmentPolicy($args['@CommitmentPolicy'])) { + throw new \InvalidArgumentException('The CommitmentPolicy requested is not' + . ' supported by the SDK.'); + } + + return $args['@CommitmentPolicy']; + } } diff --git a/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV3.php b/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV3.php new file mode 100644 index 000000000..1ff4483a2 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV3.php @@ -0,0 +1,34 @@ +client->putObject([ 'Bucket' => $args['Bucket'], 'Key' => $args['Key'] . $this->suffix, + //= ../specification/s3-encryption/data-format/metadata-strategy.md#instruction-file + //= type=implication + //# The content metadata stored in the Instruction File MUST be serialized to a JSON string. 'Body' => json_encode($envelope) ]); @@ -80,11 +130,55 @@ public function load(array $args) $constantValues = MetadataEnvelope::getConstantValues(); foreach ($constantValues as $constant) { - if (!empty($metadataHeaders[$constant])) { - $envelope[$constant] = $metadataHeaders[$constant]; + if (isset($metadataHeaders[$constant])) { + // check for a duplicate + if (empty($envelope[$constant])) { + $envelope[$constant] = $metadataHeaders[$constant]; + } else { + throw new CryptoException("Duplicate keys are not allowed" + . " in Instruction Files. " + ); + } } } + // check if we are reading a V3 object + // if it is a V3 object some data is stored in the object metadata and some + // as in the instruction file + //= ../specification/s3-encryption/data-format/content-metadata.md#content-metadata-mapkeys + //# In the V3 format, the mapkeys "x-amz-c", "x-amz-d", and "x-amz-i" + //# MUST be stored exclusively in the Object Metadata + if (!empty($envelope[MetadataEnvelope::ENCRYPTED_DATA_KEY_V3])) { + // before loading the rest of the v3 metadata, we must check that: + // 1. the following values are not already present in the envelope, if they are + // the instruction file is not correct. + if (!empty($envelope[MetadataEnvelope::CONTENT_CIPHER_V3]) + || !empty($envelope[MetadataEnvelope::KEY_COMMITMENT_V3]) + || !empty($envelope[MetadataEnvelope::MESSAGE_ID_V3]) + ) { + throw new CryptoException("One or more reserved keys found in" + . " Instruction file when they should not be present."); + } + // this data is stored in the original object's metadata + // V3 added x-amz-c, x-amz-d, x-amz-i, x-amz-3, x-amz-w, x-amz-m, x-amz-t + // x-amz-c, x-amz-d, x-amz-i are strictly stored on the object metadata + // the rest are stored in the instruction file + $envelope[MetadataEnvelope::CONTENT_CIPHER_V3] = $args['Metadata'][MetadataEnvelope::CONTENT_CIPHER_V3]; + $envelope[MetadataEnvelope::KEY_COMMITMENT_V3] = $args['Metadata'][MetadataEnvelope::KEY_COMMITMENT_V3]; + $envelope[MetadataEnvelope::MESSAGE_ID_V3] = $args['Metadata'][MetadataEnvelope::MESSAGE_ID_V3]; + + if (!MetadataEnvelope::isV3Envelope($envelope)) { + throw new CryptoException("Expected a V3 envelope but was unable to" + . " constuct one."); + } + return $envelope; + } + // if we are not reading a v3 object then it must be a v2 object + if (!MetadataEnvelope::isV2Envelope($envelope) + && !MetadataEnvelope::isV1Envelope($envelope)) { + throw new CryptoException("Malformed metadata envelope."); + } + return $envelope; } } diff --git a/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php index 96cb152a3..6427c8610 100644 --- a/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php +++ b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php @@ -54,6 +54,14 @@ public function __construct( S3Client $client, $instructionFileSuffix = null ) { + trigger_error( + 'S3EncryptionClient is deprecated and will be removed in a future ' . + 'release due to security vulnerabilities. Please migrate to ' . + 'S3EncryptionClientV3 as soon as possible.' . "\n" . + 'See https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/' . + 'security.html for upgrade guidance.', + E_USER_DEPRECATED + ); $this->client = $client; $this->instructionFileSuffix = $instructionFileSuffix; MetricsBuilder::appendMetricsCaptureMiddleware( diff --git a/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php index fe917800f..ed85721bf 100644 --- a/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php +++ b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php @@ -20,11 +20,11 @@ * Provides a wrapper for an S3Client that supplies functionality to encrypt * data on putObject[Async] calls and decrypt data on getObject[Async] calls. * - * AWS strongly recommends the upgrade to the S3EncryptionClientV2 (over the - * S3EncryptionClient), as it offers updated data security best practices to our - * customers who upgrade. S3EncryptionClientV2 contains breaking changes, so this + * AWS strongly recommends the upgrade to the S3EncryptionClientV3 (over the + * S3EncryptionClientV2), as it offers updated data security best practices to our + * customers who upgrade. S3EncryptionClientV3 contains breaking changes, so this * will require planning by engineering teams to migrate. New workflows should - * just start with S3EncryptionClientV2. + * just start with S3EncryptionClientV3. * * Note that for PHP versions of < 7.1, this class uses an AES-GCM polyfill * for encryption since there is no native PHP support. The performance for large @@ -75,6 +75,7 @@ * 'Cipher' => 'gcm', * 'KeySize' => 256, * ], + * '@CommitmentPolicy' => 'FORBID_ENCRYPT_ALLOW_DECRYPT', * 'Bucket' => 'your-bucket', * 'Key' => 'your-key', * ]); @@ -106,6 +107,14 @@ public function __construct( S3Client $client, $instructionFileSuffix = null ) { + trigger_error( + 'S3EncryptionClientV2 will be deprecated soon and will be removed in a future ' . + 'release due to security vulnerabilities (CVE-2024-56473). Please ' . + 'migrate to S3EncryptionClientV3 as soon as possible.' . "\n" . + 'See https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/' . + 'security.html for upgrade guidance.', + E_USER_DEPRECATED + ); $this->client = $client; $this->instructionFileSuffix = $instructionFileSuffix; $this->legacyWarningCount = 0; @@ -293,7 +302,10 @@ public function putObject(array $args) * - 'V2_AND_LEGACY' indicates that objects encrypted with both * S3EncryptionClientV2 and older legacy encryption clients are able * to be decrypted. - * + * - @CommitmentPolicy: (string) Must be set to 'FORBID_ENCRYPT_ALLOW_DECRYPT'. + * - 'FORBID_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to read messages encrypted with key commitment or without key commitment. + * * The optional configuration arguments are as follows: * * - SaveAs: (string) The path to a file on disk to save the decrypted @@ -326,6 +338,8 @@ public function getObjectAsync(array $args) $provider = $this->getMaterialsProvider($args); unset($args['@MaterialsProvider']); + $keyCommitmentPolicy = $this->getKeyCommitmentPolicy($args); + $instructionFileSuffix = $this->getInstructionFileSuffix($args); unset($args['@InstructionFileSuffix']); @@ -346,9 +360,9 @@ public function getObjectAsync(array $args) $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. ", + . " 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 ); } @@ -418,6 +432,10 @@ function ($result) use ($saveAs) { * - 'V2_AND_LEGACY' indicates that objects encrypted with both * S3EncryptionClientV2 and older legacy encryption clients are able * to be decrypted. + * - @CommitmentPolicy: (string) Must be set to 'FORBID_ENCRYPT_ALLOW_DECRYPT'. + * - 'FORBID_ENCRYPT_ALLOW_DECRYPT' indicates that the client is + * configured to read messages encrypted with key commitment + * or without key commitment. * * The optional configuration arguments are as follows: * diff --git a/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV3.php b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV3.php new file mode 100644 index 000000000..4fcd94287 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV3.php @@ -0,0 +1,581 @@ + + * use Aws\Crypto\KmsMaterialsProviderV3; + * use Aws\S3\Crypto\S3EncryptionClientV3; + * use Aws\S3\S3Client; + * + * $encryptionClient = new S3EncryptionClientV3( + * new S3Client([ + * 'region' => 'us-west-2', + * 'version' => 'latest' + * ]) + * ); + * $materialsProvider = new KmsMaterialsProviderV3( + * new KmsClient([ + * 'profile' => 'default', + * 'region' => 'us-east-1', + * 'version' => 'latest', + * ], + * 'your-kms-key-id' + * ); + * + * $encryptionClient->putObject([ + * '@MaterialsProvider' => $materialsProvider, + * '@CipherOptions' => [ + * 'Cipher' => 'gcm', + * 'KeySize' => 256, + * ], + * '@CommitmentPolicy' => 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT', + * '@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, + * ], + * '@CommitmentPolicy' => 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT', + * 'Bucket' => 'your-bucket', + * 'Key' => 'your-key', + * ]); + * + */ +class S3EncryptionClientV3 extends AbstractCryptoClientV3 +{ + use CipherBuilderTrait; + use CryptoParamsTraitV3; + use DecryptionTraitV3; + use EncryptionTraitV3; + use UserAgentTrait; + + const CRYPTO_VERSION = '3.0'; + + private S3Client $client; + private ?string $instructionFileSuffix; + private int $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( + //= ../specification/s3-encryption/client.md#wrapped-s3-client-s + //= type=implication + //# The S3EC MUST support the option to provide an SDK S3 client instance during its initialization. + S3Client $client, + //= ../specification/s3-encryption/client.md#aws-sdk-compatibility + //= type=implication + //# The S3EC MUST provide a different set of configuration options than the conventional S3 client. + + //= ../specification/s3-encryption/client.md#instruction-file-configuration + //= type=implication + //# In this case, the Instruction File Configuration SHOULD be optional, + //# such that its default configuration is used when none is provided. + ?string $instructionFileSuffix = null + ) { + //= ../specification/s3-encryption/client.md#aws-sdk-compatibility + //= type=implication + //# The S3EC MUST adhere to the same interface for API operations as the conventional AWS SDK S3 client. + $this->appendUserAgent($client, 'feat/s3-encrypt-php/' . self::CRYPTO_VERSION); + //= ../specification/s3-encryption/client.md#wrapped-s3-client-s + //# The S3EC MUST NOT support use of S3EC as the provided S3 client during its initialization; + //# it MUST throw an exception in this case. + if ($client instanceof S3EncryptionClientV3) { + throw new CryptoException("Client configuration error." + . " An S3 Encryption Client is not a valid S3 client for an S3 Encryption Client."); + } + $this->client = $client; + //= ../specification/s3-encryption/client.md#instruction-file-configuration + //= type=implication + //# The S3EC MAY support the option to provide Instruction File Configuration during its initialization. + + //= ../specification/s3-encryption/client.md#instruction-file-configuration + //= type=implication + //# If the S3EC in a given language supports Instruction Files, + //# then it MUST accept Instruction File Configuration during its initialization. + $this->instructionFileSuffix = $instructionFileSuffix; + $this->legacyWarningCount = 0; + MetricsBuilder::appendMetricsCaptureMiddleware( + $this->client->getHandlerList(), + MetricsBuilder::S3_CRYPTO_V3 + ); + + if (!extension_loaded('openssl')) { + throw new CryptoException("Unable to load `openssl` extension."); + } + } + + //= ../specification/s3-encryption/data-format/metadata-strategy.md#instruction-file + //# Instruction File writes MUST NOT be enabled by default. + private static function getDefaultStrategy(): HeadersMetadataStrategy + { + 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: (MaterialsProviderV3) Provides Cek, Iv, and Cek + * encrypting/decrypting for encryption metadata. + * - @CommitmentPolicy: (string) Must be set to 'FORBID_ENCRYPT_ALLOW_DECRYPT', + * 'REQUIRE_ENCRYPT_ALLOW_DECRYPT', or 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT'. + * - 'FORBID_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages without key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment. + * - @CipherOptions: (array) Cipher options for encrypting data. Only the + * Cipher option is required. Accepts the following: + * - Cipher: (string) gcm + * See also: AbstractCryptoClientV3::$supportedCiphers + * - KeySize: (int) 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 + * KmsMaterialsProviderV3. 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): PromiseInterface + { + //= ../specification/s3-encryption/client.md#cryptographic-materials + //= type=implication + //# The S3EC MUST accept either one CMM or one Keyring instance upon initialization. + $provider = $this->getMaterialsProvider($args); + unset($args['@MaterialsProvider']); + + //= ../specification/s3-encryption/client.md#key-commitment + //= type=implication + //# The S3EC MUST support configuration of the [Key Commitment policy](./key-commitment.md) during its initialization. + $keyCommitmentPolicy = $this->getKeyCommitmentPolicy($args); + unset($args['@CommitmentPolicy']); + + //= ../specification/s3-encryption/data-format/metadata-strategy.md#instruction-file + //# Instruction File writes MUST be optionally configured during client creation or on each PutObject request. + $instructionFileSuffix = $this->getInstructionFileSuffix($args); + unset($args['@InstructionFileSuffix']); + + $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix); + unset($args['@MetadataStrategy']); + + //= ../specification/s3-encryption/client.md#encryption-algorithm + //= type=implication + //# The S3EC MUST support configuration of the encryption algorithm (or algorithm suite) during its initialization. + $options = array_change_key_case($args); + $cipherOptions = array_intersect_key( + $options['@cipheroptions'], + self::$allowedOptions + ); + if (empty($cipherOptions['Cipher'])) { + throw new \InvalidArgumentException('An encryption cipher must be' + . ' specified in @CipherOptions["Cipher"].'); + } + + $algorithmSuite = AlgorithmSuite::validateCommitmentPolicyOnEncrypt( + $cipherOptions, + $keyCommitmentPolicy + ); + + $envelope = new MetadataEnvelope(); + + return Promise\Create::promiseFor( + //= ../specification/s3-encryption/client.md#required-api-operations + //= type=implication + //# - PutObject MUST encrypt its input data before it is uploaded to S3. + $this->encrypt( + Psr7\Utils::streamFor($args['Body']), + $algorithmSuite, + $options, + $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(); + } + //= ../specification/s3-encryption/data-format/metadata-strategy.md#object-metadata + //# By default, the S3EC MUST store content metadata in the S3 Object Metadata. + $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): \Closure + { + 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. + * - @CommitmentPolicy: (string) Must be set to 'FORBID_ENCRYPT_ALLOW_DECRYPT', + * 'REQUIRE_ENCRYPT_ALLOW_DECRYPT', or 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT'. + * - 'FORBID_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages without key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment. + * - @CipherOptions: (array) Cipher options for encrypting data. A Cipher + * is required. Accepts the following options: + * - Cipher: (string) gcm + * See also: AbstractCryptoClientV3::$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 + * KmsMaterialsProviderV3. 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): Result + { + //= ../specification/s3-encryption/client.md#required-api-operations + //= type=implication + //# - PutObject MUST be implemented by the S3EC. + 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. + * - @CommitmentPolicy: (string) Must be set to 'FORBID_ENCRYPT_ALLOW_DECRYPT', + * 'REQUIRE_ENCRYPT_ALLOW_DECRYPT', or 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT'. + * - 'FORBID_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages without key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment. + * - @SecurityProfile: (string) Must be set to 'V3' or 'V3_AND_LEGACY'. + * - 'V3' indicates that only objects encrypted with S3EncryptionClientV3 + * content encryption and key wrap schemas are able to be decrypted. + * - 'V3_AND_LEGACY' indicates that objects encrypted with both + * S3EncryptionClientV3 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): PromiseInterface + { + //= ../specification/s3-encryption/client.md#cryptographic-materials + //= type=implication + //# The S3EC MUST accept either one CMM or one Keyring instance upon initialization. + $provider = $this->getMaterialsProvider($args); + unset($args['@MaterialsProvider']); + + //= ../specification/s3-encryption/client.md#key-commitment + //= type=implication + //# The S3EC MUST support configuration of the [Key Commitment policy](./key-commitment.md) during its initialization. + $keyCommitmentPolicy = $this->getKeyCommitmentPolicy($args); + unset($args['@CommitmentPolicy']); + + $instructionFileSuffix = $this->getInstructionFileSuffix($args); + unset($args['@InstructionFileSuffix']); + + $strategy = $this->getMetadataStrategy($args, $instructionFileSuffix); + unset($args['@MetadataStrategy']); + + //= ../specification/s3-encryption/client.md#enable-legacy-wrapping-algorithms + //= type=implication + //# The S3EC MUST support the option to enable or disable legacy wrapping algorithms. + if (!isset($args['@SecurityProfile']) + || !in_array($args['@SecurityProfile'], self::SUPPORTED_SECURITY_PROFILES) + ) { + throw new CryptoException("@SecurityProfile is required and must be" + . " set to 'V3' or 'V3_AND_LEGACY'"); + } + + // Only throw this legacy warning once per client + if (in_array($args['@SecurityProfile'], self::LEGACY_SECURITY_PROFILES) + && $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, + $keyCommitmentPolicy, + $args + ) { + if ($strategy === null) { + $strategy = $this->determineGetObjectStrategy( + $result, + $instructionFileSuffix + ); + } + + $envelope = $strategy->load($args + [ + 'Metadata' => $result['Metadata'] + ]); + //= ../specification/s3-encryption/client.md#required-api-operations + //= type=implication + //# - GetObject MUST decrypt data received from the S3 server and return it as plaintext. + $result['Body'] = $this->decrypt( + $result['Body'], + $provider, + $envelope, + $keyCommitmentPolicy, + $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. + * - @CommitmentPolicy: (string) Must be set to 'FORBID_ENCRYPT_ALLOW_DECRYPT', + * 'REQUIRE_ENCRYPT_ALLOW_DECRYPT', or 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT'. + * - 'FORBID_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages without key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_ALLOW_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment or without key commitment. + * - 'REQUIRE_ENCRYPT_REQUIRE_DECRYPT' indicates that the client is configured + * to write messages with key commitment and read messages encrypted + * with key commitment. + * - @SecurityProfile: (string) Must be set to 'V3' or 'V3_AND_LEGACY'. + * - 'V3' indicates that only objects encrypted with S3EncryptionClientV3 + * content encryption and key wrap schemas are able to be decrypted. + * - 'V3_AND_LEGACY' indicates that objects encrypted with both + * S3EncryptionClientV3 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): Result + { + //= ../specification/s3-encryption/client.md#required-api-operations + //= type=implication + //# - GetObject MUST be implemented by the S3EC. + return $this->getObjectAsync($args)->wait(); + } +} diff --git a/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV3.php b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV3.php new file mode 100644 index 000000000..bd4f20f7a --- /dev/null +++ b/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV3.php @@ -0,0 +1,217 @@ +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->keyCommitmentPolicy = $this->getKeyCommitmentPolicy($config); + unset($config['@CommitmentPolicy']); + + $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']); + + $options = array_change_key_case($config); + $cipherOptions = array_intersect_key( + $options['@cipheroptions'], + self::$allowedOptions + ); + if (empty($cipherOptions['Cipher'])) { + throw new \InvalidArgumentException('An encryption cipher must be' + . ' specified in @CipherOptions["Cipher"].'); + } + + $this->algorithmSuite = AlgorithmSuite::validateCommitmentPolicyOnEncrypt( + $cipherOptions, + $this->keyCommitmentPolicy + ); + + //= ../specification/s3-encryption/client.md#optional-api-operations + //= type=implication + //# - If implemented, CreateMultipartUpload MUST initiate a multipart upload. + $config['prepare_data_source'] = $this->getEncryptingDataPreparer(); + + parent::__construct($client, $source, $config); + + if (!extension_loaded('openssl')) { + throw new CryptoException("Unable to load `openssl` extension."); + } + } + + 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->algorithmSuite, + $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/aws/aws-sdk-php/src/S3/Crypto/S3_EC_SUPPORT_POLICY.md b/aws/aws-sdk-php/src/S3/Crypto/S3_EC_SUPPORT_POLICY.md new file mode 100644 index 000000000..598701672 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/Crypto/S3_EC_SUPPORT_POLICY.md @@ -0,0 +1,19 @@ +# Overview + +This page describes the support policy for the Amazon S3 Encryption Client for PHP. We regularly provide the Amazon S3 Encryption Client for PHP with updates that may contain support for new or updated APIs, new features, enhancements, bug fixes, security patches, or documentation updates. Updates may also address changes with dependencies, language runtimes, and operating systems. + +We recommend users to stay up-to-date with Amazon S3 Encryption Client for PHP releases to keep up with the latest features, security updates, and underlying dependencies. Continued use of an unsupported SDK version is not recommended and is done at the user's discretion. + +# Major Version Lifecycle + +The Amazon S3 Encryption Client for Go follows the same major version lifecycle as the AWS SDK. For details on this lifecycle, see [AWS SDKs and Tools Maintenance Policy](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle). + +# Version Support Matrix + +This table describes the current support status of each major version of the Amazon S3 Encryption Client for PHP. It also shows the next status each major version will transition to, and the date at which that transition will happen. + +| Major version | Current status | Next status | Next status date | +|--------------|----------------|-------------|------------------| +| 3.x | General Availability | - | - | +| 2.x | General Availability | Maintenance | 2026-06-15 | +| 1.x | End of Support | - | - | diff --git a/aws/aws-sdk-php/src/S3/S3Client.php b/aws/aws-sdk-php/src/S3/S3Client.php index 585de5bfe..c7177d1e1 100644 --- a/aws/aws-sdk-php/src/S3/S3Client.php +++ b/aws/aws-sdk-php/src/S3/S3Client.php @@ -41,6 +41,8 @@ * @method \GuzzleHttp\Promise\Promise copyObjectAsync(array $args = []) * @method \Aws\Result createBucket(array $args = []) * @method \GuzzleHttp\Promise\Promise createBucketAsync(array $args = []) + * @method \Aws\Result createBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketMetadataConfigurationAsync(array $args = []) * @method \Aws\Result createBucketMetadataTableConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise createBucketMetadataTableConfigurationAsync(array $args = []) * @method \Aws\Result createMultipartUpload(array $args = []) @@ -61,6 +63,8 @@ * @method \GuzzleHttp\Promise\Promise deleteBucketInventoryConfigurationAsync(array $args = []) * @method \Aws\Result deleteBucketLifecycle(array $args = []) * @method \GuzzleHttp\Promise\Promise deleteBucketLifecycleAsync(array $args = []) + * @method \Aws\Result deleteBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetadataConfigurationAsync(array $args = []) * @method \Aws\Result deleteBucketMetadataTableConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise deleteBucketMetadataTableConfigurationAsync(array $args = []) * @method \Aws\Result deleteBucketMetricsConfiguration(array $args = []) @@ -83,6 +87,8 @@ * @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = []) * @method \Aws\Result deletePublicAccessBlock(array $args = []) * @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = []) + * @method \Aws\Result getBucketAbac(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAbacAsync(array $args = []) * @method \Aws\Result getBucketAccelerateConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = []) * @method \Aws\Result getBucketAcl(array $args = []) @@ -105,6 +111,8 @@ * @method \GuzzleHttp\Promise\Promise getBucketLocationAsync(array $args = []) * @method \Aws\Result getBucketLogging(array $args = []) * @method \GuzzleHttp\Promise\Promise getBucketLoggingAsync(array $args = []) + * @method \Aws\Result getBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetadataConfigurationAsync(array $args = []) * @method \Aws\Result getBucketMetadataTableConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise getBucketMetadataTableConfigurationAsync(array $args = []) * @method \Aws\Result getBucketMetricsConfiguration(array $args = []) @@ -173,6 +181,8 @@ * @method \GuzzleHttp\Promise\Promise listObjectsV2Async(array $args = []) * @method \Aws\Result listParts(array $args = []) * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = []) + * @method \Aws\Result putBucketAbac(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAbacAsync(array $args = []) * @method \Aws\Result putBucketAccelerateConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise putBucketAccelerateConfigurationAsync(array $args = []) * @method \Aws\Result putBucketAcl(array $args = []) @@ -233,6 +243,10 @@ * @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = []) * @method \Aws\Result selectObjectContent(array $args = []) * @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = []) + * @method \Aws\Result updateBucketMetadataInventoryTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBucketMetadataInventoryTableConfigurationAsync(array $args = []) + * @method \Aws\Result updateBucketMetadataJournalTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBucketMetadataJournalTableConfigurationAsync(array $args = []) * @method \Aws\Result uploadPart(array $args = []) * @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = []) * @method \Aws\Result uploadPartCopy(array $args = []) @@ -422,6 +436,7 @@ public function __construct(array $args) $this->addBuiltIns($args); parent::__construct($args); $stack = $this->getHandlerList(); + $config = $this->getConfig(); $stack->appendInit(SSECMiddleware::wrap($this->getEndpoint()->getScheme()), 's3.ssec'); $stack->appendBuild( ApplyChecksumMiddleware::wrap($this->getApi(), $this->getConfig()), @@ -433,7 +448,9 @@ public function __construct(array $args) ); if ($this->getConfig('bucket_endpoint')) { - $stack->appendBuild(BucketEndpointMiddleware::wrap(), 's3.bucket_endpoint'); + $stack->appendBuild(BucketEndpointMiddleware::wrap( + $this->isUseEndpointV2(), $args['endpoint'] ?? null), 's3.bucket_endpoint' + ); } elseif (!$this->isUseEndpointV2()) { $stack->appendBuild( S3EndpointMiddleware::wrap( @@ -916,6 +933,10 @@ private function processModel(bool $isUseEndpointV2): void $requestUri = str_replace('/{Bucket}', '/', $requestUri); } else { $requestUri = str_replace('/{Bucket}', '', $requestUri); + // If we're left with just a query string, prepend '/' + if (str_starts_with($requestUri, '?')) { + $requestUri = '/' . $requestUri; + } } $operation['http']['requestUri'] = $requestUri; } @@ -924,7 +945,7 @@ private function processModel(bool $isUseEndpointV2): void foreach ($definition['shapes'] as $key => &$value) { $suffix = 'Output'; - if (substr($key, -strlen($suffix)) === $suffix) { + if (str_ends_with($key, $suffix)) { if (isset($value['members']['Expires'])) { $value['members']['Expires']['deprecated'] = true; $value['members']['ExpiresString'] = [ diff --git a/aws/aws-sdk-php/src/S3/S3ClientInterface.php b/aws/aws-sdk-php/src/S3/S3ClientInterface.php index 261d7dd3c..a35776c72 100644 --- a/aws/aws-sdk-php/src/S3/S3ClientInterface.php +++ b/aws/aws-sdk-php/src/S3/S3ClientInterface.php @@ -8,6 +8,230 @@ use GuzzleHttp\Promise\PromiseInterface; use Psr\Http\Message\RequestInterface; +/** + * **Amazon Simple Storage Service** client. + * + * @method \Aws\Result abortMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise abortMultipartUploadAsync(array $args = []) + * @method \Aws\Result completeMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise completeMultipartUploadAsync(array $args = []) + * @method \Aws\Result copyObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise copyObjectAsync(array $args = []) + * @method \Aws\Result createBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketAsync(array $args = []) + * @method \Aws\Result createBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketMetadataConfigurationAsync(array $args = []) + * @method \Aws\Result createBucketMetadataTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketMetadataTableConfigurationAsync(array $args = []) + * @method \Aws\Result createMultipartUpload(array $args = []) + * @method \GuzzleHttp\Promise\Promise createMultipartUploadAsync(array $args = []) + * @method \Aws\Result createSession(array $args = []) + * @method \GuzzleHttp\Promise\Promise createSessionAsync(array $args = []) + * @method \Aws\Result deleteBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketAsync(array $args = []) + * @method \Aws\Result deleteBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketCorsAsync(array $args = []) + * @method \Aws\Result deleteBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketEncryptionAsync(array $args = []) + * @method \Aws\Result deleteBucketIntelligentTieringConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketIntelligentTieringConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketLifecycleAsync(array $args = []) + * @method \Aws\Result deleteBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetadataConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketMetadataTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetadataTableConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result deleteBucketOwnershipControls(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketOwnershipControlsAsync(array $args = []) + * @method \Aws\Result deleteBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketPolicyAsync(array $args = []) + * @method \Aws\Result deleteBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketReplicationAsync(array $args = []) + * @method \Aws\Result deleteBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketTaggingAsync(array $args = []) + * @method \Aws\Result deleteBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketWebsiteAsync(array $args = []) + * @method \Aws\Result deleteObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectAsync(array $args = []) + * @method \Aws\Result deleteObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectTaggingAsync(array $args = []) + * @method \Aws\Result deleteObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = []) + * @method \Aws\Result deletePublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = []) + * @method \Aws\Result getBucketAbac(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAbacAsync(array $args = []) + * @method \Aws\Result getBucketAccelerateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAclAsync(array $args = []) + * @method \Aws\Result getBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketCorsAsync(array $args = []) + * @method \Aws\Result getBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketEncryptionAsync(array $args = []) + * @method \Aws\Result getBucketIntelligentTieringConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketIntelligentTieringConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLifecycleAsync(array $args = []) + * @method \Aws\Result getBucketLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketLocation(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLocationAsync(array $args = []) + * @method \Aws\Result getBucketLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketLoggingAsync(array $args = []) + * @method \Aws\Result getBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetadataConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketMetadataTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetadataTableConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketNotificationAsync(array $args = []) + * @method \Aws\Result getBucketNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result getBucketOwnershipControls(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketOwnershipControlsAsync(array $args = []) + * @method \Aws\Result getBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketPolicyAsync(array $args = []) + * @method \Aws\Result getBucketPolicyStatus(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketPolicyStatusAsync(array $args = []) + * @method \Aws\Result getBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketReplicationAsync(array $args = []) + * @method \Aws\Result getBucketRequestPayment(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketRequestPaymentAsync(array $args = []) + * @method \Aws\Result getBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketTaggingAsync(array $args = []) + * @method \Aws\Result getBucketVersioning(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketVersioningAsync(array $args = []) + * @method \Aws\Result getBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketWebsiteAsync(array $args = []) + * @method \Aws\Result getObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAsync(array $args = []) + * @method \Aws\Result getObjectAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAclAsync(array $args = []) + * @method \Aws\Result getObjectAttributes(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectAttributesAsync(array $args = []) + * @method \Aws\Result getObjectLegalHold(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectLegalHoldAsync(array $args = []) + * @method \Aws\Result getObjectLockConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectLockConfigurationAsync(array $args = []) + * @method \Aws\Result getObjectRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectRetentionAsync(array $args = []) + * @method \Aws\Result getObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectTaggingAsync(array $args = []) + * @method \Aws\Result getObjectTorrent(array $args = []) + * @method \GuzzleHttp\Promise\Promise getObjectTorrentAsync(array $args = []) + * @method \Aws\Result getPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise getPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result headBucket(array $args = []) + * @method \GuzzleHttp\Promise\Promise headBucketAsync(array $args = []) + * @method \Aws\Result headObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise headObjectAsync(array $args = []) + * @method \Aws\Result listBucketAnalyticsConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketAnalyticsConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketIntelligentTieringConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketIntelligentTieringConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketInventoryConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketInventoryConfigurationsAsync(array $args = []) + * @method \Aws\Result listBucketMetricsConfigurations(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketMetricsConfigurationsAsync(array $args = []) + * @method \Aws\Result listBuckets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listBucketsAsync(array $args = []) + * @method \Aws\Result listDirectoryBuckets(array $args = []) + * @method \GuzzleHttp\Promise\Promise listDirectoryBucketsAsync(array $args = []) + * @method \Aws\Result listMultipartUploads(array $args = []) + * @method \GuzzleHttp\Promise\Promise listMultipartUploadsAsync(array $args = []) + * @method \Aws\Result listObjectVersions(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectVersionsAsync(array $args = []) + * @method \Aws\Result listObjects(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectsAsync(array $args = []) + * @method \Aws\Result listObjectsV2(array $args = []) + * @method \GuzzleHttp\Promise\Promise listObjectsV2Async(array $args = []) + * @method \Aws\Result listParts(array $args = []) + * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = []) + * @method \Aws\Result putBucketAbac(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAbacAsync(array $args = []) + * @method \Aws\Result putBucketAccelerateConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAccelerateConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAclAsync(array $args = []) + * @method \Aws\Result putBucketAnalyticsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAnalyticsConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketCors(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketCorsAsync(array $args = []) + * @method \Aws\Result putBucketEncryption(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketEncryptionAsync(array $args = []) + * @method \Aws\Result putBucketIntelligentTieringConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketIntelligentTieringConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketInventoryConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketInventoryConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketLifecycle(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLifecycleAsync(array $args = []) + * @method \Aws\Result putBucketLifecycleConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLifecycleConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketLogging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketLoggingAsync(array $args = []) + * @method \Aws\Result putBucketMetricsConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketMetricsConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketNotification(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketNotificationAsync(array $args = []) + * @method \Aws\Result putBucketNotificationConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketNotificationConfigurationAsync(array $args = []) + * @method \Aws\Result putBucketOwnershipControls(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketOwnershipControlsAsync(array $args = []) + * @method \Aws\Result putBucketPolicy(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketPolicyAsync(array $args = []) + * @method \Aws\Result putBucketReplication(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketReplicationAsync(array $args = []) + * @method \Aws\Result putBucketRequestPayment(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketRequestPaymentAsync(array $args = []) + * @method \Aws\Result putBucketTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketTaggingAsync(array $args = []) + * @method \Aws\Result putBucketVersioning(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketVersioningAsync(array $args = []) + * @method \Aws\Result putBucketWebsite(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketWebsiteAsync(array $args = []) + * @method \Aws\Result putObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAsync(array $args = []) + * @method \Aws\Result putObjectAcl(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectAclAsync(array $args = []) + * @method \Aws\Result putObjectLegalHold(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectLegalHoldAsync(array $args = []) + * @method \Aws\Result putObjectLockConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectLockConfigurationAsync(array $args = []) + * @method \Aws\Result putObjectRetention(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectRetentionAsync(array $args = []) + * @method \Aws\Result putObjectTagging(array $args = []) + * @method \GuzzleHttp\Promise\Promise putObjectTaggingAsync(array $args = []) + * @method \Aws\Result putPublicAccessBlock(array $args = []) + * @method \GuzzleHttp\Promise\Promise putPublicAccessBlockAsync(array $args = []) + * @method \Aws\Result renameObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise renameObjectAsync(array $args = []) + * @method \Aws\Result restoreObject(array $args = []) + * @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = []) + * @method \Aws\Result selectObjectContent(array $args = []) + * @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = []) + * @method \Aws\Result updateBucketMetadataInventoryTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBucketMetadataInventoryTableConfigurationAsync(array $args = []) + * @method \Aws\Result updateBucketMetadataJournalTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBucketMetadataJournalTableConfigurationAsync(array $args = []) + * @method \Aws\Result uploadPart(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = []) + * @method \Aws\Result uploadPartCopy(array $args = []) + * @method \GuzzleHttp\Promise\Promise uploadPartCopyAsync(array $args = []) + * @method \Aws\Result writeGetObjectResponse(array $args = []) + * @method \GuzzleHttp\Promise\Promise writeGetObjectResponseAsync(array $args = []) + */ interface S3ClientInterface extends AwsClientInterface { /** diff --git a/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php b/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php index c6ca323e4..3a688a10a 100644 --- a/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php +++ b/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php @@ -20,6 +20,8 @@ * @method \GuzzleHttp\Promise\Promise copyObjectAsync(array $args = []) * @method \Aws\Result createBucket(array $args = []) * @method \GuzzleHttp\Promise\Promise createBucketAsync(array $args = []) + * @method \Aws\Result createBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise createBucketMetadataConfigurationAsync(array $args = []) * @method \Aws\Result createBucketMetadataTableConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise createBucketMetadataTableConfigurationAsync(array $args = []) * @method \Aws\Result createMultipartUpload(array $args = []) @@ -40,6 +42,8 @@ * @method \GuzzleHttp\Promise\Promise deleteBucketInventoryConfigurationAsync(array $args = []) * @method \Aws\Result deleteBucketLifecycle(array $args = []) * @method \GuzzleHttp\Promise\Promise deleteBucketLifecycleAsync(array $args = []) + * @method \Aws\Result deleteBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise deleteBucketMetadataConfigurationAsync(array $args = []) * @method \Aws\Result deleteBucketMetadataTableConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise deleteBucketMetadataTableConfigurationAsync(array $args = []) * @method \Aws\Result deleteBucketMetricsConfiguration(array $args = []) @@ -62,6 +66,8 @@ * @method \GuzzleHttp\Promise\Promise deleteObjectsAsync(array $args = []) * @method \Aws\Result deletePublicAccessBlock(array $args = []) * @method \GuzzleHttp\Promise\Promise deletePublicAccessBlockAsync(array $args = []) + * @method \Aws\Result getBucketAbac(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketAbacAsync(array $args = []) * @method \Aws\Result getBucketAccelerateConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise getBucketAccelerateConfigurationAsync(array $args = []) * @method \Aws\Result getBucketAcl(array $args = []) @@ -84,6 +90,8 @@ * @method \GuzzleHttp\Promise\Promise getBucketLocationAsync(array $args = []) * @method \Aws\Result getBucketLogging(array $args = []) * @method \GuzzleHttp\Promise\Promise getBucketLoggingAsync(array $args = []) + * @method \Aws\Result getBucketMetadataConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise getBucketMetadataConfigurationAsync(array $args = []) * @method \Aws\Result getBucketMetadataTableConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise getBucketMetadataTableConfigurationAsync(array $args = []) * @method \Aws\Result getBucketMetricsConfiguration(array $args = []) @@ -152,6 +160,8 @@ * @method \GuzzleHttp\Promise\Promise listObjectsV2Async(array $args = []) * @method \Aws\Result listParts(array $args = []) * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = []) + * @method \Aws\Result putBucketAbac(array $args = []) + * @method \GuzzleHttp\Promise\Promise putBucketAbacAsync(array $args = []) * @method \Aws\Result putBucketAccelerateConfiguration(array $args = []) * @method \GuzzleHttp\Promise\Promise putBucketAccelerateConfigurationAsync(array $args = []) * @method \Aws\Result putBucketAcl(array $args = []) @@ -212,6 +222,10 @@ * @method \GuzzleHttp\Promise\Promise restoreObjectAsync(array $args = []) * @method \Aws\Result selectObjectContent(array $args = []) * @method \GuzzleHttp\Promise\Promise selectObjectContentAsync(array $args = []) + * @method \Aws\Result updateBucketMetadataInventoryTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBucketMetadataInventoryTableConfigurationAsync(array $args = []) + * @method \Aws\Result updateBucketMetadataJournalTableConfiguration(array $args = []) + * @method \GuzzleHttp\Promise\Promise updateBucketMetadataJournalTableConfigurationAsync(array $args = []) * @method \Aws\Result uploadPart(array $args = []) * @method \GuzzleHttp\Promise\Promise uploadPartAsync(array $args = []) * @method \Aws\Result uploadPartCopy(array $args = []) diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartDownloader.php b/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartDownloader.php new file mode 100644 index 000000000..4e961e2fd --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartDownloader.php @@ -0,0 +1,445 @@ +downloadRequestArgs = $downloadRequestArgs; + $this->validateConfig($config); + $this->config = $config; + if ($downloadHandler === null) { + $downloadHandler = new StreamDownloadHandler(); + } + $this->downloadHandler = $downloadHandler; + $this->currentPartNo = $currentPartNo; + $this->objectPartsCount = $objectPartsCount; + $this->objectSizeInBytes = $objectSizeInBytes; + $this->eTag = $eTag; + $this->currentSnapshot = $currentSnapshot; + if ($listenerNotifier === null) { + $listenerNotifier = new TransferListenerNotifier(); + } + // Add download handler to the listener notifier + $listenerNotifier->addListener($downloadHandler); + $this->listenerNotifier = $listenerNotifier; + } + + /** + * Returns the next command for fetching the next object part. + * + * @return CommandInterface + */ + abstract protected function nextCommand(): CommandInterface; + + /** + * Compute the object dimensions, such as size and parts count. + * + * @param ResultInterface $result + * + * @return void + */ + abstract protected function computeObjectDimensions(ResultInterface $result): void; + + private function validateConfig(array &$config): void + { + if (!isset($config['target_part_size_bytes'])) { + $config['target_part_size_bytes'] = S3TransferManagerConfig::DEFAULT_TARGET_PART_SIZE_BYTES; + } + + if (!isset($config['response_checksum_validation'])) { + $config['response_checksum_validation'] = S3TransferManagerConfig::DEFAULT_RESPONSE_CHECKSUM_VALIDATION; + } + } + + /** + * @return array + */ + public function getConfig(): array + { + return $this->config; + } + + /** + * @return int + */ + public function getCurrentPartNo(): int + { + return $this->currentPartNo; + } + + /** + * @return int + */ + public function getObjectPartsCount(): int + { + return $this->objectPartsCount; + } + + /** + * @return int + */ + public function getObjectSizeInBytes(): int + { + return $this->objectSizeInBytes; + } + + /** + * @return TransferProgressSnapshot + */ + public function getCurrentSnapshot(): TransferProgressSnapshot + { + return $this->currentSnapshot; + } + + /** + * @return DownloadResult + */ + public function download(): DownloadResult + { + return $this->promise()->wait(); + } + + /** + * Returns that resolves a multipart download operation, + * or to a rejection in case of any failures. + * + * @return PromiseInterface + */ + public function promise(): PromiseInterface + { + return Coroutine::of(function () { + try { + $initialRequestResult = yield $this->initialRequest(); + $prevPartNo = $this->currentPartNo - 1; + while ($this->currentPartNo < $this->objectPartsCount) { + // To prevent infinite loops + if ($prevPartNo !== $this->currentPartNo - 1) { + throw new S3TransferException( + "Current part `$this->currentPartNo` MUST increment." + ); + } + + $prevPartNo = $this->currentPartNo; + + $command = $this->nextCommand(); + yield $this->s3Client->executeAsync($command) + ->then(function ($result) use ($command) { + $this->partDownloadCompleted( + $result, + $command->toArray() + ); + + return $result; + })->otherwise(function ($reason) { + $this->partDownloadFailed($reason); + + throw $reason; + }); + } + + if ($this->currentPartNo !== $this->objectPartsCount) { + throw new S3TransferException( + "Expected number of parts `$this->objectPartsCount`" + . " to have been transferred but got `$this->currentPartNo`." + ); + } + + // Transfer completed + $this->downloadComplete(); + + // Return response + $result = $initialRequestResult->toArray(); + unset($result['Body']); + + yield Create::promiseFor(new DownloadResult( + $this->downloadHandler->getHandlerResult(), + $result, + )); + } catch (\Throwable $e) { + $this->downloadFailed($e); + yield Create::rejectionFor($e); + } + }); + } + + /** + * Perform the initial download request. + * + * @return PromiseInterface + */ + protected function initialRequest(): PromiseInterface + { + $command = $this->nextCommand(); + // Notify download initiated + $this->downloadInitiated($command->toArray()); + + return $this->s3Client->executeAsync($command) + ->then(function (ResultInterface $result) use ($command) { + // Compute object dimensions such as parts count and object size + $this->computeObjectDimensions($result); + + // If there are more than one part then save the ETag + if ($this->objectPartsCount > 1) { + $this->eTag = $result['ETag']; + } + + // Notify listeners + $this->partDownloadCompleted( + $result, + $command->toArray() + ); + + // Assign custom fields in the result + $result['ContentLength'] = $this->objectSizeInBytes; + + return $result; + })->otherwise(function ($reason) { + $this->partDownloadFailed($reason); + + throw $reason; + }); + } + + /** + * Calculates the object size from content range. + * + * @param string $contentRange + * @return int + */ + protected function computeObjectSizeFromContentRange( + string $contentRange + ): int + { + if (empty($contentRange)) { + return 0; + } + + // For extracting the object size from the ContentRange header value. + if (preg_match(self::OBJECT_SIZE_REGEX, $contentRange, $matches)) { + return $matches[1]; + } + + throw new S3TransferException( + "Invalid content range \"$contentRange\"" + ); + } + + /** + * Main purpose of this method is to propagate + * the download-initiated event to listeners, but + * also it does some computation regarding internal states + * that need to be maintained. + * + * @param array $commandArgs + * + * @return void + */ + private function downloadInitiated(array $commandArgs): void + { + if ($this->currentSnapshot === null) { + $this->currentSnapshot = new TransferProgressSnapshot( + $commandArgs['Key'], + 0, + $this->objectSizeInBytes + ); + } else { + $this->currentSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes(), + $this->currentSnapshot->getTotalBytes(), + $this->currentSnapshot->getResponse() + ); + } + + $this->listenerNotifier?->transferInitiated([ + AbstractTransferListener::REQUEST_ARGS_KEY => $commandArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot, + ]); + } + + /** + * Propagates download-failed event to listeners. + * + * @param \Throwable $reason + * + * @return void + */ + private function downloadFailed(\Throwable $reason): void + { + // Event already propagated. + if ($this->currentSnapshot->getReason() !== null) { + return; + } + + $this->currentSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes(), + $this->currentSnapshot->getTotalBytes(), + $this->currentSnapshot->getResponse(), + $reason + ); + + $this->listenerNotifier?->transferFail([ + AbstractTransferListener::REQUEST_ARGS_KEY => $this->downloadRequestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot, + 'reason' => $reason, + ]); + } + + /** + * Propagates part-download-completed to listeners. + * It also does some computation in order to maintain internal states. + * + * @param ResultInterface $result + * + * @return void + */ + private function partDownloadCompleted( + ResultInterface $result, + array $requestArgs + ): void + { + $partDownloadBytes = $result['ContentLength']; + if (isset($result['ETag'])) { + $this->eTag = $result['ETag']; + } + + $newSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes() + $partDownloadBytes, + $this->objectSizeInBytes, + $result->toArray() + ); + $this->currentSnapshot = $newSnapshot; + $this->listenerNotifier?->bytesTransferred([ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot, + ]); + } + + /** + * Propagates part-download-failed event to listeners. + * + * @param \Throwable $reason + * + * @return void + */ + private function partDownloadFailed( + \Throwable $reason, + ): void + { + $this->downloadFailed($reason); + } + + /** + * Propagates object-download-completed event to listeners. + * + * @return void + */ + private function downloadComplete(): void + { + $newSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes(), + $this->objectSizeInBytes, + $this->currentSnapshot->getResponse() + ); + $this->currentSnapshot = $newSnapshot; + $this->listenerNotifier?->transferComplete([ + AbstractTransferListener::REQUEST_ARGS_KEY => $this->downloadRequestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot, + ]); + } + + /** + * @param mixed $multipartDownloadType + * + * @return string + */ + public static function chooseDownloaderClass( + string $multipartDownloadType + ): string + { + return match ($multipartDownloadType) { + AbstractMultipartDownloader::PART_GET_MULTIPART_DOWNLOADER => PartGetMultipartDownloader::class, + AbstractMultipartDownloader::RANGED_GET_MULTIPART_DOWNLOADER => RangeGetMultipartDownloader::class, + default => throw new \InvalidArgumentException( + "The config value for `multipart_download_type` must be one of:\n" + . "\t* " . AbstractMultipartDownloader::PART_GET_MULTIPART_DOWNLOADER + ."\n" + . "\t* " . AbstractMultipartDownloader::RANGED_GET_MULTIPART_DOWNLOADER + ) + }; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartUploader.php b/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartUploader.php new file mode 100644 index 000000000..886eb85e3 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartUploader.php @@ -0,0 +1,405 @@ +s3Client = $s3Client; + $this->requestArgs = $requestArgs; + $this->validateConfig($config); + $this->config = $config; + $this->uploadId = $uploadId; + $this->parts = $parts; + $this->currentSnapshot = $currentSnapshot; + $this->listenerNotifier = $listenerNotifier; + } + + /** + * @return PromiseInterface + */ + abstract protected function createMultipartOperation(): PromiseInterface; + + /** + * @return PromiseInterface + */ + abstract protected function completeMultipartOperation(): PromiseInterface; + + /** + * @return PromiseInterface + */ + abstract protected function processMultipartOperation(): PromiseInterface; + + /** + * @return int + */ + abstract protected function getTotalSize(): int; + + /** + * @param ResultInterface $result + * + * @return mixed + */ + abstract protected function createResponse(ResultInterface $result): mixed; + + /** + * @param array $config + * + * @return void + */ + protected function validateConfig(array &$config): void + { + if (!isset($config['target_part_size_bytes'])) { + $config['target_part_size_bytes'] = S3TransferManagerConfig::DEFAULT_TARGET_PART_SIZE_BYTES; + } + + if (!isset($config['concurrency'])) { + $config['concurrency'] = S3TransferManagerConfig::DEFAULT_CONCURRENCY; + } + + $partSize = $config['target_part_size_bytes']; + if ($partSize < self::PART_MIN_SIZE || $partSize > self::PART_MAX_SIZE) { + throw new \InvalidArgumentException( + "Part size config must be between " . self::PART_MIN_SIZE + ." and " . self::PART_MAX_SIZE . " bytes " + ."but it is configured to $partSize" + ); + } + } + + /** + * @return string|null + */ + public function getUploadId(): ?string + { + return $this->uploadId; + } + + /** + * @return array + */ + public function getParts(): array + { + return $this->parts; + } + + /** + * Get the current progress snapshot. + * @return TransferProgressSnapshot|null + */ + public function getCurrentSnapshot(): ?TransferProgressSnapshot + { + return $this->currentSnapshot; + } + + /** + * @return PromiseInterface + */ + public function promise(): PromiseInterface + { + return Coroutine::of(function () { + try { + yield $this->createMultipartOperation(); + yield $this->processMultipartOperation(); + yield $this->completeMultipartOperation(); + } finally { + $this->callOnCompletionCallbacks(); + } + })->then(function (ResultInterface $result) { + return $this->createResponse($result); + })->otherwise(function (Throwable $e) { + $this->operationFailed($e); + + throw $e; + }); + } + + /** + * @return PromiseInterface + */ + protected function abortMultipartOperation(): PromiseInterface + { + $abortMultipartUploadArgs = $this->requestArgs; + $abortMultipartUploadArgs['UploadId'] = $this->uploadId; + $command = $this->s3Client->getCommand( + 'AbortMultipartUpload', + $abortMultipartUploadArgs + ); + + return $this->s3Client->executeAsync($command); + } + + /** + * @return void + */ + protected function sortParts(): void + { + usort($this->parts, function ($partOne, $partTwo) { + return $partOne['PartNumber'] <=> $partTwo['PartNumber']; + }); + } + + /** + * @param ResultInterface $result + * @param CommandInterface $command + * @return void + */ + protected function collectPart( + ResultInterface $result, + CommandInterface $command + ): void + { + $checksumResult = match($command->getName()) { + 'UploadPart' => $result, + 'UploadPartCopy' => $result['CopyPartResult'], + default => $result[$command->getName() . 'Result'] + }; + + $partData = [ + 'PartNumber' => $command['PartNumber'], + 'ETag' => $checksumResult['ETag'], + ]; + + if (isset($command['ChecksumAlgorithm'])) { + $checksumMemberName = 'Checksum' . strtoupper($command['ChecksumAlgorithm']); + $partData[$checksumMemberName] = $checksumResult[$checksumMemberName] ?? null; + } + + $this->parts[] = $partData; + } + + /** + * @param \Iterator $commands + * @param callable $fulfilledCallback + * @param callable $rejectedCallback + * @return PromiseInterface + */ + protected function createCommandPool( + \Iterator $commands, + callable $fulfilledCallback, + callable $rejectedCallback + ): PromiseInterface + { + return (new CommandPool( + $this->s3Client, + $commands, + [ + 'concurrency' => $this->config['concurrency'], + 'fulfilled' => $fulfilledCallback, + 'rejected' => $rejectedCallback + ] + ))->promise(); + } + + /** + * @param array $requestArgs + * @return void + */ + protected function operationInitiated(array $requestArgs): void + { + if ($this->currentSnapshot === null) { + $this->currentSnapshot = new TransferProgressSnapshot( + $requestArgs['Key'], + 0, + $this->getTotalSize() + ); + } + + $this->listenerNotifier?->transferInitiated([ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot + ]); + } + + /** + * @param ResultInterface $result + * @return void + */ + protected function operationCompleted(ResultInterface $result): void + { + $newSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes(), + $this->currentSnapshot->getTotalBytes(), + $result->toArray(), + $this->currentSnapshot->getReason(), + ); + + $this->currentSnapshot = $newSnapshot; + + $this->listenerNotifier?->transferComplete([ + AbstractTransferListener::REQUEST_ARGS_KEY => + $this->requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot + ]); + } + + /** + * @param Throwable $reason + * @return void + * + */ + protected function operationFailed(Throwable $reason): void + { + // Event already propagated + if ($this->currentSnapshot?->getReason() !== null) { + return; + } + + if ($this->currentSnapshot === null) { + $this->currentSnapshot = new TransferProgressSnapshot( + 'Unknown', + 0, + 0, + ); + } + + $this->currentSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes(), + $this->currentSnapshot->getTotalBytes(), + $this->currentSnapshot->getResponse(), + $reason + ); + + if (!empty($this->uploadId)) { + trigger_error( + "Multipart Upload with id: " . $this->uploadId . " failed", + ); + $this->abortMultipartOperation()->wait(); + } + + $this->listenerNotifier?->transferFail([ + AbstractTransferListener::REQUEST_ARGS_KEY => + $this->requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot, + 'reason' => $reason, + ]); + } + + /** + * @param int $partSize + * @param array $requestArgs + * @return void + */ + protected function partCompleted( + int $partSize, + array $requestArgs + ): void + { + $newSnapshot = new TransferProgressSnapshot( + $this->currentSnapshot->getIdentifier(), + $this->currentSnapshot->getTransferredBytes() + $partSize, + $this->currentSnapshot->getTotalBytes(), + $this->currentSnapshot->getResponse(), + $this->currentSnapshot->getReason(), + ); + + $this->currentSnapshot = $newSnapshot; + + $this->listenerNotifier?->bytesTransferred([ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => $this->currentSnapshot + ]); + } + + /** + * @return void + */ + protected function callOnCompletionCallbacks(): void + { + foreach ($this->onCompletionCallbacks as $fn) { + if (is_callable($fn)) { + call_user_func($fn); + } + } + + $this->onCompletionCallbacks = []; + } + + /** + * @param Throwable $reason + * @return void + */ + protected function partFailed(Throwable $reason): void + { + $this->operationFailed($reason); + } + + /** + * @return int + */ + protected function calculatePartSize(): int + { + return max( + $this->getTotalSize() / self::PART_MAX_NUM, + $this->config['target_part_size_bytes'] + ); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Exception/FileDownloadException.php b/aws/aws-sdk-php/src/S3/S3Transfer/Exception/FileDownloadException.php new file mode 100644 index 000000000..9202775f6 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Exception/FileDownloadException.php @@ -0,0 +1,5 @@ + 'bool', + ]; + + /** @var array */ + protected array $listeners; + + /** @var AbstractTransferListener|null */ + protected ?AbstractTransferListener $progressTracker; + + /** @var array */ + protected array $config; + + /** @var S3ClientInterface|null */ + private ?S3ClientInterface $s3Client; + + /** + * @param array $listeners + * @param AbstractTransferListener|null $progressTracker + * @param array $config + * @param S3ClientInterface|null $s3Client + */ + public function __construct( + array $listeners, + ?AbstractTransferListener $progressTracker, + array $config, + ?S3ClientInterface $s3Client = null, + ) { + $this->listeners = $listeners; + $this->progressTracker = $progressTracker; + $this->config = $config; + $this->s3Client = $s3Client; + } + + /** + * Get current listeners. + * + * @return array + */ + public function getListeners(): array + { + return $this->listeners; + } + + /** + * Get the progress tracker. + * + * @return AbstractTransferListener|null + */ + public function getProgressTracker(): ?AbstractTransferListener + { + return $this->progressTracker; + } + + /** + * @return array + */ + public function getConfig(): array + { + return $this->config; + } + + /** + * @return S3ClientInterface|null + */ + public function getS3Client(): ?S3ClientInterface + { + return $this->s3Client; + } + + /** + * @param array $defaultConfig + * + * @return void + */ + public function updateConfigWithDefaults(array $defaultConfig): void + { + foreach (static::$configKeys as $key => $_) { + if (isset($defaultConfig[$key]) && empty($this->config[$key])) { + $this->config[$key] = $defaultConfig[$key]; + } + } + } + + /** + * For validating config. By default, it provides an empty + * implementation. + * @return void + */ + public function validateConfig(): void { + foreach (static::$configKeys as $key => $type) { + if (isset($this->config[$key]) + && !call_user_func('is_' . $type, $this->config[$key])) { + throw new InvalidArgumentException( + "The provided config `$key` must be $type." + ); + } + } + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryRequest.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryRequest.php new file mode 100644 index 000000000..e31c744c3 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryRequest.php @@ -0,0 +1,136 @@ + 'string', + 'filter' => 'callable', + 'download_object_request_modifier' => 'callable', + 'failure_policy' => 'callable', + 'max_concurrency' => 'int', + 'track_progress' => 'bool', + 'target_part_size_bytes' => 'int', + 'list_objects_v2_args' => 'array', + 'fails_when_destination_exists' => 'bool', + ]; + public const DEFAULT_MAX_CONCURRENCY = 100; + + /** @var string */ + private string $sourceBucket; + + /** @var string */ + private string $destinationDirectory; + + /** @var array */ + private readonly array $downloadRequestArgs; + + /** + * @param string $sourceBucket The bucket from where the files are going to be + * downloaded from. + * @param string $destinationDirectory The destination path where the downloaded + * files will be placed in. + * @param array $downloadRequestArgs + * @param array $config The config options for this download directory operation. + * - s3_prefix: (string, optional) This parameter will be considered just if + * not provided as part of the list_objects_v2_args config option. + * - filter: (Closure, optional) A callable which will receive an object key as + * parameter and should return true or false in order to determine + * whether the object should be downloaded. + * - download_object_request_modifier: (Closure, optional) A function that will + * be invoked right before the download request is performed and that will + * receive as parameter the request arguments for each request. + * - failure_policy: (Closure, optional) A function that will be invoked + * on a download failure and that will receive as parameters: + * - $requestArgs: (array) The arguments for the request that originated + * the failure. + * - $downloadDirectoryRequestArgs: (array) The arguments for the download + * directory request. + * - $reason: (Throwable) The exception that originated the request failure. + * - $downloadDirectoryResponse: (DownloadDirectoryResult) The download response + * to that point in the upload process. + * - track_progress: (bool, optional) Overrides the config option set + * in the transfer manager instantiation to decide whether transfer + * progress should be tracked. + * - target_part_size_bytes: (int, optional) The part size in bytes + * to be used in a range multipart download. + * - fails_when_destination_exists: (bool) Whether to fail when a destination + * file exists. + * - max_concurrency: (int, optional) The max number of concurrent downloads. + * - list_objects_v2_args: (array, optional) The arguments to be included + * as part of the listObjectV2 request in order to fetch the objects to + * be downloaded. The most common arguments would be: + * - MaxKeys: (int) Sets the maximum number of keys returned in the response. + * - Prefix: (string) To limit the response to keys that begin with the + * specified prefix. + * @param AbstractTransferListener[] $listeners The listeners for watching + * transfer events. Each listener will be cloned per file upload. + * @param AbstractTransferListener|null $progressTracker Ideally the progress + * tracker implementation provided here should be able to track multiple + * transfers at once. Please see MultiProgressTracker implementation. + */ + public function __construct( + string $sourceBucket, + string $destinationDirectory, + array $downloadRequestArgs = [], + array $config = [], + array $listeners = [], + ?AbstractTransferListener $progressTracker = null + ) { + parent::__construct($listeners, $progressTracker, $config); + if (ArnParser::isArn($sourceBucket)) { + $sourceBucket = ArnParser::parse($sourceBucket)->getResource(); + } + + $this->sourceBucket = $sourceBucket; + $this->destinationDirectory = $destinationDirectory; + $this->downloadRequestArgs = $downloadRequestArgs; + } + + /** + * @return string + */ + public function getSourceBucket(): string + { + return $this->sourceBucket; + } + + /** + * @return string + */ + public function getDestinationDirectory(): string + { + return $this->destinationDirectory; + } + + /** + * @return array + */ + public function getDownloadRequestArgs(): array + { + return $this->downloadRequestArgs; + } + + /** + * Helper method to validate the destination directory exists. + * + * @return void + */ + public function validateDestinationDirectory(): void + { + if (!file_exists($this->destinationDirectory)) { + mkdir($this->destinationDirectory, 0755, true); + } + + if (!is_dir($this->destinationDirectory)) { + throw new InvalidArgumentException( + "Destination directory `$this->destinationDirectory` is not a directory." + ); + } + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryResult.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryResult.php new file mode 100644 index 000000000..8449093a6 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryResult.php @@ -0,0 +1,66 @@ +objectsDownloaded = $objectsDownloaded; + $this->objectsFailed = $objectsFailed; + $this->reason = $reason; + } + + /** + * @return int + */ + public function getObjectsDownloaded(): int + { + return $this->objectsDownloaded; + } + + /** + * @return int + */ + public function getObjectsFailed(): int + { + return $this->objectsFailed; + } + + public function getReason(): ?Throwable + { + return $this->reason; + } + + /** + * @return string + */ + public function __toString(): string + { + return sprintf( + "DownloadDirectoryResult: %d objects downloaded, %d objects failed", + $this->objectsDownloaded, + $this->objectsFailed + ); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadFileRequest.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadFileRequest.php new file mode 100644 index 000000000..d71e2ead5 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadFileRequest.php @@ -0,0 +1,67 @@ +destination = $destination; + $this->failsWhenDestinationExists = $failsWhenDestinationExists; + $this->downloadRequest = DownloadRequest::fromDownloadRequestAndDownloadHandler( + $downloadRequest, + new FileDownloadHandler( + $destination, + $failsWhenDestinationExists + ) + ); + } + + /** + * @return string + */ + public function getDestination(): string + { + return $this->destination; + } + + /** + * @return bool + */ + public function isFailsWhenDestinationExists(): bool + { + return $this->failsWhenDestinationExists; + } + + /** + * @return DownloadRequest + */ + public function getDownloadRequest(): DownloadRequest + { + return $this->downloadRequest; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadRequest.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadRequest.php new file mode 100644 index 000000000..f35551a7f --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadRequest.php @@ -0,0 +1,154 @@ + 'string', + 'multipart_download_type' => 'string', + 'track_progress' => 'bool', + 'target_part_size_bytes' => 'int', + ]; + + /** @var string|array|null */ + private string|array|null $source; + + /** @var array */ + private array $downloadRequestArgs; + + /** @var AbstractDownloadHandler|null */ + private ?AbstractDownloadHandler $downloadHandler; + + /** + * @param string|array|null $source The object to be downloaded from S3. + * It can be either a string with a S3 URI or an array with a Bucket and Key + * properties set. + * @param array $downloadRequestArgs + * @param array $config The configuration to be used for this operation: + * - multipart_download_type: (string, optional) + * Overrides the resolved value from the transfer manager config. + * - response_checksum_validation: (string, optional) Overrides the resolved + * value from transfer manager config for whether checksum validation + * should be done. This option will be considered just if ChecksumMode + * is not present in the request args. + * - track_progress: (bool) Overrides the config option set in the transfer + * manager instantiation to decide whether transfer progress should be + * tracked. + * - target_part_size_bytes: (int) The part size in bytes to be used + * in a range multipart download. If this parameter is not provided + * then it fallbacks to the transfer manager `target_part_size_bytes` + * config value. + * @param AbstractDownloadHandler|null $downloadHandler + * @param AbstractTransferListener[]|null $listeners + * @param AbstractTransferListener|null $progressTracker + * @param S3ClientInterface|null $s3Client + */ + public function __construct( + string|array|null $source, + array $downloadRequestArgs = [], + array $config = [], + ?AbstractDownloadHandler $downloadHandler = null, + array $listeners = [], + ?AbstractTransferListener $progressTracker = null, + ?S3ClientInterface $s3Client = null + ) { + parent::__construct($listeners, $progressTracker, $config, $s3Client); + $this->source = $source; + $this->downloadRequestArgs = $downloadRequestArgs; + $this->config = $config; + if ($downloadHandler === null) { + $downloadHandler = new StreamDownloadHandler(); + } + $this->downloadHandler = $downloadHandler; + } + + /** + * @param DownloadRequest $downloadRequest + * @param FileDownloadHandler $downloadHandler + * + * @return self + */ + public static function fromDownloadRequestAndDownloadHandler( + DownloadRequest $downloadRequest, + FileDownloadHandler $downloadHandler + ): self + { + return new self( + $downloadRequest->getSource(), + $downloadRequest->getObjectRequestArgs(), + $downloadRequest->getConfig(), + $downloadHandler, + $downloadRequest->getListeners(), + $downloadRequest->getProgressTracker() + ); + } + + /** + * @return array|string|null + */ + public function getSource(): array|string|null + { + return $this->source; + } + + /** + * @return array + */ + public function getObjectRequestArgs(): array + { + return $this->downloadRequestArgs; + } + + /** + * @return AbstractDownloadHandler + */ + public function getDownloadHandler(): AbstractDownloadHandler + { + return $this->downloadHandler; + } + + /** + * Helper method to normalize the source as an array with: + * - Bucket + * - Key + * + * @return array + */ + public function normalizeSourceAsArray(): array + { + // If source is null then fall back to getObjectRequest. + $source = $this->getSource() ?? [ + 'Bucket' => $this->downloadRequestArgs['Bucket'] ?? null, + 'Key' => $this->downloadRequestArgs['Key'] ?? null, + ]; + if (is_string($source)) { + $sourceAsArray = S3TransferManager::s3UriAsBucketAndKey($source); + } elseif (is_array($source)) { + $sourceAsArray = $source; + } else { + throw new S3TransferException( + "Unsupported source type `" . gettype($source) . "`" + ); + } + + foreach (['Bucket', 'Key'] as $reqKey) { + if (empty($sourceAsArray[$reqKey])) { + throw new \InvalidArgumentException( + "`$reqKey` is required but not provided in " + . implode(', ', array_keys($sourceAsArray)) . "." + ); + } + } + + return $sourceAsArray; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadResult.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadResult.php new file mode 100644 index 000000000..64152faaf --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadResult.php @@ -0,0 +1,30 @@ +downloadDataResult = $downloadDataResult; + } + + /** + * @return mixed + */ + public function getDownloadDataResult(): mixed + { + return $this->downloadDataResult; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/S3TransferManagerConfig.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/S3TransferManagerConfig.php new file mode 100644 index 000000000..04669cb7f --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/S3TransferManagerConfig.php @@ -0,0 +1,186 @@ +targetPartSizeBytes = $targetPartSizeBytes; + $this->multipartUploadThresholdBytes = $multipartUploadThresholdBytes; + $this->requestChecksumCalculation = $requestChecksumCalculation; + $this->responseChecksumValidation = $responseChecksumValidation; + $this->multipartDownloadType = $multipartDownloadType; + $this->concurrency = $concurrency; + $this->trackProgress = $trackProgress; + $this->defaultRegion = $defaultRegion; + } + + /** $config: + * - target_part_size_bytes: (int, default=(8388608 `8MB`)) + * The minimum part size to be used in a multipart upload/download. + * - multipart_upload_threshold_bytes: (int, default=(16777216 `16 MB`)) + * The threshold to decided whether a multipart upload is needed. + * - request_checksum_calculation: (string, default=`when_supported`) + * To decide whether a checksum validation will be applied to the response. + * - response_checksum_validation: (string, default=`when_supported`) + * - multipart_download_type: (string, default='part') + * The download type to be used in a multipart download. + * - concurrency: (int, default=5) + * Maximum number of concurrent operations allowed during a multipart + * upload/download. + * - track_progress: (bool, default=false) + * To enable progress tracker in a multipart upload/download, and or + * a directory upload/download operation. + * - default_region: (string, default="us-east-2") + */ + public static function fromArray(array $config): self { + return new self( + $config['target_part_size_bytes'] + ?? self::DEFAULT_TARGET_PART_SIZE_BYTES, + $config['multipart_upload_threshold_bytes'] + ?? self::DEFAULT_MULTIPART_UPLOAD_THRESHOLD_BYTES, + $config['request_checksum_calculation'] + ?? self::DEFAULT_REQUEST_CHECKSUM_CALCULATION, + $config['response_checksum_validation'] + ?? self::DEFAULT_RESPONSE_CHECKSUM_VALIDATION, + $config['multipart_download_type'] + ?? self::DEFAULT_MULTIPART_DOWNLOAD_TYPE, + $config['concurrency'] + ?? self::DEFAULT_CONCURRENCY, + $config['track_progress'] ?? self::DEFAULT_TRACK_PROGRESS, + $config['default_region'] ?? null + ); + } + + /** + * @return int + */ + public function getTargetPartSizeBytes(): int + { + return $this->targetPartSizeBytes; + } + + /** + * @return int + */ + public function getMultipartUploadThresholdBytes(): int + { + return $this->multipartUploadThresholdBytes; + } + + /** + * @return string + */ + public function getRequestChecksumCalculation(): string + { + return $this->requestChecksumCalculation; + } + + /** + * @return string + */ + public function getResponseChecksumValidation(): string + { + return $this->responseChecksumValidation; + } + + /** + * @return string + */ + public function getMultipartDownloadType(): string + { + return $this->multipartDownloadType; + } + + /** + * @return int + */ + public function getConcurrency(): int + { + return $this->concurrency; + } + + /** + * @return bool + */ + public function isTrackProgress(): bool + { + return $this->trackProgress; + } + + /** + * @return string|null + */ + public function getDefaultRegion(): ?string + { + return $this->defaultRegion; + } + + /** + * @return array + */ + public function toArray(): array + { + return [ + 'target_part_size_bytes' => $this->targetPartSizeBytes, + 'multipart_upload_threshold_bytes' => $this->multipartUploadThresholdBytes, + 'request_checksum_calculation' => $this->requestChecksumCalculation, + 'response_checksum_validation' => $this->responseChecksumValidation, + 'multipart_download_type' => $this->multipartDownloadType, + 'concurrency' => $this->concurrency, + 'track_progress' => $this->trackProgress, + 'default_region' => $this->defaultRegion, + ]; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryRequest.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryRequest.php new file mode 100644 index 000000000..c29fa0ee1 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryRequest.php @@ -0,0 +1,115 @@ + 'bool', + 'recursive' => 'bool', + 's3_prefix' => 'string', + 'filter' => 'callable', + 's3_delimiter' => 'string', + 'upload_object_request_modifier' => 'callable', + 'failure_policy' => 'callable', + 'max_concurrency' => 'int', + 'max_depth' => 'int', + 'track_progress' => 'bool', + ]; + public const DEFAULT_MAX_CONCURRENCY = 100; + + /** @var string */ + private string $sourceDirectory; + + /** @var string */ + private string $targetBucket; + + /** @var array */ + private readonly array $uploadRequestArgs; + + /** + * @param string $sourceDirectory The source directory to upload. + * @param string $targetBucket The name of the bucket to upload objects to. + * @param array $uploadRequestArgs The extract arguments to be passed in + * each upload request. + * @param array $config + * - follow_symbolic_links: (boolean, optional) Whether to follow symbolic links when + * traversing the file tree. + * - recursive: (boolean, optional) Whether to upload directories recursively. + * - s3_prefix: (string, optional) The S3 key prefix to use for each object. + * If not provided, files will be uploaded to the root of the bucket. + * - filter: (callable, optional) A callback to allow users to filter out unwanted files. + * It is invoked for each file. An example implementation is a predicate + * that takes a file and returns a boolean indicating whether this file + * should be uploaded. + * - s3_delimiter: The S3 delimiter. A delimiter causes a list operation + * to roll up all the keys that share a common prefix into a single summary list result. + * - upload_object_request_modifier: (callable, optional) A callback mechanism + * to allow customers to update individual putObjectRequest that the S3 Transfer Manager generates. + * - failure_policy: (callable, optional) The failure policy to handle failed requests. + * - max_concurrency: (int, optional) The max number of concurrent uploads. + * - max_depth: (int, optional) To indicate the maximum depth of the recursive + * file tree walk. By default, it will use the built-in default value which is -1. + * @param array $listeners For listening to transfer events such as transferInitiated. + * @param AbstractTransferListener|null $progressTracker For showing progress in transfers. + */ + public function __construct( + string $sourceDirectory, + string $targetBucket, + array $uploadRequestArgs = [], + array $config = [], + array $listeners = [], + ?AbstractTransferListener $progressTracker = null + ) { + parent::__construct($listeners, $progressTracker, $config); + $this->sourceDirectory = $sourceDirectory; + if (ArnParser::isArn($targetBucket)) { + $targetBucket = ArnParser::parse($targetBucket)->getResource(); + } + $this->targetBucket = $targetBucket; + $this->uploadRequestArgs = $uploadRequestArgs; + $this->config = $config; + } + + /** + * @return string + */ + public function getSourceDirectory(): string + { + return $this->sourceDirectory; + } + + /** + * @return string + */ + public function getTargetBucket(): string + { + return $this->targetBucket; + } + + /** + * @return array + */ + public function getUploadRequestArgs(): array + { + return $this->uploadRequestArgs; + } + + /** + * Helper method to validate source directory + * @return void + */ + public function validateSourceDirectory(): void + { + if (!is_dir($this->sourceDirectory)) { + throw new InvalidArgumentException( + "Please provide a valid directory path. " + . "Provided = " . $this->sourceDirectory + ); + } + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryResult.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryResult.php new file mode 100644 index 000000000..2b4f58f80 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryResult.php @@ -0,0 +1,69 @@ +objectsUploaded = $objectsUploaded; + $this->objectsFailed = $objectsFailed; + $this->reason = $exception; + } + + /** + * @return int + */ + public function getObjectsUploaded(): int + { + return $this->objectsUploaded; + } + + /** + * @return int + */ + public function getObjectsFailed(): int + { + return $this->objectsFailed; + } + + /** + * @return Throwable|null + */ + public function getReason(): ?Throwable + { + return $this->reason; + } + + /** + * @return string + */ + public function __toString(): string + { + return sprintf( + "UploadDirectoryResult: %d objects uploaded, %d objects failed", + $this->objectsUploaded, + $this->objectsFailed + ); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadRequest.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadRequest.php new file mode 100644 index 000000000..c16a32f20 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadRequest.php @@ -0,0 +1,123 @@ + 'int', + 'target_part_size_bytes' => 'int', + 'track_progress' => 'bool', + 'concurrency' => 'int', + 'request_checksum_calculation' => 'string', + ]; + + /** @var StreamInterface|string */ + private StreamInterface|string $source; + + /** @var array */ + private array $uploadRequestArgs; + + /** + * @param string|StreamInterface $source + * @param array $uploadRequestArgs The putObject request arguments. + * Required parameters would be: + * - Bucket: (string, required) + * - Key: (string, required) + * @param array $config The config options for this upload operation. + * - multipart_upload_threshold_bytes: (int, optional) + * To override the default threshold for when to use multipart upload. + * - target_part_size_bytes: (int, optional) To override the default + * target part size in bytes. + * - track_progress: (bool, optional) To override the default option for + * enabling progress tracking. If this option is resolved as true and + * a progressTracker parameter is not provided then, a default implementation + * will be resolved. This option is intended to make the operation to use + * a default progress tracker implementation when $progressTracker is null. + * - concurrency: (int, optional) To override default value for concurrency. + * - request_checksum_calculation: (string, optional, defaulted to `when_supported`) + * @param AbstractTransferListener[]|null $listeners + * @param AbstractTransferListener|null $progressTracker + * @param S3ClientInterface|null $s3Client + */ + public function __construct( + StreamInterface|string $source, + array $uploadRequestArgs, + array $config = [], + array $listeners = [], + ?AbstractTransferListener $progressTracker = null, + ?S3ClientInterface $s3Client = null + ) { + parent::__construct($listeners, $progressTracker, $config, $s3Client); + $this->source = $source; + $this->uploadRequestArgs = $uploadRequestArgs; + } + + /** + * Get the source. + * + * @return StreamInterface|string + */ + public function getSource(): StreamInterface|string + { + return $this->source; + } + + /** + * Get the put object request. + * + * @return array + */ + public function getUploadRequestArgs(): array + { + return $this->uploadRequestArgs; + } + + /** + * Helper method for validating the given source. + * + * @return void + */ + public function validateSource(): void + { + if (is_string($this->getSource()) && !is_readable($this->getSource())) { + throw new InvalidArgumentException( + "Invalid source `". $this->getSource() . "` provided. ". + "\nPlease provide a valid readable file path or a valid stream as source." + ); + } + } + + /** + * Helper method for validating required parameters. + * + * @param string|null $customMessage + * @return void + */ + public function validateRequiredParameters( + ?string $customMessage = null + ): void + { + $requiredParametersWithArgs = [ + 'Bucket' => $this->uploadRequestArgs['Bucket'] ?? null, + 'Key' => $this->uploadRequestArgs['Key'] ?? null, + ]; + foreach ($requiredParametersWithArgs as $key => $value) { + if (empty($value)) { + if ($customMessage !== null) { + throw new InvalidArgumentException($customMessage); + } + + // Fallback to default error message + throw new InvalidArgumentException( + "The `$key` parameter must be provided as part of the request arguments." + ); + } + } + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadResult.php b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadResult.php new file mode 100644 index 000000000..30029082b --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadResult.php @@ -0,0 +1,16 @@ +body = $this->parseBody($source); + $this->calculatedObjectSize = 0; + $this->isFullObjectChecksum = false; + $this->evaluateCustomChecksum(); + } + + /** + * @inheritDoc + * + * @return PromiseInterface + */ + protected function createMultipartOperation(): PromiseInterface + { + $createMultipartUploadArgs = $this->requestArgs; + if ($this->requestChecksum !== null) { + $createMultipartUploadArgs['ChecksumType'] = self::CHECKSUM_TYPE_FULL_OBJECT; + $createMultipartUploadArgs['ChecksumAlgorithm'] = $this->requestChecksumAlgorithm; + $this->isFullObjectChecksum = true; + } elseif ($this->config['request_checksum_calculation'] === 'when_supported') { + $this->requestChecksumAlgorithm = $createMultipartUploadArgs['ChecksumAlgorithm'] + ?? self::DEFAULT_CHECKSUM_CALCULATION_ALGORITHM; + $createMultipartUploadArgs['ChecksumAlgorithm'] = $this->requestChecksumAlgorithm; + } + + // Make sure algorithm with full object is a supported one + if (($createMultipartUploadArgs['ChecksumType'] ?? '') === self::CHECKSUM_TYPE_FULL_OBJECT) { + if (stripos($this->requestChecksumAlgorithm, 'crc') !== 0) { + return Create::rejectionFor( + new S3TransferException( + "Full object checksum algorithm must be `CRC` family base." + ) + ); + } + } + + $this->operationInitiated($createMultipartUploadArgs); + $command = $this->s3Client->getCommand( + 'CreateMultipartUpload', + $createMultipartUploadArgs + ); + + return $this->s3Client->executeAsync($command) + ->then(function (ResultInterface $result) { + $this->uploadId = $result['UploadId']; + return $result; + }); + } + + /** + * @inheritDoc + * + * @return PromiseInterface + */ + protected function completeMultipartOperation(): PromiseInterface + { + $this->sortParts(); + $completeMultipartUploadArgs = $this->requestArgs; + $completeMultipartUploadArgs['UploadId'] = $this->uploadId; + $completeMultipartUploadArgs['MultipartUpload'] = [ + 'Parts' => $this->parts + ]; + $completeMultipartUploadArgs['MpuObjectSize'] = $this->getTotalSize(); + + if ($this->isFullObjectChecksum && $this->requestChecksum !== null) { + $completeMultipartUploadArgs['ChecksumType'] = self::CHECKSUM_TYPE_FULL_OBJECT; + $completeMultipartUploadArgs[ + 'Checksum' . strtoupper($this->requestChecksumAlgorithm) + ] = $this->requestChecksum; + } + + $command = $this->s3Client->getCommand( + 'CompleteMultipartUpload', + $completeMultipartUploadArgs + ); + + return $this->s3Client->executeAsync($command) + ->then(function (ResultInterface $result) { + $this->operationCompleted($result); + return $result; + }); + } + + /** + * Sync upload method. + * + * @return UploadResult + */ + public function upload(): UploadResult + { + return $this->promise()->wait(); + } + + /** + * Parses the source into an instance of + * StreamInterface to be read. + * + * @param string|StreamInterface $source + * + * @return StreamInterface + */ + private function parseBody( + string|StreamInterface $source + ): StreamInterface + { + if (is_string($source)) { + // Make sure the files exists + if (!is_readable($source)) { + throw new \InvalidArgumentException( + "The source for this upload must be either a" + . " readable file path or a valid stream." + ); + } + $body = new LazyOpenStream($source, 'r'); + // To make sure the resource is closed. + $this->onCompletionCallbacks[] = function () use ($body) { + $body->close(); + }; + } elseif ($source instanceof StreamInterface) { + $body = $source; + } else { + throw new \InvalidArgumentException( + "The source must be a valid string file path or a StreamInterface." + ); + } + + return $body; + } + + /** + * Evaluates if custom checksum has been provided, + * and if so then, the values are placed in the + * respective properties. + * + * @return void + */ + private function evaluateCustomChecksum(): void + { + // Evaluation for custom provided checksums + $checksumName = self::filterChecksum($this->requestArgs); + if ($checksumName !== null) { + $this->requestChecksum = $this->requestArgs[$checksumName]; + $this->requestChecksumAlgorithm = str_replace( + 'Checksum', + '', + $checksumName + ); + $this->requestChecksumAlgorithm = strtolower( + $this->requestChecksumAlgorithm + ); + } else { + $this->requestChecksum = null; + $this->requestChecksumAlgorithm = null; + } + } + + /** + * Process a multipart upload operation. + * + * @return PromiseInterface + */ + protected function processMultipartOperation(): PromiseInterface + { + $uploadPartCommandArgs = $this->requestArgs; + $this->calculatedObjectSize = 0; + $partSize = $this->calculatePartSize(); + $partsCount = ceil($this->getTotalSize() / $partSize); + $uploadPartCommandArgs['UploadId'] = $this->uploadId; + // Customer provided checksum + if ($this->requestChecksum !== null) { + // To avoid default calculation for individual parts + $uploadPartCommandArgs['@context']['request_checksum_calculation'] = 'when_required'; + unset($uploadPartCommandArgs['Checksum'. strtoupper($this->requestChecksumAlgorithm)]); + } elseif ($this->requestChecksumAlgorithm !== null) { + $uploadPartCommandArgs['ChecksumAlgorithm'] = $this->requestChecksumAlgorithm; + } + + $promises = $this->createUploadPartPromises( + $uploadPartCommandArgs, + $partSize, + $partsCount, + ); + + return Each::ofLimitAll($promises, $this->config['concurrency']); + } + + /** + * @param array $uploadPartCommandArgs + * @param int $partSize + * @param int $partsCount + * + * @return \Generator + */ + private function createUploadPartPromises( + array $uploadPartCommandArgs, + int $partSize, + int $partsCount + ): \Generator + { + $partNo = count($this->parts); + $bytesRead = 0; + $isSeekable = $this->body->isSeekable() + && $this->body->getMetadata('wrapper_type') + === self::STREAM_WRAPPER_TYPE_PLAIN_FILE; + while (!$this->body->eof()) { + if ($isSeekable) { + $partBody = new LimitStream( + new LazyOpenStream( + $this->body->getMetadata('uri'), + 'r' + ), + $partSize, + $bytesRead, + ); + } else { + $body = new LimitStream( + $this->body, + $partSize, + $bytesRead, + ); + $body = $this->decorateWithHashes($body, $uploadPartCommandArgs); + $partBody = Utils::streamFor(); + Utils::copyToStream($body, $partBody); + } + + $bodyLength = $partBody->getSize(); + if ($bodyLength === 0) { + $partBody->close(); + break; + } + + $partNo++; + $bytesRead += $bodyLength; + + $uploadPartCommandArgs['PartNumber'] = $partNo; + $uploadPartCommandArgs['ContentLength'] = $bodyLength; + // Attach body + if ($isSeekable) { + $partBody->rewind(); + } + $uploadPartCommandArgs['Body'] = $partBody; + + $this->calculatedObjectSize += $bodyLength; + if ($partNo > self::PART_MAX_NUM) { + return Create::rejectionFor( + "The max number of parts has been exceeded. " . + "Max = " . self::PART_MAX_NUM + ); + } + + if ($isSeekable && $partNo > $partsCount) { + return Create::rejectionFor( + "The current part `$partNo` is over " + . "the expected number of parts `$partsCount`" + ); + } + + $command = $this->s3Client->getCommand( + 'UploadPart', + $uploadPartCommandArgs + ); + + // Advance if behind + if ($bytesRead < $this->body->tell()) { + $this->body->seek($bytesRead); + } + + yield $this->s3Client->executeAsync($command) + ->then(function (ResultInterface $result) + use ($command, $partBody) { + $partBody->close(); + // To make sure we don't continue when a failure occurred + if ($this->currentSnapshot->getReason() !== null) { + throw $this->currentSnapshot->getReason(); + } + + $this->collectPart( + $result, + $command + ); + // Part Upload Completed Event + $this->partCompleted( + $command['ContentLength'], + $command->toArray() + ); + })->otherwise(function (Throwable $e) use ($partBody) { + $partBody->close(); + $this->partFailed($e); + + throw $e; + }); + } + } + + /** + * @return int + */ + protected function getTotalSize(): int + { + if ($this->calculatedObjectSize > 0) { + return $this->calculatedObjectSize; + } + + return $this->body->getSize(); + } + + /** + * @param ResultInterface $result + * + * @return UploadResult + */ + protected function createResponse(ResultInterface $result): UploadResult + { + return new UploadResult( + $result->toArray() + ); + } + + /** + * @param StreamInterface $stream + * @param array $data + * + * @return StreamInterface + */ + private function decorateWithHashes( + StreamInterface $stream, + array &$data + ): StreamInterface + { + // Decorate source with a hashing stream + $hash = new PhpHash('sha256'); + return new HashingStream($stream, $hash, function ($result) use (&$data) { + $data['ContentSHA256'] = bin2hex($result); + }); + } + + /** + * Filters a provided checksum if one was provided. + * + * @param array $requestArgs + * + * @return string|null + */ + private static function filterChecksum(array $requestArgs):? string + { + foreach (self::$supportedAlgorithms as $algorithm) { + if (isset($requestArgs[$algorithm])) { + return $algorithm; + } + } + + return null; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/PartGetMultipartDownloader.php b/aws/aws-sdk-php/src/S3/S3Transfer/PartGetMultipartDownloader.php new file mode 100644 index 000000000..668b56508 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/PartGetMultipartDownloader.php @@ -0,0 +1,62 @@ +currentPartNo === 0) { + $this->currentPartNo = 1; + } else { + $this->currentPartNo++; + } + + $nextRequestArgs = $this->downloadRequestArgs; + $nextRequestArgs['PartNumber'] = $this->currentPartNo; + if ($this->config['response_checksum_validation'] === 'when_supported') { + $nextRequestArgs['ChecksumMode'] = 'ENABLED'; + } + + if (!empty($this->eTag)) { + $nextRequestArgs['IfMatch'] = $this->eTag; + } + + return $this->s3Client->getCommand( + self::GET_OBJECT_COMMAND, + $nextRequestArgs + ); + } + + /** + * @inheritDoc + * + * @param Result $result + * + * @return void + */ + protected function computeObjectDimensions(ResultInterface $result): void + { + if (!empty($result['PartsCount'])) { + $this->objectPartsCount = $result['PartsCount']; + } else { + $this->objectPartsCount = 1; + } + + $this->objectSizeInBytes = $this->computeObjectSizeFromContentRange( + $result['ContentRange'] ?? "" + ); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractProgressBarFormat.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractProgressBarFormat.php new file mode 100644 index 000000000..a41cde87c --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractProgressBarFormat.php @@ -0,0 +1,90 @@ +args = $args; + } + + public function getArgs(): array + { + return $this->args; + } + + /** + * To set multiple arguments at once. + * It does not override all the values, instead + * it adds the arguments individually and if a value + * already exists then that value will be overridden. + * + * @param array $args + * + * @return void + */ + public function setArgs(array $args): void + { + foreach ($args as $key => $value) { + $this->args[$key] = $value; + } + } + + /** + * @param string $key + * @param mixed $value + * + * @return void + */ + public function setArg(string $key, mixed $value): void + { + $this->args[$key] = $value; + } + + /** + * @return string + */ + public function format(): string + { + $parameters = $this->getFormatParameters(); + $defaultParameterValues = $this->getFormatDefaultParameterValues(); + foreach ($parameters as $param) { + if (!array_key_exists($param, $this->args)) { + $this->args[$param] = $defaultParameterValues[$param] ?? ''; + } + } + + $replacements = []; + foreach ($parameters as $param) { + $replacements["|$param|"] = $this->args[$param] ?? ''; + } + + return strtr($this->getFormatTemplate(), $replacements); + } + + /** + * @return string + */ + abstract public function getFormatTemplate(): string; + + /** + * @return array + */ + abstract public function getFormatParameters(): array; + + /** + * @return array + */ + abstract protected function getFormatDefaultParameterValues(): array; +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractTransferListener.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractTransferListener.php new file mode 100644 index 000000000..02ada8eed --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractTransferListener.php @@ -0,0 +1,53 @@ + ColoredTransferProgressBarFormat::BLACK_COLOR_CODE, + ]; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ConsoleProgressBar.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ConsoleProgressBar.php new file mode 100644 index 000000000..9a32b9585 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ConsoleProgressBar.php @@ -0,0 +1,103 @@ +progressBarChar = $progressBarChar; + $this->progressBarWidth = min( + $progressBarWidth, + self::MAX_PROGRESS_BAR_WIDTH + ); + $this->percentCompleted = $percentCompleted; + $this->progressBarFormat = $progressBarFormat; + } + + /** + * @return string + */ + public function getProgressBarChar(): string + { + return $this->progressBarChar; + } + + /** + * @return int + */ + public function getProgressBarWidth(): int + { + return $this->progressBarWidth; + } + + /** + * @return int + */ + public function getPercentCompleted(): int + { + return $this->percentCompleted; + } + + /** + * @return AbstractProgressBarFormat + */ + public function getProgressBarFormat(): AbstractProgressBarFormat + { + return $this->progressBarFormat; + } + + /** + * Set current progress percent. + * + * @param int $percent + * + * @return void + */ + public function setPercentCompleted(int $percent): void + { + $this->percentCompleted = max(0, min(100, $percent)); + } + + /** + * @inheritDoc + */ + public function render(): string + { + $filledWidth = (int) round(($this->progressBarWidth * $this->percentCompleted) / 100); + $progressBar = str_repeat($this->progressBarChar, $filledWidth) + . str_repeat(' ', $this->progressBarWidth - $filledWidth); + + // Common arguments + $this->progressBarFormat->setArg('progress_bar', $progressBar); + $this->progressBarFormat->setArg('percent', $this->percentCompleted); + + return $this->progressBarFormat->format(); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressBarFormat.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressBarFormat.php new file mode 100644 index 000000000..0f86a3207 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressBarFormat.php @@ -0,0 +1,40 @@ +singleProgressTrackers = $singleProgressTrackers; + $this->output = $output; + $this->transferCount = $transferCount; + $this->completed = $completed; + $this->failed = $failed; + $this->progressBarFactory = $progressBarFactory; + } + + /** + * @return array + */ + public function getSingleProgressTrackers(): array + { + return $this->singleProgressTrackers; + } + + /** + * @return mixed + */ + public function getOutput(): mixed + { + return $this->output; + } + + /** + * @return int + */ + public function getTransferCount(): int + { + return $this->transferCount; + } + + /** + * @return int + */ + public function getCompleted(): int + { + return $this->completed; + } + + /** + * @return int + */ + public function getFailed(): int + { + return $this->failed; + } + + /** + * @return ProgressBarFactoryInterface|Closure|null + */ + public function getProgressBarFactory(): ProgressBarFactoryInterface|Closure|null + { + return $this->progressBarFactory; + } + + /** + * @inheritDoc + */ + public function transferInitiated(array $context): void + { + $this->transferCount++; + $snapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + if (isset($this->singleProgressTrackers[$snapshot->getIdentifier()])) { + $progressTracker = $this->singleProgressTrackers[$snapshot->getIdentifier()]; + } else { + if ($this->progressBarFactory === null) { + $progressTracker = new SingleProgressTracker( + output: $this->output, + clear: false, + showProgressOnUpdate: false, + ); + } else { + $progressBarFactoryFn = $this->progressBarFactory; + $progressTracker = new SingleProgressTracker( + progressBar: $progressBarFactoryFn(), + output: $this->output, + clear: false, + showProgressOnUpdate: false, + ); + } + + $this->singleProgressTrackers[$snapshot->getIdentifier()] = $progressTracker; + } + + $progressTracker->transferInitiated($context); + $this->showProgress(); + } + + /** + * @inheritDoc + */ + public function bytesTransferred(array $context): bool + { + $snapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressTracker = $this->singleProgressTrackers[$snapshot->getIdentifier()]; + $progressTracker->bytesTransferred($context); + $this->showProgress(); + + return true; + } + + /** + * @inheritDoc + */ + public function transferComplete(array $context): void + { + $this->completed++; + $snapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressTracker = $this->singleProgressTrackers[$snapshot->getIdentifier()]; + $progressTracker->transferComplete($context); + $this->showProgress(); + } + + /** + * @inheritDoc + */ + public function transferFail(array $context): void + { + $this->failed++; + $snapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressTracker = $this->singleProgressTrackers[$snapshot->getIdentifier()]; + $progressTracker->transferFail($context); + $this->showProgress(); + } + + /** + * @inheritDoc + */ + public function showProgress(): void + { + fwrite($this->output, self::CLEAR_ASCII_CODE); + $percentsSum = 0; + foreach ($this->singleProgressTrackers as $_ => $progressTracker) { + $progressTracker->showProgress(); + $percentsSum += $progressTracker->getProgressBar()->getPercentCompleted(); + } + + $allProgressBarWidth = ConsoleProgressBar::DEFAULT_PROGRESS_BAR_WIDTH; + if (count($this->singleProgressTrackers) !== 0) { + $firstKey = array_key_first($this->singleProgressTrackers); + $allProgressBarWidth = $this->singleProgressTrackers[$firstKey] + ->getProgressBar()->getProgressBarWidth(); + } + + $percent = (int) floor($percentsSum / $this->transferCount); + $multiProgressBarFormat = new MultiProgressBarFormat(); + $multiProgressBarFormat->setArgs([ + 'completed' => $this->completed, + 'failed' => $this->failed, + 'total' => $this->transferCount, + ]); + $allTransferProgressBar = new ConsoleProgressBar( + progressBarWidth: $allProgressBarWidth, + percentCompleted: $percent, + progressBarFormat: $multiProgressBarFormat + ); + fwrite( + $this->output, + sprintf( + "\n%s\n", + str_repeat( + '-', + $allTransferProgressBar->getProgressBarWidth() + ) + ) + ); + fwrite( + $this->output, + sprintf( + "%s\n", + $allTransferProgressBar->render(), + ) + ); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/PlainProgressBarFormat.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/PlainProgressBarFormat.php new file mode 100644 index 000000000..4df070b9d --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/PlainProgressBarFormat.php @@ -0,0 +1,28 @@ +progressBar = $progressBar; + if (get_resource_type($output) !== 'stream') { + throw new \InvalidArgumentException("The type for $output must be a stream"); + } + $this->output = $output; + $this->clear = $clear; + $this->currentSnapshot = $currentSnapshot; + $this->showProgressOnUpdate = $showProgressOnUpdate; + } + + /** + * @return ProgressBarInterface + */ + public function getProgressBar(): ProgressBarInterface + { + return $this->progressBar; + } + + /** + * @return mixed + */ + public function getOutput(): mixed + { + return $this->output; + } + + /** + * @return bool + */ + public function isClear(): bool + { + return $this->clear; + } + + /** + * @return TransferProgressSnapshot|null + */ + public function getCurrentSnapshot(): ?TransferProgressSnapshot + { + return $this->currentSnapshot; + } + + /** + * @return bool + */ + public function isShowProgressOnUpdate(): bool + { + return $this->showProgressOnUpdate; + } + + /** + * @inheritDoc + * + * @return void + */ + public function transferInitiated(array $context): void + { + $this->currentSnapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressFormat = $this->progressBar->getProgressBarFormat(); + // Probably a common argument + $progressFormat->setArg( + 'object_name', + $this->currentSnapshot->getIdentifier() + ); + + $this->updateProgressBar(); + } + + /** + * @inheritDoc + */ + public function bytesTransferred(array $context): bool + { + $this->currentSnapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressFormat = $this->progressBar->getProgressBarFormat(); + if ($progressFormat instanceof ColoredTransferProgressBarFormat) { + $progressFormat->setArg( + 'color_code', + ColoredTransferProgressBarFormat::BLUE_COLOR_CODE + ); + } + + $this->updateProgressBar(); + + return true; + } + + /** + * @inheritDoc + * + * @return void + */ + public function transferComplete(array $context): void + { + $this->currentSnapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressFormat = $this->progressBar->getProgressBarFormat(); + if ($progressFormat instanceof ColoredTransferProgressBarFormat) { + $progressFormat->setArg( + 'color_code', + ColoredTransferProgressBarFormat::GREEN_COLOR_CODE + ); + } + + $this->updateProgressBar( + $this->currentSnapshot->getTotalBytes() === 0 + ); + } + + /** + * @inheritDoc + * + * @return void + */ + public function transferFail(array $context): void + { + $this->currentSnapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $progressFormat = $this->progressBar->getProgressBarFormat(); + if ($progressFormat instanceof ColoredTransferProgressBarFormat) { + $progressFormat->setArg( + 'color_code', + ColoredTransferProgressBarFormat::RED_COLOR_CODE + ); + $progressFormat->setArg( + 'message', + $context[AbstractTransferListener::REASON_KEY] + ); + } + + $this->updateProgressBar(); + } + + /** + * Updates the progress bar with the transfer snapshot + * and also call showProgress. + * + * @param bool $forceCompletion To force the progress bar to be + * completed. This is useful for files where its size is zero, + * for which a ratio will return zero, and hence the percent + * will be zero. + * + * @return void + */ + private function updateProgressBar( + bool $forceCompletion = false + ): void + { + if (!$forceCompletion) { + $this->progressBar->setPercentCompleted( + ((int)floor($this->currentSnapshot->ratioTransferred() * 100)) + ); + } else { + $this->progressBar->setPercentCompleted(100); + } + + $this->progressBar->getProgressBarFormat()->setArgs([ + 'transferred' => $this->currentSnapshot->getTransferredBytes(), + 'to_be_transferred' => $this->currentSnapshot->getTotalBytes(), + 'unit' => 'B', + ]); + // Display progress + if ($this->showProgressOnUpdate) { + $this->showProgress(); + } + } + + /** + * @inheritDoc + * + * @return void + */ + public function showProgress(): void + { + if ($this->currentSnapshot === null) { + throw new ProgressTrackerException( + "There is not snapshot to show progress for." + ); + } + + if ($this->clear) { + fwrite($this->output, "\033[2J\033[H"); + } + + fwrite($this->output, sprintf( + "\r\n%s", + $this->progressBar->render() + )); + fflush($this->output); + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferListenerNotifier.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferListenerNotifier.php new file mode 100644 index 000000000..e74a7aada --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferListenerNotifier.php @@ -0,0 +1,82 @@ +listeners = $listeners; + } + + /** + * @param AbstractTransferListener $listener + * + * @return void + */ + public function addListener(AbstractTransferListener $listener): void + { + $this->listeners[] = $listener; + } + + /** + * @inheritDoc + * + * @return void + */ + public function transferInitiated(array $context): void + { + foreach ($this->listeners as $listener) { + $listener->transferInitiated($context); + } + } + + /** + * @inheritDoc + */ + public function bytesTransferred(array $context): bool + { + foreach ($this->listeners as $listener) { + $listener->bytesTransferred($context); + } + + return true; + } + + /** + * @inheritDoc + * + * @return void + */ + public function transferComplete(array $context): void + { + foreach ($this->listeners as $listener) { + $listener->transferComplete($context); + } + } + + /** + * @inheritDoc + * + * @return void + */ + public function transferFail(array $context): void + { + foreach ($this->listeners as $listener) { + $listener->transferFail($context); + } + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressBarFormat.php b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressBarFormat.php new file mode 100644 index 000000000..6e0a19b14 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressBarFormat.php @@ -0,0 +1,38 @@ +identifier = $identifier; + $this->transferredBytes = $transferredBytes; + $this->totalBytes = $totalBytes; + $this->response = $response; + $this->reason = $reason; + } + + public function getIdentifier(): string + { + return $this->identifier; + } + + /** + * @return int + */ + public function getTransferredBytes(): int + { + return $this->transferredBytes; + } + + /** + * @return int + */ + public function getTotalBytes(): int + { + return $this->totalBytes; + } + + /** + * @return array|null + */ + public function getResponse(): array|null + { + return $this->response; + } + + /** + * @return float + */ + public function ratioTransferred(): float + { + if ($this->totalBytes === 0) { + // Unable to calculate ratio + return 0; + } + + return $this->transferredBytes / $this->totalBytes; + } + + /** + * @return Throwable|string|null + */ + public function getReason(): Throwable|string|null + { + return $this->reason; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/RangeGetMultipartDownloader.php b/aws/aws-sdk-php/src/S3/S3Transfer/RangeGetMultipartDownloader.php new file mode 100644 index 000000000..d89cca22c --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/RangeGetMultipartDownloader.php @@ -0,0 +1,76 @@ +currentPartNo === 0) { + $this->currentPartNo = 1; + } else { + $this->currentPartNo++; + } + + $nextRequestArgs = $this->downloadRequestArgs; + $partSize = $this->config['target_part_size_bytes']; + $from = ($this->currentPartNo - 1) * $partSize; + $to = ($this->currentPartNo * $partSize) - 1; + + if ($this->objectSizeInBytes !== 0) { + $to = min($this->objectSizeInBytes, $to); + } + + $nextRequestArgs['Range'] = "bytes=$from-$to"; + + if ($this->config['response_checksum_validation'] === 'when_supported') { + $nextRequestArgs['ChecksumMode'] = 'ENABLED'; + } + + if (!empty($this->eTag)) { + $nextRequestArgs['IfMatch'] = $this->eTag; + } + + return $this->s3Client->getCommand( + self::GET_OBJECT_COMMAND, + $nextRequestArgs + ); + } + + /** + * @inheritDoc + * + * @param Result $result + * + * @return void + */ + protected function computeObjectDimensions(ResultInterface $result): void + { + // Assign object size just if needed. + if ($this->objectSizeInBytes === 0) { + $this->objectSizeInBytes = $this->computeObjectSizeFromContentRange( + $result['ContentRange'] ?? "" + ); + } + + $partSize = $this->config['target_part_size_bytes']; + if ($this->objectSizeInBytes > $partSize) { + $this->objectPartsCount = intval( + ceil($this->objectSizeInBytes / $partSize) + ); + } else { + // Single download since partSize will be set to full object size. + $this->objectPartsCount = 1; + $this->currentPartNo = 1; + } + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/S3TransferManager.php b/aws/aws-sdk-php/src/S3/S3Transfer/S3TransferManager.php new file mode 100644 index 000000000..273f1c4ed --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/S3TransferManager.php @@ -0,0 +1,905 @@ +config = S3TransferManagerConfig::fromArray($config ?? []); + } else { + $this->config = $config; + } + + if ($s3Client === null) { + $this->s3Client = $this->defaultS3Client(); + } else { + $this->s3Client = $s3Client; + } + + MetricsBuilder::appendMetricsCaptureMiddleware( + $this->s3Client->getHandlerList(), + MetricsBuilder::S3_TRANSFER + ); + } + + /** + * @return S3ClientInterface + */ + public function getS3Client(): S3ClientInterface + { + return $this->s3Client; + } + + /** + * @return S3TransferManagerConfig + */ + public function getConfig(): S3TransferManagerConfig + { + return $this->config; + } + + /** + * @param UploadRequest $uploadRequest + * + * @return PromiseInterface + */ + public function upload(UploadRequest $uploadRequest): PromiseInterface + { + // Make sure it is a valid in path in case of a string + $uploadRequest->validateSource(); + + // Valid required parameters + $uploadRequest->validateRequiredParameters(); + + $uploadRequest->updateConfigWithDefaults( + $this->config->toArray() + ); + + $uploadRequest->validateConfig(); + + $config = $uploadRequest->getConfig(); + + // Validate progress tracker + $progressTracker = $uploadRequest->getProgressTracker(); + if ($progressTracker === null + && ($config['track_progress'] + ?? $this->config->isTrackProgress())) { + $progressTracker = new SingleProgressTracker(); + } + + // Append progress tracker to listeners if not null + $listeners = $uploadRequest->getListeners(); + if ($progressTracker !== null) { + $listeners[] = $progressTracker; + } + + $listenerNotifier = new TransferListenerNotifier($listeners); + + // Validate multipart upload threshold + $mupThreshold = $config['multipart_upload_threshold_bytes'] + ?? $this->config->getMultipartUploadThresholdBytes(); + if ($mupThreshold < AbstractMultipartUploader::PART_MIN_SIZE) { + throw new InvalidArgumentException( + "The provided config `multipart_upload_threshold_bytes`" + ."must be greater than or equal to " . AbstractMultipartUploader::PART_MIN_SIZE + ); + } + + $s3Client = $uploadRequest->getS3Client(); + if ($s3Client === null) { + $s3Client = $this->s3Client; + } + + if ($this->requiresMultipartUpload($uploadRequest->getSource(), $mupThreshold)) { + return $this->tryMultipartUpload( + $uploadRequest, + $s3Client, + $listenerNotifier + ); + } + + return $this->trySingleUpload( + $uploadRequest->getSource(), + $uploadRequest->getUploadRequestArgs(), + $s3Client, + $listenerNotifier + ); + } + + /** + * @param UploadDirectoryRequest $uploadDirectoryRequest + * + * @return PromiseInterface + */ + public function uploadDirectory( + UploadDirectoryRequest $uploadDirectoryRequest, + ): PromiseInterface + { + return $this->doUploadDirectory( + $uploadDirectoryRequest, + $this->s3Client, + ); + } + + /** + * This method is created in order to easily add the + * `S3_TRANSFER_UPLOAD_DIRECTORY` metric to the s3Client instance + * to be used for the upload directory operation without letting + * this metric be appended in another operations that are not + * part of the upload directory. + * + * @param UploadDirectoryRequest $uploadDirectoryRequest + * @param S3ClientInterface $s3Client + * + * @return PromiseInterface + */ + private function doUploadDirectory( + UploadDirectoryRequest $uploadDirectoryRequest, + S3ClientInterface $s3Client, + ): PromiseInterface + { + MetricsBuilder::appendMetricsCaptureMiddleware( + $s3Client->getHandlerList(), + MetricsBuilder::S3_TRANSFER_UPLOAD_DIRECTORY + ); + $uploadDirectoryRequest->validateSourceDirectory(); + + $uploadDirectoryRequest->updateConfigWithDefaults( + $this->config->toArray() + ); + + $uploadDirectoryRequest->validateConfig(); + + $config = $uploadDirectoryRequest->getConfig(); + + $filter = $config['filter'] ?? null; + $uploadObjectRequestModifier = $config['upload_object_request_modifier'] + ?? null; + $failurePolicyCallback = $config['failure_policy'] ?? null; + + $sourceDirectory = $uploadDirectoryRequest->getSourceDirectory(); + $dirIterator = new RecursiveDirectoryIterator( + $sourceDirectory + ); + + $flags = FilesystemIterator::SKIP_DOTS; + if ($config['follow_symbolic_links'] ?? false) { + $flags |= FilesystemIterator::FOLLOW_SYMLINKS; + } + + $dirIterator->setFlags($flags); + + if ($config['recursive'] ?? false) { + $dirIterator = new RecursiveIteratorIterator( + $dirIterator, + RecursiveIteratorIterator::SELF_FIRST + ); + if (isset($config['max_depth'])) { + $dirIterator->setMaxDepth($config['max_depth']); + } + } + + $dirVisited = []; + $files = filter( + $dirIterator, + function ($file) use ($filter, &$dirVisited) { + if (is_dir($file)) { + // To avoid circular symbolic links traversal + $dirRealPath = realpath($file); + if ($dirRealPath !== false) { + if ($dirVisited[$dirRealPath] ?? false) { + throw new S3TransferException( + "A circular symbolic link traversal has been detected at $file -> $dirRealPath" + ); + } + + $dirVisited[$dirRealPath] = true; + } + } + + // If filter is not null + if ($filter !== null) { + return !is_dir($file) && $filter($file); + } + + return !is_dir($file); + } + ); + + $objectsUploaded = 0; + $objectsFailed = 0; + $promises = []; + // Making sure base dir ends with directory separator + $baseDir = rtrim($sourceDirectory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; + $s3Delimiter = $config['s3_delimiter'] ?? '/'; + $s3Prefix = $config['s3_prefix'] ?? ''; + if ($s3Prefix !== '' && !str_ends_with($s3Prefix, '/')) { + $s3Prefix .= '/'; + } + $targetBucket = $uploadDirectoryRequest->getTargetBucket(); + $progressTracker = $uploadDirectoryRequest->getProgressTracker(); + if ($progressTracker === null + && ($config['track_progress'] ?? $this->config->isTrackProgress())) { + $progressTracker = new MultiProgressTracker(); + } + + foreach ($files as $file) { + $relativePath = substr($file, strlen($baseDir)); + if (str_contains($relativePath, $s3Delimiter) && $s3Delimiter !== '/') { + throw new S3TransferException( + "The filename `$relativePath` must not contain the provided delimiter `$s3Delimiter`" + ); + } + $objectKey = $s3Prefix.$relativePath; + $objectKey = str_replace( + DIRECTORY_SEPARATOR, + $s3Delimiter, + $objectKey + ); + $uploadRequestArgs = $uploadDirectoryRequest->getUploadRequestArgs(); + $uploadRequestArgs['Bucket'] = $targetBucket; + $uploadRequestArgs['Key'] = $objectKey; + + if ($uploadObjectRequestModifier !== null) { + $uploadObjectRequestModifier($uploadRequestArgs); + } + + $promises[] = $this->upload( + new UploadRequest( + $file, + $uploadRequestArgs, + $config, + array_map( + fn($listener) => clone $listener, + $uploadDirectoryRequest->getListeners() + ), + $progressTracker, + $s3Client + ) + )->then(function (UploadResult $response) use (&$objectsUploaded) { + $objectsUploaded++; + + return $response; + })->otherwise(function (Throwable $reason) use ( + $targetBucket, + $sourceDirectory, + $failurePolicyCallback, + $uploadRequestArgs, + &$objectsUploaded, + &$objectsFailed + ) { + $objectsFailed++; + if($failurePolicyCallback !== null) { + call_user_func( + $failurePolicyCallback, + $uploadRequestArgs, + [ + "source_directory" => $sourceDirectory, + "bucket_to" => $targetBucket, + ], + $reason, + new UploadDirectoryResult( + $objectsUploaded, + $objectsFailed + ) + ); + + return; + } + + throw $reason; + }); + } + + $maxConcurrency = $config['max_concurrency'] + ?? UploadDirectoryRequest::DEFAULT_MAX_CONCURRENCY; + + return Each::ofLimitAll($promises, $maxConcurrency) + ->then(function () use (&$objectsUploaded, &$objectsFailed) { + return new UploadDirectoryResult($objectsUploaded, $objectsFailed); + })->otherwise(function (Throwable $reason) + use (&$objectsUploaded, &$objectsFailed) { + return new UploadDirectoryResult( + $objectsUploaded, + $objectsFailed, + $reason + ); + }); + } + + /** + * @param DownloadRequest $downloadRequest + * + * @return PromiseInterface + */ + public function download(DownloadRequest $downloadRequest): PromiseInterface + { + $sourceArgs = $downloadRequest->normalizeSourceAsArray(); + $getObjectRequestArgs = $downloadRequest->getObjectRequestArgs(); + + $downloadRequest->updateConfigWithDefaults($this->config->toArray()); + + $downloadRequest->validateConfig(); + + $config = $downloadRequest->getConfig(); + + $progressTracker = $downloadRequest->getProgressTracker(); + if ($progressTracker === null && $config['track_progress']) { + $progressTracker = new SingleProgressTracker(); + } + + $listeners = $downloadRequest->getListeners(); + if ($progressTracker !== null) { + $listeners[] = $progressTracker; + } + + // Build listener notifier for notifying listeners + $listenerNotifier = new TransferListenerNotifier($listeners); + + // Assign source + foreach ($sourceArgs as $key => $value) { + $getObjectRequestArgs[$key] = $value; + } + + $s3Client = $downloadRequest->getS3Client(); + if ($s3Client === null) { + $s3Client = $this->s3Client; + } + + return $this->tryMultipartDownload( + $getObjectRequestArgs, + $config, + $downloadRequest->getDownloadHandler(), + $s3Client, + $listenerNotifier + ); + } + + /** + * @param DownloadFileRequest $downloadFileRequest + * + * @return PromiseInterface + */ + public function downloadFile( + DownloadFileRequest $downloadFileRequest + ): PromiseInterface + { + return $this->download($downloadFileRequest->getDownloadRequest()); + } + + /** + * @param DownloadDirectoryRequest $downloadDirectoryRequest + * + * @return PromiseInterface + */ + public function downloadDirectory( + DownloadDirectoryRequest $downloadDirectoryRequest + ): PromiseInterface + { + return $this->doDownloadDirectory( + $downloadDirectoryRequest, + $this->s3Client, + ); + } + + /** + * This method is created in order to easily add the + * `S3_TRANSFER_DOWNLOAD_DIRECTORY` metric to the s3Client instance + * to be used for the download directory operation without letting + * this metric be appended in another operations that are not + * part of the download directory. + * + * @param DownloadDirectoryRequest $downloadDirectoryRequest + * @param S3ClientInterface $s3Client + * + * @return PromiseInterface + */ + private function doDownloadDirectory( + DownloadDirectoryRequest $downloadDirectoryRequest, + S3ClientInterface $s3Client, + ): PromiseInterface + { + MetricsBuilder::appendMetricsCaptureMiddleware( + $s3Client->getHandlerList(), + MetricsBuilder::S3_TRANSFER_DOWNLOAD_DIRECTORY + ); + $downloadDirectoryRequest->validateDestinationDirectory(); + $destinationDirectory = $downloadDirectoryRequest->getDestinationDirectory(); + $sourceBucket = $downloadDirectoryRequest->getSourceBucket(); + $progressTracker = $downloadDirectoryRequest->getProgressTracker(); + + $downloadDirectoryRequest->updateConfigWithDefaults( + $this->config->toArray() + ); + + $downloadDirectoryRequest->validateConfig(); + + $config = $downloadDirectoryRequest->getConfig(); + if ($progressTracker === null && $config['track_progress']) { + $progressTracker = new MultiProgressTracker(); + } + + $listArgs = [ + 'Bucket' => $sourceBucket, + ] + ($config['list_objects_v2_args'] ?? []); + + $s3Prefix = $config['s3_prefix'] ?? null; + if (empty($listArgs['Prefix']) && $s3Prefix !== null) { + $listArgs['Prefix'] = $s3Prefix; + } + + // MUST BE NULL + $listArgs['Delimiter'] = null; + + $objects = $this->s3Client + ->getPaginator('ListObjectsV2', $listArgs) + ->search('Contents[].Key'); + + $filter = $config['filter'] ?? null; + $objects = filter($objects, function (string $key) use ($filter) { + if ($filter !== null) { + // Avoid returning objects meant for directories in s3 + return call_user_func($filter, $key) && !str_ends_with($key, "/"); + } + + // Avoid returning objects meant for directories in s3 + return !str_ends_with($key, "/"); + }); + $objects = map($objects, function (string $key) use ($sourceBucket) { + return self::formatAsS3URI($sourceBucket, $key); + }); + + $downloadObjectRequestModifier = $config['download_object_request_modifier'] + ?? null; + $failurePolicyCallback = $config['failure_policy'] ?? null; + + $s3Delimiter = '/'; + $objectsDownloaded = 0; + $objectsFailed = 0; + $promises = []; + foreach ($objects as $object) { + $bucketAndKeyArray = self::s3UriAsBucketAndKey($object); + $objectKey = $bucketAndKeyArray['Key']; + if ($s3Prefix !== null && str_contains($objectKey, $s3Delimiter)) { + if (!str_ends_with($s3Prefix, $s3Delimiter)) { + $s3Prefix = $s3Prefix.$s3Delimiter; + } + + $objectKey = substr($objectKey, strlen($s3Prefix)); + } + + // CONVERT THE KEY DIR SEPARATOR TO OS BASED DIR SEPARATOR + if (DIRECTORY_SEPARATOR !== $s3Delimiter) { + $objectKey = str_replace( + $s3Delimiter, + DIRECTORY_SEPARATOR, + $objectKey + ); + } + + $destinationFile = $destinationDirectory . DIRECTORY_SEPARATOR . $objectKey; + if ($this->resolvesOutsideTargetDirectory($destinationFile, $objectKey)) { + throw new S3TransferException( + "Cannot download key $objectKey " + ."its relative path resolves outside the parent directory." + ); + } + + $requestArgs = $downloadDirectoryRequest->getDownloadRequestArgs(); + foreach ($bucketAndKeyArray as $key => $value) { + $requestArgs[$key] = $value; + } + if ($downloadObjectRequestModifier !== null) { + call_user_func($downloadObjectRequestModifier, $requestArgs); + } + + $promises[] = $this->downloadFile( + new DownloadFileRequest( + destination: $destinationFile, + failsWhenDestinationExists: $config['fails_when_destination_exists'] ?? false, + downloadRequest: new DownloadRequest( + source: null, // Source has been provided in the request args + downloadRequestArgs: $requestArgs, + config: [ + 'target_part_size_bytes' => $config['target_part_size_bytes'] ?? 0, + ], + downloadHandler: null, + listeners: array_map( + fn($listener) => clone $listener, + $downloadDirectoryRequest->getListeners() + ), + progressTracker: $progressTracker, + s3Client: $s3Client, + ) + ), + )->then(function () use ( + &$objectsDownloaded + ) { + $objectsDownloaded++; + })->otherwise(function (Throwable $reason) use ( + $sourceBucket, + $destinationDirectory, + $failurePolicyCallback, + &$objectsDownloaded, + &$objectsFailed, + $requestArgs + ) { + $objectsFailed++; + if ($failurePolicyCallback !== null) { + call_user_func( + $failurePolicyCallback, + $requestArgs, + [ + "destination_directory" => $destinationDirectory, + "bucket" => $sourceBucket, + ], + $reason, + new DownloadDirectoryResult( + $objectsDownloaded, + $objectsFailed + ) + ); + + return; + } + + throw $reason; + }); + } + + $maxConcurrency = $config['max_concurrency'] + ?? DownloadDirectoryRequest::DEFAULT_MAX_CONCURRENCY; + + return Each::ofLimitAll($promises, $maxConcurrency) + ->then(function () use (&$objectsFailed, &$objectsDownloaded) { + return new DownloadDirectoryResult( + $objectsDownloaded, + $objectsFailed + ); + })->otherwise(function (Throwable $reason) + use (&$objectsFailed, &$objectsDownloaded) { + return new DownloadDirectoryResult( + $objectsDownloaded, + $objectsFailed, + $reason + ); + }); + } + + /** + * Tries an object multipart download. + * + * @param array $getObjectRequestArgs + * @param array $config + * @param AbstractDownloadHandler $downloadHandler + * @param TransferListenerNotifier|null $listenerNotifier + * @param S3ClientInterface|null $s3Client + * + * @return PromiseInterface + */ + private function tryMultipartDownload( + array $getObjectRequestArgs, + array $config, + AbstractDownloadHandler $downloadHandler, + S3ClientInterface $s3Client, + ?TransferListenerNotifier $listenerNotifier = null, + ): PromiseInterface + { + $downloaderClassName = AbstractMultipartDownloader::chooseDownloaderClass( + strtolower($config['multipart_download_type']) + ); + $multipartDownloader = new $downloaderClassName( + $s3Client, + $getObjectRequestArgs, + $config, + $downloadHandler, + listenerNotifier: $listenerNotifier, + ); + + return $multipartDownloader->promise(); + } + + /** + * @param string|StreamInterface $source + * @param array $requestArgs + * @param S3ClientInterface $s3Client + * @param TransferListenerNotifier|null $listenerNotifier + * + * @return PromiseInterface + */ + private function trySingleUpload( + string|StreamInterface $source, + array $requestArgs, + S3ClientInterface $s3Client, + ?TransferListenerNotifier $listenerNotifier = null, + ): PromiseInterface + { + if (is_string($source) && is_readable($source)) { + $requestArgs['SourceFile'] = $source; + $objectSize = filesize($source); + } elseif ($source instanceof StreamInterface && $source->isSeekable()) { + $requestArgs['Body'] = $source; + $objectSize = $source->getSize(); + } else { + throw new S3TransferException( + "Unable to process upload request due to the type of the source" + ); + } + + if (!empty($listenerNotifier)) { + $listenerNotifier->transferInitiated( + [ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => new TransferProgressSnapshot( + $requestArgs['Key'], + 0, + $objectSize, + ), + ] + ); + + $command = $s3Client->getCommand('PutObject', $requestArgs); + return $s3Client->executeAsync($command)->then( + function (ResultInterface $result) + use ($objectSize, $listenerNotifier, $requestArgs) { + $listenerNotifier->bytesTransferred( + [ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => new TransferProgressSnapshot( + $requestArgs['Key'], + $objectSize, + $objectSize, + ), + ] + ); + + $listenerNotifier->transferComplete( + [ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => new TransferProgressSnapshot( + $requestArgs['Key'], + $objectSize, + $objectSize, + $result->toArray() + ), + ] + ); + + return new UploadResult( + $result->toArray() + ); + } + )->otherwise(function (Throwable $reason) + use ($objectSize, $requestArgs, $listenerNotifier) { + $listenerNotifier->transferFail( + [ + AbstractTransferListener::REQUEST_ARGS_KEY => $requestArgs, + AbstractTransferListener::PROGRESS_SNAPSHOT_KEY => new TransferProgressSnapshot( + $requestArgs['Key'], + 0, + $objectSize, + ), + 'reason' => $reason, + ] + ); + + throw $reason; + }); + } + + $command = $s3Client->getCommand('PutObject', $requestArgs); + + return $s3Client->executeAsync($command) + ->then(function (ResultInterface $result) { + return new UploadResult($result->toArray()); + }); + } + + /** + * @param UploadRequest $uploadRequest + * @param S3ClientInterface $s3Client + * @param TransferListenerNotifier|null $listenerNotifier + * + * @return PromiseInterface + */ + private function tryMultipartUpload( + UploadRequest $uploadRequest, + S3ClientInterface $s3Client, + ?TransferListenerNotifier $listenerNotifier = null + ): PromiseInterface + { + return (new MultipartUploader( + $s3Client, + $uploadRequest->getUploadRequestArgs(), + $uploadRequest->getSource(), + $uploadRequest->getConfig(), + listenerNotifier: $listenerNotifier, + ))->promise(); + } + + /** + * @param string|StreamInterface $source + * @param int $mupThreshold + * + * @return bool + */ + private function requiresMultipartUpload( + string|StreamInterface $source, + int $mupThreshold + ): bool + { + if (is_string($source) && is_readable($source)) { + return filesize($source) >= $mupThreshold; + } elseif ($source instanceof StreamInterface) { + // When the stream's size is unknown then we could try a multipart upload. + if (empty($source->getSize())) { + return true; + } + + return $source->getSize() >= $mupThreshold; + } + + throw new S3TransferException( + "Unable to determine if a multipart is required" + ); + } + + /** + * Returns a default instance of S3Client. + * + * @return S3Client + */ + private function defaultS3Client(): S3ClientInterface + { + try { + return new S3Client([ + 'region' => $this->config->getDefaultRegion(), + ]); + } catch (InvalidArgumentException $e) { + if (str_contains($e->getMessage(), "A \"region\" configuration value is required for the \"s3\" service")) { + throw new S3TransferException( + $e->getMessage() + . "\n You could opt for setting a default region as part of" + ." the TM config options by using the parameter `default_region`" + ); + } + + throw $e; + } + } + + /** + * Validates a string value is a valid S3 URI. + * Valid S3 URI Example: S3://mybucket.dev/myobject.txt + * + * @param string $uri + * + * @return bool + */ + public static function isValidS3URI(string $uri): bool + { + // in the expression `substr($uri, 5)))` the 5 belongs to the size of `s3://`. + return str_starts_with(strtolower($uri), 's3://') + && count(explode('/', substr($uri, 5))) > 1; + } + + /** + * Converts a S3 URI into an array with a Bucket and Key + * properties set. + * + * @param string $uri: The S3 URI. + * + * @return array + */ + public static function s3UriAsBucketAndKey(string $uri): array + { + $errorMessage = "Invalid URI: `$uri` provided. \nA valid S3 URI looks as `s3://bucket/key`"; + if (!self::isValidS3URI($uri)) { + throw new InvalidArgumentException($errorMessage); + } + + $path = substr($uri, 5); // without s3:// + $parts = explode('/', $path, 2); + + if (count($parts) < 2) { + throw new InvalidArgumentException($errorMessage); + } + + return [ + 'Bucket' => $parts[0], + 'Key' => $parts[1], + ]; + } + + /** + * @param string $bucket + * @param string $key + * + * @return string + */ + private static function formatAsS3URI(string $bucket, string $key): string + { + return "s3://$bucket/$key"; + } + + /** + * @param string $sink + * @param string $objectKey + * + * @return bool + */ + private function resolvesOutsideTargetDirectory( + string $sink, + string $objectKey + ): bool + { + $resolved = []; + $sections = explode(DIRECTORY_SEPARATOR, $sink); + $targetSectionsLength = count(explode(DIRECTORY_SEPARATOR, $objectKey)); + $targetSections = array_slice($sections, -($targetSectionsLength + 1)); + $targetDirectory = $targetSections[0]; + + foreach ($targetSections as $section) { + if ($section === '.' || $section === '') { + continue; + } + if ($section === '..') { + array_pop($resolved); + if (empty($resolved) || $resolved[0] !== $targetDirectory) { + return true; + } + } else { + $resolved []= $section; + } + } + + return false; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Utils/AbstractDownloadHandler.php b/aws/aws-sdk-php/src/S3/S3Transfer/Utils/AbstractDownloadHandler.php new file mode 100644 index 000000000..d0995ec14 --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Utils/AbstractDownloadHandler.php @@ -0,0 +1,18 @@ +destination = $destination; + $this->failsWhenDestinationExists = $failsWhenDestinationExists; + $this->temporaryDestination = ""; + } + + /** + * @return string + */ + public function getDestination(): string + { + return $this->destination; + } + + /** + * @return bool + */ + public function isFailsWhenDestinationExists(): bool + { + return $this->failsWhenDestinationExists; + } + + /** + * @param array $context + * + * @return void + */ + public function transferInitiated(array $context): void + { + if ($this->failsWhenDestinationExists && file_exists($this->destination)) { + throw new FileDownloadException( + "The destination '$this->destination' already exists." + ); + } elseif (is_dir($this->destination)) { + throw new FileDownloadException( + "The destination '$this->destination' can't be a directory." + ); + } + + // Create directory if necessary + $directory = dirname($this->destination); + if (!is_dir($directory)) { + mkdir($directory, 0777, true); + } + + $uniqueId = self::getUniqueIdentifier(); + $temporaryName = $this->destination . self::TEMP_INFIX . $uniqueId; + while (file_exists($temporaryName)) { + $uniqueId = self::getUniqueIdentifier(); + $temporaryName = $this->destination . self::TEMP_INFIX . $uniqueId; + } + + // Create the file + file_put_contents($temporaryName, ""); + $this->temporaryDestination = $temporaryName; + } + + /** + * @param array $context + * + * @return void + */ + public function bytesTransferred(array $context): bool + { + $snapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $response = $snapshot->getResponse(); + $partBody = $response['Body']; + if ($partBody->isSeekable()) { + $partBody->rewind(); + } + + file_put_contents( + $this->temporaryDestination, + $partBody, + FILE_APPEND + ); + + return true; + } + + /** + * @param array $context + * + * @return void + */ + public function transferComplete(array $context): void + { + // Make sure the file is deleted if exists + if (file_exists($this->destination) && is_file($this->destination)) { + if ($this->failsWhenDestinationExists) { + throw new FileDownloadException( + "The destination '$this->destination' already exists." + ); + } else { + unlink($this->destination); + } + } + + if (!rename($this->temporaryDestination, $this->destination)) { + throw new FileDownloadException( + "Unable to rename the file `$this->temporaryDestination` to `$this->destination`." + ); + } + } + + /** + * @param array $context + * + * @return void + */ + public function transferFail(array $context): void + { + if (file_exists($this->temporaryDestination)) { + unlink($this->temporaryDestination); + } elseif (file_exists($this->destination) + && !str_contains( + $context[self::REASON_KEY], + "The destination '$this->destination' already exists.") + ) { + unlink($this->destination); + } + } + + /** + * @return string + */ + private static function getUniqueIdentifier(): string + { + $uniqueId = uniqid(); + if (strlen($uniqueId) > self::IDENTIFIER_LENGTH) { + $uniqueId = substr($uniqueId, 0, self::IDENTIFIER_LENGTH); + } else { + $uniqueId = str_pad($uniqueId, self::IDENTIFIER_LENGTH, "0"); + } + + return $uniqueId; + } + + /** + * @return string + */ + public function getHandlerResult(): string + { + return $this->destination; + } +} diff --git a/aws/aws-sdk-php/src/S3/S3Transfer/Utils/StreamDownloadHandler.php b/aws/aws-sdk-php/src/S3/S3Transfer/Utils/StreamDownloadHandler.php new file mode 100644 index 000000000..4110f5a8e --- /dev/null +++ b/aws/aws-sdk-php/src/S3/S3Transfer/Utils/StreamDownloadHandler.php @@ -0,0 +1,88 @@ +stream = $stream; + } + + /** + * @param array $context + * + * @return void + */ + public function transferInitiated(array $context): void + { + if (is_null($this->stream)) { + $this->stream = Utils::streamFor( + fopen('php://temp', 'w+') + ); + } else { + $this->stream->seek($this->stream->getSize()); + } + } + + /** + * @inheritDoc + */ + public function bytesTransferred(array $context): bool + { + $snapshot = $context[AbstractTransferListener::PROGRESS_SNAPSHOT_KEY]; + $response = $snapshot->getResponse(); + $partBody = $response['Body']; + if ($partBody->isSeekable()) { + $partBody->rewind(); + } + + Utils::copyToStream( + $partBody, + $this->stream + ); + + return true; + } + + /** + * @param array $context + * + * @return void + */ + public function transferComplete(array $context): void + { + $this->stream->rewind(); + } + + /** + * @param array $context + * + * @return void + */ + public function transferFail(array $context): void + { + $this->stream->close(); + $this->stream = null; + } + + /** + * @inheritDoc + * + * @return StreamInterface + */ + public function getHandlerResult(): StreamInterface + { + return $this->stream; + } +} diff --git a/aws/aws-sdk-php/src/S3/StreamWrapper.php b/aws/aws-sdk-php/src/S3/StreamWrapper.php index 47861435b..af7d22907 100644 --- a/aws/aws-sdk-php/src/S3/StreamWrapper.php +++ b/aws/aws-sdk-php/src/S3/StreamWrapper.php @@ -259,7 +259,7 @@ public function url_stat($path, $flags) $this->initProtocol($path); // Some paths come through as S3:// for some reason. - $split = explode('://', $path); + $split = explode('://', $path, 2); $path = strtolower($split[0]) . '://' . $split[1]; // Check if this path is in the url_stat cache @@ -703,7 +703,7 @@ private function getClient() private function getBucketKey($path) { // Remove the protocol - $parts = explode('://', $path); + $parts = explode('://', $path, 2); // Get the bucket, key $parts = explode('/', $parts[1], 2); diff --git a/aws/aws-sdk-php/src/Script/Composer/Composer.php b/aws/aws-sdk-php/src/Script/Composer/Composer.php index 765d0c24c..4f42f6c91 100644 --- a/aws/aws-sdk-php/src/Script/Composer/Composer.php +++ b/aws/aws-sdk-php/src/Script/Composer/Composer.php @@ -7,6 +7,14 @@ class Composer { + private static array $unsafeForDeletion = [ + 'Kms' => true, + 'S3' => true , + 'SSO' => true, + 'SSOOIDC' => true, + 'Sts' => true, + 'Signin' => true + ]; public static function removeUnusedServicesInDev(Event $event, ?Filesystem $filesystem = null) { @@ -26,9 +34,7 @@ private static function removeUnusedServicesWithConfig(Event $event, ?Filesystem $composer = $event->getComposer(); $extra = $composer->getPackage()->getExtra(); - $listedServices = isset($extra['aws/aws-sdk-php']) - ? $extra['aws/aws-sdk-php'] - : []; + $listedServices = $extra['aws/aws-sdk-php'] ?? []; if ($listedServices) { $serviceMapping = self::buildServiceMapping(); @@ -79,9 +85,9 @@ private static function removeServiceDirs( $listedServices, $vendorPath ) { - $unsafeForDeletion = ['Kms', 'S3', 'SSO', 'SSOOIDC', 'Sts']; + $unsafeForDeletion = self::$unsafeForDeletion; if (in_array('DynamoDbStreams', $listedServices)) { - $unsafeForDeletion[] = 'DynamoDb'; + $unsafeForDeletion['DynamoDb'] = true; } $clientPath = $vendorPath . '/aws/aws-sdk-php/src/'; @@ -90,7 +96,7 @@ private static function removeServiceDirs( foreach ($serviceMapping as $clientName => $modelName) { if (!in_array($clientName, $listedServices) && - !in_array($clientName, $unsafeForDeletion) + !isset($unsafeForDeletion[$clientName]) ) { $clientDir = $clientPath . $clientName; $modelDir = $modelPath . $modelName; diff --git a/aws/aws-sdk-php/src/Sdk.php b/aws/aws-sdk-php/src/Sdk.php index 356203d32..503d578e1 100644 --- a/aws/aws-sdk-php/src/Sdk.php +++ b/aws/aws-sdk-php/src/Sdk.php @@ -8,6 +8,8 @@ * @method \Aws\MultiRegionClient createMultiRegionACMPCA(array $args = []) * @method \Aws\AIOps\AIOpsClient createAIOps(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionAIOps(array $args = []) + * @method \Aws\ARCRegionSwitch\ARCRegionSwitchClient createARCRegionSwitch(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionARCRegionSwitch(array $args = []) * @method \Aws\ARCZonalShift\ARCZonalShiftClient createARCZonalShift(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionARCZonalShift(array $args = []) * @method \Aws\AccessAnalyzer\AccessAnalyzerClient createAccessAnalyzer(array $args = []) @@ -44,8 +46,6 @@ * @method \Aws\MultiRegionClient createMultiRegionAppRunner(array $args = []) * @method \Aws\AppSync\AppSyncClient createAppSync(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionAppSync(array $args = []) - * @method \Aws\AppTest\AppTestClient createAppTest(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionAppTest(array $args = []) * @method \Aws\Appflow\AppflowClient createAppflow(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionAppflow(array $args = []) * @method \Aws\ApplicationAutoScaling\ApplicationAutoScalingClient createApplicationAutoScaling(array $args = []) @@ -74,10 +74,14 @@ * @method \Aws\MultiRegionClient createMultiRegionAutoScalingPlans(array $args = []) * @method \Aws\B2bi\B2biClient createB2bi(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionB2bi(array $args = []) + * @method \Aws\BCMDashboards\BCMDashboardsClient createBCMDashboards(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBCMDashboards(array $args = []) * @method \Aws\BCMDataExports\BCMDataExportsClient createBCMDataExports(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionBCMDataExports(array $args = []) * @method \Aws\BCMPricingCalculator\BCMPricingCalculatorClient createBCMPricingCalculator(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionBCMPricingCalculator(array $args = []) + * @method \Aws\BCMRecommendedActions\BCMRecommendedActionsClient createBCMRecommendedActions(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBCMRecommendedActions(array $args = []) * @method \Aws\Backup\BackupClient createBackup(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionBackup(array $args = []) * @method \Aws\BackupGateway\BackupGatewayClient createBackupGateway(array $args = []) @@ -90,6 +94,10 @@ * @method \Aws\MultiRegionClient createMultiRegionBedrock(array $args = []) * @method \Aws\BedrockAgent\BedrockAgentClient createBedrockAgent(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionBedrockAgent(array $args = []) + * @method \Aws\BedrockAgentCore\BedrockAgentCoreClient createBedrockAgentCore(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBedrockAgentCore(array $args = []) + * @method \Aws\BedrockAgentCoreControl\BedrockAgentCoreControlClient createBedrockAgentCoreControl(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionBedrockAgentCoreControl(array $args = []) * @method \Aws\BedrockAgentRuntime\BedrockAgentRuntimeClient createBedrockAgentRuntime(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionBedrockAgentRuntime(array $args = []) * @method \Aws\BedrockDataAutomation\BedrockDataAutomationClient createBedrockDataAutomation(array $args = []) @@ -194,6 +202,8 @@ * @method \Aws\MultiRegionClient createMultiRegionComprehendMedical(array $args = []) * @method \Aws\ComputeOptimizer\ComputeOptimizerClient createComputeOptimizer(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionComputeOptimizer(array $args = []) + * @method \Aws\ComputeOptimizerAutomation\ComputeOptimizerAutomationClient createComputeOptimizerAutomation(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionComputeOptimizerAutomation(array $args = []) * @method \Aws\ConfigService\ConfigServiceClient createConfigService(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionConfigService(array $args = []) * @method \Aws\Connect\ConnectClient createConnect(array $args = []) @@ -290,8 +300,6 @@ * @method \Aws\MultiRegionClient createMultiRegionElasticLoadBalancing(array $args = []) * @method \Aws\ElasticLoadBalancingV2\ElasticLoadBalancingV2Client createElasticLoadBalancingV2(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionElasticLoadBalancingV2(array $args = []) - * @method \Aws\ElasticTranscoder\ElasticTranscoderClient createElasticTranscoder(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionElasticTranscoder(array $args = []) * @method \Aws\ElasticsearchService\ElasticsearchServiceClient createElasticsearchService(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionElasticsearchService(array $args = []) * @method \Aws\Emr\EmrClient createEmr(array $args = []) @@ -378,8 +386,6 @@ * @method \Aws\MultiRegionClient createMultiRegionIoTEvents(array $args = []) * @method \Aws\IoTEventsData\IoTEventsDataClient createIoTEventsData(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionIoTEventsData(array $args = []) - * @method \Aws\IoTFleetHub\IoTFleetHubClient createIoTFleetHub(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionIoTFleetHub(array $args = []) * @method \Aws\IoTFleetWise\IoTFleetWiseClient createIoTFleetWise(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionIoTFleetWise(array $args = []) * @method \Aws\IoTJobsDataPlane\IoTJobsDataPlaneClient createIoTJobsDataPlane(array $args = []) @@ -454,10 +460,6 @@ * @method \Aws\MultiRegionClient createMultiRegionLocationService(array $args = []) * @method \Aws\LookoutEquipment\LookoutEquipmentClient createLookoutEquipment(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionLookoutEquipment(array $args = []) - * @method \Aws\LookoutMetrics\LookoutMetricsClient createLookoutMetrics(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionLookoutMetrics(array $args = []) - * @method \Aws\LookoutforVision\LookoutforVisionClient createLookoutforVision(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionLookoutforVision(array $args = []) * @method \Aws\MPA\MPAClient createMPA(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionMPA(array $args = []) * @method \Aws\MQ\MQClient createMQ(array $args = []) @@ -466,6 +468,8 @@ * @method \Aws\MultiRegionClient createMultiRegionMTurk(array $args = []) * @method \Aws\MWAA\MWAAClient createMWAA(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionMWAA(array $args = []) + * @method \Aws\MWAAServerless\MWAAServerlessClient createMWAAServerless(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionMWAAServerless(array $args = []) * @method \Aws\MachineLearning\MachineLearningClient createMachineLearning(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionMachineLearning(array $args = []) * @method \Aws\Macie2\Macie2Client createMacie2(array $args = []) @@ -544,6 +548,8 @@ * @method \Aws\MultiRegionClient createMultiRegionNotifications(array $args = []) * @method \Aws\NotificationsContacts\NotificationsContactsClient createNotificationsContacts(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionNotificationsContacts(array $args = []) + * @method \Aws\NovaAct\NovaActClient createNovaAct(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionNovaAct(array $args = []) * @method \Aws\OAM\OAMClient createOAM(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionOAM(array $args = []) * @method \Aws\OSIS\OSISClient createOSIS(array $args = []) @@ -558,10 +564,6 @@ * @method \Aws\MultiRegionClient createMultiRegionOpenSearchServerless(array $args = []) * @method \Aws\OpenSearchService\OpenSearchServiceClient createOpenSearchService(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionOpenSearchService(array $args = []) - * @method \Aws\OpsWorks\OpsWorksClient createOpsWorks(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionOpsWorks(array $args = []) - * @method \Aws\OpsWorksCM\OpsWorksCMClient createOpsWorksCM(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionOpsWorksCM(array $args = []) * @method \Aws\Organizations\OrganizationsClient createOrganizations(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionOrganizations(array $args = []) * @method \Aws\Outposts\OutpostsClient createOutposts(array $args = []) @@ -572,6 +574,12 @@ * @method \Aws\MultiRegionClient createMultiRegionPI(array $args = []) * @method \Aws\Panorama\PanoramaClient createPanorama(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionPanorama(array $args = []) + * @method \Aws\PartnerCentralAccount\PartnerCentralAccountClient createPartnerCentralAccount(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPartnerCentralAccount(array $args = []) + * @method \Aws\PartnerCentralBenefits\PartnerCentralBenefitsClient createPartnerCentralBenefits(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPartnerCentralBenefits(array $args = []) + * @method \Aws\PartnerCentralChannel\PartnerCentralChannelClient createPartnerCentralChannel(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionPartnerCentralChannel(array $args = []) * @method \Aws\PartnerCentralSelling\PartnerCentralSellingClient createPartnerCentralSelling(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionPartnerCentralSelling(array $args = []) * @method \Aws\PaymentCryptography\PaymentCryptographyClient createPaymentCryptography(array $args = []) @@ -612,16 +620,14 @@ * @method \Aws\MultiRegionClient createMultiRegionQBusiness(array $args = []) * @method \Aws\QConnect\QConnectClient createQConnect(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionQConnect(array $args = []) - * @method \Aws\QLDB\QLDBClient createQLDB(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionQLDB(array $args = []) - * @method \Aws\QLDBSession\QLDBSessionClient createQLDBSession(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionQLDBSession(array $args = []) * @method \Aws\QuickSight\QuickSightClient createQuickSight(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionQuickSight(array $args = []) * @method \Aws\RAM\RAMClient createRAM(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRAM(array $args = []) * @method \Aws\RDSDataService\RDSDataServiceClient createRDSDataService(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRDSDataService(array $args = []) + * @method \Aws\RTBFabric\RTBFabricClient createRTBFabric(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRTBFabric(array $args = []) * @method \Aws\Rds\RdsClient createRds(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRds(array $args = []) * @method \Aws\RecycleBin\RecycleBinClient createRecycleBin(array $args = []) @@ -644,14 +650,14 @@ * @method \Aws\MultiRegionClient createMultiRegionResourceGroups(array $args = []) * @method \Aws\ResourceGroupsTaggingAPI\ResourceGroupsTaggingAPIClient createResourceGroupsTaggingAPI(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionResourceGroupsTaggingAPI(array $args = []) - * @method \Aws\RoboMaker\RoboMakerClient createRoboMaker(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionRoboMaker(array $args = []) * @method \Aws\RolesAnywhere\RolesAnywhereClient createRolesAnywhere(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRolesAnywhere(array $args = []) * @method \Aws\Route53\Route53Client createRoute53(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRoute53(array $args = []) * @method \Aws\Route53Domains\Route53DomainsClient createRoute53Domains(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRoute53Domains(array $args = []) + * @method \Aws\Route53GlobalResolver\Route53GlobalResolverClient createRoute53GlobalResolver(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionRoute53GlobalResolver(array $args = []) * @method \Aws\Route53Profiles\Route53ProfilesClient createRoute53Profiles(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionRoute53Profiles(array $args = []) * @method \Aws\Route53RecoveryCluster\Route53RecoveryClusterClient createRoute53RecoveryCluster(array $args = []) @@ -670,6 +676,8 @@ * @method \Aws\MultiRegionClient createMultiRegionS3Outposts(array $args = []) * @method \Aws\S3Tables\S3TablesClient createS3Tables(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionS3Tables(array $args = []) + * @method \Aws\S3Vectors\S3VectorsClient createS3Vectors(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionS3Vectors(array $args = []) * @method \Aws\SSMContacts\SSMContactsClient createSSMContacts(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionSSMContacts(array $args = []) * @method \Aws\SSMGuiConnect\SSMGuiConnectClient createSSMGuiConnect(array $args = []) @@ -726,10 +734,10 @@ * @method \Aws\MultiRegionClient createMultiRegionSfn(array $args = []) * @method \Aws\Shield\ShieldClient createShield(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionShield(array $args = []) + * @method \Aws\Signin\SigninClient createSignin(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionSignin(array $args = []) * @method \Aws\SimSpaceWeaver\SimSpaceWeaverClient createSimSpaceWeaver(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionSimSpaceWeaver(array $args = []) - * @method \Aws\Sms\SmsClient createSms(array $args = []) - * @method \Aws\MultiRegionClient createMultiRegionSms(array $args = []) * @method \Aws\SnowBall\SnowBallClient createSnowBall(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionSnowBall(array $args = []) * @method \Aws\SnowDeviceManagement\SnowDeviceManagementClient createSnowDeviceManagement(array $args = []) @@ -792,6 +800,8 @@ * @method \Aws\MultiRegionClient createMultiRegionWafRegional(array $args = []) * @method \Aws\WellArchitected\WellArchitectedClient createWellArchitected(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionWellArchitected(array $args = []) + * @method \Aws\Wickr\WickrClient createWickr(array $args = []) + * @method \Aws\MultiRegionClient createMultiRegionWickr(array $args = []) * @method \Aws\WorkDocs\WorkDocsClient createWorkDocs(array $args = []) * @method \Aws\MultiRegionClient createMultiRegionWorkDocs(array $args = []) * @method \Aws\WorkMail\WorkMailClient createWorkMail(array $args = []) @@ -825,7 +835,7 @@ */ class Sdk { - const VERSION = '3.349.3'; + const VERSION = '3.369.9'; /** @var array Arguments for creating clients */ private $args; diff --git a/aws/aws-sdk-php/src/Signature/DpopSignature.php b/aws/aws-sdk-php/src/Signature/DpopSignature.php new file mode 100644 index 000000000..0d3b9f96d --- /dev/null +++ b/aws/aws-sdk-php/src/Signature/DpopSignature.php @@ -0,0 +1,246 @@ + true]; + private const EXT_OPENSSL = 'openssl'; + private const CURVE_NAME = 'prime256v1'; + private const HEADER_DPOP = 'DPop'; + private const HEADER_TYP = 'dpop+jwt'; + private const HEADER_ALG = 'ES256'; + private const HEADER_JWK_KTY = 'EC'; + private const HEADER_JWK_CRV = 'P-256'; + private const PAYLOAD_HTM = 'POST'; + private const JWK_SCHEMA = [ + 'kty' => self::HEADER_JWK_KTY, + 'crv' => self::HEADER_JWK_CRV, + ]; + private const HEADER_SCHEMA = [ + 'typ' => self::HEADER_TYP, + 'alg' => self::HEADER_ALG, + 'jwk' => self::JWK_SCHEMA + ]; + private const PAYLOAD_SCHEMA = [ + 'htm' => self::PAYLOAD_HTM, + ]; + + /** + * Creates a new DpopSignature instance for the specified service + * + * @param string $serviceName The name of the AWS service (must be in the allow list) + * + * @throws \RuntimeException If the OpenSSL extension is not loaded + * @throws \InvalidArgumentException If the service is not in the allow list + */ + public function __construct(string $serviceName) + { + if (!extension_loaded(self::EXT_OPENSSL)) { + throw new \RuntimeException( + 'the `openssl` extension is required to generate DPop signatures. ' + . 'Please install or enable the `openssl` extension.' + ); + } + + if (!isset(self::ALLOW_LISTED_SERVICES[$serviceName])) { + throw new \InvalidArgumentException( + "The '{$serviceName}' service does not support DPop signatures. " + . 'Please configure a signature version this service supports.' + ); + } + } + + /** + * Signs an HTTP request with a DPoP header + * + * @param RequestInterface $request The HTTP request to sign + * @param \OpenSSLAsymmetricKey $key The private key for signing + * + * @return RequestInterface The request with the DPoP header added + * @throws \RuntimeException|\Exception If signature generation fails + */ + public function signRequest( + RequestInterface $request, + \OpenSSLAsymmetricKey $key, + ) { + $dpopHeaderValue = $this->generateDpopProof($key, $request->getUri()); + + return $request->withHeader(self::HEADER_DPOP, $dpopHeaderValue); + } + + /** + * Generates the DPoP JWT header value for the request + * + * @param \OpenSSLAsymmetricKey $key The private key for signing + * @param UriInterface $uri The URI of the request + * + * @return string The complete DPoP JWT token + * @throws \RuntimeException|\Exception If signature generation fails + */ + private function generateDpopProof( + \OpenSSLAsymmetricKey $key, + UriInterface $uri + ): string + { + $keyDetails = openssl_pkey_get_details($key); + if (($keyDetails['ec']['curve_name'] ?? '') !== self::CURVE_NAME) { + throw new \InvalidArgumentException( + 'DPoP signature keys must use P-256 curve. ' + . 'Please check your configuration and try again.' + ); + } + + ['x' => $x, 'y' => $y] = $keyDetails['ec']; + $header = $this->buildDpopHeader($x, $y); + $payload = $this->buildDpopPayload((string) $uri); + + $message = $this->base64url_encode(json_encode($header)) + . '.' . $this->base64url_encode(json_encode($payload)); + $signature = ''; + if (!openssl_sign($message, $signature, $key, OPENSSL_ALGO_SHA256)) { + $error = openssl_error_string(); + + throw new \RuntimeException( + 'Failed to generate signature.' . ($error ? ": $error" : '.') + ); + } + + $signature = $this->derToRaw($signature); + + return $message . '.' . $this->base64url_encode($signature); + } + + /** + * Builds the DPoP JWT header with the public key coordinates + * + * @param string $x The x-coordinate of the EC public key + * @param string $y The y-coordinate of the EC public key + * + * @return array The complete DPoP header with JWK + */ + private function buildDpopHeader(string $x, string $y): array + { + return array_merge_recursive(self::HEADER_SCHEMA, [ + 'jwk' => [ + 'x' => $this->base64url_encode($x), + 'y' => $this->base64url_encode($y) + ] + ]); + } + + /** + * Builds the DPoP JWT payload with request-specific claims + * + * @param string $uri The target URI for the HTTP request + * + * @return array The complete DPoP payload with jti, htm, htu, and iat claims + * @throws RandomException + */ + private function buildDpopPayload(string $uri): array + { + return array_merge(self::PAYLOAD_SCHEMA, [ + 'jti' => $this->uuidv4(), + 'htu' => $uri, + 'iat' => time() + ]); + } + + /** + * Generates a version 4 UUID + * + * @return string A UUID v4 string + * @throws RandomException + */ + private function uuidv4(): string + { + $data = random_bytes(16); + $data[6] = chr(ord($data[6]) & 0x0f | 0x40); + $data[8] = chr(ord($data[8]) & 0x3f | 0x80); + + return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4)); + } + + /** + * Encodes data to Base64URL format (RFC 4648) + * + * @param string $data The data to encode + * + * @return string Base64URL encoded string (no padding, URL-safe characters) + */ + private function base64url_encode(string $data): string + { + return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); + } + + /** + * Convert DER-encoded ECDSA signature to raw R||S format (64 bytes for ES256) + * + * @param string $derSignature DER-encoded signature from openssl_sign + * + * @return string Raw signature (64 bytes: 32 bytes R + 32 bytes S) + * @throws \Exception If the DER signature is invalid + */ + private function derToRaw(string $derSignature): string + { + $hex = bin2hex($derSignature); + $pos = 0; + + // Parse SEQUENCE tag (0x30) + if (substr($hex, $pos, 2) !== '30') { + throw new \Exception('Invalid DER signature format: missing SEQUENCE tag'); + } + $pos += 2; + + // Parse SEQUENCE length + $seqLen = hexdec(substr($hex, $pos, 2)); + $pos += 2; + + // Parse first INTEGER tag (0x02) for R + if (substr($hex, $pos, 2) !== '02') { + throw new \Exception('Invalid DER signature format: missing R INTEGER tag'); + } + $pos += 2; + + // Parse R length + $rLen = hexdec(substr($hex, $pos, 2)); + $pos += 2; + + // Extract R value + $r = substr($hex, $pos, $rLen * 2); + if (strlen($r) !== $rLen * 2) { + throw new \Exception('Invalid DER signature: R length mismatch'); + } + $pos += $rLen * 2; + + // Parse second INTEGER tag (0x02) for S + if (substr($hex, $pos, 2) !== '02') { + throw new \Exception('Invalid DER signature format: missing S INTEGER tag'); + } + $pos += 2; + + // Parse S length + $sLen = hexdec(substr($hex, $pos, 2)); + $pos += 2; + + // Extract S value + $s = substr($hex, $pos, $sLen * 2); + if (strlen($s) !== $sLen * 2) { + throw new \Exception('Invalid DER signature: S length mismatch'); + } + + // Remove leading zeros (if any) and pad to 32 bytes + $r = str_pad(ltrim($r, '0'), 64, '0', STR_PAD_LEFT); + $s = str_pad(ltrim($s, '0'), 64, '0', STR_PAD_LEFT); + + // Ensure exactly 32 bytes each + if (strlen($r) !== 64 || strlen($s) !== 64) { + throw new \Exception('Invalid signature component length'); + } + + return hex2bin($r . $s); + } +} diff --git a/aws/aws-sdk-php/src/Signature/SignatureProvider.php b/aws/aws-sdk-php/src/Signature/SignatureProvider.php index 5d496d763..b701143c2 100644 --- a/aws/aws-sdk-php/src/Signature/SignatureProvider.php +++ b/aws/aws-sdk-php/src/Signature/SignatureProvider.php @@ -65,6 +65,7 @@ public static function resolve(callable $provider, $version, $service, $region) $result = $provider($version, $service, $region); if ($result instanceof SignatureInterface || $result instanceof BearerTokenAuthorization + || $result instanceof DpopSignature ) { return $result; } @@ -139,6 +140,8 @@ public static function version() return new BearerTokenAuthorization(); case 'anonymous': return new AnonymousSignature(); + case 'dpop': + return new DpopSignature($service); default: return null; } diff --git a/aws/aws-sdk-php/src/Signature/SignatureV4.php b/aws/aws-sdk-php/src/Signature/SignatureV4.php index 74c3940fc..a7b921221 100644 --- a/aws/aws-sdk-php/src/Signature/SignatureV4.php +++ b/aws/aws-sdk-php/src/Signature/SignatureV4.php @@ -346,7 +346,9 @@ private function getCanonicalizedQuery(array $query) } $qs = ''; - ksort($query); + uksort($query, static function (string $a, string $b): int { + return strcmp(rawurlencode($a), rawurlencode($b)); + }); foreach ($query as $k => $v) { if (!is_array($v)) { $qs .= rawurlencode($k) . '=' . rawurlencode($v !== null ? $v : '') . '&'; diff --git a/aws/aws-sdk-php/src/Signin/Exception/SigninException.php b/aws/aws-sdk-php/src/Signin/Exception/SigninException.php new file mode 100644 index 000000000..c473366f2 --- /dev/null +++ b/aws/aws-sdk-php/src/Signin/Exception/SigninException.php @@ -0,0 +1,9 @@ +withHeader( - 'content-length', + 'Content-Length', $size ); } diff --git a/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationProvider.php b/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationProvider.php index 172098024..a0aa760cf 100644 --- a/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationProvider.php +++ b/aws/aws-sdk-php/src/Sts/RegionalEndpoints/ConfigurationProvider.php @@ -45,7 +45,7 @@ class ConfigurationProvider extends AbstractConfigurationProvider implements ConfigurationProviderInterface { - const DEFAULT_ENDPOINTS_TYPE = 'legacy'; + const DEFAULT_ENDPOINTS_TYPE = 'regional'; const ENV_ENDPOINTS_TYPE = 'AWS_STS_REGIONAL_ENDPOINTS'; const ENV_PROFILE = 'AWS_PROFILE'; const INI_ENDPOINTS_TYPE = 'sts_regional_endpoints'; diff --git a/aws/aws-sdk-php/src/Sts/StsClient.php b/aws/aws-sdk-php/src/Sts/StsClient.php index d23a0ec27..c15fad5fc 100644 --- a/aws/aws-sdk-php/src/Sts/StsClient.php +++ b/aws/aws-sdk-php/src/Sts/StsClient.php @@ -25,10 +25,14 @@ * @method \GuzzleHttp\Promise\Promise getAccessKeyInfoAsync(array $args = []) * @method \Aws\Result getCallerIdentity(array $args = []) * @method \GuzzleHttp\Promise\Promise getCallerIdentityAsync(array $args = []) + * @method \Aws\Result getDelegatedAccessToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getDelegatedAccessTokenAsync(array $args = []) * @method \Aws\Result getFederationToken(array $args = []) * @method \GuzzleHttp\Promise\Promise getFederationTokenAsync(array $args = []) * @method \Aws\Result getSessionToken(array $args = []) * @method \GuzzleHttp\Promise\Promise getSessionTokenAsync(array $args = []) + * @method \Aws\Result getWebIdentityToken(array $args = []) + * @method \GuzzleHttp\Promise\Promise getWebIdentityTokenAsync(array $args = []) */ class StsClient extends AwsClient { diff --git a/aws/aws-sdk-php/src/Token/BedrockTokenProvider.php b/aws/aws-sdk-php/src/Token/BedrockTokenProvider.php new file mode 100644 index 000000000..bfcf113fa --- /dev/null +++ b/aws/aws-sdk-php/src/Token/BedrockTokenProvider.php @@ -0,0 +1,105 @@ + self::env(self::TOKEN_ENV_KEY)]; + + return self::memoize( + call_user_func_array( + [TokenProvider::class, 'chain'], + array_values($defaultChain) + ) + ); + } + + /** + * Token provider that creates a token from an environment variable. + * + * @param string $configKey The configuration key that will be transformed + * to an environment variable name by ConfigurationResolver + * + * @return callable + */ + public static function env(string $configKey): callable + { + return static function () use ($configKey) { + $tokenValue = ConfigurationResolver::env($configKey); + if (empty($tokenValue)) { + return Promise\Create::rejectionFor( + new TokenException( + "No token found in environment variable " . + ConfigurationResolver::$envPrefix . strtoupper($configKey) + ) + ); + } + + return Promise\Create::promiseFor(new Token($tokenValue)); + }; + } + + /** + * Create a token provider from a raw token value string. + * Bedrock bearer tokens sourced from env do not have an expiration + * + * @param string $tokenValue The bearer token value + * + * @return callable + */ + public static function fromTokenValue( + string $tokenValue, + ?TokenSource $source = null + ): callable + { + $token = new Token($tokenValue, null, $source); + return self::fromToken($token); + } + + /** + * Create a Bedrock token provider if the service is 'bedrock' and a token is available. + * Sets auth scheme preference to `bearer` auth. + * + * @param array $args Configuration arguments containing 'config' array + * + * @return callable|null Returns a token provider if conditions are met, null otherwise + */ + public static function createIfAvailable(array &$args): ?callable + { + $tokenValue = ConfigurationResolver::env(self::TOKEN_ENV_KEY); + + if ($tokenValue) { + $authSchemePreference = $args['config']['auth_scheme_preference'] ?? []; + array_unshift($authSchemePreference, self::BEARER_AUTH); + $args['config']['auth_scheme_preference'] = $authSchemePreference; + + return self::fromTokenValue($tokenValue, TokenSource::BEARER_SERVICE_ENV_VARS); + } + + return null; + } +} diff --git a/aws/aws-sdk-php/src/Token/Token.php b/aws/aws-sdk-php/src/Token/Token.php index 51e83c368..69b09dd65 100644 --- a/aws/aws-sdk-php/src/Token/Token.php +++ b/aws/aws-sdk-php/src/Token/Token.php @@ -2,7 +2,6 @@ namespace Aws\Token; use Aws\Identity\BearerTokenIdentity; -use Aws\Token\TokenInterface; /** * Basic implementation of the AWS Token interface that allows callers to @@ -12,6 +11,7 @@ class Token extends BearerTokenIdentity implements TokenInterface, \Serializable { protected $token; protected $expires; + protected ?TokenSource $source; /** * Constructs a new basic token object, with the specified AWS @@ -20,10 +20,14 @@ class Token extends BearerTokenIdentity implements TokenInterface, \Serializable * @param string $token Security token to use * @param int $expires UNIX timestamp for when the token expires */ - public function __construct($token, $expires = null) - { + public function __construct( + $token, + $expires = null, + ?TokenSource $source = null + ){ $this->token = $token; $this->expires = $expires; + $this->source = $source; } /** @@ -55,6 +59,14 @@ public function getExpiration() return $this->expires; } + /** + * @return string|null + */ + public function getSource(): ?string + { + return $this->source?->value; + } + /** * @return bool */ @@ -70,7 +82,8 @@ public function toArray() { return [ 'token' => $this->token, - 'expires' => $this->expires + 'expires' => $this->expires, + 'source' => $this->source?->value ]; } @@ -107,5 +120,8 @@ public function __unserialize($data) { $this->token = $data['token']; $this->expires = $data['expires']; + $this->source = isset($data['source']) + ? TokenSource::from($data['source']) + : null; } } diff --git a/aws/aws-sdk-php/src/Token/TokenProvider.php b/aws/aws-sdk-php/src/Token/TokenProvider.php index feb812927..acc005774 100644 --- a/aws/aws-sdk-php/src/Token/TokenProvider.php +++ b/aws/aws-sdk-php/src/Token/TokenProvider.php @@ -2,7 +2,6 @@ namespace Aws\Token; use Aws; -use Aws\Api\DateTimeResult; use Aws\CacheInterface; use Aws\Exception\TokenException; use GuzzleHttp\Promise; @@ -28,9 +27,10 @@ */ class TokenProvider { - use ParsesIniTrait; const ENV_PROFILE = 'AWS_PROFILE'; + use ParsesIniTrait; + /** * Create a default token provider tha checks for cached a SSO token from * the CLI @@ -44,15 +44,13 @@ class TokenProvider */ public static function defaultProvider(array $config = []) { - $cacheable = [ 'sso', ]; $defaultChain = []; - if ( - !isset($config['use_aws_shared_config_files']) + if (!isset($config['use_aws_shared_config_files']) || $config['use_aws_shared_config_files'] !== false ) { $profileName = getenv(self::ENV_PROFILE) ?: 'default'; @@ -79,7 +77,7 @@ public static function defaultProvider(array $config = []) return self::memoize( call_user_func_array( - [TokenProvider::class, 'chain'], + [__CLASS__, 'chain'], array_values($defaultChain) ) ); @@ -96,7 +94,7 @@ public static function fromToken(TokenInterface $token) { $promise = Promise\Create::promiseFor($token); - return function () use ($promise) { + return static function () use ($promise) { return $promise; }; } @@ -113,12 +111,12 @@ 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 static function () { return Promise\Create::promiseFor(false); }; } - return function () use ($links) { + return static function () use ($links) { /** @var callable $parent */ $parent = array_shift($links); $promise = $parent(); @@ -138,7 +136,7 @@ public static function chain() */ public static function memoize(callable $provider) { - return function () use ($provider) { + return static function () use ($provider) { static $result; static $isConstant; @@ -190,10 +188,10 @@ public static function cache( callable $provider, CacheInterface $cache, $cacheKey = null - ) { + ){ $cacheKey = $cacheKey ?: 'aws_cached_token'; - return function () use ($provider, $cache, $cacheKey) { + return static function () use ($provider, $cache, $cacheKey) { $found = $cache->get($cacheKey); if (is_array($found) && isset($found['token'])) { $foundToken = $found['token']; @@ -214,7 +212,7 @@ public static function cache( ) { $cache->set( $cacheKey, - $token, + ['token' => $token], null === $token->getExpiration() ? 0 : $token->getExpiration() - time() ); @@ -227,7 +225,8 @@ public static function cache( /** * Gets profiles from the ~/.aws/config ini file */ - private static function loadDefaultProfiles() { + private static function loadDefaultProfiles() + { $profiles = []; $configFile = self::getHomeDir() . '/.aws/config'; @@ -260,11 +259,13 @@ private static function reject($msg) * @return SsoTokenProvider * @see Aws\Token\SsoTokenProvider for $config details. */ - public static function sso($profileName, $filename, $config = []) - { - $ssoClient = isset($config['ssoClient']) ? $config['ssoClient'] : null; + public static function sso( + $profileName, + $filename, + $config = [] + ){ + $ssoClient = $config['ssoClient'] ?? null; return new SsoTokenProvider($profileName, $filename, $ssoClient); } } - diff --git a/aws/aws-sdk-php/src/Token/TokenSource.php b/aws/aws-sdk-php/src/Token/TokenSource.php new file mode 100644 index 000000000..b9e1abe79 --- /dev/null +++ b/aws/aws-sdk-php/src/Token/TokenSource.php @@ -0,0 +1,7 @@ + [ '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', ], ], ],]; +return [ 'operations' => [ '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', ], ], 'AppSync' => [ '2017-07-25' => [ 'GetApi' => 'GetApiResource', ], ], 'AmplifyBackend' => [ '2020-08-11' => [ 'GetToken' => 'GetChallengeToken', ], ], 'IotDeviceAdvisor' => [ '2020-09-18' => [ 'GetEndpoint' => 'GetDeviceAdvisorEndpoint', ], ], 'IoT' => [ '2015-05-28' => [ 'GetCommand' => 'GetDeviceCommand', ], ], 'Redshift Serverless' => [ '2021-04-21' => [ 'GetCredentials' => 'GetDbCredentials', ], ], 'Lambda' => [ '2015-03-31' => [ 'InvokeAsync' => 'InvokeAsynchronous', ], ], ],]; diff --git a/aws/aws-sdk-php/src/data/endpoints.json.php b/aws/aws-sdk-php/src/data/endpoints.json.php index 407180dca..716921a90 100644 --- a/aws/aws-sdk-php/src/data/endpoints.json.php +++ b/aws/aws-sdk-php/src/data/endpoints.json.php @@ -1,3 +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-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' => '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-east-2' => [], '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-south-2' => [], '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-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' => '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-central-1' => [], '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-south-2' => [], '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-central-2' => [], '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-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' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], '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-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' => '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', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-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-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' => '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-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' => [], ], ], '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', ], ], ], ], ], ], 'scheduler' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], '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' => [], ], ], 'backup' => [ 'endpoints' => [ 'us-iso-east-1' => [], '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', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], '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', ], ], ], 'wafv2' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], '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' => [], ], ], 'backup' => [ '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' => [], ], ], 'wafv2' => [ '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' => [], ], ], 'schemas' => [ '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,]; +return [ 'partitions' => [ [ '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-6' => [ 'description' => 'Asia Pacific (New Zealand)', ], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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.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-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-6' => [], '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', ], ], ], ], 'ap-southeast-5' => [], '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-south-2' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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' => [], 'ap-southeast-5' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-south-1' => [], 'eu-south-2' => [], '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', ], 'il-central-1' => [], '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', ], ], ], ], ], ], 'aps' => [ 'defaults' => [ 'protocols' => [ 'https', ], ], 'endpoints' => [ 'af-south-1' => [], 'ap-east-1' => [], 'ap-east-2' => [], 'ap-northeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-northeast-3' => [], 'ap-south-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-south-2' => [], 'ap-southeast-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'ap-southeast-3' => [], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], 'ca-central-1' => [], 'ca-west-1' => [], 'eu-central-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [], 'eu-north-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-south-1' => [], 'eu-south-2' => [], 'eu-west-1' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-2' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'eu-west-3' => [ 'variants' => [ [ 'tags' => [ 'dualstack', ], ], ], ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-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-1' => [], '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-6' => [], '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-east-2' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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' => [ 'af-south-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' => [], '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' => [], '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' => [], ], ], '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' => [ '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' => [ '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-central-1' => [], '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-6' => [], '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-6' => [], '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', ], ], ], ], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'cloudhsmv2.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [], '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-south-2' => [], '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', ], ], ], ], 'mx-central-1' => [], '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-6' => [], '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-6' => [], '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-profiler' => [ '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' => [], ], ], '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', ], ], ], ], 'ap-southeast-7' => [], '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', ], ], ], ], 'mx-central-1' => [], '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', ], ], ], ], 'ap-southeast-7' => [], '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', ], ], ], ], 'mx-central-1' => [], '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-6' => [], '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-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' => '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-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-6' => [], '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' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'data.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-2' => [], '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' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'data.jobs.iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], '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' => '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-central-1' => [], '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-6' => [], '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-1' => [], '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-6' => [], '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-central-2' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-south-2' => [], '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', ], ], ], ], 'ap-southeast-4' => [], 'ap-southeast-5' => [], 'ap-southeast-6' => [], 'ap-southeast-7' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.ca-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'ca-west-1' => [], 'eu-central-1' => [ 'variants' => [ [ 'hostname' => 'elasticbeanstalk.eu-central-1.api.aws', 'tags' => [ 'dualstack', ], ], ], ], 'eu-central-2' => [], '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-south-2' => [], '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-central-1' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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', ], ], ], ], ], ], 'email' => [ '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-3' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'email-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'ca-west-1' => [], 'eu-central-1' => [], 'eu-central-2' => [], '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-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' => [], 'ap-southeast-4' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'emr-serverless-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' => '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', ], 'il-central-1' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-east-2' => [], '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-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' => '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' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], '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-6' => [], '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' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'greengrass-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-south-2' => [], '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-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' => [ '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' => [], 'ca-central-1' => [], '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-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-6' => [], '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-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' => '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', ], 'il-central-1' => [], 'me-central-1' => [], 'me-south-1' => [], 'mx-central-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-6' => [], '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' => [], 'ap-southeast-5' => [], 'ca-central-1' => [ 'variants' => [ [ 'hostname' => 'iot-fips.ca-central-1.amazonaws.com', 'tags' => [ 'fips', ], ], ], ], 'eu-central-1' => [], 'eu-north-1' => [], 'eu-south-2' => [], '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-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-6' => [], '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' => [ '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' => [], ], ], '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-6' => [], '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-6' => [], '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-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-6' => [], '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' => [], 'ap-southeast-5' => [], 'ca-central-1' => [], 'eu-central-1' => [], 'eu-south-2' => [], 'eu-west-1' => [], 'eu-west-2' => [], 'eu-west-3' => [], 'me-south-1' => [], '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-6' => [], '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-6' => [], '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-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' => '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-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' => '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-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' => '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' => [], 'ap-southeast-3' => [], '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-6' => [], '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' => [], ], ], '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-6' => [], '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' => [], 'ap-southeast-5' => [], 'ap-southeast-7' => [], '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-6' => [], '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-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-6' => [], '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-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-6' => [], '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-6' => [], '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', ], 'nova-act' => [ 'endpoints' => [ 'us-east-1' => [], ], ], '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-6' => [], '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-east-2' => [], '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', ], 'ap-southeast-7' => [], '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', ], 'mx-central-1' => [], '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-northeast-2' => [], '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', ], ], ], ], ], ], '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' => [], 'mx-central-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', ], ], ], ], ], ], 'partnercentral-channel' => [ 'endpoints' => [ 'us-east-1' => [], ], ], '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-6' => [], '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-central-2' => [], '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-east-2' => [], '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', ], 'ap-southeast-7' => [], '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', ], 'mx-central-1' => [], '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-6' => [], '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', ], ], ], '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' => [], 'il-central-1' => [], 'me-central-1' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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' => [ '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-5' => [], '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-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-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-6' => [], '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-6' => [], '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', ], ], ], ], ], ], '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-6' => [], '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-6' => [], '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' => [], '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' => [], ], ], '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-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' => '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-6' => [], '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-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-6' => [], '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' => [], ], ], '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-6' => [], '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-east-2' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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' => [], ], ], '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-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-6' => [], '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-6' => [], '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-6' => [], '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-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' => [], ], ], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-6' => [], '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-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-6' => [], 'ap-southeast-7' => [], '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' => [ 'ap-northeast-2' => [], 'ap-southeast-2' => [], 'eu-west-1' => [], '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', ], 'us-east-1' => [], 'us-east-2' => [], 'us-west-2' => [], ], ], 'verifiedpermissions' => [ '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-6' => [], 'ap-southeast-7' => [], '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' => [], 'mx-central-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-east-2' => [], '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-6' => [], '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-6' => [], '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', ], ], ], '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' => [], ], ], 'verifiedpermissions' => [ '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', ], ], ], 'aps' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], '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', ], ], ], 'kafkaconnect' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], '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', ], ], ], ], ], ], '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', ], ], ], 'rum' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], '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', ], ], ], ], ], ], 'scheduler' => [ 'endpoints' => [ 'us-gov-east-1' => [], 'us-gov-west-1' => [], ], ], '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-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' => [ 'acm' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], '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' => [], ], ], 'backup' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'us-iso-east-1' => [], 'us-iso-west-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', ], ], ], ], 'us-iso-west-1' => [], ], ], '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' => [], ], ], 'kinesisvideo' => [ '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', ], ], ], 'lakeformation' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], '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' => [], ], ], 'network-firewall' => [ 'endpoints' => [ 'us-iso-east-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' => [], ], ], 'servicequotas' => [ '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', ], ], ], 'wafv2' => [ 'endpoints' => [ 'us-iso-east-1' => [], ], ], '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)', ], 'us-isob-west-1' => [ 'description' => 'US ISOB West', ], ], 'services' => [ 'agreement-marketplace' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'api.ecr.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-west-1' => [], ], ], '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' => [], 'us-isob-west-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'application-autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'autoscaling' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'backup' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'bedrock' => [ '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' => [], 'us-isob-west-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], 'codebuild' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], 'datasync' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], 'us-isob-west-1' => [], ], ], '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' => [], 'us-isob-west-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'ec2' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'eks' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], 'us-isob-west-1' => [], ], ], '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', ], ], ], ], 'us-isob-west-1' => [], ], ], 'es' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'events' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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' => [], 'us-isob-west-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', ], 'us-isob-west-1' => [], ], ], 'lakeformation' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'license-manager' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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' => [], 'us-isob-west-1' => [], ], ], 'network-firewall' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'oam' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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' => [], 'us-isob-west-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], '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', ], 'us-isob-west-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'credentialScope' => [ 'region' => 'us-isob-east-1', ], 'hostname' => 'redshift.us-isob-east-1.sc2s.sgov.gov', ], 'us-isob-west-1' => [], ], ], 'resource-groups' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], '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' => [], 'us-isob-west-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'us-isob-east-1' => [ 'variants' => [ [ 'tags' => [ 'fips', ], ], ], ], 'us-isob-east-1-fips' => [ 'deprecated' => true, ], 'us-isob-west-1' => [], ], ], 'securityhub' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'servicequotas' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'snowball' => [ 'endpoints' => [ 'us-isob-east-1' => [], ], ], 'sns' => [ 'defaults' => [ 'protocols' => [ 'http', 'https', ], ], 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], 'ssm' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], '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' => [], 'us-isob-west-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-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', ], ], ], ], 'us-isob-west-1' => [], ], ], 'synthetics' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'us-isob-east-1' => [], 'us-isob-west-1' => [], ], ], 'wafv2' => [ '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' => [], 'us-isob-west-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' => [], ], ], 'apigateway' => [ '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' => [], ], ], 'cloudtrail-data' => [ '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' => [], ], ], 'schemas' => [ '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' => [], ], ], 'trustedadvisor' => [ '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-east-1' => [], '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', ], 'identitystore' => [ 'endpoints' => [ 'us-isof-east-1' => [], ], ], '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' => [], ], ], 'rolesanywhere' => [ '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' => [], ], ], 'runtime.sagemaker' => [ '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' => [], ], ], 'trustedadvisor' => [ 'endpoints' => [ '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' => 'api.amazonwebservices.eu', 'hostname' => '{service}-fips.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', 'fips', ], ], [ 'dnsSuffix' => 'api.amazonwebservices.eu', 'hostname' => '{service}.{region}.{dnsSuffix}', 'tags' => [ 'dualstack', ], ], ], ], 'dnsSuffix' => 'amazonaws.eu', 'partition' => 'aws-eusc', 'partitionName' => 'AWS EUSC', 'regionRegex' => '^eusc\\-(de)\\-\\w+\\-\\d+$', 'regions' => [ 'eusc-de-east-1' => [ 'description' => 'EU (Germany)', ], ], 'services' => [ 'access-analyzer' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'acm' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'acm-pca' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'agreement-marketplace' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'api.ecr' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'api.pricing' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'api.sagemaker' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'appconfig' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'appconfigdata' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'application-autoscaling' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'arc-zonal-shift' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'athena' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'autoscaling' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'backup' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'batch' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'bedrock' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'cloudcontrolapi' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'cloudformation' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'cloudtrail' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'codedeploy' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'compute-optimizer' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'config' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'cost-optimization-hub' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'datasync' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'datazone' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'directconnect' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'dlm' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'dms' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'ds' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'dynamodb' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'ebs' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'ec2' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'ecs' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'eks' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'eks-auth' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'elasticache' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'elasticfilesystem' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'elasticloadbalancing' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'elasticmapreduce' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'email' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'entitlement.marketplace' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'es' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'events' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'firehose' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'gameliftstreams' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'glue' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'guardduty' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'health' => [ 'endpoints' => [ 'eusc-de-east-1' => [ 'deprecated' => true, ], ], ], 'identitystore' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'internetmonitor' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'kafka' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'kendra-ranking' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'kinesis' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'kinesisanalytics' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'kms' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'lakeformation' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'lambda' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'license-manager' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'logs' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'metering.marketplace' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'metrics.sagemaker' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'monitoring' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'notifications' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'oam' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'pi' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'qbusiness' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'ram' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'rbin' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'rds' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'redshift' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'resource-groups' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'rolesanywhere' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'route53resolver' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 's3' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 's3-control' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'scheduler' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'secretsmanager' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'securityhub' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'servicediscovery' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'servicequotas' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'signer' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'sms-voice' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'sns' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'sqs' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'ssm' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'states' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'storagegateway' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'streams.dynamodb' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'sts' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'swf' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'synthetics' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'tagging' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'transfer' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'trustedadvisor' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'wafv2' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], 'xray' => [ 'endpoints' => [ 'eusc-de-east-1' => [], ], ], ], ], ], 'version' => 3,]; diff --git a/aws/aws-sdk-php/src/data/grandfathered-services.json.php b/aws/aws-sdk-php/src/data/grandfathered-services.json.php index 039f3fb02..9344f06e1 100644 --- a/aws/aws-sdk-php/src/data/grandfathered-services.json.php +++ b/aws/aws-sdk-php/src/data/grandfathered-services.json.php @@ -1,3 +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', ],]; +return [ 'grandfathered-services' => [ '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', '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', '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', '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', 'Organizations', 'Outposts', 'Panorama', 'PersonalizeEvents', 'PersonalizeRuntime', 'Personalize', 'PI', 'PinpointEmail', 'PinpointSMSVoiceV2', 'Pinpoint', 'Polly', 'Pricing', 'Proton', 'QuickSight', 'RAM', 'RecycleBin', 'RDSDataService', 'RDS', 'RedshiftDataAPIService', 'RedshiftServerless', 'Redshift', 'Rekognition', 'ResilienceHub', 'ResourceGroups', 'ResourceGroupsTaggingAPI', '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', '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/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php b/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php index df33aaf7d..2d6e00db6 100644 --- a/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php +++ b/aws/aws-sdk-php/src/data/kms/2014-11-01/api-2.json.php @@ -1,3 +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, ], ],]; +return [ 'version' => '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', ], 'AccountIdType' => [ 'type' => 'string', 'max' => 12, 'min' => 12, 'pattern' => '[0-9]{12}', ], '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', ], 'XksProxyVpcEndpointServiceOwner' => [ 'shape' => 'AccountIdType', ], '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', 'ECC_NIST_EDWARDS25519', ], ], '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', 'PENDING_MULTI_REGION_IMPORT_AND_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', 'ECC_NIST_EDWARDS25519', ], ], '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', 'ED25519_SHA_512', 'ED25519_PH_SHA_512', ], ], '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', ], 'XksProxyVpcEndpointServiceOwner' => [ 'shape' => 'AccountIdType', ], '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', ], 'VpcEndpointServiceOwner' => [ 'shape' => 'AccountIdType', ], ], ], '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|eu)\\.amazonaws\\.vpce\\.([a-z]+-){2,3}\\d+\\.vpce-svc-[0-9a-z]+$', ], 'XksProxyVpcEndpointServiceNotFoundException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'ErrorMessageType', ], ], 'exception' => true, ], ],]; diff --git a/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php b/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php index 08a3f6ce2..4b6e3ba0e 100644 --- a/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php +++ b/aws/aws-sdk-php/src/data/kms/2014-11-01/endpoint-rule-set-1.json.php @@ -1,3 +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', ], ],]; +return [ 'version' => '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/aws/aws-sdk-php/src/data/manifest.json.php b/aws/aws-sdk-php/src/data/manifest.json.php index 82d89284d..a49710135 100644 --- a/aws/aws-sdk-php/src/data/manifest.json.php +++ b/aws/aws-sdk-php/src/data/manifest.json.php @@ -1,3 +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', ], 'keyspacesstreams' => [ 'namespace' => 'KeyspacesStreams', 'versions' => [ 'latest' => '2024-09-09', '2024-09-09' => '2024-09-09', ], 'serviceIdentifier' => 'keyspacesstreams', ], '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', ], 'odb' => [ 'namespace' => 'Odb', 'versions' => [ 'latest' => '2024-08-20', '2024-08-20' => '2024-08-20', ], 'serviceIdentifier' => 'odb', ], '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-instances' => [ 'namespace' => 'WorkspacesInstances', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'workspaces_instances', ], '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', ],]; +return [ 'accessanalyzer' => [ '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', ], 'arc-region-switch' => [ 'namespace' => 'ARCRegionSwitch', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'arc_region_switch', ], '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-dashboards' => [ 'namespace' => 'BCMDashboards', 'versions' => [ 'latest' => '2025-08-18', '2025-08-18' => '2025-08-18', ], 'serviceIdentifier' => 'bcm_dashboards', ], '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', ], 'bcm-recommended-actions' => [ 'namespace' => 'BCMRecommendedActions', 'versions' => [ 'latest' => '2024-11-14', '2024-11-14' => '2024-11-14', ], 'serviceIdentifier' => 'bcm_recommended_actions', ], '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-agentcore-control' => [ 'namespace' => 'BedrockAgentCoreControl', 'versions' => [ 'latest' => '2023-06-05', '2023-06-05' => '2023-06-05', ], 'serviceIdentifier' => 'bedrock_agentcore_control', ], 'bedrock-agentcore' => [ 'namespace' => 'BedrockAgentCore', 'versions' => [ 'latest' => '2024-02-28', '2024-02-28' => '2024-02-28', ], 'serviceIdentifier' => 'bedrock_agentcore', ], '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-automation' => [ 'namespace' => 'ComputeOptimizerAutomation', 'versions' => [ 'latest' => '2025-09-22', '2025-09-22' => '2025-09-22', ], 'serviceIdentifier' => 'compute_optimizer_automation', ], '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', ], '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', ], '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', ], 'keyspacesstreams' => [ 'namespace' => 'KeyspacesStreams', 'versions' => [ 'latest' => '2024-09-09', '2024-09-09' => '2024-09-09', ], 'serviceIdentifier' => 'keyspacesstreams', ], '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', ], '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-serverless' => [ 'namespace' => 'MWAAServerless', 'versions' => [ 'latest' => '2024-07-26', '2024-07-26' => '2024-07-26', ], 'serviceIdentifier' => 'mwaa_serverless', ], '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', ], 'nova-act' => [ 'namespace' => 'NovaAct', 'versions' => [ 'latest' => '2025-08-22', '2025-08-22' => '2025-08-22', ], 'serviceIdentifier' => 'nova_act', ], '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', ], 'odb' => [ 'namespace' => 'Odb', 'versions' => [ 'latest' => '2024-08-20', '2024-08-20' => '2024-08-20', ], 'serviceIdentifier' => 'odb', ], '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', ], '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-account' => [ 'namespace' => 'PartnerCentralAccount', 'versions' => [ 'latest' => '2025-04-04', '2025-04-04' => '2025-04-04', ], 'serviceIdentifier' => 'partnercentral_account', ], 'partnercentral-benefits' => [ 'namespace' => 'PartnerCentralBenefits', 'versions' => [ 'latest' => '2018-05-10', '2018-05-10' => '2018-05-10', ], 'serviceIdentifier' => 'partnercentral_benefits', ], 'partnercentral-channel' => [ 'namespace' => 'PartnerCentralChannel', 'versions' => [ 'latest' => '2024-03-18', '2024-03-18' => '2024-03-18', ], 'serviceIdentifier' => 'partnercentral_channel', ], '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', ], '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', ], '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', ], 'route53globalresolver' => [ 'namespace' => 'Route53GlobalResolver', 'versions' => [ 'latest' => '2022-09-27', '2022-09-27' => '2022-09-27', ], 'serviceIdentifier' => 'route53globalresolver', ], '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', ], 'rtbfabric' => [ 'namespace' => 'RTBFabric', 'versions' => [ 'latest' => '2023-05-15', '2023-05-15' => '2023-05-15', ], 'serviceIdentifier' => 'rtbfabric', ], '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', ], 's3vectors' => [ 'namespace' => 'S3Vectors', 'versions' => [ 'latest' => '2025-07-15', '2025-07-15' => '2025-07-15', ], 'serviceIdentifier' => 's3vectors', ], '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', ], 'signin' => [ 'namespace' => 'Signin', 'versions' => [ 'latest' => '2023-01-01', '2023-01-01' => '2023-01-01', ], 'serviceIdentifier' => 'signin', ], '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', ], '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', ], 'wickr' => [ 'namespace' => 'Wickr', 'versions' => [ 'latest' => '2024-02-01', '2024-02-01' => '2024-02-01', ], 'serviceIdentifier' => 'wickr', ], '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-instances' => [ 'namespace' => 'WorkspacesInstances', 'versions' => [ 'latest' => '2022-07-26', '2022-07-26' => '2022-07-26', ], 'serviceIdentifier' => 'workspaces_instances', ], '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/aws/aws-sdk-php/src/data/partitions.json.php b/aws/aws-sdk-php/src/data/partitions.json.php index e67ac39fd..84eac1b0f 100644 --- a/aws/aws-sdk-php/src/data/partitions.json.php +++ b/aws/aws-sdk-php/src/data/partitions.json.php @@ -1,3 +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',]; +return [ 'partitions' => [ [ '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-6' => [ 'description' => 'Asia Pacific (New Zealand)', ], 'ap-southeast-7' => [ 'description' => 'Asia Pacific (Thailand)', ], 'aws-global' => [ 'description' => 'aws 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-cn global region', ], 'cn-north-1' => [ 'description' => 'China (Beijing)', ], 'cn-northwest-1' => [ 'description' => 'China (Ningxia)', ], ], ], [ 'id' => 'aws-eusc', 'outputs' => [ 'dnsSuffix' => 'amazonaws.eu', 'dualStackDnsSuffix' => 'api.amazonwebservices.eu', 'implicitGlobalRegion' => 'eusc-de-east-1', 'name' => 'aws-eusc', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^eusc\\-(de)\\-\\w+\\-\\d+$', 'regions' => [ 'eusc-de-east-1' => [ 'description' => 'EU (Germany)', ], ], ], [ 'id' => 'aws-iso', 'outputs' => [ 'dnsSuffix' => 'c2s.ic.gov', 'dualStackDnsSuffix' => 'api.aws.ic.gov', 'implicitGlobalRegion' => 'us-iso-east-1', 'name' => 'aws-iso', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-iso\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-global' => [ 'description' => 'aws-iso 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' => 'api.aws.scloud', 'implicitGlobalRegion' => 'us-isob-east-1', 'name' => 'aws-iso-b', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-isob\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-b-global' => [ 'description' => 'aws-iso-b global region', ], 'us-isob-east-1' => [ 'description' => 'US ISOB East (Ohio)', ], 'us-isob-west-1' => [ 'description' => 'US ISOB West', ], ], ], [ 'id' => 'aws-iso-e', 'outputs' => [ 'dnsSuffix' => 'cloud.adc-e.uk', 'dualStackDnsSuffix' => 'api.cloud-aws.adc-e.uk', 'implicitGlobalRegion' => 'eu-isoe-west-1', 'name' => 'aws-iso-e', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^eu\\-isoe\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-e-global' => [ 'description' => 'aws-iso-e global region', ], 'eu-isoe-west-1' => [ 'description' => 'EU ISOE West', ], ], ], [ 'id' => 'aws-iso-f', 'outputs' => [ 'dnsSuffix' => 'csp.hci.ic.gov', 'dualStackDnsSuffix' => 'api.aws.hci.ic.gov', 'implicitGlobalRegion' => 'us-isof-south-1', 'name' => 'aws-iso-f', 'supportsDualStack' => true, 'supportsFIPS' => true, ], 'regionRegex' => '^us\\-isof\\-\\w+\\-\\d+$', 'regions' => [ 'aws-iso-f-global' => [ 'description' => 'aws-iso-f global region', ], 'us-isof-east-1' => [ 'description' => 'US ISOF EAST', ], 'us-isof-south-1' => [ 'description' => 'US ISOF SOUTH', ], ], ], [ '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-us-gov global region', ], 'us-gov-east-1' => [ 'description' => 'AWS GovCloud (US-East)', ], 'us-gov-west-1' => [ 'description' => 'AWS GovCloud (US-West)', ], ], ], ], 'version' => '1.1',]; diff --git a/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php b/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php index 669b281cf..31cf0c1df 100644 --- a/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php +++ b/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php @@ -1,3 +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', ], 'BucketArn' => [ 'shape' => 'S3RegionalOrS3ExpressBucketArnString', ], ], ], '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', ], 'Tags' => [ 'shape' => 'TagSet', ], ], ], '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', ], 'BucketArn' => [ 'shape' => 'S3RegionalOrS3ExpressBucketArnString', 'location' => 'header', 'locationName' => 'x-amz-bucket-arn', ], ], ], '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' => [ 'BucketArn' => [ 'shape' => 'S3RegionalOrS3ExpressBucketArnString', 'location' => 'header', 'locationName' => 'x-amz-bucket-arn', ], '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', 'FSX_OPENZFS', ], ], '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', ], ], ], 'S3RegionalOrS3ExpressBucketArnString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => 'arn:[^:]+:(s3|s3express):.*', ], '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:fsx', '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', 'FSX_OPENZFS', ], ], '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', ], ],]; +return [ 'version' => '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, ], ], ], 'CreateBucketMetadataConfiguration' => [ 'name' => 'CreateBucketMetadataConfiguration', 'http' => [ 'method' => 'POST', 'requestUri' => '/{Bucket}?metadataConfiguration', ], 'input' => [ 'shape' => 'CreateBucketMetadataConfigurationRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ '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, ], ], ], 'DeleteBucketMetadataConfiguration' => [ 'name' => 'DeleteBucketMetadataConfiguration', 'http' => [ 'method' => 'DELETE', 'requestUri' => '/{Bucket}?metadataConfiguration', 'responseCode' => 204, ], 'input' => [ 'shape' => 'DeleteBucketMetadataConfigurationRequest', ], '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, ], ], ], 'GetBucketAbac' => [ 'name' => 'GetBucketAbac', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?abac', ], 'input' => [ 'shape' => 'GetBucketAbacRequest', ], 'output' => [ 'shape' => 'GetBucketAbacOutput', ], ], '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, ], ], ], 'GetBucketMetadataConfiguration' => [ 'name' => 'GetBucketMetadataConfiguration', 'http' => [ 'method' => 'GET', 'requestUri' => '/{Bucket}?metadataConfiguration', ], 'input' => [ 'shape' => 'GetBucketMetadataConfigurationRequest', ], 'output' => [ 'shape' => 'GetBucketMetadataConfigurationOutput', ], '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', ], ], 'PutBucketAbac' => [ 'name' => 'PutBucketAbac', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?abac', ], 'input' => [ 'shape' => 'PutBucketAbacRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => false, ], ], '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', ], ], 'UpdateBucketMetadataInventoryTableConfiguration' => [ 'name' => 'UpdateBucketMetadataInventoryTableConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?metadataInventoryTable', ], 'input' => [ 'shape' => 'UpdateBucketMetadataInventoryTableConfigurationRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], 'UpdateBucketMetadataJournalTableConfiguration' => [ 'name' => 'UpdateBucketMetadataJournalTableConfiguration', 'http' => [ 'method' => 'PUT', 'requestUri' => '/{Bucket}?metadataJournalTable', ], 'input' => [ 'shape' => 'UpdateBucketMetadataJournalTableConfigurationRequest', ], 'httpChecksum' => [ 'requestAlgorithmMember' => 'ChecksumAlgorithm', 'requestChecksumRequired' => true, ], 'staticContextParams' => [ 'UseS3ExpressControlEndpoint' => [ 'value' => true, ], ], ], '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' => [ 'AbacStatus' => [ 'type' => 'structure', 'members' => [ 'Status' => [ 'shape' => 'BucketAbacStatus', ], ], ], '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', ], ], 'BlockedEncryptionTypes' => [ 'type' => 'structure', 'members' => [ 'EncryptionType' => [ 'shape' => 'EncryptionTypeList', ], ], ], 'Body' => [ 'type' => 'blob', ], 'Bucket' => [ 'type' => 'structure', 'members' => [ 'Name' => [ 'shape' => 'BucketName', ], 'CreationDate' => [ 'shape' => 'CreationDate', ], 'BucketRegion' => [ 'shape' => 'BucketRegion', ], 'BucketArn' => [ 'shape' => 'S3RegionalOrS3ExpressBucketArnString', ], ], ], 'BucketAbacStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], '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', ], 'IfMatch' => [ 'shape' => 'IfMatch', 'location' => 'header', 'locationName' => 'If-Match', ], 'IfNoneMatch' => [ 'shape' => 'IfNoneMatch', 'location' => 'header', 'locationName' => 'If-None-Match', ], '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', ], 'Tags' => [ 'shape' => 'TagSet', ], ], ], 'CreateBucketMetadataConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'MetadataConfiguration', ], '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', ], 'MetadataConfiguration' => [ 'shape' => 'MetadataConfiguration', 'locationName' => 'MetadataConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'MetadataConfiguration', ], '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', ], 'BucketArn' => [ 'shape' => 'S3RegionalOrS3ExpressBucketArnString', 'location' => 'header', 'locationName' => 'x-amz-bucket-arn', ], ], ], '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', ], ], ], 'DeleteBucketMetadataConfigurationRequest' => [ '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', ], ], ], 'DestinationResult' => [ 'type' => 'structure', 'members' => [ 'TableBucketType' => [ 'shape' => 'S3TablesBucketType', ], 'TableBucketArn' => [ 'shape' => 'S3TablesBucketArn', ], 'TableNamespace' => [ 'shape' => 'S3TablesNamespace', ], ], ], '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', ], ], ], 'EncryptionType' => [ 'type' => 'string', 'enum' => [ 'NONE', 'SSE-C', ], ], 'EncryptionTypeList' => [ 'type' => 'list', 'member' => [ 'shape' => 'EncryptionType', 'locationName' => 'EncryptionType', ], 'flattened' => true, ], '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', ], 'ExpirationState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], 'ExpirationStatus' => [ 'type' => 'string', 'enum' => [ 'Enabled', 'Disabled', ], ], 'ExpiredObjectDeleteMarker' => [ 'type' => 'boolean', 'box' => true, ], 'Expires' => [ 'type' => 'string', ], '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', ], 'GetBucketAbacOutput' => [ 'type' => 'structure', 'members' => [ 'AbacStatus' => [ 'shape' => 'AbacStatus', ], ], 'payload' => 'AbacStatus', ], 'GetBucketAbacRequest' => [ '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', ], ], ], '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', ], ], ], 'GetBucketMetadataConfigurationOutput' => [ 'type' => 'structure', 'members' => [ 'GetBucketMetadataConfigurationResult' => [ 'shape' => 'GetBucketMetadataConfigurationResult', ], ], 'payload' => 'GetBucketMetadataConfigurationResult', ], 'GetBucketMetadataConfigurationRequest' => [ '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', ], ], ], 'GetBucketMetadataConfigurationResult' => [ 'type' => 'structure', 'required' => [ 'MetadataConfigurationResult', ], 'members' => [ 'MetadataConfigurationResult' => [ 'shape' => 'MetadataConfigurationResult', ], ], ], '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' => [ 'BucketArn' => [ 'shape' => 'S3RegionalOrS3ExpressBucketArnString', 'location' => 'header', 'locationName' => 'x-amz-bucket-arn', ], '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, ], 'InventoryConfigurationState' => [ 'type' => 'string', 'enum' => [ 'ENABLED', 'DISABLED', ], ], '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', 'LifecycleExpirationDate', ], ], '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', ], ], ], 'InventoryTableConfiguration' => [ 'type' => 'structure', 'required' => [ 'ConfigurationState', ], 'members' => [ 'ConfigurationState' => [ 'shape' => 'InventoryConfigurationState', ], 'EncryptionConfiguration' => [ 'shape' => 'MetadataTableEncryptionConfiguration', ], ], ], 'InventoryTableConfigurationResult' => [ 'type' => 'structure', 'required' => [ 'ConfigurationState', ], 'members' => [ 'ConfigurationState' => [ 'shape' => 'InventoryConfigurationState', ], 'TableStatus' => [ 'shape' => 'MetadataTableStatus', ], 'Error' => [ 'shape' => 'ErrorDetails', ], 'TableName' => [ 'shape' => 'S3TablesName', ], 'TableArn' => [ 'shape' => 'S3TablesArn', ], ], ], 'InventoryTableConfigurationUpdates' => [ 'type' => 'structure', 'required' => [ 'ConfigurationState', ], 'members' => [ 'ConfigurationState' => [ 'shape' => 'InventoryConfigurationState', ], 'EncryptionConfiguration' => [ 'shape' => 'MetadataTableEncryptionConfiguration', ], ], ], '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', ], ], 'JournalTableConfiguration' => [ 'type' => 'structure', 'required' => [ 'RecordExpiration', ], 'members' => [ 'RecordExpiration' => [ 'shape' => 'RecordExpiration', ], 'EncryptionConfiguration' => [ 'shape' => 'MetadataTableEncryptionConfiguration', ], ], ], 'JournalTableConfigurationResult' => [ 'type' => 'structure', 'required' => [ 'TableStatus', 'TableName', 'RecordExpiration', ], 'members' => [ 'TableStatus' => [ 'shape' => 'MetadataTableStatus', ], 'Error' => [ 'shape' => 'ErrorDetails', ], 'TableName' => [ 'shape' => 'S3TablesName', ], 'TableArn' => [ 'shape' => 'S3TablesArn', ], 'RecordExpiration' => [ 'shape' => 'RecordExpiration', ], ], ], 'JournalTableConfigurationUpdates' => [ 'type' => 'structure', 'required' => [ 'RecordExpiration', ], 'members' => [ 'RecordExpiration' => [ 'shape' => 'RecordExpiration', ], ], ], 'KMSContext' => [ 'type' => 'string', ], 'KeyCount' => [ 'type' => 'integer', ], 'KeyMarker' => [ 'type' => 'string', ], 'KeyPrefixEquals' => [ 'type' => 'string', ], 'KmsKeyArn' => [ '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', ], ], 'MetadataConfiguration' => [ 'type' => 'structure', 'required' => [ 'JournalTableConfiguration', ], 'members' => [ 'JournalTableConfiguration' => [ 'shape' => 'JournalTableConfiguration', ], 'InventoryTableConfiguration' => [ 'shape' => 'InventoryTableConfiguration', ], ], ], 'MetadataConfigurationResult' => [ 'type' => 'structure', 'required' => [ 'DestinationResult', ], 'members' => [ 'DestinationResult' => [ 'shape' => 'DestinationResult', ], 'JournalTableConfigurationResult' => [ 'shape' => 'JournalTableConfigurationResult', ], 'InventoryTableConfigurationResult' => [ 'shape' => 'InventoryTableConfigurationResult', ], ], ], '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', ], ], ], 'MetadataTableEncryptionConfiguration' => [ 'type' => 'structure', 'required' => [ 'SseAlgorithm', ], 'members' => [ 'SseAlgorithm' => [ 'shape' => 'TableSseAlgorithm', ], 'KmsKeyArn' => [ 'shape' => 'KmsKeyArn', ], ], ], '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', 'FSX_OPENZFS', 'FSX_ONTAP', ], ], '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', ], ], ], 'PutBucketAbacRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'AbacStatus', ], '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', ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], 'AbacStatus' => [ 'shape' => 'AbacStatus', 'locationName' => 'AbacStatus', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], ], 'payload' => 'AbacStatus', ], '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', ], 'RecordExpiration' => [ 'type' => 'structure', 'required' => [ 'Expiration', ], 'members' => [ 'Expiration' => [ 'shape' => 'ExpirationState', ], 'Days' => [ 'shape' => 'RecordExpirationDays', 'box' => true, ], ], ], 'RecordExpirationDays' => [ 'type' => 'integer', ], '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', ], ], ], 'S3RegionalOrS3ExpressBucketArnString' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => 'arn:[^:]+:(s3|s3express):.*', ], 'S3TablesArn' => [ 'type' => 'string', ], 'S3TablesBucketArn' => [ 'type' => 'string', ], 'S3TablesBucketType' => [ 'type' => 'string', 'enum' => [ 'aws', 'customer', ], ], '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:fsx', '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', ], 'BlockedEncryptionTypes' => [ 'shape' => 'BlockedEncryptionTypes', ], ], ], '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', 'FSX_OPENZFS', 'FSX_ONTAP', ], ], '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', ], 'TableSseAlgorithm' => [ 'type' => 'string', 'enum' => [ 'aws:kms', 'AES256', ], ], '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', ], 'UpdateBucketMetadataInventoryTableConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'InventoryTableConfiguration', ], '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', ], 'InventoryTableConfiguration' => [ 'shape' => 'InventoryTableConfigurationUpdates', 'locationName' => 'InventoryTableConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'InventoryTableConfiguration', ], 'UpdateBucketMetadataJournalTableConfigurationRequest' => [ 'type' => 'structure', 'required' => [ 'Bucket', 'JournalTableConfiguration', ], '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', ], 'JournalTableConfiguration' => [ 'shape' => 'JournalTableConfigurationUpdates', 'locationName' => 'JournalTableConfiguration', 'xmlNamespace' => [ 'uri' => 'http://s3.amazonaws.com/doc/2006-03-01/', ], ], 'ExpectedBucketOwner' => [ 'shape' => 'AccountId', 'location' => 'header', 'locationName' => 'x-amz-expected-bucket-owner', ], ], 'payload' => 'JournalTableConfiguration', ], '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/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php b/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php index d9d6b0ec7..f65cd1d11 100644 --- a/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php +++ b/aws/aws-sdk-php/src/data/s3/2006-03-01/endpoint-rule-set-1.json.php @@ -1,3 +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:` but no name was provided', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`', 'type' => 'error', ], ], 'type' => 'tree', ], [ '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' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], '', ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'arnType', ], 'accesspoint', ], ], ], 'rules' => [ [ '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', ], ], '{partitionResult#name}', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'service', ], ], 's3', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'accountId', ], ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'accessPointName', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'Access Points do not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ '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', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', '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 ARN: The ARN was not for the S3 service, found: {bucketArn#service}', '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', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'accessPointName', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3 MRAP does not support dual-stack', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'S3 MRAP does not support FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3 MRAP does not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableMultiRegionAccessPoints', ], true, ], ], ], 'error' => 'Invalid configuration: Multi-Region Access Point ARNs are disabled.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'mrapPartition', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'mrapPartition', ], 'name', ], ], [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'partition', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3', 'signingRegionSet' => [ '*', ], ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Access Point Name', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'service', ], ], 's3-outposts', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3 Outposts does not support Dual-stack', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'S3 Outposts does not support FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3 Outposts does not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[4]', ], ], ], ], ], 'error' => 'Invalid Arn: Outpost Access Point ARN contains sub resources', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[1]', ], 'assign' => 'outpostId', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'outpostId', ], false, ], ], ], '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' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'accountId', ], ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[2]', ], 'assign' => 'outpostType', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[3]', ], 'assign' => 'accessPointName', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'outpostType', ], 'accesspoint', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Expected an outpost type `accesspoint`, found {outpostType}', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: expected an access point name', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Expected a 4-component resource', '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 outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: The Outpost Id was not set', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: No ARN type specified', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 0, 4, false, ], 'assign' => 'arnPrefix', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'arnPrefix', ], 'arn:', ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'fn' => 'aws.parseArn', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], ], ], ], ], 'error' => 'Invalid ARN: `{Bucket}` was not a valid ARN', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'ForcePathStyle', ], true, ], ], [ 'fn' => 'aws.parseArn', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], 'error' => 'Path-style addressing cannot be used with ARN buckets', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], 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}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], 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' => 'https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Path-style addressing cannot be used with S3 Accelerate', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'UseObjectLambdaEndpoint', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseObjectLambdaEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'Region', ], true, ], ], ], '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' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', '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' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'Region', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://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' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ '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#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'A region must be set when sending requests to S3.', 'type' => 'error', ], ],]; +return [ 'version' => '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' => '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4-s3express', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'backend' => 'S3Express', 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3express', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], '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' => 'aws.isVirtualHostableS3Bucket', 'argv' => [ [ 'ref' => 'Bucket', ], 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 Outposts Bucket alias - it must be a valid bucket name.', '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:` but no name was provided', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`', 'type' => 'error', ], ], 'type' => 'tree', ], [ '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' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], '', ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'arnType', ], 'accesspoint', ], ], ], 'rules' => [ [ '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', ], ], '{partitionResult#name}', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'region', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'service', ], ], 's3', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'accountId', ], ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'accessPointName', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'Access Points do not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ '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', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', '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 ARN: The ARN was not for the S3 service, found: {bucketArn#service}', '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', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'accessPointName', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3 MRAP does not support dual-stack', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'S3 MRAP does not support FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3 MRAP does not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'DisableMultiRegionAccessPoints', ], true, ], ], ], 'error' => 'Invalid configuration: Multi-Region Access Point ARNs are disabled.', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'mrapPartition', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'mrapPartition', ], 'name', ], ], [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'partition', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3', 'signingRegionSet' => [ '*', ], ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Access Point Name', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'service', ], ], 's3-outposts', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'error' => 'S3 Outposts does not support Dual-stack', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'error' => 'S3 Outposts does not support FIPS', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], true, ], ], ], 'error' => 'S3 Outposts does not support S3 Accelerate', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[4]', ], ], ], ], ], 'error' => 'Invalid Arn: Outpost Access Point ARN contains sub resources', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[1]', ], 'assign' => 'outpostId', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'outpostId', ], false, ], ], ], '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' => 'isValidHostLabel', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'accountId', ], ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[2]', ], 'assign' => 'outpostType', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'bucketArn', ], 'resourceId[3]', ], 'assign' => 'accessPointName', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'outpostType', ], 'accesspoint', ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4a', 'signingName' => 's3-outposts', 'signingRegionSet' => [ '*', ], ], [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-outposts', 'signingRegion' => '{bucketArn#region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Expected an outpost type `accesspoint`, found {outpostType}', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: expected an access point name', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Expected a 4-component resource', '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 outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: The Outpost Id was not set', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid ARN: No ARN type specified', 'type' => 'error', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'substring', 'argv' => [ [ 'ref' => 'Bucket', ], 0, 4, false, ], 'assign' => 'arnPrefix', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'arnPrefix', ], 'arn:', ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'fn' => 'aws.parseArn', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], ], ], ], ], 'error' => 'Invalid ARN: `{Bucket}` was not a valid ARN', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'ForcePathStyle', ], true, ], ], [ 'fn' => 'aws.parseArn', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], 'error' => 'Path-style addressing cannot be used with ARN buckets', 'type' => 'error', ], [ 'conditions' => [ [ 'fn' => 'uriEncode', 'argv' => [ [ 'ref' => 'Bucket', ], ], 'assign' => 'uri_encoded_bucket', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'Accelerate', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], 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}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], 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' => 'https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Path-style addressing cannot be used with S3 Accelerate', 'type' => 'error', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'UseObjectLambdaEndpoint', ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseObjectLambdaEndpoint', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'Region', ], true, ], ], ], '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' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], ], 'endpoint' => [ 'url' => 'https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3-object-lambda', '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' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Bucket', ], ], ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'partitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isValidHostLabel', 'argv' => [ [ 'ref' => 'Region', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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' => 'UseFIPS', ], true, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3-fips.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://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' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3.dualstack.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ '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#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], [ 'fn' => 'parseURL', 'argv' => [ [ 'ref' => 'Endpoint', ], ], 'assign' => 'url', ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseGlobalEndpoint', ], false, ], ], ], 'endpoint' => [ 'url' => '{url#scheme}://{url#authority}{url#path}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], [ 'fn' => 'not', 'argv' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Endpoint', ], ], ], ], ], [ 'fn' => 'stringEquals', 'argv' => [ [ 'ref' => 'Region', ], 'aws-global', ], ], ], 'endpoint' => [ 'url' => 'https://s3.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => 'us-east-1', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://s3.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://s3.{Region}.{partitionResult#dnsSuffix}', 'properties' => [ 'authSchemes' => [ [ 'disableDoubleEncoding' => true, 'name' => 'sigv4', 'signingName' => 's3', 'signingRegion' => '{Region}', ], ], ], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], 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://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', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'A region must be set when sending requests to S3.', 'type' => 'error', ], ],]; diff --git a/aws/aws-sdk-php/src/data/signin/2023-01-01/api-2.json.php b/aws/aws-sdk-php/src/data/signin/2023-01-01/api-2.json.php new file mode 100644 index 000000000..5ffa23e22 --- /dev/null +++ b/aws/aws-sdk-php/src/data/signin/2023-01-01/api-2.json.php @@ -0,0 +1,3 @@ + '2.0', 'metadata' => [ 'apiVersion' => '2023-01-01', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'signin', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceFullName' => 'AWS Sign-In Service', 'serviceId' => 'Signin', 'signatureVersion' => 'v4', 'signingName' => 'signin', 'uid' => 'signin-2023-01-01', ], 'operations' => [ 'CreateOAuth2Token' => [ 'name' => 'CreateOAuth2Token', 'http' => [ 'method' => 'POST', 'requestUri' => '/v1/token', 'responseCode' => 200, ], 'input' => [ 'shape' => 'CreateOAuth2TokenRequest', ], 'output' => [ 'shape' => 'CreateOAuth2TokenResponse', ], 'errors' => [ [ 'shape' => 'TooManyRequestsError', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'AccessDeniedException', ], ], 'auth' => [ 'smithy.api#noAuth', ], 'authtype' => 'none', ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'error', 'message', ], 'members' => [ 'error' => [ 'shape' => 'OAuth2ErrorCode', ], 'message' => [ 'shape' => 'String', ], ], 'exception' => true, ], 'AccessToken' => [ 'type' => 'structure', 'required' => [ 'accessKeyId', 'secretAccessKey', 'sessionToken', ], 'members' => [ 'accessKeyId' => [ 'shape' => 'String', 'locationName' => 'accessKeyId', ], 'secretAccessKey' => [ 'shape' => 'String', 'locationName' => 'secretAccessKey', ], 'sessionToken' => [ 'shape' => 'String', 'locationName' => 'sessionToken', ], ], 'sensitive' => true, ], 'AuthorizationCode' => [ 'type' => 'string', 'max' => 512, 'min' => 1, ], 'ClientId' => [ 'type' => 'string', 'pattern' => 'arn:aws:signin:::devtools/(cross-device|same-device)', ], 'CodeVerifier' => [ 'type' => 'string', 'max' => 128, 'min' => 43, 'pattern' => '[A-Za-z0-9\\-._~]+', ], 'CreateOAuth2TokenRequest' => [ 'type' => 'structure', 'required' => [ 'tokenInput', ], 'members' => [ 'tokenInput' => [ 'shape' => 'CreateOAuth2TokenRequestBody', ], ], 'payload' => 'tokenInput', ], 'CreateOAuth2TokenRequestBody' => [ 'type' => 'structure', 'required' => [ 'clientId', 'grantType', ], 'members' => [ 'clientId' => [ 'shape' => 'ClientId', 'locationName' => 'clientId', ], 'grantType' => [ 'shape' => 'GrantType', 'locationName' => 'grantType', ], 'code' => [ 'shape' => 'AuthorizationCode', ], 'redirectUri' => [ 'shape' => 'RedirectUri', 'locationName' => 'redirectUri', ], 'codeVerifier' => [ 'shape' => 'CodeVerifier', 'locationName' => 'codeVerifier', ], 'refreshToken' => [ 'shape' => 'RefreshToken', 'locationName' => 'refreshToken', ], ], ], 'CreateOAuth2TokenResponse' => [ 'type' => 'structure', 'required' => [ 'tokenOutput', ], 'members' => [ 'tokenOutput' => [ 'shape' => 'CreateOAuth2TokenResponseBody', ], ], 'payload' => 'tokenOutput', ], 'CreateOAuth2TokenResponseBody' => [ 'type' => 'structure', 'required' => [ 'accessToken', 'tokenType', 'expiresIn', 'refreshToken', ], 'members' => [ 'accessToken' => [ 'shape' => 'AccessToken', 'locationName' => 'accessToken', ], 'tokenType' => [ 'shape' => 'TokenType', 'locationName' => 'tokenType', ], 'expiresIn' => [ 'shape' => 'ExpiresIn', 'locationName' => 'expiresIn', ], 'refreshToken' => [ 'shape' => 'RefreshToken', 'locationName' => 'refreshToken', ], 'idToken' => [ 'shape' => 'IdToken', 'locationName' => 'idToken', ], ], ], 'ExpiresIn' => [ 'type' => 'integer', 'box' => true, 'max' => 900, 'min' => 1, ], 'GrantType' => [ 'type' => 'string', 'pattern' => '(authorization_code|refresh_token)', ], 'IdToken' => [ 'type' => 'string', 'max' => 4096, 'min' => 1, ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'error', 'message', ], 'members' => [ 'error' => [ 'shape' => 'OAuth2ErrorCode', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 500, ], 'exception' => true, 'fault' => true, ], 'OAuth2ErrorCode' => [ 'type' => 'string', 'enum' => [ 'TOKEN_EXPIRED', 'USER_CREDENTIALS_CHANGED', 'INSUFFICIENT_PERMISSIONS', 'AUTHCODE_EXPIRED', 'server_error', 'INVALID_REQUEST', ], ], 'RedirectUri' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, ], 'RefreshToken' => [ 'type' => 'string', 'max' => 2048, 'min' => 1, 'sensitive' => true, ], 'String' => [ 'type' => 'string', ], 'TokenType' => [ 'type' => 'string', 'pattern' => 'aws_sigv4', ], 'TooManyRequestsError' => [ 'type' => 'structure', 'required' => [ 'error', 'message', ], 'members' => [ 'error' => [ 'shape' => 'OAuth2ErrorCode', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 429, 'senderFault' => true, ], 'exception' => true, ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'error', 'message', ], 'members' => [ 'error' => [ 'shape' => 'OAuth2ErrorCode', ], 'message' => [ 'shape' => 'String', ], ], 'error' => [ 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], ],]; diff --git a/aws/aws-sdk-php/src/data/signin/2023-01-01/endpoint-rule-set-1.json.php b/aws/aws-sdk-php/src/data/signin/2023-01-01/endpoint-rule-set-1.json.php new file mode 100644 index 000000000..472d4c22c --- /dev/null +++ b/aws/aws-sdk-php/src/data/signin/2023-01-01/endpoint-rule-set-1.json.php @@ -0,0 +1,3 @@ + '1.0', 'parameters' => [ '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', ], 'Region' => [ 'builtIn' => 'AWS::Region', 'required' => false, 'documentation' => 'The AWS region used to dispatch the 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' => [], 'rules' => [ [ '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', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'isSet', 'argv' => [ [ 'ref' => 'Region', ], ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'aws.partition', 'argv' => [ [ 'ref' => 'Region', ], ], 'assign' => 'PartitionResult', ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'name', ], ], 'aws', ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Region}.signin.aws.amazon.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'name', ], ], 'aws-cn', ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Region}.signin.amazonaws.cn', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [ [ 'fn' => 'stringEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'name', ], ], 'aws-us-gov', ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'endpoint' => [ 'url' => 'https://{Region}.signin.amazonaws-us-gov.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ '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://signin-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, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], false, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsFIPS', ], ], true, ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://signin-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' => 'UseFIPS', ], false, ], ], [ 'fn' => 'booleanEquals', 'argv' => [ [ 'ref' => 'UseDualStack', ], true, ], ], ], 'rules' => [ [ 'conditions' => [ [ 'fn' => 'booleanEquals', 'argv' => [ true, [ 'fn' => 'getAttr', 'argv' => [ [ 'ref' => 'PartitionResult', ], 'supportsDualStack', ], ], ], ], ], 'rules' => [ [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://signin.{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://signin.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ], 'type' => 'tree', ], ],]; diff --git a/aws/aws-sdk-php/src/data/signin/2023-01-01/paginators-1.json.php b/aws/aws-sdk-php/src/data/signin/2023-01-01/paginators-1.json.php new file mode 100644 index 000000000..84864d1c3 --- /dev/null +++ b/aws/aws-sdk-php/src/data/signin/2023-01-01/paginators-1.json.php @@ -0,0 +1,3 @@ + [],]; diff --git a/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php b/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php index 28a7ccc4c..eebcf9892 100644 --- a/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php +++ b/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/api-2.json.php @@ -1,3 +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', ], ],]; +return [ 'version' => '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', ], [ 'shape' => 'SlowDownException', ], ], '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', ], 'reason' => [ 'shape' => 'AccessDeniedExceptionReason', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'AccessDeniedExceptionReason' => [ 'type' => 'string', 'enum' => [ 'KMS_AccessDeniedException', ], ], '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', ], 'reason' => [ 'shape' => 'InvalidRequestExceptionReason', ], 'error_description' => [ 'shape' => 'ErrorDescription', ], ], 'error' => [ 'httpStatusCode' => 400, ], 'exception' => true, ], 'InvalidRequestExceptionReason' => [ 'type' => 'string', 'enum' => [ 'KMS_NotFoundException', 'KMS_InvalidKeyUsageException', 'KMS_InvalidStateException', 'KMS_DisabledException', ], ], '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/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php b/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php index 970e93b19..00336ca15 100644 --- a/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php +++ b/aws/aws-sdk-php/src/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json.php @@ -1,3 +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', ], ],]; +return [ 'version' => '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/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php b/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php index 4a0c04fa7..a32c7d004 100644 --- a/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php +++ b/aws/aws-sdk-php/src/data/sso/2019-06-10/api-2.json.php @@ -1,3 +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, ], ],]; +return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2019-06-10', 'endpointPrefix' => 'portal.sso', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'protocols' => [ 'rest-json', ], 'serviceAbbreviation' => 'SSO', 'serviceFullName' => 'AWS Single Sign-On', 'serviceId' => 'SSO', 'signatureVersion' => 'v4', 'signingName' => 'awsssoportal', 'uid' => 'sso-2019-06-10', 'auth' => [ 'aws.auth#sigv4', ], ], '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', 'auth' => [ 'smithy.api#noAuth', ], ], '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', 'auth' => [ 'smithy.api#noAuth', ], ], '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', 'auth' => [ 'smithy.api#noAuth', ], ], 'Logout' => [ 'name' => 'Logout', 'http' => [ 'method' => 'POST', 'requestUri' => '/logout', ], 'input' => [ 'shape' => 'LogoutRequest', ], 'errors' => [ [ 'shape' => 'InvalidRequestException', ], [ 'shape' => 'UnauthorizedException', ], [ 'shape' => 'TooManyRequestsException', ], ], 'authtype' => 'none', 'auth' => [ 'smithy.api#noAuth', ], ], ], '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/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php b/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php index 06c7a5ba5..e0e6d4ecb 100644 --- a/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php +++ b/aws/aws-sdk-php/src/data/sso/2019-06-10/endpoint-rule-set-1.json.php @@ -1,3 +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', ], ],]; +return [ 'version' => '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://portal.sso-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://portal.sso.{Region}.amazonaws.com', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], [ 'conditions' => [], 'endpoint' => [ 'url' => 'https://portal.sso-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://portal.sso.{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://portal.sso.{Region}.{PartitionResult#dnsSuffix}', 'properties' => [], 'headers' => [], ], 'type' => 'endpoint', ], ], 'type' => 'tree', ], ], 'type' => 'tree', ], [ 'conditions' => [], 'error' => 'Invalid Configuration: Missing Region', 'type' => 'error', ], ],]; diff --git a/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php b/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php index 997cce48e..978b8bfca 100644 --- a/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php +++ b/aws/aws-sdk-php/src/data/sts/2011-06-15/api-2.json.php @@ -1,3 +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, ], ],]; +return [ 'version' => '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', ], ], 'GetDelegatedAccessToken' => [ 'name' => 'GetDelegatedAccessToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDelegatedAccessTokenRequest', ], 'output' => [ 'shape' => 'GetDelegatedAccessTokenResponse', 'resultWrapper' => 'GetDelegatedAccessTokenResult', ], 'errors' => [ [ 'shape' => 'ExpiredTradeInTokenException', ], [ 'shape' => 'RegionDisabledException', ], [ 'shape' => 'PackedPolicyTooLargeException', ], ], ], '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', ], ], ], 'GetWebIdentityToken' => [ 'name' => 'GetWebIdentityToken', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetWebIdentityTokenRequest', ], 'output' => [ 'shape' => 'GetWebIdentityTokenResponse', 'resultWrapper' => 'GetWebIdentityTokenResult', ], 'errors' => [ [ 'shape' => 'SessionDurationEscalationException', ], [ 'shape' => 'OutboundWebIdentityFederationDisabledException', ], [ 'shape' => 'JWTPayloadSizeExceededException', ], ], ], ], '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, ], 'ExpiredTradeInTokenException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'expiredTradeInTokenExceptionMessage', ], ], 'error' => [ 'code' => 'ExpiredTradeInTokenException', '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', ], ], ], 'GetDelegatedAccessTokenRequest' => [ 'type' => 'structure', 'required' => [ 'TradeInToken', ], 'members' => [ 'TradeInToken' => [ 'shape' => 'tradeInTokenType', ], ], ], 'GetDelegatedAccessTokenResponse' => [ 'type' => 'structure', 'members' => [ 'Credentials' => [ 'shape' => 'Credentials', ], 'PackedPolicySize' => [ 'shape' => 'nonNegativeIntegerType', ], 'AssumedPrincipal' => [ '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', ], ], ], 'GetWebIdentityTokenRequest' => [ 'type' => 'structure', 'required' => [ 'Audience', 'SigningAlgorithm', ], 'members' => [ 'Audience' => [ 'shape' => 'webIdentityTokenAudienceListType', ], 'DurationSeconds' => [ 'shape' => 'webIdentityTokenDurationSecondsType', ], 'SigningAlgorithm' => [ 'shape' => 'jwtAlgorithmType', ], 'Tags' => [ 'shape' => 'tagListType', ], ], ], 'GetWebIdentityTokenResponse' => [ 'type' => 'structure', 'members' => [ 'WebIdentityToken' => [ 'shape' => 'webIdentityTokenType', ], 'Expiration' => [ 'shape' => 'dateType', ], ], ], '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', ], 'JWTPayloadSizeExceededException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'jwtPayloadSizeExceededException', ], ], 'error' => [ 'code' => 'JWTPayloadSizeExceededException', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'MalformedPolicyDocumentException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'malformedPolicyDocumentMessage', ], ], 'error' => [ 'code' => 'MalformedPolicyDocument', 'httpStatusCode' => 400, 'senderFault' => true, ], 'exception' => true, ], 'NameQualifier' => [ 'type' => 'string', ], 'OutboundWebIdentityFederationDisabledException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'outboundWebIdentityFederationDisabledException', ], ], 'error' => [ 'code' => 'OutboundWebIdentityFederationDisabledException', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => true, ], '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, 'min' => 1, ], '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, ], 'SessionDurationEscalationException' => [ 'type' => 'structure', 'members' => [ 'message' => [ 'shape' => 'sessionDurationEscalationException', ], ], 'error' => [ 'code' => 'SessionDurationEscalationException', 'httpStatusCode' => 403, 'senderFault' => true, ], 'exception' => 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', ], 'expiredTradeInTokenExceptionMessage' => [ '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', ], 'jwtAlgorithmType' => [ 'type' => 'string', 'max' => 5, 'min' => 5, ], 'jwtPayloadSizeExceededException' => [ 'type' => 'string', ], 'malformedPolicyDocumentMessage' => [ 'type' => 'string', ], 'nonNegativeIntegerType' => [ 'type' => 'integer', 'min' => 0, ], 'outboundWebIdentityFederationDisabledException' => [ 'type' => 'string', ], '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+=/:,.@-]*', ], 'sessionDurationEscalationException' => [ 'type' => 'string', ], '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', ], 'tradeInTokenType' => [ 'type' => 'string', 'sensitive' => true, ], '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, ], 'webIdentityTokenAudienceListType' => [ 'type' => 'list', 'member' => [ 'shape' => 'webIdentityTokenAudienceStringType', ], 'max' => 10, 'min' => 1, ], 'webIdentityTokenAudienceStringType' => [ 'type' => 'string', 'max' => 1000, 'min' => 1, ], 'webIdentityTokenDurationSecondsType' => [ 'type' => 'integer', 'max' => 3600, 'min' => 60, ], 'webIdentityTokenType' => [ 'type' => 'string', 'sensitive' => true, ], ],]; diff --git a/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php b/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php index 2429fcafc..6d8b551fd 100644 --- a/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php +++ b/aws/aws-sdk-php/src/data/sts/2011-06-15/endpoint-rule-set-1.json.php @@ -1,3 +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', ], ],]; +return [ 'version' => '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/aws/aws-sdk-php/src/functions.php b/aws/aws-sdk-php/src/functions.php index 166e74936..b2c443c65 100644 --- a/aws/aws-sdk-php/src/functions.php +++ b/aws/aws-sdk-php/src/functions.php @@ -564,10 +564,5 @@ function is_associative(array $array): bool return false; } - if (function_exists('array_is_list')) { - return !array_is_list($array); - } - - return array_keys($array) !== range(0, count($array) - 1); + return !array_is_list($array); } - diff --git a/composer.json b/composer.json index ea9fd0860..75dd77bc1 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "php": "^8.2", "ext-ctype": "*", "ext-mbstring": "*", - "aws/aws-sdk-php": "^3.349", + "aws/aws-sdk-php": "^3.369", "bantu/ini-get-wrapper": "v1.0.1", "cweagans/composer-patches": "^1.7", "deepdiver/zipstreamer": "^2.0.3", diff --git a/composer.lock b/composer.lock index 71cc3ddae..08f54666f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ccac2d93769d160abe1b2e4502a5f6f0", + "content-hash": "5e4f2ab3bfeb38f0ab586de491e01a2e", "packages": [ { "name": "aws/aws-crt-php", @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.349.3", + "version": "3.369.9", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "b2d4718786398f47626add9c29840fc416175ef2" + "reference": "cb7c0a255a34d44f13f9276d720827d56a3b381b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b2d4718786398f47626add9c29840fc416175ef2", - "reference": "b2d4718786398f47626add9c29840fc416175ef2", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cb7c0a255a34d44f13f9276d720827d56a3b381b", + "reference": "cb7c0a255a34d44f13f9276d720827d56a3b381b", "shasum": "" }, "require": { @@ -84,7 +84,8 @@ "guzzlehttp/psr7": "^2.4.5", "mtdowling/jmespath.php": "^2.8.0", "php": ">=8.1", - "psr/http-message": "^2.0" + "psr/http-message": "^1.0 || ^2.0", + "symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", @@ -95,13 +96,11 @@ "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", - "ext-pcntl": "*", "ext-sockets": "*", - "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "phpunit/phpunit": "^9.6", "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": { @@ -109,6 +108,7 @@ "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-pcntl": "To use client-side monitoring", "ext-sockets": "To use client-side monitoring" }, "type": "library", @@ -153,9 +153,9 @@ "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.349.3" + "source": "https://github.com/aws/aws-sdk-php/tree/3.369.9" }, - "time": "2025-07-09T18:10:17+00:00" + "time": "2026-01-07T19:06:56+00:00" }, { "name": "bantu/ini-get-wrapper", @@ -4631,6 +4631,76 @@ ], "time": "2024-04-18T09:32:20+00:00" }, + { + "name": "symfony/filesystem", + "version": "v7.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v7.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-27T13:27:24+00:00" + }, { "name": "symfony/http-foundation", "version": "v6.4.29", @@ -5444,16 +5514,16 @@ }, { "name": "symfony/process", - "version": "v6.4.15", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" + "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", + "url": "https://api.github.com/repos/symfony/process/zipball/8541b7308fca001320e90bca8a73a28aa5604a6e", + "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e", "shasum": "" }, "require": { @@ -5485,7 +5555,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.15" + "source": "https://github.com/symfony/process/tree/v6.4.31" }, "funding": [ { @@ -5496,12 +5566,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-06T14:19:14+00:00" + "time": "2025-12-15T19:26:35+00:00" }, { "name": "symfony/routing", @@ -6237,5 +6311,5 @@ "platform-overrides": { "php": "8.2.0" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/composer/autoload_classmap.php b/composer/autoload_classmap.php index 914486b4a..804843f14 100644 --- a/composer/autoload_classmap.php +++ b/composer/autoload_classmap.php @@ -119,27 +119,36 @@ 'Aws\\Credentials\\CredentialsUtils' => $vendorDir . '/aws/aws-sdk-php/src/Credentials/CredentialsUtils.php', 'Aws\\Credentials\\EcsCredentialProvider' => $vendorDir . '/aws/aws-sdk-php/src/Credentials/EcsCredentialProvider.php', 'Aws\\Credentials\\InstanceProfileProvider' => $vendorDir . '/aws/aws-sdk-php/src/Credentials/InstanceProfileProvider.php', + 'Aws\\Credentials\\LoginCredentialProvider' => $vendorDir . '/aws/aws-sdk-php/src/Credentials/LoginCredentialProvider.php', 'Aws\\Crypto\\AbstractCryptoClient' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AbstractCryptoClient.php', 'Aws\\Crypto\\AbstractCryptoClientV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV2.php', + 'Aws\\Crypto\\AbstractCryptoClientV3' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV3.php', 'Aws\\Crypto\\AesDecryptingStream' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AesDecryptingStream.php', 'Aws\\Crypto\\AesEncryptingStream' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AesEncryptingStream.php', 'Aws\\Crypto\\AesGcmDecryptingStream' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AesGcmDecryptingStream.php', 'Aws\\Crypto\\AesGcmEncryptingStream' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AesGcmEncryptingStream.php', 'Aws\\Crypto\\AesStreamInterface' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AesStreamInterface.php', 'Aws\\Crypto\\AesStreamInterfaceV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AesStreamInterfaceV2.php', + 'Aws\\Crypto\\AlgorithmConstants' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AlgorithmConstants.php', + 'Aws\\Crypto\\AlgorithmSuite' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/AlgorithmSuite.php', 'Aws\\Crypto\\Cipher\\Cbc' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/Cipher/Cbc.php', 'Aws\\Crypto\\Cipher\\CipherBuilderTrait' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/Cipher/CipherBuilderTrait.php', 'Aws\\Crypto\\Cipher\\CipherMethod' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/Cipher/CipherMethod.php', 'Aws\\Crypto\\DecryptionTrait' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/DecryptionTrait.php', 'Aws\\Crypto\\DecryptionTraitV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/DecryptionTraitV2.php', + 'Aws\\Crypto\\DecryptionTraitV3' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/DecryptionTraitV3.php', 'Aws\\Crypto\\EncryptionTrait' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/EncryptionTrait.php', 'Aws\\Crypto\\EncryptionTraitV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/EncryptionTraitV2.php', + 'Aws\\Crypto\\EncryptionTraitV3' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/EncryptionTraitV3.php', 'Aws\\Crypto\\KmsMaterialsProvider' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/KmsMaterialsProvider.php', 'Aws\\Crypto\\KmsMaterialsProviderV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV2.php', + 'Aws\\Crypto\\KmsMaterialsProviderV3' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV3.php', 'Aws\\Crypto\\MaterialsProvider' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MaterialsProvider.php', 'Aws\\Crypto\\MaterialsProviderInterface' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterface.php', 'Aws\\Crypto\\MaterialsProviderInterfaceV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV2.php', + 'Aws\\Crypto\\MaterialsProviderInterfaceV3' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV3.php', 'Aws\\Crypto\\MaterialsProviderV2' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderV2.php', + 'Aws\\Crypto\\MaterialsProviderV3' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderV3.php', 'Aws\\Crypto\\MetadataEnvelope' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MetadataEnvelope.php', 'Aws\\Crypto\\MetadataStrategyInterface' => $vendorDir . '/aws/aws-sdk-php/src/Crypto/MetadataStrategyInterface.php', 'Aws\\DefaultsMode\\Configuration' => $vendorDir . '/aws/aws-sdk-php/src/DefaultsMode/Configuration.php', @@ -248,12 +257,15 @@ 'Aws\\S3\\CalculatesChecksumTrait' => $vendorDir . '/aws/aws-sdk-php/src/S3/CalculatesChecksumTrait.php', 'Aws\\S3\\Crypto\\CryptoParamsTrait' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php', 'Aws\\S3\\Crypto\\CryptoParamsTraitV2' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php', + 'Aws\\S3\\Crypto\\CryptoParamsTraitV3' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV3.php', 'Aws\\S3\\Crypto\\HeadersMetadataStrategy' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/HeadersMetadataStrategy.php', 'Aws\\S3\\Crypto\\InstructionFileMetadataStrategy' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/InstructionFileMetadataStrategy.php', 'Aws\\S3\\Crypto\\S3EncryptionClient' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php', 'Aws\\S3\\Crypto\\S3EncryptionClientV2' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php', + 'Aws\\S3\\Crypto\\S3EncryptionClientV3' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV3.php', 'Aws\\S3\\Crypto\\S3EncryptionMultipartUploader' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploader.php', 'Aws\\S3\\Crypto\\S3EncryptionMultipartUploaderV2' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV2.php', + 'Aws\\S3\\Crypto\\S3EncryptionMultipartUploaderV3' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV3.php', 'Aws\\S3\\Crypto\\UserAgentTrait' => $vendorDir . '/aws/aws-sdk-php/src/S3/Crypto/UserAgentTrait.php', 'Aws\\S3\\EndpointRegionHelperTrait' => $vendorDir . '/aws/aws-sdk-php/src/S3/EndpointRegionHelperTrait.php', 'Aws\\S3\\Exception\\DeleteMultipleObjectsException' => $vendorDir . '/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php', @@ -285,6 +297,43 @@ 'Aws\\S3\\S3ClientTrait' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3ClientTrait.php', 'Aws\\S3\\S3EndpointMiddleware' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3EndpointMiddleware.php', 'Aws\\S3\\S3MultiRegionClient' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php', + 'Aws\\S3\\S3Transfer\\AbstractMultipartDownloader' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartDownloader.php', + 'Aws\\S3\\S3Transfer\\AbstractMultipartUploader' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartUploader.php', + 'Aws\\S3\\S3Transfer\\Exception\\FileDownloadException' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Exception/FileDownloadException.php', + 'Aws\\S3\\S3Transfer\\Exception\\ProgressTrackerException' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Exception/ProgressTrackerException.php', + 'Aws\\S3\\S3Transfer\\Exception\\S3TransferException' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Exception/S3TransferException.php', + 'Aws\\S3\\S3Transfer\\Models\\AbstractTransferRequest' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/AbstractTransferRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadDirectoryRequest' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadDirectoryResult' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryResult.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadFileRequest' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadFileRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadRequest' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadResult' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadResult.php', + 'Aws\\S3\\S3Transfer\\Models\\S3TransferManagerConfig' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/S3TransferManagerConfig.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadDirectoryRequest' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadDirectoryResult' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryResult.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadRequest' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadResult' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadResult.php', + 'Aws\\S3\\S3Transfer\\MultipartUploader' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/MultipartUploader.php', + 'Aws\\S3\\S3Transfer\\PartGetMultipartDownloader' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/PartGetMultipartDownloader.php', + 'Aws\\S3\\S3Transfer\\Progress\\AbstractProgressBarFormat' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\AbstractTransferListener' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractTransferListener.php', + 'Aws\\S3\\S3Transfer\\Progress\\ColoredTransferProgressBarFormat' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ColoredTransferProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\ConsoleProgressBar' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ConsoleProgressBar.php', + 'Aws\\S3\\S3Transfer\\Progress\\MultiProgressBarFormat' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\MultiProgressTracker' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressTracker.php', + 'Aws\\S3\\S3Transfer\\Progress\\PlainProgressBarFormat' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/PlainProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\ProgressBarFactoryInterface' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ProgressBarFactoryInterface.php', + 'Aws\\S3\\S3Transfer\\Progress\\ProgressBarInterface' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ProgressBarInterface.php', + 'Aws\\S3\\S3Transfer\\Progress\\ProgressTrackerInterface' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ProgressTrackerInterface.php', + 'Aws\\S3\\S3Transfer\\Progress\\SingleProgressTracker' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/SingleProgressTracker.php', + 'Aws\\S3\\S3Transfer\\Progress\\TransferListenerNotifier' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferListenerNotifier.php', + 'Aws\\S3\\S3Transfer\\Progress\\TransferProgressBarFormat' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\TransferProgressSnapshot' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressSnapshot.php', + 'Aws\\S3\\S3Transfer\\RangeGetMultipartDownloader' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/RangeGetMultipartDownloader.php', + 'Aws\\S3\\S3Transfer\\S3TransferManager' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/S3TransferManager.php', + 'Aws\\S3\\S3Transfer\\Utils\\AbstractDownloadHandler' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Utils/AbstractDownloadHandler.php', + 'Aws\\S3\\S3Transfer\\Utils\\FileDownloadHandler' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Utils/FileDownloadHandler.php', + 'Aws\\S3\\S3Transfer\\Utils\\StreamDownloadHandler' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3Transfer/Utils/StreamDownloadHandler.php', 'Aws\\S3\\S3UriParser' => $vendorDir . '/aws/aws-sdk-php/src/S3/S3UriParser.php', 'Aws\\S3\\SSECMiddleware' => $vendorDir . '/aws/aws-sdk-php/src/S3/SSECMiddleware.php', 'Aws\\S3\\StreamWrapper' => $vendorDir . '/aws/aws-sdk-php/src/S3/StreamWrapper.php', @@ -301,12 +350,15 @@ 'Aws\\Script\\Composer\\Composer' => $vendorDir . '/aws/aws-sdk-php/src/Script/Composer/Composer.php', 'Aws\\Sdk' => $vendorDir . '/aws/aws-sdk-php/src/Sdk.php', 'Aws\\Signature\\AnonymousSignature' => $vendorDir . '/aws/aws-sdk-php/src/Signature/AnonymousSignature.php', + 'Aws\\Signature\\DpopSignature' => $vendorDir . '/aws/aws-sdk-php/src/Signature/DpopSignature.php', 'Aws\\Signature\\S3ExpressSignature' => $vendorDir . '/aws/aws-sdk-php/src/Signature/S3ExpressSignature.php', 'Aws\\Signature\\S3SignatureV4' => $vendorDir . '/aws/aws-sdk-php/src/Signature/S3SignatureV4.php', 'Aws\\Signature\\SignatureInterface' => $vendorDir . '/aws/aws-sdk-php/src/Signature/SignatureInterface.php', 'Aws\\Signature\\SignatureProvider' => $vendorDir . '/aws/aws-sdk-php/src/Signature/SignatureProvider.php', 'Aws\\Signature\\SignatureTrait' => $vendorDir . '/aws/aws-sdk-php/src/Signature/SignatureTrait.php', 'Aws\\Signature\\SignatureV4' => $vendorDir . '/aws/aws-sdk-php/src/Signature/SignatureV4.php', + 'Aws\\Signin\\Exception\\SigninException' => $vendorDir . '/aws/aws-sdk-php/src/Signin/Exception/SigninException.php', + 'Aws\\Signin\\SigninClient' => $vendorDir . '/aws/aws-sdk-php/src/Signin/SigninClient.php', 'Aws\\StreamRequestPayloadMiddleware' => $vendorDir . '/aws/aws-sdk-php/src/StreamRequestPayloadMiddleware.php', 'Aws\\Sts\\Exception\\StsException' => $vendorDir . '/aws/aws-sdk-php/src/Sts/Exception/StsException.php', 'Aws\\Sts\\RegionalEndpoints\\Configuration' => $vendorDir . '/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Configuration.php', @@ -315,6 +367,7 @@ 'Aws\\Sts\\RegionalEndpoints\\Exception\\ConfigurationException' => $vendorDir . '/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Exception/ConfigurationException.php', 'Aws\\Sts\\StsClient' => $vendorDir . '/aws/aws-sdk-php/src/Sts/StsClient.php', 'Aws\\Token\\BearerTokenAuthorization' => $vendorDir . '/aws/aws-sdk-php/src/Token/BearerTokenAuthorization.php', + 'Aws\\Token\\BedrockTokenProvider' => $vendorDir . '/aws/aws-sdk-php/src/Token/BedrockTokenProvider.php', 'Aws\\Token\\ParsesIniTrait' => $vendorDir . '/aws/aws-sdk-php/src/Token/ParsesIniTrait.php', 'Aws\\Token\\RefreshableTokenProviderInterface' => $vendorDir . '/aws/aws-sdk-php/src/Token/RefreshableTokenProviderInterface.php', 'Aws\\Token\\SsoToken' => $vendorDir . '/aws/aws-sdk-php/src/Token/SsoToken.php', @@ -323,6 +376,7 @@ 'Aws\\Token\\TokenAuthorization' => $vendorDir . '/aws/aws-sdk-php/src/Token/TokenAuthorization.php', 'Aws\\Token\\TokenInterface' => $vendorDir . '/aws/aws-sdk-php/src/Token/TokenInterface.php', 'Aws\\Token\\TokenProvider' => $vendorDir . '/aws/aws-sdk-php/src/Token/TokenProvider.php', + 'Aws\\Token\\TokenSource' => $vendorDir . '/aws/aws-sdk-php/src/Token/TokenSource.php', 'Aws\\TraceMiddleware' => $vendorDir . '/aws/aws-sdk-php/src/TraceMiddleware.php', 'Aws\\UserAgentMiddleware' => $vendorDir . '/aws/aws-sdk-php/src/UserAgentMiddleware.php', 'Aws\\Waiter' => $vendorDir . '/aws/aws-sdk-php/src/Waiter.php', @@ -2417,6 +2471,14 @@ 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => $vendorDir . '/symfony/event-dispatcher/EventSubscriberInterface.php', 'Symfony\\Component\\EventDispatcher\\GenericEvent' => $vendorDir . '/symfony/event-dispatcher/GenericEvent.php', 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', + 'Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', + 'Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', + 'Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', + 'Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', 'Symfony\\Component\\HttpFoundation\\AcceptHeader' => $vendorDir . '/symfony/http-foundation/AcceptHeader.php', 'Symfony\\Component\\HttpFoundation\\AcceptHeaderItem' => $vendorDir . '/symfony/http-foundation/AcceptHeaderItem.php', 'Symfony\\Component\\HttpFoundation\\BinaryFileResponse' => $vendorDir . '/symfony/http-foundation/BinaryFileResponse.php', diff --git a/composer/autoload_psr4.php b/composer/autoload_psr4.php index ca9d5ecbf..762456714 100644 --- a/composer/autoload_psr4.php +++ b/composer/autoload_psr4.php @@ -33,6 +33,7 @@ 'Symfony\\Component\\Mime\\' => array($vendorDir . '/symfony/mime'), 'Symfony\\Component\\Mailer\\' => array($vendorDir . '/symfony/mailer'), 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'), + 'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'), 'Symfony\\Component\\DomCrawler\\' => array($vendorDir . '/symfony/dom-crawler'), 'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'), diff --git a/composer/autoload_static.php b/composer/autoload_static.php index b91eeb906..5491167ac 100644 --- a/composer/autoload_static.php +++ b/composer/autoload_static.php @@ -88,6 +88,7 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Symfony\\Component\\Mime\\' => 23, 'Symfony\\Component\\Mailer\\' => 25, 'Symfony\\Component\\HttpFoundation\\' => 33, + 'Symfony\\Component\\Filesystem\\' => 29, 'Symfony\\Component\\EventDispatcher\\' => 34, 'Symfony\\Component\\DomCrawler\\' => 29, 'Symfony\\Component\\CssSelector\\' => 30, @@ -297,6 +298,10 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 array ( 0 => __DIR__ . '/..' . '/symfony/http-foundation', ), + 'Symfony\\Component\\Filesystem\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/filesystem', + ), 'Symfony\\Component\\EventDispatcher\\' => array ( 0 => __DIR__ . '/..' . '/symfony/event-dispatcher', @@ -646,27 +651,36 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Aws\\Credentials\\CredentialsUtils' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Credentials/CredentialsUtils.php', 'Aws\\Credentials\\EcsCredentialProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Credentials/EcsCredentialProvider.php', 'Aws\\Credentials\\InstanceProfileProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Credentials/InstanceProfileProvider.php', + 'Aws\\Credentials\\LoginCredentialProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Credentials/LoginCredentialProvider.php', 'Aws\\Crypto\\AbstractCryptoClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AbstractCryptoClient.php', 'Aws\\Crypto\\AbstractCryptoClientV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV2.php', + 'Aws\\Crypto\\AbstractCryptoClientV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AbstractCryptoClientV3.php', 'Aws\\Crypto\\AesDecryptingStream' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AesDecryptingStream.php', 'Aws\\Crypto\\AesEncryptingStream' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AesEncryptingStream.php', 'Aws\\Crypto\\AesGcmDecryptingStream' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AesGcmDecryptingStream.php', 'Aws\\Crypto\\AesGcmEncryptingStream' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AesGcmEncryptingStream.php', 'Aws\\Crypto\\AesStreamInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AesStreamInterface.php', 'Aws\\Crypto\\AesStreamInterfaceV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AesStreamInterfaceV2.php', + 'Aws\\Crypto\\AlgorithmConstants' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AlgorithmConstants.php', + 'Aws\\Crypto\\AlgorithmSuite' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/AlgorithmSuite.php', 'Aws\\Crypto\\Cipher\\Cbc' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/Cipher/Cbc.php', 'Aws\\Crypto\\Cipher\\CipherBuilderTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/Cipher/CipherBuilderTrait.php', 'Aws\\Crypto\\Cipher\\CipherMethod' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/Cipher/CipherMethod.php', 'Aws\\Crypto\\DecryptionTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/DecryptionTrait.php', 'Aws\\Crypto\\DecryptionTraitV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/DecryptionTraitV2.php', + 'Aws\\Crypto\\DecryptionTraitV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/DecryptionTraitV3.php', 'Aws\\Crypto\\EncryptionTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/EncryptionTrait.php', 'Aws\\Crypto\\EncryptionTraitV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/EncryptionTraitV2.php', + 'Aws\\Crypto\\EncryptionTraitV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/EncryptionTraitV3.php', 'Aws\\Crypto\\KmsMaterialsProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/KmsMaterialsProvider.php', 'Aws\\Crypto\\KmsMaterialsProviderV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV2.php', + 'Aws\\Crypto\\KmsMaterialsProviderV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/KmsMaterialsProviderV3.php', 'Aws\\Crypto\\MaterialsProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MaterialsProvider.php', 'Aws\\Crypto\\MaterialsProviderInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterface.php', 'Aws\\Crypto\\MaterialsProviderInterfaceV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV2.php', + 'Aws\\Crypto\\MaterialsProviderInterfaceV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderInterfaceV3.php', 'Aws\\Crypto\\MaterialsProviderV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderV2.php', + 'Aws\\Crypto\\MaterialsProviderV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MaterialsProviderV3.php', 'Aws\\Crypto\\MetadataEnvelope' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MetadataEnvelope.php', 'Aws\\Crypto\\MetadataStrategyInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Crypto/MetadataStrategyInterface.php', 'Aws\\DefaultsMode\\Configuration' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/DefaultsMode/Configuration.php', @@ -775,12 +789,15 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Aws\\S3\\CalculatesChecksumTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/CalculatesChecksumTrait.php', 'Aws\\S3\\Crypto\\CryptoParamsTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTrait.php', 'Aws\\S3\\Crypto\\CryptoParamsTraitV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV2.php', + 'Aws\\S3\\Crypto\\CryptoParamsTraitV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/CryptoParamsTraitV3.php', 'Aws\\S3\\Crypto\\HeadersMetadataStrategy' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/HeadersMetadataStrategy.php', 'Aws\\S3\\Crypto\\InstructionFileMetadataStrategy' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/InstructionFileMetadataStrategy.php', 'Aws\\S3\\Crypto\\S3EncryptionClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClient.php', 'Aws\\S3\\Crypto\\S3EncryptionClientV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV2.php', + 'Aws\\S3\\Crypto\\S3EncryptionClientV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionClientV3.php', 'Aws\\S3\\Crypto\\S3EncryptionMultipartUploader' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploader.php', 'Aws\\S3\\Crypto\\S3EncryptionMultipartUploaderV2' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV2.php', + 'Aws\\S3\\Crypto\\S3EncryptionMultipartUploaderV3' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/S3EncryptionMultipartUploaderV3.php', 'Aws\\S3\\Crypto\\UserAgentTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Crypto/UserAgentTrait.php', 'Aws\\S3\\EndpointRegionHelperTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/EndpointRegionHelperTrait.php', 'Aws\\S3\\Exception\\DeleteMultipleObjectsException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php', @@ -812,6 +829,43 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Aws\\S3\\S3ClientTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3ClientTrait.php', 'Aws\\S3\\S3EndpointMiddleware' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3EndpointMiddleware.php', 'Aws\\S3\\S3MultiRegionClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3MultiRegionClient.php', + 'Aws\\S3\\S3Transfer\\AbstractMultipartDownloader' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartDownloader.php', + 'Aws\\S3\\S3Transfer\\AbstractMultipartUploader' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/AbstractMultipartUploader.php', + 'Aws\\S3\\S3Transfer\\Exception\\FileDownloadException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Exception/FileDownloadException.php', + 'Aws\\S3\\S3Transfer\\Exception\\ProgressTrackerException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Exception/ProgressTrackerException.php', + 'Aws\\S3\\S3Transfer\\Exception\\S3TransferException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Exception/S3TransferException.php', + 'Aws\\S3\\S3Transfer\\Models\\AbstractTransferRequest' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/AbstractTransferRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadDirectoryRequest' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadDirectoryResult' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadDirectoryResult.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadFileRequest' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadFileRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadRequest' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\DownloadResult' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/DownloadResult.php', + 'Aws\\S3\\S3Transfer\\Models\\S3TransferManagerConfig' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/S3TransferManagerConfig.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadDirectoryRequest' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadDirectoryResult' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadDirectoryResult.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadRequest' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadRequest.php', + 'Aws\\S3\\S3Transfer\\Models\\UploadResult' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Models/UploadResult.php', + 'Aws\\S3\\S3Transfer\\MultipartUploader' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/MultipartUploader.php', + 'Aws\\S3\\S3Transfer\\PartGetMultipartDownloader' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/PartGetMultipartDownloader.php', + 'Aws\\S3\\S3Transfer\\Progress\\AbstractProgressBarFormat' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\AbstractTransferListener' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/AbstractTransferListener.php', + 'Aws\\S3\\S3Transfer\\Progress\\ColoredTransferProgressBarFormat' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ColoredTransferProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\ConsoleProgressBar' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ConsoleProgressBar.php', + 'Aws\\S3\\S3Transfer\\Progress\\MultiProgressBarFormat' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\MultiProgressTracker' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/MultiProgressTracker.php', + 'Aws\\S3\\S3Transfer\\Progress\\PlainProgressBarFormat' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/PlainProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\ProgressBarFactoryInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ProgressBarFactoryInterface.php', + 'Aws\\S3\\S3Transfer\\Progress\\ProgressBarInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ProgressBarInterface.php', + 'Aws\\S3\\S3Transfer\\Progress\\ProgressTrackerInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/ProgressTrackerInterface.php', + 'Aws\\S3\\S3Transfer\\Progress\\SingleProgressTracker' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/SingleProgressTracker.php', + 'Aws\\S3\\S3Transfer\\Progress\\TransferListenerNotifier' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferListenerNotifier.php', + 'Aws\\S3\\S3Transfer\\Progress\\TransferProgressBarFormat' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressBarFormat.php', + 'Aws\\S3\\S3Transfer\\Progress\\TransferProgressSnapshot' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Progress/TransferProgressSnapshot.php', + 'Aws\\S3\\S3Transfer\\RangeGetMultipartDownloader' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/RangeGetMultipartDownloader.php', + 'Aws\\S3\\S3Transfer\\S3TransferManager' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/S3TransferManager.php', + 'Aws\\S3\\S3Transfer\\Utils\\AbstractDownloadHandler' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Utils/AbstractDownloadHandler.php', + 'Aws\\S3\\S3Transfer\\Utils\\FileDownloadHandler' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Utils/FileDownloadHandler.php', + 'Aws\\S3\\S3Transfer\\Utils\\StreamDownloadHandler' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3Transfer/Utils/StreamDownloadHandler.php', 'Aws\\S3\\S3UriParser' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/S3UriParser.php', 'Aws\\S3\\SSECMiddleware' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/SSECMiddleware.php', 'Aws\\S3\\StreamWrapper' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/S3/StreamWrapper.php', @@ -828,12 +882,15 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Aws\\Script\\Composer\\Composer' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Script/Composer/Composer.php', 'Aws\\Sdk' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Sdk.php', 'Aws\\Signature\\AnonymousSignature' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/AnonymousSignature.php', + 'Aws\\Signature\\DpopSignature' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/DpopSignature.php', 'Aws\\Signature\\S3ExpressSignature' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/S3ExpressSignature.php', 'Aws\\Signature\\S3SignatureV4' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/S3SignatureV4.php', 'Aws\\Signature\\SignatureInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/SignatureInterface.php', 'Aws\\Signature\\SignatureProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/SignatureProvider.php', 'Aws\\Signature\\SignatureTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/SignatureTrait.php', 'Aws\\Signature\\SignatureV4' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signature/SignatureV4.php', + 'Aws\\Signin\\Exception\\SigninException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signin/Exception/SigninException.php', + 'Aws\\Signin\\SigninClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Signin/SigninClient.php', 'Aws\\StreamRequestPayloadMiddleware' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/StreamRequestPayloadMiddleware.php', 'Aws\\Sts\\Exception\\StsException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Sts/Exception/StsException.php', 'Aws\\Sts\\RegionalEndpoints\\Configuration' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Configuration.php', @@ -842,6 +899,7 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Aws\\Sts\\RegionalEndpoints\\Exception\\ConfigurationException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Sts/RegionalEndpoints/Exception/ConfigurationException.php', 'Aws\\Sts\\StsClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Sts/StsClient.php', 'Aws\\Token\\BearerTokenAuthorization' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/BearerTokenAuthorization.php', + 'Aws\\Token\\BedrockTokenProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/BedrockTokenProvider.php', 'Aws\\Token\\ParsesIniTrait' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/ParsesIniTrait.php', 'Aws\\Token\\RefreshableTokenProviderInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/RefreshableTokenProviderInterface.php', 'Aws\\Token\\SsoToken' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/SsoToken.php', @@ -850,6 +908,7 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Aws\\Token\\TokenAuthorization' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/TokenAuthorization.php', 'Aws\\Token\\TokenInterface' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/TokenInterface.php', 'Aws\\Token\\TokenProvider' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/TokenProvider.php', + 'Aws\\Token\\TokenSource' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Token/TokenSource.php', 'Aws\\TraceMiddleware' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/TraceMiddleware.php', 'Aws\\UserAgentMiddleware' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/UserAgentMiddleware.php', 'Aws\\Waiter' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/Waiter.php', @@ -2944,6 +3003,14 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventSubscriberInterface.php', 'Symfony\\Component\\EventDispatcher\\GenericEvent' => __DIR__ . '/..' . '/symfony/event-dispatcher/GenericEvent.php', 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', + 'Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', + 'Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', + 'Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', + 'Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', 'Symfony\\Component\\HttpFoundation\\AcceptHeader' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeader.php', 'Symfony\\Component\\HttpFoundation\\AcceptHeaderItem' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeaderItem.php', 'Symfony\\Component\\HttpFoundation\\BinaryFileResponse' => __DIR__ . '/..' . '/symfony/http-foundation/BinaryFileResponse.php', diff --git a/composer/installed.json b/composer/installed.json index 9d0ff8405..162a7b7aa 100644 --- a/composer/installed.json +++ b/composer/installed.json @@ -59,17 +59,17 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.349.3", - "version_normalized": "3.349.3.0", + "version": "3.369.9", + "version_normalized": "3.369.9.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "b2d4718786398f47626add9c29840fc416175ef2" + "reference": "cb7c0a255a34d44f13f9276d720827d56a3b381b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b2d4718786398f47626add9c29840fc416175ef2", - "reference": "b2d4718786398f47626add9c29840fc416175ef2", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cb7c0a255a34d44f13f9276d720827d56a3b381b", + "reference": "cb7c0a255a34d44f13f9276d720827d56a3b381b", "shasum": "" }, "require": { @@ -82,7 +82,8 @@ "guzzlehttp/psr7": "^2.4.5", "mtdowling/jmespath.php": "^2.8.0", "php": ">=8.1", - "psr/http-message": "^2.0" + "psr/http-message": "^1.0 || ^2.0", + "symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", @@ -93,13 +94,11 @@ "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", - "ext-pcntl": "*", "ext-sockets": "*", - "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "phpunit/phpunit": "^9.6", "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": { @@ -107,9 +106,10 @@ "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-pcntl": "To use client-side monitoring", "ext-sockets": "To use client-side monitoring" }, - "time": "2025-07-09T18:10:17+00:00", + "time": "2026-01-07T19:06:56+00:00", "type": "library", "extra": { "branch-alias": { @@ -153,7 +153,7 @@ "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.349.3" + "source": "https://github.com/aws/aws-sdk-php/tree/3.369.9" }, "install-path": "../aws/aws-sdk-php" }, @@ -4840,6 +4840,79 @@ ], "install-path": "../symfony/event-dispatcher-contracts" }, + { + "name": "symfony/filesystem", + "version": "v7.4.0", + "version_normalized": "7.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^6.4|^7.0|^8.0" + }, + "time": "2025-11-27T13:27:24+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v7.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/filesystem" + }, { "name": "symfony/http-foundation", "version": "v6.4.29", @@ -5683,23 +5756,23 @@ }, { "name": "symfony/process", - "version": "v6.4.15", - "version_normalized": "6.4.15.0", + "version": "v6.4.31", + "version_normalized": "6.4.31.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" + "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", + "url": "https://api.github.com/repos/symfony/process/zipball/8541b7308fca001320e90bca8a73a28aa5604a6e", + "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e", "shasum": "" }, "require": { "php": ">=8.1" }, - "time": "2024-11-06T14:19:14+00:00", + "time": "2025-12-15T19:26:35+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -5727,7 +5800,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.15" + "source": "https://github.com/symfony/process/tree/v6.4.31" }, "funding": [ { @@ -5738,6 +5811,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" diff --git a/composer/installed.php b/composer/installed.php index a6c1af166..4ed4bf002 100644 --- a/composer/installed.php +++ b/composer/installed.php @@ -20,9 +20,9 @@ 'dev_requirement' => false, ), 'aws/aws-sdk-php' => array( - 'pretty_version' => '3.349.3', - 'version' => '3.349.3.0', - 'reference' => 'b2d4718786398f47626add9c29840fc416175ef2', + 'pretty_version' => '3.369.9', + 'version' => '3.369.9.0', + 'reference' => 'cb7c0a255a34d44f13f9276d720827d56a3b381b', 'type' => 'library', 'install_path' => __DIR__ . '/../aws/aws-sdk-php', 'aliases' => array(), @@ -712,6 +712,15 @@ 0 => '2.0|3.0', ), ), + 'symfony/filesystem' => array( + 'pretty_version' => 'v7.4.0', + 'version' => '7.4.0.0', + 'reference' => 'd551b38811096d0be9c4691d406991b47c0c630a', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/filesystem', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'symfony/http-foundation' => array( 'pretty_version' => 'v6.4.29', 'version' => '6.4.29.0', @@ -833,9 +842,9 @@ 'dev_requirement' => false, ), 'symfony/process' => array( - 'pretty_version' => 'v6.4.15', - 'version' => '6.4.15.0', - 'reference' => '3cb242f059c14ae08591c5c4087d1fe443564392', + 'pretty_version' => 'v6.4.31', + 'version' => '6.4.31.0', + 'reference' => '8541b7308fca001320e90bca8a73a28aa5604a6e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), diff --git a/symfony/filesystem/Exception/ExceptionInterface.php b/symfony/filesystem/Exception/ExceptionInterface.php new file mode 100644 index 000000000..fc438d9f3 --- /dev/null +++ b/symfony/filesystem/Exception/ExceptionInterface.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * Exception interface for all exceptions thrown by the component. + * + * @author Romain Neutron + */ +interface ExceptionInterface extends \Throwable +{ +} diff --git a/symfony/filesystem/Exception/FileNotFoundException.php b/symfony/filesystem/Exception/FileNotFoundException.php new file mode 100644 index 000000000..d0d27977d --- /dev/null +++ b/symfony/filesystem/Exception/FileNotFoundException.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * Exception class thrown when a file couldn't be found. + * + * @author Fabien Potencier + * @author Christian Gärtner + */ +class FileNotFoundException extends IOException +{ + public function __construct(?string $message = null, int $code = 0, ?\Throwable $previous = null, ?string $path = null) + { + if (null === $message) { + if (null === $path) { + $message = 'File could not be found.'; + } else { + $message = \sprintf('File "%s" could not be found.', $path); + } + } + + parent::__construct($message, $code, $previous, $path); + } +} diff --git a/symfony/filesystem/Exception/IOException.php b/symfony/filesystem/Exception/IOException.php new file mode 100644 index 000000000..46ab8b4a5 --- /dev/null +++ b/symfony/filesystem/Exception/IOException.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * Exception class thrown when a filesystem operation failure happens. + * + * @author Romain Neutron + * @author Christian Gärtner + * @author Fabien Potencier + */ +class IOException extends \RuntimeException implements IOExceptionInterface +{ + public function __construct( + string $message, + int $code = 0, + ?\Throwable $previous = null, + private ?string $path = null, + ) { + parent::__construct($message, $code, $previous); + } + + public function getPath(): ?string + { + return $this->path; + } +} diff --git a/symfony/filesystem/Exception/IOExceptionInterface.php b/symfony/filesystem/Exception/IOExceptionInterface.php new file mode 100644 index 000000000..90c71db88 --- /dev/null +++ b/symfony/filesystem/Exception/IOExceptionInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * IOException interface for file and input/output stream related exceptions thrown by the component. + * + * @author Christian Gärtner + */ +interface IOExceptionInterface extends ExceptionInterface +{ + /** + * Returns the associated path for the exception. + */ + public function getPath(): ?string; +} diff --git a/symfony/filesystem/Exception/InvalidArgumentException.php b/symfony/filesystem/Exception/InvalidArgumentException.php new file mode 100644 index 000000000..abadc2002 --- /dev/null +++ b/symfony/filesystem/Exception/InvalidArgumentException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * @author Christian Flothmann + */ +class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface +{ +} diff --git a/symfony/filesystem/Exception/RuntimeException.php b/symfony/filesystem/Exception/RuntimeException.php new file mode 100644 index 000000000..a7512dca7 --- /dev/null +++ b/symfony/filesystem/Exception/RuntimeException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * @author Théo Fidry + */ +class RuntimeException extends \RuntimeException implements ExceptionInterface +{ +} diff --git a/symfony/filesystem/Filesystem.php b/symfony/filesystem/Filesystem.php new file mode 100644 index 000000000..e673a9c51 --- /dev/null +++ b/symfony/filesystem/Filesystem.php @@ -0,0 +1,767 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem; + +use Symfony\Component\Filesystem\Exception\FileNotFoundException; +use Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use Symfony\Component\Filesystem\Exception\IOException; + +/** + * Provides basic utility to manipulate the file system. + * + * @author Fabien Potencier + */ +class Filesystem +{ + private static ?string $lastError = null; + + /** + * Copies a file. + * + * If the target file is older than the origin file, it's always overwritten. + * If the target file is newer, it is overwritten only when the + * $overwriteNewerFiles option is set to true. + * + * @throws FileNotFoundException When originFile doesn't exist + * @throws IOException When copy fails + */ + public function copy(string $originFile, string $targetFile, bool $overwriteNewerFiles = false): void + { + $originIsLocal = stream_is_local($originFile) || 0 === stripos($originFile, 'file://'); + if ($originIsLocal && !is_file($originFile)) { + throw new FileNotFoundException(\sprintf('Failed to copy "%s" because file does not exist.', $originFile), 0, null, $originFile); + } + + $this->mkdir(\dirname($targetFile)); + + $doCopy = true; + if (!$overwriteNewerFiles && !parse_url($originFile, \PHP_URL_HOST) && is_file($targetFile)) { + $doCopy = filemtime($originFile) > filemtime($targetFile); + } + + if ($doCopy) { + // https://bugs.php.net/64634 + if (!$source = self::box('fopen', $originFile, 'r')) { + throw new IOException(\sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile); + } + + // Stream context created to allow files overwrite when using FTP stream wrapper - disabled by default + if (!$target = self::box('fopen', $targetFile, 'w', false, stream_context_create(['ftp' => ['overwrite' => true]]))) { + throw new IOException(\sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile); + } + + $bytesCopied = stream_copy_to_stream($source, $target); + fclose($source); + fclose($target); + unset($source, $target); + + if (!is_file($targetFile)) { + throw new IOException(\sprintf('Failed to copy "%s" to "%s".', $originFile, $targetFile), 0, null, $originFile); + } + + if ($originIsLocal) { + // Like `cp`, preserve executable permission bits + self::box('chmod', $targetFile, fileperms($targetFile) | (fileperms($originFile) & 0o111)); + + // Like `cp`, preserve the file modification time + self::box('touch', $targetFile, filemtime($originFile)); + + if ($bytesCopied !== $bytesOrigin = filesize($originFile)) { + throw new IOException(\sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile); + } + } + } + } + + /** + * Creates a directory recursively. + * + * @throws IOException On any directory creation failure + */ + public function mkdir(string|iterable $dirs, int $mode = 0o777): void + { + foreach ($this->toIterable($dirs) as $dir) { + if (is_dir($dir)) { + continue; + } + + if (!self::box('mkdir', $dir, $mode, true) && !is_dir($dir)) { + throw new IOException(\sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir); + } + } + } + + /** + * Checks the existence of files or directories. + */ + public function exists(string|iterable $files): bool + { + $maxPathLength = \PHP_MAXPATHLEN - 2; + + foreach ($this->toIterable($files) as $file) { + if (\strlen($file) > $maxPathLength) { + throw new IOException(\sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file); + } + + if (!file_exists($file)) { + return false; + } + } + + return true; + } + + /** + * Sets access and modification time of file. + * + * @param int|null $time The touch time as a Unix timestamp, if not supplied the current system time is used + * @param int|null $atime The access time as a Unix timestamp, if not supplied the current system time is used + * + * @throws IOException When touch fails + */ + public function touch(string|iterable $files, ?int $time = null, ?int $atime = null): void + { + foreach ($this->toIterable($files) as $file) { + if (!($time ? self::box('touch', $file, $time, $atime) : self::box('touch', $file))) { + throw new IOException(\sprintf('Failed to touch "%s": ', $file).self::$lastError, 0, null, $file); + } + } + } + + /** + * Removes files or directories. + * + * @throws IOException When removal fails + */ + public function remove(string|iterable $files): void + { + if ($files instanceof \Traversable) { + $files = iterator_to_array($files, false); + } elseif (!\is_array($files)) { + $files = [$files]; + } + + self::doRemove($files, false); + } + + private static function doRemove(array $files, bool $isRecursive): void + { + $files = array_reverse($files); + foreach ($files as $file) { + if (is_link($file)) { + // See https://bugs.php.net/52176 + if (!(self::box('unlink', $file) || '\\' !== \DIRECTORY_SEPARATOR || self::box('rmdir', $file)) && file_exists($file)) { + throw new IOException(\sprintf('Failed to remove symlink "%s": ', $file).self::$lastError); + } + } elseif (is_dir($file)) { + if (!$isRecursive) { + $tmpName = \dirname(realpath($file)).'/.!'.strrev(strtr(base64_encode(random_bytes(2)), '/=', '-!')); + + if (file_exists($tmpName)) { + try { + self::doRemove([$tmpName], true); + } catch (IOException) { + } + } + + if (!file_exists($tmpName) && self::box('rename', $file, $tmpName)) { + $origFile = $file; + $file = $tmpName; + } else { + $origFile = null; + } + } + + $filesystemIterator = new \FilesystemIterator($file, \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::SKIP_DOTS); + self::doRemove(iterator_to_array($filesystemIterator, true), true); + + if (!self::box('rmdir', $file) && file_exists($file) && !$isRecursive) { + $lastError = self::$lastError; + + if (null !== $origFile && self::box('rename', $file, $origFile)) { + $file = $origFile; + } + + throw new IOException(\sprintf('Failed to remove directory "%s": ', $file).$lastError); + } + } elseif (!self::box('unlink', $file) && ((self::$lastError && str_contains(self::$lastError, 'Permission denied')) || file_exists($file))) { + throw new IOException(\sprintf('Failed to remove file "%s": ', $file).self::$lastError); + } + } + } + + /** + * Change mode for an array of files or directories. + * + * @param int $mode The new mode (octal) + * @param int $umask The mode mask (octal) + * @param bool $recursive Whether change the mod recursively or not + * + * @throws IOException When the change fails + */ + public function chmod(string|iterable $files, int $mode, int $umask = 0o000, bool $recursive = false): void + { + foreach ($this->toIterable($files) as $file) { + if (!self::box('chmod', $file, $mode & ~$umask)) { + throw new IOException(\sprintf('Failed to chmod file "%s": ', $file).self::$lastError, 0, null, $file); + } + if ($recursive && is_dir($file) && !is_link($file)) { + $this->chmod(new \FilesystemIterator($file), $mode, $umask, true); + } + } + } + + /** + * Change the owner of an array of files or directories. + * + * This method always throws on Windows, as the underlying PHP function is not supported. + * + * @see https://php.net/chown + * + * @param string|int $user A user name or number + * @param bool $recursive Whether change the owner recursively or not + * + * @throws IOException When the change fails + */ + public function chown(string|iterable $files, string|int $user, bool $recursive = false): void + { + foreach ($this->toIterable($files) as $file) { + if ($recursive && is_dir($file) && !is_link($file)) { + $this->chown(new \FilesystemIterator($file), $user, true); + } + if (is_link($file) && \function_exists('lchown')) { + if (!self::box('lchown', $file, $user)) { + throw new IOException(\sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file); + } + } else { + if (!self::box('chown', $file, $user)) { + throw new IOException(\sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file); + } + } + } + } + + /** + * Change the group of an array of files or directories. + * + * This method always throws on Windows, as the underlying PHP function is not supported. + * + * @see https://php.net/chgrp + * + * @param string|int $group A group name or number + * @param bool $recursive Whether change the group recursively or not + * + * @throws IOException When the change fails + */ + public function chgrp(string|iterable $files, string|int $group, bool $recursive = false): void + { + foreach ($this->toIterable($files) as $file) { + if ($recursive && is_dir($file) && !is_link($file)) { + $this->chgrp(new \FilesystemIterator($file), $group, true); + } + if (is_link($file) && \function_exists('lchgrp')) { + if (!self::box('lchgrp', $file, $group)) { + throw new IOException(\sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file); + } + } else { + if (!self::box('chgrp', $file, $group)) { + throw new IOException(\sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file); + } + } + } + } + + /** + * Renames a file or a directory. + * + * @throws IOException When target file or directory already exists + * @throws IOException When origin cannot be renamed + */ + public function rename(string $origin, string $target, bool $overwrite = false): void + { + // we check that target does not exist + if (!$overwrite && $this->isReadable($target)) { + throw new IOException(\sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target); + } + + if (!self::box('rename', $origin, $target)) { + if (is_dir($origin)) { + // See https://bugs.php.net/54097 & https://php.net/rename#113943 + $this->mirror($origin, $target, null, ['override' => $overwrite, 'delete' => $overwrite]); + $this->remove($origin); + + return; + } + throw new IOException(\sprintf('Cannot rename "%s" to "%s": ', $origin, $target).self::$lastError, 0, null, $target); + } + } + + /** + * Tells whether a file exists and is readable. + * + * @throws IOException When windows path is longer than 258 characters + */ + private function isReadable(string $filename): bool + { + $maxPathLength = \PHP_MAXPATHLEN - 2; + + if (\strlen($filename) > $maxPathLength) { + throw new IOException(\sprintf('Could not check if file is readable because path length exceeds %d characters.', $maxPathLength), 0, null, $filename); + } + + return is_readable($filename); + } + + /** + * Creates a symbolic link or copy a directory. + * + * @throws IOException When symlink fails + */ + public function symlink(string $originDir, string $targetDir, bool $copyOnWindows = false): void + { + self::assertFunctionExists('symlink'); + + if ('\\' === \DIRECTORY_SEPARATOR) { + $originDir = strtr($originDir, '/', '\\'); + $targetDir = strtr($targetDir, '/', '\\'); + + if ($copyOnWindows) { + $this->mirror($originDir, $targetDir); + + return; + } + } + + $this->mkdir(\dirname($targetDir)); + + if (is_link($targetDir)) { + if (readlink($targetDir) === $originDir) { + return; + } + $this->remove($targetDir); + } + + if (!self::box('symlink', $originDir, $targetDir)) { + $this->linkException($originDir, $targetDir, 'symbolic'); + } + } + + /** + * Creates a hard link, or several hard links to a file. + * + * @param string|string[] $targetFiles The target file(s) + * + * @throws FileNotFoundException When original file is missing or not a file + * @throws IOException When link fails, including if link already exists + */ + public function hardlink(string $originFile, string|iterable $targetFiles): void + { + self::assertFunctionExists('link'); + + if (!$this->exists($originFile)) { + throw new FileNotFoundException(null, 0, null, $originFile); + } + + if (!is_file($originFile)) { + throw new FileNotFoundException(\sprintf('Origin file "%s" is not a file.', $originFile)); + } + + foreach ($this->toIterable($targetFiles) as $targetFile) { + if (is_file($targetFile)) { + if (fileinode($originFile) === fileinode($targetFile)) { + continue; + } + $this->remove($targetFile); + } + + if (!self::box('link', $originFile, $targetFile)) { + $this->linkException($originFile, $targetFile, 'hard'); + } + } + } + + /** + * @param string $linkType Name of the link type, typically 'symbolic' or 'hard' + */ + private function linkException(string $origin, string $target, string $linkType): never + { + if (self::$lastError) { + if ('\\' === \DIRECTORY_SEPARATOR && str_contains(self::$lastError, 'error code(1314)')) { + throw new IOException(\sprintf('Unable to create "%s" link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target); + } + } + throw new IOException(\sprintf('Failed to create "%s" link from "%s" to "%s": ', $linkType, $origin, $target).self::$lastError, 0, null, $target); + } + + /** + * Resolves links in paths. + * + * With $canonicalize = false (default) + * - if $path does not exist or is not a link, returns null + * - if $path is a link, returns the next direct target of the link without considering the existence of the target + * + * With $canonicalize = true + * - if $path does not exist, returns null + * - if $path exists, returns its absolute fully resolved final version + */ + public function readlink(string $path, bool $canonicalize = false): ?string + { + if (!$canonicalize && !is_link($path)) { + return null; + } + + if ($canonicalize) { + if (!$this->exists($path)) { + return null; + } + + return realpath($path); + } + + return readlink($path); + } + + /** + * Given an existing path, convert it to a path relative to a given starting path. + */ + public function makePathRelative(string $endPath, string $startPath): string + { + if (!$this->isAbsolutePath($startPath)) { + throw new InvalidArgumentException(\sprintf('The start path "%s" is not absolute.', $startPath)); + } + + if (!$this->isAbsolutePath($endPath)) { + throw new InvalidArgumentException(\sprintf('The end path "%s" is not absolute.', $endPath)); + } + + // Normalize separators on Windows + if ('\\' === \DIRECTORY_SEPARATOR) { + $endPath = str_replace('\\', '/', $endPath); + $startPath = str_replace('\\', '/', $startPath); + } + + $splitDriveLetter = fn ($path) => (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0])) + ? [substr($path, 2), strtoupper($path[0])] + : [$path, null]; + + $splitPath = function ($path) { + $result = []; + + foreach (explode('/', trim($path, '/')) as $segment) { + if ('..' === $segment) { + array_pop($result); + } elseif ('.' !== $segment && '' !== $segment) { + $result[] = $segment; + } + } + + return $result; + }; + + [$endPath, $endDriveLetter] = $splitDriveLetter($endPath); + [$startPath, $startDriveLetter] = $splitDriveLetter($startPath); + + $startPathArr = $splitPath($startPath); + $endPathArr = $splitPath($endPath); + + if ($endDriveLetter && $startDriveLetter && $endDriveLetter != $startDriveLetter) { + // End path is on another drive, so no relative path exists + return $endDriveLetter.':/'.($endPathArr ? implode('/', $endPathArr).'/' : ''); + } + + // Find for which directory the common path stops + $index = 0; + while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) { + ++$index; + } + + // Determine how deep the start path is relative to the common path (ie, "web/bundles" = 2 levels) + if (1 === \count($startPathArr) && '' === $startPathArr[0]) { + $depth = 0; + } else { + $depth = \count($startPathArr) - $index; + } + + // Repeated "../" for each level need to reach the common path + $traverser = str_repeat('../', $depth); + + $endPathRemainder = implode('/', \array_slice($endPathArr, $index)); + + // Construct $endPath from traversing to the common path, then to the remaining $endPath + $relativePath = $traverser.('' !== $endPathRemainder ? $endPathRemainder.'/' : ''); + + return '' === $relativePath ? './' : $relativePath; + } + + /** + * Mirrors a directory to another. + * + * Copies files and directories from the origin directory into the target directory. By default: + * + * - existing files in the target directory will be overwritten, except if they are newer (see the `override` option) + * - files in the target directory that do not exist in the source directory will not be deleted (see the `delete` option) + * + * @param \Traversable|null $iterator Iterator that filters which files and directories to copy, if null a recursive iterator is created + * @param array $options An array of boolean options + * Valid options are: + * - $options['override'] If true, target files newer than origin files are overwritten (see copy(), defaults to false) + * - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false) + * - $options['delete'] Whether to delete files that are not in the source directory (defaults to false) + * + * @throws IOException When file type is unknown + */ + public function mirror(string $originDir, string $targetDir, ?\Traversable $iterator = null, array $options = []): void + { + $targetDir = rtrim($targetDir, '/\\'); + $originDir = rtrim($originDir, '/\\'); + $originDirLen = \strlen($originDir); + + if (!$this->exists($originDir)) { + throw new IOException(\sprintf('The origin directory specified "%s" was not found.', $originDir), 0, null, $originDir); + } + + // Iterate in destination folder to remove obsolete entries + if ($this->exists($targetDir) && isset($options['delete']) && $options['delete']) { + $deleteIterator = $iterator; + if (null === $deleteIterator) { + $flags = \FilesystemIterator::SKIP_DOTS; + $deleteIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($targetDir, $flags), \RecursiveIteratorIterator::CHILD_FIRST); + } + $targetDirLen = \strlen($targetDir); + foreach ($deleteIterator as $file) { + $origin = $originDir.substr($file->getPathname(), $targetDirLen); + if (!$this->exists($origin)) { + $this->remove($file); + } + } + } + + $copyOnWindows = $options['copy_on_windows'] ?? false; + + if (null === $iterator) { + $flags = $copyOnWindows ? \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS : \FilesystemIterator::SKIP_DOTS; + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($originDir, $flags), \RecursiveIteratorIterator::SELF_FIRST); + } + + $this->mkdir($targetDir); + $filesCreatedWhileMirroring = []; + + foreach ($iterator as $file) { + if ($file->getPathname() === $targetDir || $file->getRealPath() === $targetDir || isset($filesCreatedWhileMirroring[$file->getRealPath()])) { + continue; + } + + $target = $targetDir.substr($file->getPathname(), $originDirLen); + $filesCreatedWhileMirroring[$target] = true; + + if (!$copyOnWindows && is_link($file)) { + $this->symlink($file->getLinkTarget(), $target); + } elseif (is_dir($file)) { + $this->mkdir($target); + } elseif (is_file($file)) { + $this->copy($file, $target, $options['override'] ?? false); + } else { + throw new IOException(\sprintf('Unable to guess "%s" file type.', $file), 0, null, $file); + } + } + } + + /** + * Returns whether the given path is absolute. + */ + public function isAbsolutePath(string $file): bool + { + return Path::isAbsolute($file); + } + + /** + * Creates a temporary file with support for custom stream wrappers. + * + * @param string $prefix The prefix of the generated temporary filename + * Note: Windows uses only the first three characters of prefix + * @param string $suffix The suffix of the generated temporary filename + * + * @return string The new temporary filename (with path), or throw an exception on failure + */ + public function tempnam(string $dir, string $prefix, string $suffix = ''): string + { + [$scheme, $hierarchy] = $this->getSchemeAndHierarchy($dir); + + // If no scheme or scheme is "file" or "gs" (Google Cloud) create temp file in local filesystem + if ((null === $scheme || 'file' === $scheme || 'gs' === $scheme) && '' === $suffix) { + // If tempnam failed or no scheme return the filename otherwise prepend the scheme + if ($tmpFile = self::box('tempnam', $hierarchy, $prefix)) { + if (null !== $scheme && 'gs' !== $scheme) { + return $scheme.'://'.$tmpFile; + } + + return $tmpFile; + } + + throw new IOException('A temporary file could not be created: '.self::$lastError); + } + + // Loop until we create a valid temp file or have reached 10 attempts + for ($i = 0; $i < 10; ++$i) { + // Create a unique filename + $tmpFile = $dir.'/'.$prefix.bin2hex(random_bytes(4)).$suffix; + + // Use fopen instead of file_exists as some streams do not support stat + // Use mode 'x+' to atomically check existence and create to avoid a TOCTOU vulnerability + if (!$handle = self::box('fopen', $tmpFile, 'x+')) { + continue; + } + + // Close the file if it was successfully opened + self::box('fclose', $handle); + + return $tmpFile; + } + + throw new IOException('A temporary file could not be created: '.self::$lastError); + } + + /** + * Atomically dumps content into a file. + * + * @param string|resource $content The data to write into the file + * + * @throws IOException if the file cannot be written to + */ + public function dumpFile(string $filename, $content): void + { + if (\is_array($content)) { + throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); + } + + $dir = \dirname($filename); + + if (is_link($filename) && $linkTarget = $this->readlink($filename)) { + $this->dumpFile(Path::makeAbsolute($linkTarget, $dir), $content); + + return; + } + + if (!is_dir($dir)) { + $this->mkdir($dir); + } + + // Will create a temp file with 0600 access rights + // when the filesystem supports chmod. + $tmpFile = $this->tempnam($dir, basename($filename)); + + try { + if (false === self::box('file_put_contents', $tmpFile, $content)) { + throw new IOException(\sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); + } + + self::box('chmod', $tmpFile, self::box('fileperms', $filename) ?: 0o666 & ~umask()); + + $this->rename($tmpFile, $filename, true); + } finally { + if (file_exists($tmpFile)) { + if ('\\' === \DIRECTORY_SEPARATOR && !is_writable($tmpFile)) { + self::box('chmod', $tmpFile, self::box('fileperms', $tmpFile) | 0o200); + } + + self::box('unlink', $tmpFile); + } + } + } + + /** + * Appends content to an existing file. + * + * @param string|resource $content The content to append + * @param bool $lock Whether the file should be locked when writing to it + * + * @throws IOException If the file is not writable + */ + public function appendToFile(string $filename, $content, bool $lock = false): void + { + if (\is_array($content)) { + throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); + } + + $dir = \dirname($filename); + + if (!is_dir($dir)) { + $this->mkdir($dir); + } + + if (false === self::box('file_put_contents', $filename, $content, \FILE_APPEND | ($lock ? \LOCK_EX : 0))) { + throw new IOException(\sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); + } + } + + /** + * Returns the content of a file as a string. + * + * @throws IOException If the file cannot be read + */ + public function readFile(string $filename): string + { + if (is_dir($filename)) { + throw new IOException(\sprintf('Failed to read file "%s": File is a directory.', $filename)); + } + + $content = self::box('file_get_contents', $filename); + if (false === $content) { + throw new IOException(\sprintf('Failed to read file "%s": ', $filename).self::$lastError, 0, null, $filename); + } + + return $content; + } + + private function toIterable(string|iterable $files): iterable + { + return is_iterable($files) ? $files : [$files]; + } + + /** + * Gets a 2-tuple of scheme (may be null) and hierarchical part of a filename (e.g. file:///tmp -> [file, tmp]). + */ + private function getSchemeAndHierarchy(string $filename): array + { + $components = explode('://', $filename, 2); + + return 2 === \count($components) ? [$components[0], $components[1]] : [null, $components[0]]; + } + + private static function assertFunctionExists(string $func): void + { + if (!\function_exists($func)) { + throw new IOException(\sprintf('Unable to perform filesystem operation because the "%s()" function has been disabled.', $func)); + } + } + + private static function box(string $func, mixed ...$args): mixed + { + self::assertFunctionExists($func); + + self::$lastError = null; + set_error_handler(self::handleError(...)); + try { + return $func(...$args); + } finally { + restore_error_handler(); + } + } + + /** + * @internal + */ + public static function handleError(int $type, string $msg): void + { + self::$lastError = $msg; + } +} diff --git a/symfony/filesystem/LICENSE b/symfony/filesystem/LICENSE new file mode 100644 index 000000000..0138f8f07 --- /dev/null +++ b/symfony/filesystem/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2004-present Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/symfony/filesystem/Path.php b/symfony/filesystem/Path.php new file mode 100644 index 000000000..ecf313580 --- /dev/null +++ b/symfony/filesystem/Path.php @@ -0,0 +1,796 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem; + +use Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use Symfony\Component\Filesystem\Exception\RuntimeException; + +/** + * Contains utility methods for handling path strings. + * + * The methods in this class are able to deal with both UNIX and Windows paths + * with both forward and backward slashes. All methods return normalized parts + * containing only forward slashes and no excess "." and ".." segments. + * + * @author Bernhard Schussek + * @author Thomas Schulz + * @author Théo Fidry + */ +final class Path +{ + /** + * The number of buffer entries that triggers a cleanup operation. + */ + private const CLEANUP_THRESHOLD = 1250; + + /** + * The buffer size after the cleanup operation. + */ + private const CLEANUP_SIZE = 1000; + + /** + * Buffers input/output of {@link canonicalize()}. + * + * @var array + */ + private static array $buffer = []; + + private static int $bufferSize = 0; + + /** + * Canonicalizes the given path. + * + * During normalization, all slashes are replaced by forward slashes ("/"). + * Furthermore, all "." and ".." segments are removed as far as possible. + * ".." segments at the beginning of relative paths are not removed. + * + * ```php + * echo Path::canonicalize("\symfony\puli\..\css\style.css"); + * // => /symfony/css/style.css + * + * echo Path::canonicalize("../css/./style.css"); + * // => ../css/style.css + * ``` + * + * This method is able to deal with both UNIX and Windows paths. + */ + public static function canonicalize(string $path): string + { + if ('' === $path) { + return ''; + } + + // This method is called by many other methods in this class. Buffer + // the canonicalized paths to make up for the severe performance + // decrease. + if (isset(self::$buffer[$path])) { + return self::$buffer[$path]; + } + + // Replace "~" with user's home directory. + if ('~' === $path[0]) { + $path = self::getHomeDirectory().substr($path, 1); + } + + $path = self::normalize($path); + + [$root, $pathWithoutRoot] = self::split($path); + + $canonicalParts = self::findCanonicalParts($root, $pathWithoutRoot); + + // Add the root directory again + self::$buffer[$path] = $canonicalPath = $root.implode('/', $canonicalParts); + ++self::$bufferSize; + + // Clean up regularly to prevent memory leaks + if (self::$bufferSize > self::CLEANUP_THRESHOLD) { + self::$buffer = \array_slice(self::$buffer, -self::CLEANUP_SIZE, null, true); + self::$bufferSize = self::CLEANUP_SIZE; + } + + return $canonicalPath; + } + + /** + * Normalizes the given path. + * + * During normalization, all slashes are replaced by forward slashes ("/"). + * Contrary to {@link canonicalize()}, this method does not remove invalid + * or dot path segments. Consequently, it is much more efficient and should + * be used whenever the given path is known to be a valid, absolute system + * path. + * + * This method is able to deal with both UNIX and Windows paths. + */ + public static function normalize(string $path): string + { + return str_replace('\\', '/', $path); + } + + /** + * Returns the directory part of the path. + * + * This method is similar to PHP's dirname(), but handles various cases + * where dirname() returns a weird result: + * + * - dirname() does not accept backslashes on UNIX + * - dirname("C:/symfony") returns "C:", not "C:/" + * - dirname("C:/") returns ".", not "C:/" + * - dirname("C:") returns ".", not "C:/" + * - dirname("symfony") returns ".", not "" + * - dirname() does not canonicalize the result + * + * This method fixes these shortcomings and behaves like dirname() + * otherwise. + * + * The result is a canonical path. + * + * @return string The canonical directory part. Returns the root directory + * if the root directory is passed. Returns an empty string + * if a relative path is passed that contains no slashes. + * Returns an empty string if an empty string is passed. + */ + public static function getDirectory(string $path): string + { + if ('' === $path) { + return ''; + } + + $path = self::canonicalize($path); + + // Maintain scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $scheme = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + if (false === $dirSeparatorPosition = strrpos($path, '/')) { + return ''; + } + + // Directory equals root directory "/" + if (0 === $dirSeparatorPosition) { + return $scheme.'/'; + } + + // Directory equals Windows root "C:/" + if (2 === $dirSeparatorPosition && ctype_alpha($path[0]) && ':' === $path[1]) { + return $scheme.substr($path, 0, 3); + } + + return $scheme.substr($path, 0, $dirSeparatorPosition); + } + + /** + * Returns canonical path of the user's home directory. + * + * Supported operating systems: + * + * - UNIX + * - Windows8 and upper + * + * If your operating system or environment isn't supported, an exception is thrown. + * + * The result is a canonical path. + * + * @throws RuntimeException If your operating system or environment isn't supported + */ + public static function getHomeDirectory(): string + { + // For UNIX support + if (getenv('HOME')) { + return self::canonicalize(getenv('HOME')); + } + + // For >= Windows8 support + if (getenv('HOMEDRIVE') && getenv('HOMEPATH')) { + return self::canonicalize(getenv('HOMEDRIVE').getenv('HOMEPATH')); + } + + throw new RuntimeException("Cannot find the home directory path: Your environment or operating system isn't supported."); + } + + /** + * Returns the root directory of a path. + * + * The result is a canonical path. + * + * @return string The canonical root directory. Returns an empty string if + * the given path is relative or empty. + */ + public static function getRoot(string $path): string + { + if ('' === $path) { + return ''; + } + + // Maintain scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $scheme = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + $firstCharacter = $path[0]; + + // UNIX root "/" or "\" (Windows style) + if ('/' === $firstCharacter || '\\' === $firstCharacter) { + return $scheme.'/'; + } + + $length = \strlen($path); + + // Windows root + if ($length > 1 && ':' === $path[1] && ctype_alpha($firstCharacter)) { + // Special case: "C:" + if (2 === $length) { + return $scheme.$path.'/'; + } + + // Normal case: "C:/ or "C:\" + if ('/' === $path[2] || '\\' === $path[2]) { + return $scheme.$firstCharacter.$path[1].'/'; + } + } + + return ''; + } + + /** + * Returns the file name without the extension from a file path. + * + * @param string|null $extension if specified, only that extension is cut + * off (may contain leading dot) + */ + public static function getFilenameWithoutExtension(string $path, ?string $extension = null): string + { + if ('' === $path) { + return ''; + } + + if (null !== $extension) { + // remove extension and trailing dot + return rtrim(basename($path, $extension), '.'); + } + + return pathinfo($path, \PATHINFO_FILENAME); + } + + /** + * Returns the extension from a file path (without leading dot). + * + * @param bool $forceLowerCase forces the extension to be lower-case + */ + public static function getExtension(string $path, bool $forceLowerCase = false): string + { + if ('' === $path) { + return ''; + } + + $extension = pathinfo($path, \PATHINFO_EXTENSION); + + if ($forceLowerCase) { + $extension = self::toLower($extension); + } + + return $extension; + } + + /** + * Returns whether the path has an (or the specified) extension. + * + * @param string $path the path string + * @param string|string[]|null $extensions if null or not provided, checks if + * an extension exists, otherwise + * checks for the specified extension + * or array of extensions (with or + * without leading dot) + * @param bool $ignoreCase whether to ignore case-sensitivity + */ + public static function hasExtension(string $path, $extensions = null, bool $ignoreCase = false): bool + { + if ('' === $path) { + return false; + } + + $actualExtension = self::getExtension($path, $ignoreCase); + + // Only check if path has any extension + if ([] === $extensions || null === $extensions) { + return '' !== $actualExtension; + } + + if (\is_string($extensions)) { + $extensions = [$extensions]; + } + + foreach ($extensions as $key => $extension) { + if ($ignoreCase) { + $extension = self::toLower($extension); + } + + // remove leading '.' in extensions array + $extensions[$key] = ltrim($extension, '.'); + } + + return \in_array($actualExtension, $extensions, true); + } + + /** + * Changes the extension of a path string. + * + * @param string $path The path string with filename.ext to change. + * @param string $extension new extension (with or without leading dot) + * + * @return string the path string with new file extension + */ + public static function changeExtension(string $path, string $extension): string + { + if ('' === $path) { + return ''; + } + + $actualExtension = self::getExtension($path); + $extension = ltrim($extension, '.'); + + // No extension for paths + if (str_ends_with($path, '/')) { + return $path; + } + + // No actual extension in path + if (!$actualExtension) { + return $path.(str_ends_with($path, '.') ? '' : '.').$extension; + } + + return substr($path, 0, -\strlen($actualExtension)).$extension; + } + + /** + * Returns whether the given path is absolute. + */ + public static function isAbsolute(string $path): bool + { + return '' !== $path && (strspn($path, '/\\', 0, 1) + || (\strlen($path) > 3 && ctype_alpha($path[0]) + && ':' === $path[1] + && strspn($path, '/\\', 2, 1) + ) + || null !== parse_url($path, \PHP_URL_SCHEME) + ); + } + + public static function isRelative(string $path): bool + { + return !self::isAbsolute($path); + } + + /** + * Turns a relative path into an absolute path in canonical form. + * + * Usually, the relative path is appended to the given base path. Dot + * segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * echo Path::makeAbsolute("../style.css", "/symfony/puli/css"); + * // => /symfony/puli/style.css + * ``` + * + * If an absolute path is passed, that path is returned unless its root + * directory is different than the one of the base path. In that case, an + * exception is thrown. + * + * ```php + * Path::makeAbsolute("/style.css", "/symfony/puli/css"); + * // => /style.css + * + * Path::makeAbsolute("C:/style.css", "C:/symfony/puli/css"); + * // => C:/style.css + * + * Path::makeAbsolute("C:/style.css", "/symfony/puli/css"); + * // InvalidArgumentException + * ``` + * + * If the base path is not an absolute path, an exception is thrown. + * + * The result is a canonical path. + * + * @param string $basePath an absolute base path + * + * @throws InvalidArgumentException if the base path is not absolute or if + * the given path is an absolute path with + * a different root than the base path + */ + public static function makeAbsolute(string $path, string $basePath): string + { + if ('' === $basePath) { + throw new InvalidArgumentException(\sprintf('The base path must be a non-empty string. Got: "%s".', $basePath)); + } + + if (!self::isAbsolute($basePath)) { + throw new InvalidArgumentException(\sprintf('The base path "%s" is not an absolute path.', $basePath)); + } + + if (self::isAbsolute($path)) { + return self::canonicalize($path); + } + + if (false !== $schemeSeparatorPosition = strpos($basePath, '://')) { + $scheme = substr($basePath, 0, $schemeSeparatorPosition + 3); + $basePath = substr($basePath, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + return $scheme.self::canonicalize(rtrim($basePath, '/\\').'/'.$path); + } + + /** + * Turns a path into a relative path. + * + * The relative path is created relative to the given base path: + * + * ```php + * echo Path::makeRelative("/symfony/style.css", "/symfony/puli"); + * // => ../style.css + * ``` + * + * If a relative path is passed and the base path is absolute, the relative + * path is returned unchanged: + * + * ```php + * Path::makeRelative("style.css", "/symfony/puli/css"); + * // => style.css + * ``` + * + * If both paths are relative, the relative path is created with the + * assumption that both paths are relative to the same directory: + * + * ```php + * Path::makeRelative("style.css", "symfony/puli/css"); + * // => ../../../style.css + * ``` + * + * If both paths are absolute, their root directory must be the same, + * otherwise an exception is thrown: + * + * ```php + * Path::makeRelative("C:/symfony/style.css", "/symfony/puli"); + * // InvalidArgumentException + * ``` + * + * If the passed path is absolute, but the base path is not, an exception + * is thrown as well: + * + * ```php + * Path::makeRelative("/symfony/style.css", "symfony/puli"); + * // InvalidArgumentException + * ``` + * + * If the base path is not an absolute path, an exception is thrown. + * + * The result is a canonical path. + * + * @throws InvalidArgumentException if the base path is not absolute or if + * the given path has a different root + * than the base path + */ + public static function makeRelative(string $path, string $basePath): string + { + $path = self::canonicalize($path); + $basePath = self::canonicalize($basePath); + + [$root, $relativePath] = self::split($path); + [$baseRoot, $relativeBasePath] = self::split($basePath); + + // If the base path is given as absolute path and the path is already + // relative, consider it to be relative to the given absolute path + // already + if ('' === $root && '' !== $baseRoot) { + // If base path is already in its root + if ('' === $relativeBasePath) { + $relativePath = ltrim($relativePath, './\\'); + } + + return $relativePath; + } + + // If the passed path is absolute, but the base path is not, we + // cannot generate a relative path + if ('' !== $root && '' === $baseRoot) { + throw new InvalidArgumentException(\sprintf('The absolute path "%s" cannot be made relative to the relative path "%s". You should provide an absolute base path instead.', $path, $basePath)); + } + + // Fail if the roots of the two paths are different + if ($baseRoot && $root !== $baseRoot) { + throw new InvalidArgumentException(\sprintf('The path "%s" cannot be made relative to "%s", because they have different roots ("%s" and "%s").', $path, $basePath, $root, $baseRoot)); + } + + if ('' === $relativeBasePath) { + return $relativePath; + } + + // Build a "../../" prefix with as many "../" parts as necessary + $parts = explode('/', $relativePath); + $baseParts = explode('/', $relativeBasePath); + $dotDotPrefix = ''; + + // Once we found a non-matching part in the prefix, we need to add + // "../" parts for all remaining parts + $match = true; + + foreach ($baseParts as $index => $basePart) { + if ($match && isset($parts[$index]) && $basePart === $parts[$index]) { + unset($parts[$index]); + + continue; + } + + $match = false; + $dotDotPrefix .= '../'; + } + + return rtrim($dotDotPrefix.implode('/', $parts), '/'); + } + + /** + * Returns whether the given path is on the local filesystem. + */ + public static function isLocal(string $path): bool + { + return '' !== $path && !str_contains($path, '://'); + } + + /** + * Returns the longest common base path in canonical form of a set of paths or + * `null` if the paths are on different Windows partitions. + * + * Dot segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * '/symfony/css/style.css', + * '/symfony/css/..' + * ); + * // => /symfony + * ``` + * + * The root is returned if no common base path can be found: + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * '/symfony/css/style.css', + * '/puli/css/..' + * ); + * // => / + * ``` + * + * If the paths are located on different Windows partitions, `null` is + * returned. + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * 'C:/symfony/css/style.css', + * 'D:/symfony/css/..' + * ); + * // => null + * ``` + */ + public static function getLongestCommonBasePath(string ...$paths): ?string + { + [$bpRoot, $basePath] = self::split(self::canonicalize(reset($paths))); + + for (next($paths); null !== key($paths) && '' !== $basePath; next($paths)) { + [$root, $path] = self::split(self::canonicalize(current($paths))); + + // If we deal with different roots (e.g. C:/ vs. D:/), it's time + // to quit + if ($root !== $bpRoot) { + return null; + } + + // Make the base path shorter until it fits into path + while (true) { + if ('.' === $basePath) { + // No more base paths + $basePath = ''; + + // next path + continue 2; + } + + // Prevent false positives for common prefixes + // see isBasePath() + if (str_starts_with($path.'/', $basePath.'/')) { + // next path + continue 2; + } + + $basePath = \dirname($basePath); + } + } + + return $bpRoot.$basePath; + } + + /** + * Joins two or more path strings into a canonical path. + */ + public static function join(string ...$paths): string + { + $finalPath = null; + $wasScheme = false; + + foreach ($paths as $path) { + if ('' === $path) { + continue; + } + + if (null === $finalPath) { + // For first part we keep slashes, like '/top', 'C:\' or 'phar://' + $finalPath = $path; + $wasScheme = str_contains($path, '://'); + continue; + } + + // Only add slash if previous part didn't end with '/' or '\' + if (!\in_array(substr($finalPath, -1), ['/', '\\'], true)) { + $finalPath .= '/'; + } + + // If first part included a scheme like 'phar://' we allow \current part to start with '/', otherwise trim + $finalPath .= $wasScheme ? $path : ltrim($path, '/'); + $wasScheme = false; + } + + if (null === $finalPath) { + return ''; + } + + return self::canonicalize($finalPath); + } + + /** + * Returns whether a path is a base path of another path. + * + * Dot segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * Path::isBasePath('/symfony', '/symfony/css'); + * // => true + * + * Path::isBasePath('/symfony', '/symfony'); + * // => true + * + * Path::isBasePath('/symfony', '/symfony/..'); + * // => false + * + * Path::isBasePath('/symfony', '/puli'); + * // => false + * ``` + */ + public static function isBasePath(string $basePath, string $ofPath): bool + { + $basePath = self::canonicalize($basePath); + $ofPath = self::canonicalize($ofPath); + + // Append slashes to prevent false positives when two paths have + // a common prefix, for example /base/foo and /base/foobar. + // Don't append a slash for the root "/", because then that root + // won't be discovered as common prefix ("//" is not a prefix of + // "/foobar/"). + return str_starts_with($ofPath.'/', rtrim($basePath, '/').'/'); + } + + /** + * @return string[] + */ + private static function findCanonicalParts(string $root, string $pathWithoutRoot): array + { + $parts = explode('/', $pathWithoutRoot); + + $canonicalParts = []; + + // Collapse "." and "..", if possible + foreach ($parts as $part) { + if ('.' === $part || '' === $part) { + continue; + } + + // Collapse ".." with the previous part, if one exists + // Don't collapse ".." if the previous part is also ".." + if ('..' === $part && \count($canonicalParts) > 0 && '..' !== $canonicalParts[\count($canonicalParts) - 1]) { + array_pop($canonicalParts); + + continue; + } + + // Only add ".." prefixes for relative paths + if ('..' !== $part || '' === $root) { + $canonicalParts[] = $part; + } + } + + return $canonicalParts; + } + + /** + * Splits a canonical path into its root directory and the remainder. + * + * If the path has no root directory, an empty root directory will be + * returned. + * + * If the root directory is a Windows style partition, the resulting root + * will always contain a trailing slash. + * + * list ($root, $path) = Path::split("C:/symfony") + * // => ["C:/", "symfony"] + * + * list ($root, $path) = Path::split("C:") + * // => ["C:/", ""] + * + * @return array{string, string} an array with the root directory and the remaining relative path + */ + private static function split(string $path): array + { + if ('' === $path) { + return ['', '']; + } + + // Remember scheme as part of the root, if any + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $root = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $root = ''; + } + + $length = \strlen($path); + + // Remove and remember root directory + if (str_starts_with($path, '/')) { + $root .= '/'; + $path = $length > 1 ? substr($path, 1) : ''; + } elseif ($length > 1 && ctype_alpha($path[0]) && ':' === $path[1]) { + if (2 === $length) { + // Windows special case: "C:" + $root .= $path.'/'; + $path = ''; + } elseif ('/' === $path[2]) { + // Windows normal case: "C:/".. + $root .= substr($path, 0, 3); + $path = $length > 3 ? substr($path, 3) : ''; + } + } + + return [$root, $path]; + } + + private static function toLower(string $string): string + { + if (false !== $encoding = mb_detect_encoding($string, null, true)) { + return mb_strtolower($string, $encoding); + } + + return strtolower($string); + } + + private function __construct() + { + } +} diff --git a/symfony/process/Exception/ProcessFailedException.php b/symfony/process/Exception/ProcessFailedException.php index 19b40570c..29cd386bb 100644 --- a/symfony/process/Exception/ProcessFailedException.php +++ b/symfony/process/Exception/ProcessFailedException.php @@ -28,7 +28,7 @@ public function __construct(Process $process) throw new InvalidArgumentException('Expected a failed process, but the given process was successful.'); } - $error = sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s", + $error = \sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s", $process->getCommandLine(), $process->getExitCode(), $process->getExitCodeText(), @@ -36,7 +36,7 @@ public function __construct(Process $process) ); if (!$process->isOutputDisabled()) { - $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", + $error .= \sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput() ); diff --git a/symfony/process/Exception/ProcessSignaledException.php b/symfony/process/Exception/ProcessSignaledException.php index 0fed8ac30..12eb4b3b8 100644 --- a/symfony/process/Exception/ProcessSignaledException.php +++ b/symfony/process/Exception/ProcessSignaledException.php @@ -26,7 +26,7 @@ public function __construct(Process $process) { $this->process = $process; - parent::__construct(sprintf('The process has been signaled with signal "%s".', $process->getTermSignal())); + parent::__construct(\sprintf('The process has been signaled with signal "%s".', $process->getTermSignal())); } public function getProcess(): Process diff --git a/symfony/process/Exception/ProcessTimedOutException.php b/symfony/process/Exception/ProcessTimedOutException.php index 1cecdae75..94c1a33af 100644 --- a/symfony/process/Exception/ProcessTimedOutException.php +++ b/symfony/process/Exception/ProcessTimedOutException.php @@ -31,7 +31,7 @@ public function __construct(Process $process, int $timeoutType) $this->process = $process; $this->timeoutType = $timeoutType; - parent::__construct(sprintf( + parent::__construct(\sprintf( 'The process "%s" exceeded the timeout of %s seconds.', $process->getCommandLine(), $this->getExceededTimeout() @@ -67,7 +67,7 @@ public function getExceededTimeout(): ?float return match ($this->timeoutType) { self::TYPE_GENERAL => $this->process->getTimeout(), self::TYPE_IDLE => $this->process->getIdleTimeout(), - default => throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType)), + default => throw new \LogicException(\sprintf('Unknown timeout type "%d".', $this->timeoutType)), }; } } diff --git a/symfony/process/ExecutableFinder.php b/symfony/process/ExecutableFinder.php index 1838d54ba..4d8202621 100644 --- a/symfony/process/ExecutableFinder.php +++ b/symfony/process/ExecutableFinder.php @@ -74,7 +74,7 @@ public function find(string $name, ?string $default = null, array $extraDirs = [ $suffixes = $this->suffixes; $suffixes = array_merge($suffixes, $pathExt ? explode(\PATH_SEPARATOR, $pathExt) : ['.exe', '.bat', '.cmd', '.com']); } - $suffixes = '' !== pathinfo($name, PATHINFO_EXTENSION) ? array_merge([''], $suffixes) : array_merge($suffixes, ['']); + $suffixes = '' !== pathinfo($name, \PATHINFO_EXTENSION) ? array_merge([''], $suffixes) : array_merge($suffixes, ['']); foreach ($suffixes as $suffix) { foreach ($dirs as $dir) { if ('' === $dir) { diff --git a/symfony/process/InputStream.php b/symfony/process/InputStream.php index 931217c85..3bcbfe84d 100644 --- a/symfony/process/InputStream.php +++ b/symfony/process/InputStream.php @@ -50,7 +50,7 @@ public function write(mixed $input) return; } if ($this->isClosed()) { - throw new RuntimeException(sprintf('"%s" is closed.', static::class)); + throw new RuntimeException(\sprintf('"%s" is closed.', static::class)); } $this->input[] = ProcessUtils::validateInput(__METHOD__, $input); } diff --git a/symfony/process/PhpProcess.php b/symfony/process/PhpProcess.php index 6e2ab59fb..db6ebf2a2 100644 --- a/symfony/process/PhpProcess.php +++ b/symfony/process/PhpProcess.php @@ -52,7 +52,7 @@ public function __construct(string $script, ?string $cwd = null, ?array $env = n public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, mixed $input = null, ?float $timeout = 60): static { - throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); + throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); } /** diff --git a/symfony/process/PhpSubprocess.php b/symfony/process/PhpSubprocess.php index 04fd8ea87..bdd4173c2 100644 --- a/symfony/process/PhpSubprocess.php +++ b/symfony/process/PhpSubprocess.php @@ -75,7 +75,7 @@ public function __construct(array $command, ?string $cwd = null, ?array $env = n public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, mixed $input = null, ?float $timeout = 60): static { - throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); + throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); } public function start(?callable $callback = null, array $env = []): void diff --git a/symfony/process/Pipes/AbstractPipes.php b/symfony/process/Pipes/AbstractPipes.php index cbbb72770..49a14da09 100644 --- a/symfony/process/Pipes/AbstractPipes.php +++ b/symfony/process/Pipes/AbstractPipes.php @@ -52,14 +52,26 @@ public function close(): void /** * Returns true if a system call has been interrupted. + * + * stream_select() returns false when the `select` system call is interrupted by an incoming signal. */ protected function hasSystemCallBeenInterrupted(): bool { $lastError = $this->lastError; $this->lastError = null; - // stream_select returns false when the `select` system call is interrupted by an incoming signal - return null !== $lastError && false !== stripos($lastError, 'interrupted system call'); + if (null === $lastError) { + return false; + } + + if (false !== stripos($lastError, 'interrupted system call')) { + return true; + } + + // on applications with a different locale than english, the message above is not found because + // it's translated. So we also check for the SOCKET_EINTR constant which is defined under + // Windows and UNIX-like platforms (if available on the platform). + return \defined('SOCKET_EINTR') && str_starts_with($lastError, 'stream_select(): Unable to select ['.\SOCKET_EINTR.']'); } /** @@ -72,10 +84,10 @@ protected function unblock(): void } foreach ($this->pipes as $pipe) { - stream_set_blocking($pipe, 0); + stream_set_blocking($pipe, false); } if (\is_resource($this->input)) { - stream_set_blocking($this->input, 0); + stream_set_blocking($this->input, false); } $this->blocked = false; @@ -97,11 +109,11 @@ protected function write(): ?array if (!$input->valid()) { $input = null; } elseif (\is_resource($input = $input->current())) { - stream_set_blocking($input, 0); + stream_set_blocking($input, false); } elseif (!isset($this->inputBuffer[0])) { if (!\is_string($input)) { if (!\is_scalar($input)) { - throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input))); + throw new InvalidArgumentException(\sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input))); } $input = (string) $input; } @@ -123,9 +135,11 @@ protected function write(): ?array foreach ($w as $stdin) { if (isset($this->inputBuffer[0])) { - $written = fwrite($stdin, $this->inputBuffer); + if (false === $written = @fwrite($stdin, $this->inputBuffer)) { + return $this->closeBrokenInputPipe(); + } $this->inputBuffer = substr($this->inputBuffer, $written); - if (isset($this->inputBuffer[0])) { + if (isset($this->inputBuffer[0]) && isset($this->pipes[0])) { return [$this->pipes[0]]; } } @@ -136,12 +150,14 @@ protected function write(): ?array if (!isset($data[0])) { break; } - $written = fwrite($stdin, $data); + if (false === $written = @fwrite($stdin, $data)) { + return $this->closeBrokenInputPipe(); + } $data = substr($data, $written); if (isset($data[0])) { $this->inputBuffer = $data; - return [$this->pipes[0]]; + return isset($this->pipes[0]) ? [$this->pipes[0]] : null; } } if (feof($input)) { @@ -166,6 +182,18 @@ protected function write(): ?array return null; } + private function closeBrokenInputPipe(): void + { + $this->lastError = error_get_last()['message'] ?? null; + if (\is_resource($this->pipes[0] ?? null)) { + fclose($this->pipes[0]); + } + unset($this->pipes[0]); + + $this->input = null; + $this->inputBuffer = ''; + } + /** * @internal */ diff --git a/symfony/process/Pipes/UnixPipes.php b/symfony/process/Pipes/UnixPipes.php index 7bd0db0e9..8838c68af 100644 --- a/symfony/process/Pipes/UnixPipes.php +++ b/symfony/process/Pipes/UnixPipes.php @@ -35,12 +35,12 @@ public function __construct(?bool $ttyMode, bool $ptyMode, mixed $input, bool $h parent::__construct($input); } - public function __sleep(): array + public function __serialize(): array { throw new \BadMethodCallException('Cannot serialize '.__CLASS__); } - public function __wakeup(): void + public function __unserialize(array $data): void { throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); } @@ -74,7 +74,7 @@ public function getDescriptors(): array return [ ['pty'], ['pty'], - ['pty'], + ['pipe', 'w'], // stderr needs to be in a pipe to correctly split error and output, since PHP will use the same stream for both ]; } diff --git a/symfony/process/Pipes/WindowsPipes.php b/symfony/process/Pipes/WindowsPipes.php index 8033442a4..bec37358c 100644 --- a/symfony/process/Pipes/WindowsPipes.php +++ b/symfony/process/Pipes/WindowsPipes.php @@ -53,7 +53,7 @@ public function __construct(mixed $input, bool $haveReadSupport) set_error_handler(function ($type, $msg) use (&$lastError) { $lastError = $msg; }); for ($i = 0;; ++$i) { foreach ($pipes as $pipe => $name) { - $file = sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name); + $file = \sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name); if (!$h = fopen($file.'.lock', 'w')) { if (file_exists($file.'.lock')) { @@ -88,12 +88,12 @@ public function __construct(mixed $input, bool $haveReadSupport) parent::__construct($input); } - public function __sleep(): array + public function __serialize(): array { throw new \BadMethodCallException('Cannot serialize '.__CLASS__); } - public function __wakeup(): void + public function __unserialize(array $data): void { throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); } diff --git a/symfony/process/Process.php b/symfony/process/Process.php index 280a732d5..ce730f98e 100644 --- a/symfony/process/Process.php +++ b/symfony/process/Process.php @@ -80,7 +80,6 @@ class Process implements \IteratorAggregate private WindowsPipes|UnixPipes $processPipes; private ?int $latestSignal = null; - private ?int $cachedExitCode = null; private static ?bool $sigchild = null; @@ -195,15 +194,12 @@ public static function fromShellCommandline(string $command, ?string $cwd = null return $process; } - public function __sleep(): array + public function __serialize(): array { throw new \BadMethodCallException('Cannot serialize '.__CLASS__); } - /** - * @return void - */ - public function __wakeup() + public function __unserialize(array $data): void { throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); } @@ -341,7 +337,7 @@ public function start(?callable $callback = null, array $env = []) } if (!is_dir($this->cwd)) { - throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd)); + throw new RuntimeException(\sprintf('The provided cwd "%s" does not exist.', $this->cwd)); } $process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); @@ -1198,7 +1194,7 @@ public function setOptions(array $options) foreach ($options as $key => $value) { if (!\in_array($key, $existingOptions)) { $this->options = $defaultOptions; - throw new LogicException(sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions))); + throw new LogicException(\sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions))); } $this->options[$key] = $value; } @@ -1289,21 +1285,10 @@ protected function updateStatus(bool $blocking) return; } - $this->processInformation = proc_get_status($this->process); - $running = $this->processInformation['running']; - - // In PHP < 8.3, "proc_get_status" only returns the correct exit status on the first call. - // Subsequent calls return -1 as the process is discarded. This workaround caches the first - // retrieved exit status for consistent results in later calls, mimicking PHP 8.3 behavior. - if (\PHP_VERSION_ID < 80300) { - if (!isset($this->cachedExitCode) && !$running && -1 !== $this->processInformation['exitcode']) { - $this->cachedExitCode = $this->processInformation['exitcode']; - } - - if (isset($this->cachedExitCode) && !$running && -1 === $this->processInformation['exitcode']) { - $this->processInformation['exitcode'] = $this->cachedExitCode; - } + if ($this->processInformation['running'] ?? true) { + $this->processInformation = proc_get_status($this->process); } + $running = $this->processInformation['running']; $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); @@ -1465,10 +1450,10 @@ private function doSignal(int $signal, bool $throwException): bool } if ('\\' === \DIRECTORY_SEPARATOR) { - exec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode); + exec(\sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode); if ($exitCode && $this->isRunning()) { if ($throwException) { - throw new RuntimeException(sprintf('Unable to kill the process (%s).', implode(' ', $output))); + throw new RuntimeException(\sprintf('Unable to kill the process (%s).', implode(' ', $output))); } return false; @@ -1478,12 +1463,12 @@ private function doSignal(int $signal, bool $throwException): bool $ok = @proc_terminate($this->process, $signal); } elseif (\function_exists('posix_kill')) { $ok = @posix_kill($pid, $signal); - } elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) { + } elseif ($ok = proc_open(\sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) { $ok = false === fgets($pipes[2]); } if (!$ok) { if ($throwException) { - throw new RuntimeException(sprintf('Error while sending signal "%s".', $signal)); + throw new RuntimeException(\sprintf('Error while sending signal "%s".', $signal)); } return false; @@ -1540,7 +1525,7 @@ function ($m) use (&$env, $uid) { if (!$comSpec && $comSpec = (new ExecutableFinder())->find('cmd.exe')) { // Escape according to CommandLineToArgvW rules - $comSpec = '"'.preg_replace('{(\\\\*+)"}', '$1$1\"', $comSpec) .'"'; + $comSpec = '"'.preg_replace('{(\\\\*+)"}', '$1$1\"', $comSpec).'"'; } $cmd = ($comSpec ?? 'cmd').' /V:ON /E:ON /D /C ('.str_replace("\n", ' ', $cmd).')'; @@ -1559,7 +1544,7 @@ function ($m) use (&$env, $uid) { private function requireProcessIsStarted(string $functionName): void { if (!$this->isStarted()) { - throw new LogicException(sprintf('Process must be started before calling "%s()".', $functionName)); + throw new LogicException(\sprintf('Process must be started before calling "%s()".', $functionName)); } } @@ -1571,7 +1556,7 @@ private function requireProcessIsStarted(string $functionName): void private function requireProcessIsTerminated(string $functionName): void { if (!$this->isTerminated()) { - throw new LogicException(sprintf('Process must be terminated before calling "%s()".', $functionName)); + throw new LogicException(\sprintf('Process must be terminated before calling "%s()".', $functionName)); } } @@ -1601,7 +1586,7 @@ private function replacePlaceholders(string $commandline, array $env): string { return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) { if (!isset($env[$matches[1]]) || false === $env[$matches[1]]) { - throw new InvalidArgumentException(sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline); + throw new InvalidArgumentException(\sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline); } return $this->escapeArgument($env[$matches[1]]); diff --git a/symfony/process/ProcessUtils.php b/symfony/process/ProcessUtils.php index 092c5ccf7..a2dbde9f7 100644 --- a/symfony/process/ProcessUtils.php +++ b/symfony/process/ProcessUtils.php @@ -56,7 +56,7 @@ public static function validateInput(string $caller, mixed $input): mixed return new \IteratorIterator($input); } - throw new InvalidArgumentException(sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller)); + throw new InvalidArgumentException(\sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller)); } return $input;