o
    ȷe2                     @   s   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G dd	 d	eZ	G d
d deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    )	ResultSet)	EC2Object)parse_tsc                       sR   e Zd Z					d fdd	Zdd Zdd Zdd	 Zd
d ZdddZ  Z	S )ReservedInstancesOfferingNc                    s\   t t| | || _|| _|| _|| _|| _|| _|| _	|	| _
|
| _|| _|| _|| _d S N)superr   __init__idinstance_typeavailability_zonedurationfixed_priceusage_pricedescriptioninstance_tenancycurrency_codeoffering_typerecurring_chargespricing_details)self
connectionr	   r
   r   r   r   r   r   r   r   r   r   r   	__class__ P/var/www/ideatree/venv/lib/python3.10/site-packages/boto/ec2/reservedinstance.pyr      s   
z"ReservedInstancesOffering.__init__c                 C   
   d| j  S )NzReservedInstanceOffering:%sr	   r   r   r   r   __repr__/      
z"ReservedInstancesOffering.__repr__c                 C   @   |dkrt dtfg| _| jS |dkrt dtfg| _| jS d S )NrecurringChargesitempricingDetailsSet)r   RecurringCharger   PricingDetailr   r   nameattrsr   r   r   r   startElement2      z&ReservedInstancesOffering.startElementc                 C   s   |dkr	|| _ d S |dkr|| _d S |dkr|| _d S |dkr&t|| _d S |dkr/|| _d S |dkr8|| _d S |dkrA|| _d S |dkrJ|| _d S |d	krS|| _	d S |d
kr\|| _
d S |dkrk|dkrfdnd| _d S d S )NreservedInstancesOfferingIdinstanceTypeavailabilityZoner   
fixedPrice
usagePriceproductDescriptioninstanceTenancycurrencyCodeofferingTypemarketplacetrueTF)r	   r
   r   intr   r   r   r   r   r   r   r4   r   r'   valuer   r   r   r   
endElement;   s.   








z$ReservedInstancesOffering.endElementc                 C   sf   t d| j  t d| j  t d| j  t d| j  t d| j  t d| j  t d| j  d S )NzID=%sz	Instance Type=%sz	Zone=%sz	Duration=%sz	Fixed Price=%sz	Usage Price=%sz	Description=%s)printr	   r
   r   r   r   r   r   r   r   r   r   describeS   s   z"ReservedInstancesOffering.describe   Fc                 C   s   | j j| j||dS )N)dry_run)r   #purchase_reserved_instance_offeringr	   )r   instance_countr=   r   r   r   purchase\   s
   z"ReservedInstancesOffering.purchase)NNNNNNNNNNNNN)r<   F)
__name__
__module____qualname__r   r   r)   r9   r;   r@   __classcell__r   r   r   r   r      s    		r   c                   @   &   e Zd ZdddZdd Zdd ZdS )	r$   Nc                 C      || _ || _d S r   )	frequencyamount)r   r   rG   rH   r   r   r   r   e      
zRecurringCharge.__init__c                 C      d S r   r   r&   r   r   r   r)   i      zRecurringCharge.startElementc                 C      t | || d S r   setattrr7   r   r   r   r9   l      zRecurringCharge.endElementNNNrA   rB   rC   r   r)   r9   r   r   r   r   r$   d       
r$   c                   @   rE   )	r%   Nc                 C   rF   r   )pricecount)r   r   rS   rT   r   r   r   r   q   rI   zPricingDetail.__init__c                 C   rJ   r   r   r&   r   r   r   r)   u   rK   zPricingDetail.startElementc                 C   rL   r   rM   r7   r   r   r   r9   x   rO   zPricingDetail.endElementrP   rQ   r   r   r   r   r%   p   rR   r%   c                       s:   e Zd Z				d fdd	Zdd Z fddZ  ZS )	ReservedInstanceNc              
      s:   t t| |||||||| |	| _|
| _d | _d | _d S r   )r   rU   r   r?   statestartend)r   r   r	   r
   r   r   r   r   r   r?   rV   r   r   r   r   ~   s   
zReservedInstance.__init__c                 C   r   )NzReservedInstance:%sr   r   r   r   r   r      r   zReservedInstance.__repr__c                    sr   |dkr|| _ |dkrt|| _d S |dkr|| _d S |dkr$|| _d S |dkr-|| _d S tt| ||| d S )NreservedInstancesIdinstanceCountrV   rW   rX   )	r	   r6   r?   rV   rW   rX   r   rU   r9   r7   r   r   r   r9      s   


zReservedInstance.endElement
NNNNNNNNNN)rA   rB   rC   r   r   r9   rD   r   r   r   r   rU   |   s    rU   c                   @   ,   e Zd Z			dddZdd Zdd ZdS )	ReservedInstanceListingNc	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _d S r   )r   
listing_idr	   create_dateupdate_datestatusstatus_messageclient_token)	r   r   r^   r	   r_   r`   ra   rb   rc   r   r   r   r      s   
z ReservedInstanceListing.__init__c                 C   r    )NinstanceCountsr"   priceSchedules)r   InstanceCountinstance_countsPriceScheduleprice_schedulesr&   r   r   r   r)      r*   z$ReservedInstanceListing.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r6|| _d S t| || d S )NreservedInstancesListingIdrY   
createDate
updateDatera   statusMessage)r^   r	   r_   r`   ra   rb   rN   r7   r   r   r   r9      s   





