Index: boto/sns/__init__.py |
diff --git a/boto/sns/__init__.py b/boto/sns/__init__.py |
index 9c5a7d747c7583131ba78e1bbecfcff96839ebb1..c74866128b0cf8930393ef5c28a17f812c065d49 100644 |
--- a/boto/sns/__init__.py |
+++ b/boto/sns/__init__.py |
@@ -23,3 +23,62 @@ |
# this is here for backward compatibility |
# originally, the SNSConnection class was defined here |
from connection import SNSConnection |
+from boto.regioninfo import RegionInfo |
+ |
+def regions(): |
+ """ |
+ Get all available regions for the SNS service. |
+ |
+ :rtype: list |
+ :return: A list of :class:`boto.regioninfo.RegionInfo` instances |
+ """ |
+ return [RegionInfo(name='us-east-1', |
+ endpoint='sns.us-east-1.amazonaws.com', |
+ connection_cls=SNSConnection), |
+ RegionInfo(name='eu-west-1', |
+ endpoint='sns.eu-west-1.amazonaws.com', |
+ connection_cls=SNSConnection), |
+ RegionInfo(name='us-west-1', |
+ endpoint='sns.us-west-1.amazonaws.com', |
+ connection_cls=SNSConnection), |
+ RegionInfo(name='ap-northeast-1', |
+ endpoint='sns.ap-northeast-1.amazonaws.com', |
+ connection_cls=SNSConnection), |
+ RegionInfo(name='ap-southeast-1', |
+ endpoint='sns.ap-southeast-1.amazonaws.com', |
+ connection_cls=SNSConnection), |
+ ] |
+ |
+def connect_to_region(region_name, **kw_params): |
+ """ |
+ Given a valid region name, return a |
+ :class:`boto.sns.connection.SNSConnection`. |
+ |
+ :type: str |
+ :param region_name: The name of the region to connect to. |
+ |
+ :rtype: :class:`boto.sns.connection.SNSConnection` or ``None`` |
+ :return: A connection to the given region, or None if an invalid region |
+ name is given |
+ """ |
+ for region in regions(): |
+ if region.name == region_name: |
+ return region.connect(**kw_params) |
+ return None |
+ |
+def get_region(region_name, **kw_params): |
+ """ |
+ Find and return a :class:`boto.regioninfo.RegionInfo` object |
+ given a region name. |
+ |
+ :type: str |
+ :param: The name of the region. |
+ |
+ :rtype: :class:`boto.regioninfo.RegionInfo` |
+ :return: The RegionInfo object for the given region or None if |
+ an invalid region name is provided. |
+ """ |
+ for region in regions(**kw_params): |
+ if region.name == region_name: |
+ return region |
+ return None |