diff --git a/README.rst b/README.rst
index ce35b06..0bdbd4b 100644
--- a/README.rst
+++ b/README.rst
@@ -66,6 +66,7 @@ To use it:
    arguments as well.
 -  Run ``awslogin --profile <profile name>`` to specifiy an alternative
    profile
+-  Run ``awslogin --region <region name>`` to specify a different region. The default region is *us-west-2*.
 -  Run ``awslogin --status`` for the current status of the default profile
 -  Run ``awslogin --status --profile dev`` for the current status of the
    dev profile
diff --git a/byu_awslogin/index.py b/byu_awslogin/index.py
index 7abb2fc..b0a82a6 100755
--- a/byu_awslogin/index.py
+++ b/byu_awslogin/index.py
@@ -22,7 +22,7 @@ except ImportError:
 from .util.data_cache import get_status, load_cached_adfs_auth
 from .login import cached_login, non_cached_login
 
-__VERSION__ = '0.12.3'
+__VERSION__ = '0.12.4'
 
 # Enable VT Mode on windows terminal code from:
 # https://bugs.python.org/issue29059
@@ -41,8 +41,9 @@ if platform.system().lower() == 'windows':
 @click.option('-a', '--account', help='Account to login with')
 @click.option('-r', '--role', help='Role to use after login')
 @click.option('-p', '--profile', default='default', help='Profile to use store credentials. Defaults to default')
+@click.option('--region', default='us-west-2', help="The AWS region you will be hitting")
 @click.option('-s', '--status', is_flag=True, default=False, help='Display current logged in status. Use profile all to see all statuses')
-def cli(account, role, profile, status):
+def cli(account, role, profile, region, status):
     _ensure_min_python_version()
 
     # Display status and exit if the user specified the "-s" flag
@@ -53,10 +54,10 @@ def cli(account, role, profile, status):
     # Use cached SAML assertion if already logged in, else login to ADFS
     adfs_auth_result = load_cached_adfs_auth()
     if adfs_auth_result:
-        cached_login(account, role, profile, adfs_auth_result)
+        cached_login(account, role, profile, region, adfs_auth_result)
         pass
     else:
-        non_cached_login(account, role, profile)
+        non_cached_login(account, role, profile, region)
 
 
 def _ensure_min_python_version():
diff --git a/byu_awslogin/login.py b/byu_awslogin/login.py
index deb5354..01abe74 100644
--- a/byu_awslogin/login.py
+++ b/byu_awslogin/login.py
@@ -8,16 +8,16 @@ from .util.consoleeffects import Colors
 from .util.data_cache import load_last_netid, write_to_config_file, write_to_cred_file, cache_adfs_auth
 
 
-def cached_login(account, role, profile, adfs_auth_result):
+def cached_login(account, role, profile, region, adfs_auth_result):
     saml_assertion = get_saml_assertion(adfs_auth_result)
 
     if not saml_assertion: # Not logged in anymore, so need to re-login
-        non_cached_login(account, role, profile)
+        non_cached_login(account, role, profile, region)
     else: # Still logged in and got a SAML assertion properly
-        _perform_login(adfs_auth_result, saml_assertion, account, role, profile, None)
+        _perform_login(adfs_auth_result, saml_assertion, account, role, profile, None, region)
 
 
-def non_cached_login(account, role, profile):
+def non_cached_login(account, role, profile, region):
     # Get the federated credentials from the user
     net_id, username = _get_user_ids(profile)
     password = getpass.getpass()
@@ -35,10 +35,10 @@ def non_cached_login(account, role, profile):
     del password
 
     saml_assertion = get_saml_assertion(adfs_auth_result)
-    _perform_login(adfs_auth_result, saml_assertion, account, role, profile, net_id)
+    _perform_login(adfs_auth_result, saml_assertion, account, role, profile, net_id, region)
 
 
-def _perform_login(adfs_auth_result, saml_assertion, account, role, profile, net_id):
+def _perform_login(adfs_auth_result, saml_assertion, account, role, profile, net_id, region):
     account_roles_to_assume = _prompt_for_roles_to_assume(saml_assertion, account, role)
 
     # Assume all requested roles and set in the environment
