diff --git a/CHANGELOG.md b/CHANGELOG.md
index b99970f0f1f469841e981d5455c31800c895d3a5..ccaf19f43dbede055201794964584578e58ba23a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
## NOT RELEASED
+## 1.9.0
+
+### Added
+
+- AWS api-change: Make supported regions explicit
+
## 1.8.0
### Added
diff --git a/composer.json b/composer.json
index e061f2493eb8f8a55731c2e5a61363b0ae580ce4..d6424f3faffa59ff28f94acec7dce737cf71e3ba 100644
--- a/composer.json
+++ b/composer.json
@@ -28,7 +28,7 @@
},
"extra": {
"branch-alias": {
- "dev-master": "1.8-dev"
+ "dev-master": "1.9-dev"
}
}
}
diff --git a/src/SnsClient.php b/src/SnsClient.php
index 34c9102b2879485ee7234bf417ecea5ca0b20753..63dd3fef2efdf011dae59261eb1c26c097eced55 100644
--- a/src/SnsClient.php
+++ b/src/SnsClient.php
@@ -6,6 +6,7 @@ use AsyncAws\Core\AbstractApi;
use AsyncAws\Core\AwsError\AwsErrorFactoryInterface;
use AsyncAws\Core\AwsError\XmlAwsErrorFactory;
use AsyncAws\Core\Configuration;
+use AsyncAws\Core\Exception\UnsupportedRegion;
use AsyncAws\Core\RequestContext;
use AsyncAws\Core\Result;
use AsyncAws\Sns\Exception\AuthorizationErrorException;
@@ -547,6 +548,44 @@ class SnsClient extends AbstractApi
}
switch ($region) {
+ case 'af-south-1':
+ case 'ap-east-1':
+ case 'ap-northeast-1':
+ case 'ap-northeast-2':
+ case 'ap-northeast-3':
+ case 'ap-south-1':
+ case 'ap-south-2':
+ case 'ap-southeast-1':
+ case 'ap-southeast-2':
+ case 'ap-southeast-3':
+ case 'ap-southeast-4':
+ case 'ap-southeast-5':
+ case 'ap-southeast-7':
+ case 'ca-central-1':
+ case 'ca-west-1':
+ case 'eu-central-1':
+ case 'eu-central-2':
+ case 'eu-north-1':
+ case 'eu-south-1':
+ case 'eu-south-2':
+ case 'eu-west-1':
+ case 'eu-west-2':
+ case 'eu-west-3':
+ case 'il-central-1':
+ case 'me-central-1':
+ case 'me-south-1':
+ case 'mx-central-1':
+ case 'sa-east-1':
+ case 'us-east-1':
+ case 'us-east-2':
+ case 'us-west-1':
+ case 'us-west-2':
+ return [
+ 'endpoint' => "https://sns.$region.amazonaws.com",
+ 'signRegion' => $region,
+ 'signService' => 'sns',
+ 'signVersions' => ['v4'],
+ ];
case 'cn-north-1':
case 'cn-northwest-1':
return [
@@ -591,6 +630,7 @@ class SnsClient extends AbstractApi
'signVersions' => ['v4'],
];
case 'fips-us-gov-east-1':
+ case 'us-gov-east-1':
return [
'endpoint' => 'https://sns.us-gov-east-1.amazonaws.com',
'signRegion' => 'us-gov-east-1',
@@ -598,6 +638,7 @@ class SnsClient extends AbstractApi
'signVersions' => ['v4'],
];
case 'fips-us-gov-west-1':
+ case 'us-gov-west-1':
return [
'endpoint' => 'https://sns.us-gov-west-1.amazonaws.com',
'signRegion' => 'us-gov-west-1',
@@ -629,11 +670,6 @@ class SnsClient extends AbstractApi
];
}
- return [
- 'endpoint' => "https://sns.$region.amazonaws.com",
- 'signRegion' => $region,
- 'signService' => 'sns',
- 'signVersions' => ['v4'],
- ];
+ throw new UnsupportedRegion(\sprintf('The region "%s" is not supported by "Sns".', $region));
}
}