o
    È·eõ  ã                   @   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	   úS/var/www/ideatree/venv/lib/python3.10/site-packages/boto/ec2/launchspecification.pyÚstartElement$   s   zGroupList.startElementc                 C   s   |dkr|   |¡ d S d S )NÚ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   sb   |dkrt dtfgƒ| _| jS |dkrd| _d S |dkr#tƒ | _| jS |dkr/tdƒ| _| jS d S )NÚgroupSetÚitemÚ
monitoringTÚblockDeviceMappingÚiamInstanceProfile)r   r   r   r%   r   r&   r   r'   r
   r	   r	   r   r   A   s   

z LaunchSpecification.startElementc                 C   sÚ   |dkr	|| _ d S |dkr|| _d S |dkr|| _d S |dkr$|| _d S |dkr*d S |dkr3|| _d S |dkr<|| _d S |dkrE|| _d S |d	krZ| jrX|d
krSd| _d| _d S d S |dkre|dk| _	d S t
| ||ƒ d S )NÚimageIdÚkeyNameÚinstanceTypeÚavailabilityZoner    ÚkernelIdÚ	ramdiskIdÚsubnetIdÚstateÚenabledTFÚebsOptimizedÚtrue)r   r   r   r    r!   r"   r$   r%   r#   r(   Úsetattrr   r	   r	   r   r   P   s2   







ýzLaunchSpecification.endElementr   )r   r   r   r   r+   r   r   Ú__classcell__r	   r	   r)   r   r   ,   s
    r   N)Ú__doc__Úboto.ec2.ec2objectr   Úboto.resultsetr   Úboto.ec2.blockdevicemappingr   Úboto.ec2.groupr   Úboto.ec2.instancer   Úlistr   r   r	   r	   r	   r   Ú<module>   s   
