
kF[c           @   s(  d  d l  m Z m Z d  d l m Z m Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z d Z e Z e j j d d  d e e
 j   e
 j   e
 j   f Z e   Z e j d	  Z e j d
  Z e j d  Z e j d  Z e	 j  j! e	 j  j" e#  d  Z$ d   Z% d e j& f d     YZ' e j( d  a) e j( d  Z* t) j+ e'    e* j+ e'    e%   e j, d d  Z. e j/ d d  Z0 d d d  Z1 d d d  Z2 d d d  Z3 d d d  Z4 d d d  Z5 d d d  Z6 d d d  Z7 d d d  Z8 d d d  Z9 d d d  Z: d d d  Z; d d d   Z< d d d!  Z= d d d"  Z> d d d#  Z? d d d$  Z@ d d d%  ZA d d d&  ZB d d d'  ZC d d d d( d) eD d*  ZE d d d+  ZF d d d,  ZG d d d d( d- eD d.  ZH d d d/  ZI d d d0  ZJ d d eD d1  ZK d d d2  ZL d d d3  ZM d d d4  ZN d d eD d5  ZO d d d6  ZP d d d7  ZQ d d d8  ZR d d d9  ZS d d d:  ZT d d d;  ZU d d d<  ZV d d d=  ZW d d d>  ZX d d d?  ZY d d d@  ZZ d d dA  Z[ d d dB  Z\ d d dC  Z] d d dD  Z^ d d dE  Z_ d d dF  Z` d d dG  Za d d dH  Zb d d dI  Zc dJ dK ed e ed eD dL  Ze dM   Zf e jg jh e  d S(N   i(   t   Configt   BotoConfigLocations(   t   BucketStorageUrit   FileStorageUriN(   t   urlparse(   t   InvalidUriErrors   2.49.0t    s   Boto/%s Python/%s %s/%ss.   ^[a-zA-Z0-9][a-zA-Z0-9\._-]{1,253}[a-zA-Z0-9]$s   [-_a-z0-9]{64}s3   (?P<versionless_uri_str>.+)#(?P<generation>[0-9]+)$s/   (?P<versionless_uri_str>.+)#(?P<version_id>.+)$s   endpoints.jsonc          C   s?   x8 t  D]0 }  y  t j j t j j |    Wq q Xq Wd  S(   N(   R   t   loggingt   configt
   fileConfigt   ost   patht
   expanduser(   t   file(    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   init_loggingA   s
     t   NullHandlerc           B   s   e  Z d    Z RS(   c         C   s   d  S(   N(    (   t   selft   record(    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   emitJ   s    (   t   __name__t
   __module__R   (    (    (    s,   lib/python2.7/site-packages/boto/__init__.pyR   I   s   t   botos	   boto.perfc         C   sz   | s d } n  t  j |   } | j |  t  j |  } | j |  t  j |  } | j |  | j |  | a d  S(   Ns0   %(asctime)s %(name)s [%(levelname)s]:%(message)s(   R   t	   getLoggert   setLevelt   FileHandlert	   Formattert   setFormattert
   addHandlert   log(   t   namet   filepatht   levelt   format_stringt   loggert   fht	   formatter(    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   set_file_loggerV   s    	c         C   sw   | s d } n  t  j |   } | j |  t  j   } | j |  t  j |  } | j |  | j |  | a d  S(   Ns0   %(asctime)s %(name)s [%(levelname)s]:%(message)s(   R   R   R   t   StreamHandlerR   R   R   R   (   R   R   R    R!   R"   R#   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   set_stream_loggerd   s    	c         K   s    d d l  m } | |  | |  S(   s&  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.sqs.connection.SQSConnection`
    :return: A connection to Amazon's SQS
    i(   t   SQSConnection(   t   boto.sqs.connectionR'   (   t   aws_access_key_idt   aws_secret_access_keyt   kwargsR'   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_sqsr   s    c         K   s    d d l  m } | |  | |  S(   s#  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.s3.connection.S3Connection`
    :return: A connection to Amazon's S3
    i(   t   S3Connection(   t   boto.s3.connectionR-   (   R)   R*   R+   R-   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt
   connect_s3   s    c         K   s    d d l  m } | |  | |  S(   sV  
    @type gs_access_key_id: string
    @param gs_access_key_id: Your Google Cloud Storage Access Key ID

    @type gs_secret_access_key: string
    @param gs_secret_access_key: Your Google Cloud Storage Secret Access Key

    @rtype: L{GSConnection<boto.gs.connection.GSConnection>}
    @return: A connection to Google's Storage service
    i(   t   GSConnection(   t   boto.gs.connectionR0   (   t   gs_access_key_idt   gs_secret_access_keyR+   R0   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt
   connect_gs   s    c         K   s    d d l  m } | |  | |  S(   s&  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ec2.connection.EC2Connection`
    :return: A connection to Amazon's EC2
    i(   t   EC2Connection(   t   boto.ec2.connectionR5   (   R)   R*   R+   R5   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_ec2   s    c         K   s    d d l  m } | |  | |  S(   s2  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ec2.elb.ELBConnection`
    :return: A connection to Amazon's Load Balancing Service
    i(   t   ELBConnection(   t   boto.ec2.elbR8   (   R)   R*   R+   R8   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_elb   s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ec2.autoscale.AutoScaleConnection`
    :return: A connection to Amazon's Auto Scaling Service

    :type use_block_device_types bool
    :param use_block_device_types: Specifies whether to return described Launch Configs with block device mappings containing
        block device types, or a list of old style block device mappings (deprecated).  This defaults to false for compatability
        with the old incorrect style.
    i(   t   AutoScaleConnection(   t   boto.ec2.autoscaleR;   (   R)   R*   R+   R;   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_autoscale   s    	c         K   s    d d l  m } | |  | |  S(   s@  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ec2.cloudwatch.CloudWatchConnection`
    :return: A connection to Amazon's EC2 Monitoring service
    i(   t   CloudWatchConnection(   t   boto.ec2.cloudwatchR>   (   R)   R*   R+   R>   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudwatch   s    	c         K   s    d d l  m } | |  | |  S(   s&  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.sdb.connection.SDBConnection`
    :return: A connection to Amazon's SDB
    i(   t   SDBConnection(   t   boto.sdb.connectionRA   (   R)   R*   R+   RA   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_sdb   s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.fps.connection.FPSConnection`
    :return: A connection to FPS
    i(   t   FPSConnection(   t   boto.fps.connectionRD   (   R)   R*   R+   RD   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_fps   s    c         K   s    d d l  m } | |  | |  S(   s#  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.mturk.connection.MTurkConnection`
    :return: A connection to MTurk
    i(   t   MTurkConnection(   t   boto.mturk.connectionRG   (   R)   R*   R+   RG   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_mturk  s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.fps.connection.FPSConnection`
    :return: A connection to FPS
    i(   t   CloudFrontConnection(   t   boto.cloudfrontRJ   (   R)   R*   R+   RJ   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudfront  s    	c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.vpc.VPCConnection`
    :return: A connection to VPC
    i(   t   VPCConnection(   t   boto.vpcRM   (   R)   R*   R+   RM   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_vpc#  s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.rds.RDSConnection`
    :return: A connection to RDS
    i(   t   RDSConnection(   t   boto.rdsRP   (   R)   R*   R+   RP   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_rds2  s    c         K   s&   d d l  m } | d |  d | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.rds2.layer1.RDSConnection`
    :return: A connection to RDS
    i(   RP   R)   R*   (   t   boto.rds2.layer1RP   (   R)   R*   R+   RP   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_rds2A  s
    c         K   s    d d l  m } | |  | |  S(   s   
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.emr.EmrConnection`
    :return: A connection to Elastic mapreduce
    i(   t   EmrConnection(   t   boto.emrRU   (   R)   R*   R+   RU   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_emrT  s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.sns.SNSConnection`
    :return: A connection to Amazon's SNS
    i(   t   SNSConnection(   t   boto.snsRX   (   R)   R*   R+   RX   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_snsc  s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.iam.IAMConnection`
    :return: A connection to Amazon's IAM
    i(   t   IAMConnection(   t   boto.iamR[   (   R)   R*   R+   R[   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_iamr  s    c         K   s    d d l  m } | |  | |  S(   s/  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.dns.Route53Connection`
    :return: A connection to Amazon's Route53 DNS Service
    i(   t   Route53Connection(   t   boto.route53R^   (   R)   R*   R+   R^   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_route53  s    	c         K   s    d d l  m } | |  | |  S(   sD  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.cloudformation.CloudFormationConnection`
    :return: A connection to Amazon's CloudFormation Service
    i(   t   CloudFormationConnection(   t   boto.cloudformationRa   (   R)   R*   R+   Ra   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudformation  s    	iE"  s   /services/Eucalyptusc   
      K   s   d d l  m } d d l m } | s> t j d d d  } n  | s\ t j d d d  } n  |  sz t j d d d  }  n  | d	 d
 d |   }	 | | | d |	 d | d | d | | S(   s  
    Connect to a Eucalyptus service.

    :type host: string
    :param host: the host name or ip address of the Eucalyptus server

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ec2.connection.EC2Connection`
    :return: A connection to Eucalyptus server
    i(   R5   (   t
   RegionInfot   Credentialst   euca_access_key_idt   euca_secret_access_keyt   Botot   eucalyptus_hostR   t
   eucalyptust   endpointt   regiont   portR   t	   is_secureN(   t   boto.ec2R5   t   boto.ec2.regioninfoRd   R   t   gett   None(
   t   hostR)   R*   Rm   R   Rn   R+   R5   Rd   t   reg(    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_euca  s     		c         K   s    d d l  m } | |  | |  S(   s+  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.glacier.layer2.Layer2`
    :return: A connection to Amazon's Glacier Service
    i(   t   Layer2(   t   boto.glacier.layer2Rv   (   R)   R*   R+   Rv   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_glacier  s    	c         K   s   d d l  m } t |   } | j | d <| j | d <| j | d <d | k re | j d k | d <n  | d | j d	 | j  | d
 <| | d <| | d <t |   S(   s  
    Connect to an EC2 Api endpoint.  Additional arguments are passed
    through to connect_ec2.

    :type url: string
    :param url: A url for the ec2 api endpoint to connect to

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ec2.connection.EC2Connection`
    :return: A connection to Eucalyptus server
    i(   Rd   Rm   Rs   R   Rn   t   httpsR   Rk   Rl   R)   R*   (   Rp   Rd   R   Rm   t   hostnameR   t   schemeR7   (   t   urlR)   R*   R+   Rd   t   purl(    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_ec2_endpoint  s    

s   /services/Walrusc   	      K   s   d d l  m } d d l  m } | s> t j d d d  } n  | s\ t j d d d  } n  |  sz t j d d d  }  n  | | | d	 |  d
 | d | d |   d | | S(   s  
    Connect to a Walrus service.

    :type host: string
    :param host: the host name or ip address of the Walrus server

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.s3.connection.S3Connection`
    :return: A connection to Walrus
    i(   R-   (   t   OrdinaryCallingFormatRe   Rf   Rg   Rh   t   walrus_hostRs   Rm   R   t   calling_formatRn   N(   R.   R-   R   R   Rq   Rr   (	   Rs   R)   R*   Rm   R   Rn   R+   R-   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_walrus  s     			c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ses.SESConnection`
    :return: A connection to Amazon's SES
    i(   t   SESConnection(   t   boto.sesR   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_ses'  s    c         K   s    d d l  m } | |  | |  S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.sts.STSConnection`
    :return: A connection to Amazon's STS
    i(   t   STSConnection(   t   boto.stsR   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_sts6  s    c      
   K   so   d d l  m } d d l  m } t j d d |   } t j d d |  } | | | d d d	 |   d
 | | S(   sh  
    Connect to the Internet Archive via their S3-like API.

    :type ia_access_key_id: string
    :param ia_access_key_id: Your IA Access Key ID.  This will also look
        in your boto config file for an entry in the Credentials
        section called "ia_access_key_id"

    :type ia_secret_access_key: string
    :param ia_secret_access_key: Your IA Secret Access Key.  This will also
        look in your boto config file for an entry in the Credentials
        section called "ia_secret_access_key"

    :rtype: :class:`boto.s3.connection.S3Connection`
    :return: A connection to the Internet Archive
    i(   R-   (   R   Re   t   ia_access_key_idt   ia_secret_access_keyRs   s   s3.us.archive.orgR   Rn   (   R.   R-   R   R   Rq   (   R   R   Rn   R+   R-   R   t
   access_keyt
   secret_key(    (    s,   lib/python2.7/site-packages/boto/__init__.pyt
   connect_iaE  s    			c         K   s    d d l  m } | |  | |  S(   s6  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.dynamodb.layer2.Layer2`
    :return: A connection to the Layer2 interface for DynamoDB.
    i(   Rv   (   t   boto.dynamodb.layer2Rv   (   R)   R*   R+   Rv   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_dynamodbe  s    c         K   s    d d l  m } | |  | |  S(   s,  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.swf.layer1.Layer1`
    :return: A connection to the Layer1 interface for SWF.
    i(   t   Layer1(   t   boto.swf.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_swfv  s    c         K   s    d d l  m } | |  | |  S(   s3  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.cloudsearch.layer2.Layer2`
    :return: A connection to Amazon's CloudSearch service
    i(   Rv   (   t   boto.cloudsearch.layer2Rv   (   R)   R*   R+   Rv   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudsearch  s    	c         K   s&   d d l  m } | |  | d | | S(   s  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :type sign_request: bool
    :param sign_request: whether or not to sign search and
        upload requests

    :rtype: :class:`boto.cloudsearch2.layer2.Layer2`
    :return: A connection to Amazon's CloudSearch2 service
    i(   Rv   t   sign_request(   t   boto.cloudsearch2.layer2Rv   (   R)   R*   R   R+   Rv   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudsearch2  s    c         K   s    d d l  m } | |  | |  S(   sU  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.cloudsearchdomain.layer1.CloudSearchDomainConnection`
    :return: A connection to Amazon's CloudSearch Domain service
    i(   t   CloudSearchDomainConnection(   t   boto.cloudsearchdomain.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudsearchdomain  s    c         K   s    d d l  m } | |  | |  S(   s7  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.beanstalk.layer1.Layer1`
    :return: A connection to Amazon's Elastic Beanstalk service
    i(   R   (   t   boto.beanstalk.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_beanstalk  s    c         K   s&   d d l  m } | d |  d | |  S(   sG  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.ets.layer1.ElasticTranscoderConnection`
    :return: A connection to Amazon's Elastic Transcoder service
    i(   t   ElasticTranscoderConnectionR)   R*   (   t   boto.elastictranscoder.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_elastictranscoder  s
    c         K   s&   d d l  m } | d |  d | |  S(   Ni(   t   OpsWorksConnectionR)   R*   (   t   boto.opsworks.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_opsworks  s
    c         K   s&   d d l  m } | d |  d | |  S(   s9  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.redshift.layer1.RedshiftConnection`
    :return: A connection to Amazon's Redshift service
    i(   t   RedshiftConnectionR)   R*   (   t   boto.redshift.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_redshift  s
    c         K   s&   d d l  m } | d |  d | |  S(   s6  
    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.support.layer1.SupportConnection`
    :return: A connection to Amazon's Support service
    i(   t   SupportConnectionR)   R*   (   t   boto.support.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_support  s
    c         K   s&   d d l  m } | d |  d | |  S(   s]  
    Connect to AWS CloudTrail

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.cloudtrail.layer1.CloudtrailConnection`
    :return: A connection to the AWS Cloudtrail service
    i(   t   CloudTrailConnectionR)   R*   (   t   boto.cloudtrail.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudtrail  s
    c         K   s&   d d l  m } | d |  d | |  S(   si  
    Connect to AWS DirectConnect

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    :rtype: :class:`boto.directconnect.layer1.DirectConnectConnection`
    :return: A connection to the AWS DirectConnect service
    i(   t   DirectConnectConnectionR)   R*   (   t   boto.directconnect.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_directconnect3  s
    c         K   s&   d d l  m } | d |  d | |  S(   sV  
    Connect to Amazon Kinesis

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.kinesis.layer1.KinesisConnection`
    :return: A connection to the Amazon Kinesis service
    i(   t   KinesisConnectionR)   R*   (   t   boto.kinesis.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_kinesisI  s
    c         K   s&   d d l  m } | d |  d | |  S(   sm  
    Connect to Amazon CloudWatch Logs

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.kinesis.layer1.CloudWatchLogsConnection`
    :return: A connection to the Amazon CloudWatch Logs service
    i(   t   CloudWatchLogsConnectionR)   R*   (   t   boto.logs.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_logs_  s
    c         K   s&   d d l  m } | d |  d | |  S(   sw  
    Connect to Amazon Route 53 Domains

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.route53.domains.layer1.Route53DomainsConnection`
    :return: A connection to the Amazon Route 53 Domains service
    i(   t   Route53DomainsConnectionR)   R*   (   t   boto.route53.domains.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_route53domainsv  s
    c         K   s&   d d l  m } | d |  d | |  S(   sy  
    Connect to Amazon Cognito Identity

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.cognito.identity.layer1.CognitoIdentityConnection`
    :return: A connection to the Amazon Cognito Identity service
    i(   t   CognitoIdentityConnectionR)   R*   (   t   boto.cognito.identity.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cognito_identity  s
    c         K   s&   d d l  m } | d |  d | |  S(   si  
    Connect to Amazon Cognito Sync

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.cognito.sync.layer1.CognitoSyncConnection`
    :return: A connection to the Amazon Cognito Sync service
    i(   t   CognitoSyncConnectionR)   R*   (   t   boto.cognito.sync.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cognito_sync  s
    c         K   s&   d d l  m } | d |  d | |  S(   s^  
    Connect to AWS Key Management Service

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.kms.layer1.KMSConnection`
    :return: A connection to the AWS Key Management Service
    i(   t   KMSConnectionR)   R*   (   t   boto.kms.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_kms  s
    c         K   s&   d d l  m } | d |  d | |  S(   sR  
    Connect to AWS Lambda

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.awslambda.layer1.AWSLambdaConnection`
    :return: A connection to the AWS Lambda service
    i(   t   AWSLambdaConnectionR)   R*   (   t   boto.awslambda.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_awslambda  s
    c         K   s&   d d l  m } | d |  d | |  S(   s^  
    Connect to AWS CodeDeploy

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.cognito.sync.layer1.CodeDeployConnection`
    :return: A connection to the AWS CodeDeploy service
    i(   t   CodeDeployConnectionR)   R*   (   t   boto.codedeploy.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_codedeploy  s
    c         K   s&   d d l  m } | d |  d | |  S(   sP  
    Connect to AWS Config

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.kms.layer1.ConfigServiceConnection`
    :return: A connection to the AWS Config service
    i(   t   ConfigServiceConnectionR)   R*   (   t   boto.configservice.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_configservice   s
    c         K   s&   d d l  m } | d |  d | |  S(   sT  
    Connect to AWS CloudHSM

    :type aws_access_key_id: string
    :param aws_access_key_id: Your AWS Access Key ID

    :type aws_secret_access_key: string
    :param aws_secret_access_key: Your AWS Secret Access Key

    rtype: :class:`boto.cloudhsm.layer1.CloudHSMConnection`
    :return: A connection to the AWS CloudHSM service
    i(   t   CloudHSMConnectionR)   R*   (   t   boto.cloudhsm.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_cloudhsm  s
    c         K   s&   d d l  m } | d |  d | |  S(   s   
    Connect to Amazon EC2 Container Service
    rtype: :class:`boto.ec2containerservice.layer1.EC2ContainerServiceConnection`
    :return: A connection to the Amazon EC2 Container Service
    i(   t   EC2ContainerServiceConnectionR)   R*   (   t   boto.ec2containerservice.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_ec2containerservice.  s
    c         K   s&   d d l  m } | d |  d | |  S(   s   
    Connect to Amazon Machine Learning service
    rtype: :class:`boto.machinelearning.layer1.MachineLearningConnection`
    :return: A connection to the Amazon Machine Learning service
    i(   t   MachineLearningConnectionR)   R*   (   t   boto.machinelearning.layer1R   (   R)   R*   R+   R   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   connect_machinelearning>  s
    R   i    c         C   s)  d } d } |  j d  }	 |	 d k r< | j   }
 |  } n! |  d |	 !j   }
 |  |	 d } |
 d k r| t d |
   n  |
 d k r t } | d	 k r t } n  t | | |  S| j d
 d  } | d } d } | r| rt j	 |  s t
 j |  rt d |    n  |
 d k rrt j |  } | r| j   } | d } | j d
 d  } t | d  } qni |
 d k rt j |  } | r| j   } | d } | j d
 d  } | d } qn t d |
   t |  d k r| d } n  | |
 | | | d | d | d | d | Sd S(   sR  
    Instantiate a StorageUri from a URI string.

    :type uri_str: string
    :param uri_str: URI naming bucket + optional object.
    :type default_scheme: string
    :param default_scheme: default scheme for scheme-less URIs.
    :type debug: int
    :param debug: debug level to pass in to boto connection (range 0..2).
    :type validate: bool
    :param validate: whether to check for bucket name validity.
    :type bucket_storage_uri_class: BucketStorageUri interface.
    :param bucket_storage_uri_class: Allows mocking for unit tests.
    :param suppress_consec_slashes: If provided, controls whether
        consecutive slashes will be suppressed in key paths.
    :type is_latest: bool
    :param is_latest: whether this versioned object represents the
        current version.

    We allow validate to be disabled to allow caller
    to implement bucket-level wildcarding (outside the boto library;
    see gsutil).

    :rtype: :class:`boto.StorageUri` subclass
    :return: StorageUri subclass for given URI.

    ``uri_str`` must be one of the following formats:

    * gs://bucket/name
    * gs://bucket/name#ver
    * s3://bucket/name
    * gs://bucket
    * s3://bucket
    * filename (which could be a Unix path like /a/b/c or a Windows path like
      C:\c)

    The last example uses the default scheme ('file', unless overridden).
    s   ://ii    i   R   t   s3t   gss   Unrecognized scheme "%s"t   -t   /i   R   s   Invalid bucket name in URI "%s"t   versionless_uri_strt
   generationt
   version_idt   suppress_consec_slashest	   is_latestN(   R   R   R   (   Rr   t   findt   lowerR   t   Falset   TrueR   t   splitt   BUCKET_NAME_REt   matcht   TOO_LONG_DNS_NAME_COMPt   searcht   GENERATION_REt	   groupdictt   intt
   VERSION_REt   len(   t   uri_strt   default_schemet   debugt   validatet   bucket_storage_uri_classR   R   R   R   t   end_scheme_idxR{   R   t	   is_streamt
   path_partst   bucket_namet   object_nameR   t   mdR   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   storage_uriN  sV    )		


c         C   sr   t  |  t j j j  s7 t d t t |      n  |  j j	 j
 j   } d | |  j j |  j f } t |  S(   s   Returns a StorageUri for the given key.

    :type key: :class:`boto.s3.key.Key` or subclass
    :param key: URI naming bucket + optional object.
    s7   Requested key (%s) is not a subclass of boto.s3.key.Keys
   %s://%s/%s(   t
   isinstanceR   R   t   keyt   KeyR   t   strt   typet   buckett
   connectiont   providert   get_provider_nameR   R   (   R   t	   prov_nameR   (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   storage_uri_for_key  s    (i   t   boto.pyami.configR    R   t   boto.storage_uriR   R   t   boto.pluginR   t   datetimeR
   t   platformt   ret   sysR   t   logging.configt   boto.compatR   t   boto.exceptionR   t   __version__t   Versiont   strptimet   python_versiont   systemt   releaset	   UserAgentR   t   compileR   R   R   R   R   t   joint   dirnamet   __file__t   ENDPOINTS_PATHR   t   HandlerR   R   R   t   perflogR   t   INFORr   R$   t   DEBUGR&   R,   R/   R4   R7   R:   R=   R@   RC   RF   RI   RL   RO   RR   RT   RW   RZ   R]   R`   Rc   R   Ru   Rx   R~   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   plugint   load_plugins(    (    (    s,   lib/python2.7/site-packages/boto/__init__.pyt   <module>   s   			!		&#&		c	