o
    #jb                      @   s  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d"S )#z*
This module provides models for RDS-SDK.
    )JSONEncoder)BceResponsec                   @   s"   e Zd ZdZd
ddZdd Zd	S )Billinga+  
    This class define billing.
    param: pay_method:
            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   `/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/baidubce/services/rds/rds_model.py__init__#   s   zBilling.__init__c                 C   s   | j S )zB
        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   8      
zSubnetMap.__init__r   r   r   r   r   __classcell__r   r   r   r   r   2   s    r   c                       s(   e Zd ZdZ fddZdd Z  ZS )Tagz
    Tag model
    c                    r   r   )r   r"   r   r   tag_key	tag_value)r   keyvaluer   r   r   r   C   r   zTag.__init__c                 C   s   t | j| jfS r   )reprr#   r$   r   r   r   r   __repr__H   s   zTag.__repr__)r   r   r   r   r   r(   r!   r   r   r   r   r"   >   s    r"   c                       "   e Zd ZdZd fdd	Z  ZS )InitialDataReferencez$
        Initial Data Reference
    Nc                    *   t t|   || _|| _|| _|| _d S r   )r   r*   r   instance_idreference_typedatetimesnapshot_id)r   r,   r-   r.   r/   r   r   r   r   Q   
   
zInitialDataReference.__init__)NNr    r   r   r   r   r*   L       r*   c                       r)   )RecoveryToSourceInstanceModelz,
        RecoveryToSourceInstance model
    Nc                    r+   r   )r   r2   r   restore_modedb_name
new_dbnametables)r   r3   r4   r5   r6   r   r   r   r   ^   r0   z&RecoveryToSourceInstanceModel.__init__r   r    r   r   r   r   r2   Y   r1   r2   c                       r   )Tablesz
        Tables
    c                    s   t t|   || _|| _d S r   )r   r7   r   
table_namenew_tablename)r   r8   r9   r   r   r   r   k   s   
zTables.__init__r    r   r   r   r   r7   f       r7   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   v      zCreateInstanceResponse.__init__r    r   r   r   r   r;   q   r:   r;   c                       r   )GetInstanceResponsez#
        Get Instance Response
    c                    s   t t|   |j| _|j| _|j| _|j| _|j| _|j| _|j	| _	|j
| _
|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _|j| _d S r   )r   r?   r   r,   Zinstance_nameengineengine_versioncategoryZinstance_status	cpu_countZmemory_capacityZvolume_capacityZnode_amountZused_storageZinstance_create_timeZinstance_expire_timeZendpointZpublic_access_statusZ	sync_modeZbackup_policyregionZinstance_typeZsource_instance_idZsource_regionZ
zone_namesZvpc_idsubnetsZtopologyZpayment_timingZcharacter_set_namer=   r   r   r   r      s8   zGetInstanceResponse.__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   rF   r   Zmax_keysr   markerZnext_markerZis_truncatedZ	instancesr=   r   r   r   r      s   zListInstanceResponse.__init__r    r   r   r   r   rF      r:   rF   c                       r   )ListZoneResponse
    List zone.
    c                       t t|   |j| _d S r   )r   rH   r   Zzonesr=   r   r   r   r         zListZoneResponse.__init__r    r   r   r   r   rH      r:   rH   c                       r   )ListSubnetResponserI   c                    rJ   r   )r   rL   r   rE   r=   r   r   r   r      rK   zListSubnetResponse.__init__r    r   r   r   r   rL      r:   rL   c                       r   )Instancez
    instance.
    c                    s<   t t|   || _|| _|| _|| _|| _|| _|| _	d S r   )
r   rM   r   r@   ZengineVersionZcpuCountZallocatedMemoryInGBZallocatedStorageInGBrB   Z
diskIoType)r   r@   rA   rC   Zallocated_memory_in_g_bZallocated_storage_in_g_brB   Zdisk_io_typer   r   r   r      s   
zInstance.__init__r    r   r   r   r   rM      r:   rM   c                       r   )PriceResponsez
    price response.
    c                    rJ   r   )r   rN   r   Zpricer=   r   r   r   r      rK   zPriceResponse.__init__r    r   r   r   r   rN      r:   rN   c                       r   )OrderStatusResponsez 
    order status response.
    c                    r<   r   )r   rO   r   ZorderIdstatusr=   r   r   r   r      r>   zOrderStatusResponse.__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   s   t |trt|ddS t |tr|j|jdS t |tr#|j|jdS t |t	r3|j
|j|j|jdS t |trC|j|j|j|jdS t |trO|j|jdS t| |S )Nzutf-8)encoding)ZzoneNameZsubnetId)ZtagKeyZtagValue)Z
instanceIdZreferenceTyper.   Z
snapshotId)ZrestoreModeZdbNameZ	newDbnamer6   )Z	tableNameZnewTablename)
isinstancebytesr   r   r   r   r"   r#   r$   r*   r,   r-   r.   r/   r2   r3   r4   r5   r6   r7   r8   r9   r   default)r   objr   r   r   rU      s6   





zJsonWrapper.defaultN)r   r   r   r   rU   r   r   r   r   rQ      s    rQ   N)r   jsonr   Zbaidubce.bce_responser   objectr   r   r"   r*   r2   r7   r;   r?   rF   rH   rL   rM   rN   rO   rQ   r   r   r   r   <module>   s$   $


