U
    3d                     @   s8   d dl mZ d dlmZ d dlmZ G dd deZdS )    )CloudSearchConnection)Domain)sixc                   @   s0   e Zd ZdddZdddZd	d
 Zdd ZdS )Layer2NTr   Fc                 C   s\   t |
tjr6dd l}|j D ]}|j|
kr|}
 q6qt|||||||||	|
||d| _d S )Nr   )aws_access_key_idaws_secret_access_key	is_secureportproxy
proxy_porthostdebugZsecurity_tokenregionvalidate_certssign_request)	
isinstancer   string_typesZboto.cloudsearch2Zcloudsearch2Zregionsnamer   layer1)selfr   r   r   r	   r
   r   r   r   Zsession_tokenr   r   r   ZbotoZregion_info r   </tmp/pip-unpacked-wheel-d7dsrkjd/boto/cloudsearch2/layer2.py__init__    s(    
zLayer2.__init__c                    s.    j |}|d d d } fdd|D S )z
        Return a list of objects for each domain defined in the
        current account.
        :rtype: list of :class:`boto.cloudsearch2.domain.Domain`
        ZDescribeDomainsResponseZDescribeDomainsResultZDomainStatusListc                    s   g | ]}t  j|qS r   )r   r   ).0datar   r   r   
<listcomp>F   s     z'Layer2.list_domains.<locals>.<listcomp>)r   Zdescribe_domains)r   domain_namesZdomain_datar   r   r   list_domains:   s    zLayer2.list_domainsc                 C   s$   | j |}t| j |d d d S )z
        Create a new CloudSearch domain and return the corresponding object.
        :return: Domain object, or None if the domain isn't found
        :rtype: :class:`boto.cloudsearch2.domain.Domain`
        ZCreateDomainResponseZCreateDomainResultZDomainStatus)r   create_domainr   )r   domain_namer   r   r   r   r   H   s    zLayer2.create_domainc                 C   s&   | j |gd}t|dkr"|d S dS )a  
        Lookup a single domain
        :param domain_name: The name of the domain to look up
        :type domain_name: str

        :return: Domain object, or None if the domain isn't found
        :rtype: :class:`boto.cloudsearch2.domain.Domain`
        )r   r   N)r   len)r   r    domainsr   r   r   lookupS   s    	zLayer2.lookup)NNTNNNNr   NNTF)N)__name__
__module____qualname__r   r   r   r#   r   r   r   r   r      s                     

r   N)Zboto.cloudsearch2.layer1r   Zboto.cloudsearch2.domainr   Zboto.compatr   objectr   r   r   r   r   <module>   s   