o
    e                     @   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
dS )z*
This module provides models for BCC-SDK.
c                   @   s   e Zd ZdZdddZdS )Billinga  
	This class define billing.
	param: paymentTiming: 
		The pay time of the payment,
		see more detail in https://bce.baidu.com/doc/BCC/API.html#Billing
	param: reservationLength: 
		The duration to buy in specified time unit,
		available values are [1,2,3,4,5,6,7,8,9,12,24,36] now.
	param: reservationTimeUnit: 
		The time unit to specify the duration ,only "Month" can be used now.
	N   Monthc                 C   s   |r|| _ ||d| _d S )N)reservationLengthreservationTimeUnit)paymentTimingZreservation)selfr   r   r    r   OD:\Projects\ConvertPro\env\Lib\site-packages\baidubce/services/bcc/bcc_model.py__init__$   s
   zBilling.__init__)Nr   r   __name__
__module____qualname____doc__r
   r   r   r   r	   r          r   c                   @   s   e Zd ZdZdddZdS )EphemeralDiskz
    This class define detail of creating ephemeral volume.
    param: sizeInGB:
        The size of volume in GB.
	param: storageType:
		The storage type of volume,
		see more detail in https://bce.baidu.com/doc/BCC/API.html#StorageType
    satac                 C      || _ || _d S N)sizeInGBstorageType)r   r   r   r   r   r	   r
   7      
zEphemeralDisk.__init__N)r   r   r   r   r   r	   r   -   s    	r   c                   @   s   e Zd ZdZdddZdS )CreateCdsModela  
	This class define detail of creating volume.
	param: cdsSizeInGB: 
		The size of volume in GB.
	param: storageType: 
		The storage type of volume, 
		see more detail in https://bce.baidu.com/doc/BCC/API.html#StorageType
	param: snapshotId: 
		The id of snapshot.
	param: encryptKey
	Nhp1c                 C      || _ || _|| _|| _d S r   )cdsSizeInGBr   
snapshotId
encryptKey)r   r   r   r   r   r   r   r	   r
   I      
zCreateCdsModel.__init__)Nr   NNr   r   r   r   r	   r   <   r   r   c                   @   s    e Zd ZdZ			dddZdS )SecurityGroupRuleModela  
	This class define the rule of the securitygroup.
	param: remark: 
		The remark for the rule.
	param: direction: 
		The parameter to define the rule direction,available value are "ingress/egress".
	param: ethertype: 
		The ethernet protocol.
	param: portRange: 
		The port range to specify the port which the rule will work on.
		Available range is rang [0, 65535], the fault value is "" for all port.
	param: protocol: 
		The parameter specify which protocol will the rule work on, the fault value is "" for all protocol.
		Available protocol are tcp, udp and icmp.
	param: sourceGroupId: 
		The id of source securitygroup.
		Only works for direction = "ingress".
	param: sourceIp: 
		The source ip range with CIDR formats. The default value 0.0.0.0/0 (allow all ip address),
		other supported formats such as {ip_addr}/12 or {ip_addr}. Only supports IPV4.
		Only works for  direction = "ingress".
	param: destGroupId: 
		The id of destination securitygroup.
		Only works for  direction = "egress".
	param: destIp: 
		The destination ip range with CIDR formats. The default value 0.0.0.0/0 (allow all ip address),
		other supported formats such as {ip_addr}/12 or {ip_addr}. Only supports IPV4.
		Only works for  direction = "egress".
	param: securityGroupId: 
		The id of the securitygroup for the rule.
	Nc                 C   s@   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	d S r   )
remark	direction	ethertype	portRangeprotocolsourceGroupIdsourceIpdestGroupIddestIpsecurityGroupId)r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r   r   r	   r
   q   s   
zSecurityGroupRuleModel.__init__)
NNNNNNNNNNr   r   r   r   r	   r   P   s     r   c                   @      e Zd ZdZdddZdS )TagModelz
    TAGModel
    Nc                 C   r   r   )tagKeytagValue)r   r,   r-   r   r   r	   r
      r   zTagModel.__init__)NNr   r   r   r   r	   r+          r+   c                   @   s   e Zd ZdZdddZdS )PayTimingChangeReqModelz8
    This class define detail of change pay timing.
    FNTc                 C   s"   || _ || _|| _|| _|| _d S r   )
instanceIdrelationCdscdsListdurationautoPay)r   r0   r1   r2   r3   r4   r   r   r	   r
      s
   
z PayTimingChangeReqModel.__init__)FNNTr   r   r   r   r	   r/      r.   r/   c                   @   s   e Zd ZdZdd ZdS )DestRegionInfoModelz5
    This class define for snapshot remote copy.
    c                 C   r   r   )
destRegionname)r   r6   r7   r   r   r	   r
      r   zDestRegionInfoModel.__init__Nr   r   r   r   r	   r5      s    r5   c                   @   r*   )AutoSnapshotPolicyModelz5
        This class define auto snapshot policy.
    Nc                 C   r   r   )r7   
timePointsrepeatWeekdaysretentionDays)r   r7   r9   r:   r;   r   r   r	   r
      r   z AutoSnapshotPolicyModel.__init__r   r   r   r   r   r	   r8      r.   r8   c                   @   r*   )FileSystemModelz,
        This class define file system.
    Nc                 C   r   r   )fsIdmountAdspathr$   )r   r=   r>   r?   r$   r   r   r	   r
      r   zFileSystemModel.__init__)NNNNr   r   r   r   r	   r<      r.   r<   N)r   objectr   r   r   r   r+   r/   r5   r8   r<   r   r   r   r	   <module>   s   0

