o
    R+ i5!  ã                   @   s¨   d 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 )z,
This module provides a model class for AS.
c                       ó    e Zd ZdZ‡ fdd„Z‡  ZS )ÚConfigzM
    This class defines the Config object within AutoScalingGroupConfig.
    c                    s2   t t| ƒ ¡  || d< || d< || d< || d< dS )ai  
        :param min_node_num: Minimum number of nodes in the auto scaling group
        :type min_node_num: int
        :param expect_num: Expected number of nodes in the auto scaling group
        :type expect_num: int
        ...
        :param cooldown_in_sec: Cooldown period in seconds for the auto scaling group
        :type cooldown_in_sec: int
        Z
minNodeNumZ	expectNumZ
maxNodeNumZcooldownInSecN)Úsuperr   Ú__init__)ÚselfZmin_node_numZ
expect_numZmax_node_numZcooldown_in_sec©Ú	__class__© úr/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/baidubce/services/autoscaling/as_model.pyr      s
   
zConfig.__init__©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__r   r   r   r	   r      ó    r   c                       r   )ÚHealthCheckzR
    This class defines the HealthCheck object within AutoScalingGroupConfig.
    c                    ó"   t t| ƒ ¡  || d< || d< dS )zá
        :param health_check_interval: Interval for health checks in seconds
        :type health_check_interval: int
        :param grace_time: Grace period for health checks in seconds
        :type grace_time: int
        ZhealthCheckIntervalZ	graceTimeN)r   r   r   )r   Zhealth_check_intervalZ
grace_timer   r   r	   r   !   ó   zHealthCheck.__init__r
   r   r   r   r	   r      r   r   c                       r   )ÚZoneInfoz1
    This class defines the ZoneInfo object.
    c                    r   )zˆ
        :param zone: Zone information
        :type zone: str
        :param subnet_id: Subnet ID
        :type subnet_id: str
        ÚzoneZsubnetIdN)r   r   r   )r   r   Z	subnet_idr   r   r	   r   2   r   zZoneInfo.__init__r
   r   r   r   r	   r   -   r   r   c                       r   )ÚAssignTagInfoz6
    This class defines the AssignTagInfo object.
    c                    r   )z†
        :param relation_tag: Relation tag
        :type relation_tag: str
        :param tags: Tags
        :type tags: list
        ZrelationTagÚtagsN)r   r   r   )r   Zrelation_tagr   r   r   r	   r   C   r   zAssignTagInfo.__init__r
   r   r   r   r	   r   >   r   r   c                       r   )ÚTagz,
    This class defines the Tag object.
    c                    r   )z…
        :param tag_key: Tag Key
        :type tag_key: str
        :param tag_value: Tag Value
        :type tag_value: str
        ZtagKeyZtagValueN)r   r   r   )r   Ztag_keyZ	tag_valuer   r   r	   r   T   r   zTag.__init__r
   r   r   r   r	   r   O   r   r   c                       r   )ÚNodez-
    This class defines the Node object.
    c                    sª   t t| ƒ ¡  || d< || d< || d< || d< || d< || d< || d< || d< |	| d	< |
| d
< || d< || d< || d< || d< || d< || d< || d< || d< || d< dS )a  
        :param cpu_count: The number of CPU cores
        :type cpu_count: int
        :param memory_capacity_in_gb: The capacity of the memory in GB
        :type memory_capacity_in_gb: int
        :param sys_disk_type: The type of the system disk
        :type sys_disk_type: str
        :param sys_disk_in_gb: The capacity of the system disk in GB
        :type sys_disk_in_gb: int
        :param instance_type: The type of the instance
        :type instance_type: str
        :param product_type: The type of the product
        :type product_type: str
        :param image_id: The ID of the image
        :type image_id: str
        :param image_type: The type of the image
        :type image_type: str
        :param os_type: The type of the operating system
        :type os_type: str
        :param security_group_id: The ID of the security group
        :type security_group_id: str
        :param spec: The specification
        :type spec: str
        :param ephemeral_disks: The ephemeral disks
        :type ephemeral_disks: list
        :param asp_id: The ID of the ASP
        :type asp_id: str
        :param priorities: The priorities
        :type priorities: list
        :param zone_subnet: The subnet of the zone
        :type zone_subnet: str
        :param total_count: The total count
        :type total_count: int
        :param bid_model: The model of the bid
        :type bid_model: str
        :param bid_price: The price of the bid
        :type bid_price: float
        :param cds: The CDS
        :type cds: list
        ZcpuCountZmemoryCapacityInGBZsysDiskTypeZsysDiskInGBZinstanceTypeZproductTypeZimageIdZ	imageTypeZosTypeZsecurityGroupIdÚspecZephemeralDisksZaspIdÚ
