diff --git a/CHANGELOG.md b/CHANGELOG.md
index 61955eecd7..0fb514b3ba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## [Release 2.74.0](https://github.com/aws-amplify/aws-sdk-android/releases/tag/release_v2.74.0)
+
+### Features
+- **misc:** support for Calgary region launch ([#3508](https://github.com/aws-amplify/aws-sdk-android/issues/3508))
+
+[See all changes between 2.73.0 and 2.74.0](https://github.com/aws-amplify/aws-sdk-android/compare/release_v2.73.0...release_v2.74.0)
+
## [Release 2.73.0](https://github.com/aws-amplify/aws-sdk-android/releases/tag/release_v2.73.0)
### Features
diff --git a/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java b/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java
index 1105a69719..bcdc6a9966 100644
--- a/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java
+++ b/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java
@@ -722,6 +722,33 @@ public static List getRegions() {
updateRegion(region, "sqs", "sqs.il-central-1.amazonaws.com", false, true);
updateRegion(region, "sts", "sts.il-central-1.amazonaws.com", false, true);
+
+ // Support for Canada West (Calgary) `ca-west-1` region
+ region = new Region("ca-west-1", "amazonaws.com");
+ ret.add(region);
+ updateRegion(region, "autoscaling", "autoscaling.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "cognito-identity", "cognito-identity.ca-west-1.amazonaws.com",
+ false, true);
+ updateRegion(region, "cognito-idp", "cognito-idp.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "cognito-sync", "cognito-sync.ca-west-1.amazonaws.com", false,
+ true);
+ updateRegion(region, "data.iot", "data.iot.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "dynamodb", "dynamodb.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "ec2", "ec2.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "elasticloadbalancing",
+ "elasticloadbalancing.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "firehose", "firehose.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "iot", "iot.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "kinesis", "kinesis.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "kms", "kms.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "lambda", "lambda.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "logs", "logs.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "polly", "polly.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "s3", "s3.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "sdb", "sdb.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "sns", "sns.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "sqs", "sqs.ca-west-1.amazonaws.com", false, true);
+ updateRegion(region, "sts", "sts.ca-west-1.amazonaws.com", false, true);
return ret;
}
diff --git a/aws-android-sdk-core/src/main/java/com/amazonaws/regions/Regions.java b/aws-android-sdk-core/src/main/java/com/amazonaws/regions/Regions.java
index 78eb0e4e30..f5263c8d94 100644
--- a/aws-android-sdk-core/src/main/java/com/amazonaws/regions/Regions.java
+++ b/aws-android-sdk-core/src/main/java/com/amazonaws/regions/Regions.java
@@ -111,7 +111,10 @@ public enum Regions {
AP_SOUTH_2("ap-south-2"),
/** il-central-1. */
- IL_CENTRAL_1("il-central-1");
+ IL_CENTRAL_1("il-central-1"),
+
+ /** ca-west-1. */
+ CA_WEST_1("ca-west-1");
/**
* The default region that new customers in the US are encouraged to use
diff --git a/aws-android-sdk-core/src/test/java/com/amazonaws/regions/RegionUtilsTest.java b/aws-android-sdk-core/src/test/java/com/amazonaws/regions/RegionUtilsTest.java
index ec6808876c..87eb8f8a4d 100644
--- a/aws-android-sdk-core/src/test/java/com/amazonaws/regions/RegionUtilsTest.java
+++ b/aws-android-sdk-core/src/test/java/com/amazonaws/regions/RegionUtilsTest.java
@@ -46,7 +46,7 @@ public void testGetRegionByEndpointWithBogusEndpoint() {
@Test
public void testGetRegionsForService() {
List regions = RegionUtils.getRegionsForService(ServiceAbbreviations.SimpleDB);
- assertEquals(regions.size(), 16);
+ assertEquals(regions.size(), 17);
boolean usEast1 = false;
boolean usWest1 = false;
for (Region curr : regions) {
diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/Region.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/Region.java
index e4110dd85f..84c77d8d8c 100644
--- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/Region.java
+++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/Region.java
@@ -398,7 +398,19 @@ public enum Region {
* bucket in this region.
*
*/
- AP_TelAviv("il-central-1");
+ AP_TelAviv("il-central-1"),
+
+ /**
+ * The Canada West (Calgary) Region. This region uses Amazon S3 servers
+ * located in Calgary.
+ *
+ * When using buckets in this region, set the client endpoint to
+ * ca-west-1.amazonaws.com
on all requests to these buckets
+ * to reduce any latency experienced after the first hour of creating a
+ * bucket in this region.
+ *
+ */
+ CA_Calgary("ca-west-1");
/**
* Used to extract the S3 regional id from an S3 end point. Note this
diff --git a/gradle.properties b/gradle.properties
index b296a7a859..804dd7408d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -25,7 +25,7 @@ android.enableJetifier=true
GROUP=com.amazonaws
-VERSION_NAME=2.73.0
+VERSION_NAME=2.74.0
POM_URL=https://github.com/aws/aws-sdk-android
POM_SCM_URL=https://github.com/aws/aws-sdk-android