
    !j	                        d Z ddlmZmZ ddlmZ ddlmZmZmZ ddl	m
Z ddlmZmZ ddlmZmZ dd	lmZmZmZ  ed
d          Z G d d          ZdS )zCRequest/response of PutObjectRetention and GetObjectRetention APIs.    )absolute_importannotations)datetime)TypeTypeVarcast)ElementTree   )
COMPLIANCE
GOVERNANCE)from_iso8601utcto_iso8601utc)Element
SubElementfindtextA	Retention)boundc                  j    e Zd ZdZddZedd            Zedd	            Zedd            Z	ddZ
dS )r   zRetention configuration.modestrretain_until_dater   c                    |t           t          fvrt          dt            dt                     t          |t                    st          d          || _        || _        d S )Nzmode must be z or z'retain until date must be datetime type)r   r   
ValueError
isinstancer   _mode_retain_until_date)selfr   r   s      Y/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/minio/retention.py__init__zRetention.__init__#   sp    
J///IZIIZIIJJJ+X66 	9   
"3    returnc                    | j         S )z	Get mode.)r   r   s    r   r   zRetention.mode-   s     zr!   c                    | j         S )zGet retain util date.)r   r$   s    r   r   zRetention.retain_until_date2   s     &&r!   clsType[A]element
ET.Elementr   c                    t          t          t          |dd                    }t          t          t	          t          t          t          |dd                                        } | ||          S )z/Create new object with values from XML element.ModeTRetainUntilDate)r   r   r   r   r   )r&   r(   r   r   s       r   fromxmlzRetention.fromxml7   sn     C'648899 S(7,=tDDEE 
 
 s4*+++r!   ET.Element | Nonec                    t          d          }t          |d| j                   t          |dt          | j                             |S )zConvert to XML.r   r+   r,   )r   r   r   r   r   )r   r(   s     r   toxmlzRetention.toxmlC   sP    +&&7FDJ///$122	
 	
 	

 r!   N)r   r   r   r   )r"   r   )r"   r   )r&   r'   r(   r)   r"   r   )r(   r.   r"   r)   )__name__
__module____qualname____doc__r    propertyr   r   classmethodr-   r0    r!   r   r   r       s        ""4 4 4 4    X ' ' ' X' 	, 	, 	, [	,	 	 	 	 	 	r!   N)r4   
__future__r   r   r   typingr   r   r   	xml.etreer	   ETcommonconfigr   r   timer   r   xmlr   r   r   r   r   r7   r!   r   <module>r?      s   " J I 3 3 3 3 3 3 3 3       & & & & & & & & & & ' ' ' ' ' ' 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . . . . . . .GC{###, , , , , , , , , ,r!   