Metadata-Version: 1.0
Name: botor
Version: 0.0.1.dev7
Summary: A thin wrapper around boto3
Home-page: https://github.com/monkeysecurity/botor
Author: Patrick Kelley
Author-email: patrick@netflix.com
License: UNKNOWN
Description: # botor
        A thin wrapper around boto3
        
        ## features
        
         - intelligent connection caching.
         - handles pagination for certain client methods.
         - rate limit handling, with exponential backoff.
         - multi-account sts:assumerole abstraction.
        
        ## Example
        
            # Using wrapper methods:
            from botor.aws.sqs import get_queue, get_messages
            conn_details = {
                'account_number': '111111111111',
                'assume_role': 'MyRole',
                'session_name': 'MySession',
                'region': 'us-east-1'
            }
            queue = get_queue(queue_name='MyQueue', **conn_details)
            messages = get_messages(queue=queue)
        
            
            # Using the botor class
            from botor import Botor
            Botor.go('kms.client.list_aliases', **conn_details)
            
            botor = Botor(**conn_details)
            botor.call('kms.client.list_aliases')
            
            
            # directly asking for a boto3 connection:
            from botor.aws.sts import boto3_cached_conn
            conn = boto3_cached_conn('ec2', **conn_details)
           
            
            # Over your entire environment:
            from botor.decorators import iter_account_region
           
            accounts = ['000000000000', '111111111111']
        
            conn_details = {
                'assume_role': 'MyRole',
                'session_name': 'MySession',
                'conn_type': 'boto3'
            }
                
            @iter_account_region('kms', accounts=accounts, regions=['us-east-1'], **conn_details)
            def list_keys(conn=None):
                return conn.list_keys()['Keys']
Platform: UNKNOWN
