o
    R+ i                      @   sP  d 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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 )+z3
This module defines some Response classes for BTS
    )BceResponse)JSONEncoderc                   @   s"   e Zd ZdZd
ddZdd Zd	S )Billinga  
	This class define billing.
	param: paymentTiming:
		The pay time of the payment,
	param: reservationLength:
		The duration to buy in specified time unit,
	param: reservationTimeUnit:
		The time unit to specify the duration ,only "Month" can be used now.
	Prepaid   Monthc                 C   s   || _ ||d| _d S )N)reservationLengthreservationTimeUnit)paymentTimingZreservation)selfZ
pay_methodr   r	    r   g/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/baidubce/services/scs/model.py__init__"   s   zBilling.__init__c                 C   s   | j S )zF
            get instance current pay_method:Prepaid/Postpaid
        )r
   r   r   r   r   get_pay_method)   s   zBilling.get_pay_methodN)r   r   r   )__name__
__module____qualname____doc__r   r   r   r   r   r   r      s    

r   c                           e Zd ZdZ fddZ  ZS )	SubnetMapz2
    SubnetMap:contains zoneName and subnetId
    c                    &   t t|   t|| _t|| _d S N)superr   r   str	zone_name	subnet_id)r   r   r   	__class__r   r   r   5      
zSubnetMap.__init__r   r   r   r   r   __classcell__r   r   r   r   r   0       r   c                       r   )CreateInstanceResponsez"
    Create Instance Response
    c                    "   t t|   |j| _|j| _d S r   )r   r#   r   Zinstance_idsZorder_idr   Zbce_responser   r   r   r   @      zCreateInstanceResponse.__init__r    r   r   r   r   r#   ;   r"   r#   c                       r   )ListInstanceResponsez 
    List Instance Response
    c                    sB   t t|   |j| _t|j| _t|j| _|j| _|j| _d S r   )	r   r'   r   Zmax_keysr   markerZnext_markerZis_truncatedZ	instancesr%   r   r   r   r   K   s   zListInstanceResponse.__init__r    r   r   r   r   r'   F   r"   r'   c                       r   )GetInstanceResponsez
    Get Instance Response
    c                    s   t t|   t|j| _t|j| _t|j| _t|j| _t|j| _t|j	| _	t|j
| _
t|j| _|j| _|j| _|j| _|j| _t|j| _|j| _t|j| _|j| _|j| _|j| _|j| _d S r   )r   r)   r   r   Zinstance_idZinstance_nameZinstance_statusZcluster_typeZengineZengine_versionZvnet_ipportZinstance_create_timeZinstance_expire_timecapacityZused_capacityZpayment_timingZ
zone_namesZvpc_idsubnetsZ
auto_renewZ	shard_numZ
store_typer%   r   r   r   r   Y   s(   zGetInstanceResponse.__init__r    r   r   r   r   r)   T   r"   r)   c                       r   )ListAvailableZoneResponse
    List available zone.
    c                       t t|   |j| _d S r   )r   r-   r   Zzonesr%   r   r   r   r   u      z"ListAvailableZoneResponse.__init__r    r   r   r   r   r-   p   r"   r-   c                       r   )ListSubnetResponser.   c                    s.   t t|   |j| _| jd u rg | _d S d S r   )r   r1   r   r,   r%   r   r   r   r      s
   

zListSubnetResponse.__init__r    r   r   r   r   r1   z   r"   r1   c                       r   )ListNodeTypeResponsez!
    List nodetypes for scs.
    c                    s*   t t|   |j| _|j| _|j| _d S r   )r   r2   r   Zdefault_node_type_listZcluster_node_type_listZhsdb_node_type_listr%   r   r   r   r      s   zListNodeTypeResponse.__init__r    r   r   r   r   r2      r"   r2   c                       r   )NodeTypez
    NodeType model
    c                    sj   t t|   t|j| _t|j| _t|j| _t|j	| _	t|j
