Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
py_aws_util / py_aws_util / accounts.py
Size: Mime:
from enum import Enum
from .client import aws_session


class AccountType(Enum):
    DEV = "development"
    TEST = "test"
    PROD = "production"
    TOOLS = "tools"
    MASTER = "master"


class AccountStructure():
    def __init__(self,
                 development_account: str = '176871627765',
                 test_account: str = '889224680907',
                 production_account: str = '748078721925',
                 tools_account: str = '226647244199',
                 master_account: str ='803813156102',
                 development_role='arn:aws:iam::176871627765:role/OrganizationAccountAccessRole',
                 test_role='arn:aws:iam::889224680907:role/OrganizationAccountAccessRole',
                 production_role='arn:aws:iam::748078721925:role/OrganizationAccountAccessRole',
                 tools_role='arn:aws:iam::226647244199:role/OrganizationAccountAccessRole',
                 master_role='arn:aws:iam::803813156102:role/OrganizationAccountAccessRole'):
        self.development_account = development_account
        self.test_account = test_account
        self.production_account = production_account
        self.tools_account = tools_account
        self.master_account = master_account
        self.development_role = development_role
        self.test_role = test_role
        self.production_role = production_role
        self.tools_role = tools_role
        self.master_role = master_role

    def get_account(self, account_type: AccountType):
        return getattr(self, f"{account_type.value}_account", "Unknown Account")

    def get_role(self, account_type: AccountType):
        return getattr(self, f"{account_type.value}_role", "Unknown Role")


class SessionManager():
    def __init__(self, accounts: AccountStructure=AccountStructure()):
        self.development_session = aws_session(accounts.development_role, session_name='dev_session')
        self.test_session = aws_session(accounts.test_role, session_name='test_session')
        self.tools_session = aws_session(accounts.tools_role, session_name='tools_session')
        self.production_session = aws_session(accounts.production_role, session_name='prod_session')
        self.master_session = aws_session(accounts.master_role, session_name='master_session')

    def get_session(self, account_type: AccountType):
        return getattr(self, f"{account_type.value}_session", "Unknown Session Type")