@@ -50,7 +50,7 @@ def _perform_login(adfs_auth_result, saml_assertion, account, role, profile, net
             profile = account_role_to_assume.account_name
 
         write_to_cred_file(profile, aws_session_token)
-        write_to_config_file(profile, net_id, 'us-west-2', account_role_to_assume.role_name,
+        write_to_config_file(profile, net_id, region, account_role_to_assume.role_name,
                              account_role_to_assume.account_name)
         _print_status_message(account_role_to_assume)
 

Add optional parameter for region
Add an optional parameter to specify a region other than us-west-2. Use case is a Alexa and lex and potentially others aren't available in us-west-2
diff --git a/test/byu_awslogin/test_login.py b/test/byu_awslogin/test_login.py
index 70f60dc..ce1b289 100644
--- a/test/byu_awslogin/test_login.py
+++ b/test/byu_awslogin/test_login.py
@@ -21,7 +21,7 @@ def test_cached_login(mock_cache_adfs_auth, mock_write_to_config_file,
     ]
     mock_assume_role.return_value = "FakeSessionToken"
 
-    cached_login("FakeAccount", None, "default", {})
+    cached_login("FakeAccount", None, "default", {}, 'us-west-2')
 
     assert mock_get_saml_assertion.call_count == 1
     assert mock_prompt_roles.call_count == 1
@@ -54,7 +54,7 @@ def test_non_cached_login(mock_cache_adfs_auth, mock_write_to_config_file,
     ]
     mock_assume_role.return_value = "FakeSessionToken"
 
-    non_cached_login("FakeAccount", None, "default")
+    non_cached_login("FakeAccount", None, "default", 'us-west-2')
 
     assert mock_get_user_ids.call_count == 1
     assert mock_get_password.call_count == 1

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y python3.6
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
awscli==1.11.96
beautifulsoup4==4.6.0
boto3==1.4.4
botocore==1.5.59
-e git+https://github.com/byu-oit/awslogin.git@8411dc178a022c92be40eeea820bcce1b15c2450#egg=byu_awslogin
certifi==2017.4.17
chardet==3.0.3
click==8.0.4
colorama==0.3.7
docutils==0.13.1
idna==2.5
importlib-metadata==4.8.3
iniconfig==1.1.1
jmespath==0.9.3
lxml==5.3.1
packaging==21.3
pluggy==1.0.0
py==1.11.0
pyasn1==0.5.1
pyparsing==3.1.4
pytest==7.0.1
python-dateutil==2.6.0
PyYAML==3.12
requests==2.17.3
rsa==3.4.2
s3transfer==0.1.10
six==1.10.0
tomli==1.2.3
typing_extensions==4.1.1
urllib3==1.21.1
zipp==3.6.0

name: awslogin
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - awscli==1.11.96
      - beautifulsoup4==4.6.0
      - boto3==1.4.4
      - botocore==1.5.59
      - certifi==2017.4.17
      - chardet==3.0.3
      - click==8.0.4
      - colorama==0.3.7
      - docutils==0.13.1
      - idna==2.5
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - jmespath==0.9.3
      - lxml==5.3.1
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyasn1==0.5.1
      - pyparsing==3.1.4
      - pytest==7.0.1
      - python-dateutil==2.6.0
      - pyyaml==3.12
      - requests==2.17.3
      - rsa==3.4.2
      - s3transfer==0.1.10
      - six==1.10.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - urllib3==1.21.1
      - zipp==3.6.0
prefix: /opt/conda/envs/awslogin

test/byu_awslogin/test_login.py::test_cached_login test/byu_awslogin/test_login.py::test_non_cached_login
README.rst byu_awslogin/index.py byu_awslogin/login.py
README.rst byu_awslogin/index.py byu_awslogin/login.py