U
    3ìdõ  ã                   @   sd   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 G dd„ deƒZG d	d
„ d
eƒZdS )z7
Represents a launch specification for Spot instances.
é    )Ú	EC2Object)Ú	ResultSet)ÚBlockDeviceMapping)ÚGroup)ÚSubParsec                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	GroupListc                 C   s   d S )N© ©ÚselfÚnameÚattrsÚ
connectionr   r   ú@/tmp/pip-unpacked-wheel-d7dsrkjd/boto/ec2/launchspecification.pyÚstartElement$   s    zGroupList.startElementc                 C   s   |dkr|   |¡ d S )NZgroupId)Úappend©r
   r   Úvaluer   r   r   r   Ú
endElement'   s    zGroupList.endElementN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   "   s   r   c                       s6   e Zd Zd
‡ fdd„	Zdd„ Zdd„ Zdd	„ Z‡  ZS )ÚLaunchSpecificationNc                    sb   t t| ƒ |¡ d | _d | _d | _g | _d | _d | _d | _	d| _
d | _d| _d | _d | _d| _d S )NF)Úsuperr   Ú__init__Úkey_nameÚinstance_typeÚimage_idÚgroupsÚ	placementÚkernelÚramdiskÚ	monitoredÚ	subnet_idÚ_in_monitoring_elementÚblock_device_mappingÚinstance_profileÚebs_optimized)r
   r   ©Ú	__class__r   r   r   .   s    zLaunchSpecification.__init__c                 C   s
   d| j  S )NzLaunchSpecification(%s))r   )r
   r   r   r   Ú__repr__>   s    zLaunchSpecification.__repr__c                 C   sd   |dkrt dtfgƒ| _| jS |dkr.d| _n2|dkrDtƒ | _| jS |dkr\tdƒ| _| jS d S d S )NZgroupSetÚitemZ
monitoringTZblockDeviceMappingZiamInstanceProfile)r   r   r   r#   r   r$   r   r%   r	   r   r   r   r   A   s    
z LaunchSpecification.startElementc                 C   sÂ   |dkr|| _ n®|dkr || _nž|dkr0|| _nŽ|dkr@|| _n~|dkrJnt|dkrZ|| _nd|dkrj|| _nT|dkrz|| _nD|d	krž| jr¾|d
kr–d| _d| _n |dkr²|dk| _	nt
| ||ƒ d S )NZimageIdZkeyNameZinstanceTypeZavailabilityZoner   ZkernelIdZ	ramdiskIdZsubnetIdÚstateZenabledTFZebsOptimizedÚtrue)r   r   r   r   r   r    r"   r#   r!   r&   Úsetattrr   r   r   r   r   P   s0    zLaunchSpecification.endElement)N)r   r   r   r   r)   r   r   Ú__classcell__r   r   r'   r   r   ,   s   r   N)Ú__doc__Zboto.ec2.ec2objectr   Zboto.resultsetr   Zboto.ec2.blockdevicemappingr   Zboto.ec2.groupr   Zboto.ec2.instancer   Úlistr   r   r   r   r   r   Ú<module>   s   