| _
t|j| _|j| _|j| _d S r   )r   r3   r   r   Z	node_typeintZcpu_numZinstance_flavorfloatZnetwork_throughput_in_gbpsZpeak_qpsZmax_connectionsZallowed_node_num_listZallowed_replication_num_listr   objr   r   r   r      s   zNodeType.__init__r    r   r   r   r   r3      r"   r3   c                       s(   e Zd ZdZ fddZdd Z  ZS )Tagz
    Tag model
    c                    r   r   )r   r8   r   r   tag_key	tag_value)r   keyvaluer   r   r   r      r   zTag.__init__c                 C   s   t | j| jfS r   )reprr9   r:   r   r   r   r   __repr__   s   zTag.__repr__)r   r   r   r   r   r>   r!   r   r   r   r   r8      s    r8   c                       r   )ListSecurityIpResponsez>
    List IP whitelist of instances which allow access to
    c                    r/   r   )r   r?   r   Zsecurity_ipsr%   r   r   r   r      r0   zListSecurityIpResponse.__init__r    r   r   r   r   r?      r"   r?   c                       r   )ListParameterResponsezN
    List configuration parameters and runtime parameters of scs instance
    c                    r/   r   )r   r@   r   
parametersr%   r   r   r   r      r0   zListParameterResponse.__init__r    r   r   r   r   r@      r"   r@   c                       r   )	ParameterzI
    Configuration parameters and runtime parameters of scs instance
    c                    sB   t t|   t|j| _t|j| _t|j| _t|j| _d S r   )	r   rB   r   r   defaultr4   Zforce_restartnamer<   r6   r   r   r   r      s
   zParameter.__init__r    r   r   r   r   rB      r"   rB   c                       r   )ModifyParameterRequestz6
    A request model to modify instance parameter
    c                    *   t t|   t|j| _t|j| _d S r   )r   rE   r   r   rD   r<   r6   r   r   r   r         zModifyParameterRequest.__init__r    r   r   r   r   rE      r"   rE   c                       r   )ListBackupResponsez#
    List backups of instance.
    c                    r$   r   )r   rH   r   Ztotal_countZbackupsr%   r   r   r   r      r&   zListBackupResponse.__init__r    r   r   r   r   rH      r"   rH   c                       r   )Backupz
    Backup model
    c                    s>   t t|   t|j| _t|j| _|j| _t|j| _d S r   )r   rI   r   r   Zbackup_typecommentrecords
start_timer6   r   r   r   r      s
   zBackup.__init__r    r   r   r   r   rI      r"   rI   c                       r   )BackupRecordz
    Backup record model
    c                    sZ   t t|   t|j| _t|j| _t|j| _t|j| _t|j	| _	t|j
| _
d S r   )r   rM   r   r   Zbackup_record_idZbackup_statusr4   durationZobject_sizeZ
shard_namerL   r6   r   r   r   r      s   zBackupRecord.__init__r    r   r   r   r   rM      r"   rM   c                       r   )GetBackupResponsez*
    Get backup detail response model
    c                    rF   r   )r   rO   r   r   urlZurl_expirationr%   r   r   r   r   	  rG   zGetBackupResponse.__init__r    r   r   r   r   rO     r"   rO   c                   @   s   e Zd ZdZdd ZdS )JsonWrapperz+
        custom json encoder for class
    c                 C   sR   t |trt|ddS t |tr|j|jdS t |tr#|j|jdS t	
| |S )Nzutf-8)encoding)ZzoneNameZsubnetId)ZtagKeyZtagValue)
isinstancebytesr   r   r   r   r8   r9   r:   r   rC   r6   r   r   r   rC     s   


zJsonWrapper.defaultN)r   r   r   r   rC   r   r   r   r   rQ     s    rQ   N)r   Zbaidubce.bce_responser   jsonr   objectr   r   r#   r'   r)   r-   r1   r2   r3   r8   r?   r@   rB   rE   rH   rI   rM   rO   rQ   r   r   r   r   <module>   s,   


