def deploy_to_branch_environment(db_name, db_username, db_password,
                                 branch=None, region=None):
    """Deploy the current HEAD to a temporary branch environment"""
    if branch is None:
        branch = git.get_current_branch()
    aws.get_client(region).deploy_to_branch_environment(branch, db_name,
                                                        db_username,
                                                        db_password)
def deploy_to_branch_environment(db_name,
                                 db_username,
                                 db_password,
                                 branch=None,
                                 region=None):
    """Deploy the current HEAD to a temporary branch environment"""
    if branch is None:
        branch = git.get_current_branch()
    aws.get_client(region).deploy_to_branch_environment(
        branch, db_name, db_username, db_password)
def deploy_to_production(version_label, region=None):
    """DANGER: Deploy a version to the production environment"""
    aws.get_client(region).deploy(version_label, 'production')
def deploy_to_staging(version_label, region=None):
    """DANGER: Deploy a version to the staging environment"""
    aws.get_client(region).deploy(version_label, 'staging')
def deploy_staging_to_production(region=None):
    """Deploy the version currently in staging to production"""
    aws.get_client(region).deploy_staging_to_production()
def deploy_latest_to_staging(region=None):
    """Deploy latest release version to the staging environment"""
    aws.get_client(region).deploy_latest_to_staging()
def terminate_branch_environment(branch=None, region=None):
    """Terminate a temporary branch environment"""
    if branch is None:
        branch = git.get_current_branch()
    aws.get_client(region).terminate_branch_environment(branch)
def create_version(version_label, region=None):
    """Create a new version of the application from the current HEAD"""
    aws.get_client(region).create_version(version_label)
def bootstrap(db_name, db_username, db_password, proxy_env=None, region=None):
    """Create a new application with an S3 bucket and core environments"""
    aws.get_client(region).bootstrap(proxy_env,
                                     db_name, db_username, db_password)
def deploy_to_production(version_label, region=None):
    """DANGER: Deploy a version to the production environment"""
    aws.get_client(region).deploy(version_label, 'production')
def deploy_to_staging(version_label, region=None):
    """DANGER: Deploy a version to the staging environment"""
    aws.get_client(region).deploy(version_label, 'staging')
def deploy_staging_to_production(region=None):
    """Deploy the version currently in staging to production"""
    aws.get_client(region).deploy_staging_to_production()
def deploy_latest_to_staging(region=None):
    """Deploy latest release version to the staging environment"""
    aws.get_client(region).deploy_latest_to_staging()
def terminate_branch_environment(branch=None, region=None):
    """Terminate a temporary branch environment"""
    if branch is None:
        branch = git.get_current_branch()
    aws.get_client(region).terminate_branch_environment(branch)
def create_version(version_label, region=None):
    """Create a new version of the application from the current HEAD"""
    aws.get_client(region).create_version(version_label)
def bootstrap(db_name, db_username, db_password, proxy_env=None, region=None):
    """Create a new application with an S3 bucket and core environments"""
    aws.get_client(region).bootstrap(proxy_env, db_name, db_username,
                                     db_password)