z"ReservedInstanceListing.endElement)NNNNNNNNrQ   r   r   r   r   r]      s    
	r]   c                   @   rE   )	rf   Nc                 C   rF   r   )rV   r?   )r   r   rV   r?   r   r   r   r      rI   zInstanceCount.__init__c                 C   rJ   r   r   r&   r   r   r   r)      rK   zInstanceCount.startElementc                 C   s8   |dkr	|| _ d S |dkrt|| _d S t| || d S )NrV   rZ   )rV   r6   r?   rN   r7   r   r   r   r9      s
   
zInstanceCount.endElementrP   rQ   r   r   r   r   rf      rR   rf   c                   @   *   e Zd Z		dddZdd Zdd ZdS )	rh   Nc                 C   "   || _ || _|| _|| _|| _d S r   )r   termrS   r   active)r   r   rp   rS   r   rq   r   r   r   r      
   
zPriceSchedule.__init__c                 C   rJ   r   r   r&   r   r   r   r)      rK   zPriceSchedule.startElementc                 C   sn   |dkrt || _d S |dkr|| _d S |dkr|| _d S |dkr/|dkr*d| _d S d| _d S t| || d S )Nrp   rS   r2   rq   r5   TF)r6   rp   rS   r   rq   rN   r7   r   r   r   r9      s   

zPriceSchedule.endElementNNNNNrQ   r   r   r   r   rh          
rh   c                   @   rn   )	ReservedInstancesConfigurationNc                 C   ro   r   )r   r   platformr?   r
   )r   r   r   rv   r?   r
   r   r   r   r      rr   z'ReservedInstancesConfiguration.__init__c                 C   rJ   r   r   r&   r   r   r   r)      rK   z+ReservedInstancesConfiguration.startElementc                 C   s\   |dkr	|| _ d S |dkr|| _d S |dkrt|| _d S |dkr&|| _d S t| || d S )Nr-   rv   rZ   r,   )r   rv   r6   r?   r
   rN   r7   r   r   r   r9      s   


z)ReservedInstancesConfiguration.endElementrs   rQ   r   r   r   r   ru      rt   ru   c                   @   rE   )	ModifyReservedInstancesResultNc                 C   s   || _ || _d S r   )r   modification_id)r   r   rx   r   r   r   r     rI   z&ModifyReservedInstancesResult.__init__c                 C   rJ   r   r   r&   r   r   r   r)     rK   z*ModifyReservedInstancesResult.startElementc                 C   s"   |dkr	|| _ d S t| || d S )NreservedInstancesModificationId)rx   rN   r7   r   r   r   r9     s   
z(ModifyReservedInstancesResult.endElement)NNrQ   r   r   r   r   rw     rR   rw   c                   @   r\   )	ModificationResultNc                 C   s(   || _ || _|| _|| _|| _|| _d S r   )r   rx   r   rv   r?   r
   )r   r   rx   r   rv   r?   r
   r   r   r   r     s   
zModificationResult.__init__c                 C   rJ   r   r   r&   r   r   r   r)   !  rK   zModificationResult.startElementc                 C   sn   |dkr	|| _ d S |dkr|| _d S |dkr|| _d S |dkr&t|| _d S |dkr/|| _d S t| || d S )Nry   r-   rv   rZ   r,   )rx   r   rv   r6   r?   r
   rN   r7   r   r   r   r9   $  s   



zModificationResult.endElement)NNNNNNrQ   r   r   r   r   rz     s    

rz   c                   @   s.   e Zd Z				dddZdd Zdd ZdS )	ReservedInstancesModificationNc                 C   s@   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	d S r   )
r   rx   reserved_instancesmodification_resultsr_   r`   effective_datera   rb   rc   )r   r   rx   r|   r}   r_   r`   r~   ra   rb   rc   r   r   r   r   4  s   
z&ReservedInstancesModification.__init__c                 C   r    )NreservedInstancesSetr"   modificationResultSet)r   rU   r|   rz   r}   r&   r   r   r   r)   C  s   z*ReservedInstancesModification.startElementc                 C   s   |dkr	|| _ d S |dkrt|| _d S |dkrt|| _d S |dkr*t|| _d S |dkr3|| _d S |dkr<|| _d S |dkrE|| _d S t| || d S )Nry   rk   rl   effectiveDatera   rm   clientToken)	rx   r   r_   r`   r~   ra   rb   rc   rN   r7   r   r   r   r9   P  s   



z(ReservedInstancesModification.endElementr[   rQ   r   r   r   r   r{   3  s    
r{   N)boto.resultsetr   boto.ec2.ec2objectr   
boto.utilsr   r   objectr$   r%   rU   r]   rf   rh   ru   rw   rz   r{   r   r   r   r   <module>   s   J!'