o
    rMfV                     @   sl   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
dS )    )	ResultSet)ListElementc                   @   .   e Zd Zd
ddZdd Zdd Zdd	 ZdS )AlarmNc                 C   s   || _ d | _d | _d S N)
connectionname	alarm_arnselfr    r   [/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/boto/ec2/autoscale/policy.py__init__      
zAlarm.__init__c                 C   
   d| j  S )NzAlarm:%s)r   r   r   r   r   __repr__!      
zAlarm.__repr__c                 C      d S r   r   r   r   attrsr   r   r   r   startElement$      zAlarm.startElementc                 C   s4   |dkr	|| _ d S |dkr|| _d S t| || d S )N	AlarmNameAlarmARN)r   r	   setattrr   r   valuer   r   r   r   
endElement'   s
   

zAlarm.endElementr   __name__
__module____qualname__r   r   r   r   r   r   r   r   r      s
    
r   c                   @   r   )AdjustmentTypeNc                 C      || _ d | _d S r   )r   adjustment_typer
   r   r   r   r   1      
zAdjustmentType.__init__c                 C   r   )NzAdjustmentType:%sr%   r   r   r   r   r   5   r   zAdjustmentType.__repr__c                 C   r   r   r   r   r   r   r   r   8   r   zAdjustmentType.startElementc                 C   s   |dkr|| _ d S )Nr#   r'   r   r   r   r   r   ;   s   zAdjustmentType.endElementr   r   r   r   r   r   r#   0   s
    
r#   c                   @   s^   e Zd ZG dd deZG dd deZG dd deZddd	Zd
d Zdd Z	dd Z
dS )MetricCollectionTypesc                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )zMetricCollectionTypes.BaseType c                 C   r$   r   )r   valr
   r   r   r   r   E   r&   z'MetricCollectionTypes.BaseType.__init__c                 C      d| j | jf S )Nz%s:%sargr*   r   r   r   r   r   I      z'MetricCollectionTypes.BaseType.__repr__c                 C   r   r   r   r   r   r   r   r   L   r   z+MetricCollectionTypes.BaseType.startElementc                 C   s   || j kr
|| _d S d S r   r,   r   r   r   r   r   O   s   

z)MetricCollectionTypes.BaseType.endElementN)r    r!   r"   r-   r   r   r   r   r   r   r   r   BaseTypeB   s    r/   c                   @      e Zd ZdZdS )zMetricCollectionTypes.MetricMetricNr    r!   r"   r-   r   r   r   r   r1   S       r1   c                   @   r0   )z!MetricCollectionTypes.GranularityGranularityNr2   r   r   r   r   r4   V   r3   r4   Nc                 C   s   || _ g | _g | _d S r   )r   metricsgranularitiesr
   r   r   r   r   Y   r   zMetricCollectionTypes.__init__c                 C   r+   )NzMetricCollectionTypes:<%s, %s>)r5   r6   r   r   r   r   r   ^   r.   zMetricCollectionTypes.__repr__c                 C   sD   |dkrt d| jfg| _| jS |dkr t d| jfg| _| jS d S )NGranularitiesmemberMetrics)r   r4   r6   r1   r5   r   r   r   r   r   a   s   z"MetricCollectionTypes.startElementc                 C   r   r   r   r   r   r   r   r   i   r   z MetricCollectionTypes.endElementr   )r    r!   r"   objectr/   r1   r4   r   r   r   r   r   r   r   r   r(   A   s    
r(   c                   @   s6   e Zd ZdddZdd Zdd Zdd	 Zd
d ZdS )ScalingPolicyNc                 K   s^   | dd| _| dd| _| dd| _| dd| _| dd| _|| _| dd| _dS )a  
        Scaling Policy

        :type name: str
        :param name: Name of scaling policy.

        :type adjustment_type: str
        :param adjustment_type: Specifies the type of adjustment. Valid values are `ChangeInCapacity`, `ExactCapacity` and `PercentChangeInCapacity`.

        :type as_name: str or int
        :param as_name: Name or ARN of the Auto Scaling Group.

        :type scaling_adjustment: int
        :param scaling_adjustment: Value of adjustment (type specified in `adjustment_type`).

        :type min_adjustment_step: int
        :param min_adjustment_step: Value of min adjustment step required to
            apply the scaling policy (only make sense when use `PercentChangeInCapacity` as adjustment_type.).

        :type cooldown: int
        :param cooldown: Time (in seconds) before Alarm related Scaling Activities can start after the previous Scaling Activity ends.

        r   Nr%   as_namescaling_adjustmentcooldownmin_adjustment_step)getr   r%   r<   r=   r>   r   r?   r   r   kwargsr   r   r   r   n   s   zScalingPolicy.__init__c                 C   s   d| j | j| jf S )Nz(ScalingPolicy(%s group:%s adjustment:%s))r   r<   r%   r   r   r   r   r      s   zScalingPolicy.__repr__c                 C   s"   |dkrt dtfg| _| jS d S )NAlarmsr8   )r   r   alarmsr   r   r   r   r      s   zScalingPolicy.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r1t|| _d S |dkr:|| _d S |dkrEt|| _d S d S )N
PolicyNameAutoScalingGroupName	PolicyARNScalingAdjustmentCooldownr#   MinAdjustmentStep)r   r<   
policy_arnintr=   r>   r%   r?   r   r   r   r   r      s   



zScalingPolicy.endElementc                 C   s   | j | j| jS r   )r   delete_policyr   r<   r   r   r   r   delete   s   zScalingPolicy.deleter   )r    r!   r"   r   r   r   r   rN   r   r   r   r   r;   m   s    
 r;   c                   @   s&   e Zd ZdddZdd Zdd ZdS )	TerminationPoliciesNc                 K   r   r   r   rA   r   r   r   r      r   zTerminationPolicies.__init__c                 C   r   r   r   r   r   r   r   r      r   z TerminationPolicies.startElementc                 C   s   |dkr|  | d S d S )Nr8   )appendr   r   r   r   r      s   zTerminationPolicies.endElementr   )r    r!   r"   r   r   r   r   r   r   r   rO      s    
rO   N)boto.resultsetr   boto.ec2.elb.listelementr   r:   r   r#   r(   r;   listrO   r   r   r   r   <module>   s   ,?