prioritiesZ
zoneSubnetZ
totalCountZbidModelZbidPriceÚcdsN)r   r   r   )r   Ú	cpu_countZmemory_capacity_in_gbZsys_disk_typeZsys_disk_in_gbZinstance_typeÚproduct_typeZimage_idZ
image_typeZos_typeZsecurity_group_idr   Zephemeral_disksZasp_idr   Zzone_subnetZtotal_countZ	bid_modelZ	bid_pricer   r   r   r	   r   e   s(   +zNode.__init__r
   r   r   r   r	   r   `   r   r   c                       r   )ÚEipz-
    This class defines EIP information.
    c                    s*   t t| ƒ ¡  || d< || d< || d< dS )a  
        :param if_bind_eip: if bind eip
        :type if_bind_eip: bool
        :param bandwidth_in_mbps: bandwidth_in_mbps
        :type bandwidth_in_mbps: int
        :param eip_product_type: eip_product_type
        :type eip_product_type: string
        Z	ifBindEipZbandwidthInMbpsZeipProductTypeN)r   r   r   )r   Zif_bind_eipZbandwidth_in_mbpsZeip_product_typer   r   r	   r   «   s   	zEip.__init__r
   r   r   r   r	   r   ¦   r   r   c                       r   )ÚBillingz0
    This class defines the Billing object.
    c                    s   t t| ƒ ¡  || d< dS )zd
        :param payment_timing: The timing of the payment
        :type payment_timing: str
        ZpaymentTimingN)r   r    r   )r   Zpayment_timingr   r   r	   r   ¿   s   zBilling.__init__r
   r   r   r   r	   r    º   r   r    c                       r   )Ú	CmdConfigz2
    This class defines the CmdConfig object.
    c                    sb   t t| ƒ ¡  || d< || d< || d< || d< || d< || d< || d< || d< |	| d	< |
| d
< dS )aë  
        :param has_decrease_cmd: If has decrease command
        :type has_decrease_cmd: bool
        :param dec_cmd_strategy: The strategy of the decrease command
        :type dec_cmd_strategy: str
        :param dec_cmd_data: The data of the decrease command
        :type dec_cmd_data: str
        :param dec_cmd_timeout: The timeout of the decrease command
        :type dec_cmd_timeout: int
        :param dec_cmd_manual: If the decrease command is manual
        :type dec_cmd_manual: bool
        :param has_increase_cmd: If has increase command
        :type has_increase_cmd: bool
        :param inc_cmd_strategy: The strategy of the increase command
        :type inc_cmd_strategy: str
        :param inc_cmd_data: The data of the increase command
        :type inc_cmd_data: str
        :param inc_cmd_timeout: The timeout of the increase command
        :type inc_cmd_timeout: int
        :param inc_cmd_manual: If the increase command is manual
        :type inc_cmd_manual: bool
        ZhasDecreaseCmdZdecCmdStrategyZ
decCmdDataZdecCmdTimeoutZdecCmdManualZhasIncreaseCmdZincCmdStrategyZ
incCmdDataZincCmdTimeoutZincCmdManualN)r   r!   r   )r   Zhas_decrease_cmdZdec_cmd_strategyZdec_cmd_dataZdec_cmd_timeoutZdec_cmd_manualZhas_increase_cmdZinc_cmd_strategyZinc_cmd_dataZinc_cmd_timeoutZinc_cmd_manualr   r   r	   r   Í   s   zCmdConfig.__init__r
   r   r   r   r	   r!   È   r   r!   c                       r   )ÚBccNameConfigz6
    This class defines the BccNameConfig object.
    c                    r   )z§
        :param bcc_name: The name of the BCC
        :type bcc_name: str
        :param bcc_hostname: The hostname of the BCC
        :type bcc_hostname: str
        ZbccNameZbccHostnameN)r   r"   r   )r   Zbcc_nameZbcc_hostnamer   r   r	   r   ÷   r   zBccNameConfig.__init__r
   r   r   r   r	   r"   ò   r   r"   N)r   Údictr   r   r   r   r   r   r   r    r!   r"   r   r   r   r	   Ú<module>   s    F*