B
    ?F[                 @   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r8dd l}x"|j D ]}|j|
kr |}
P q W 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   Z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   7lib/python3.7/site-packages/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   Z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   