U
    d/e                     @   s^   d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 ddl
mZmZmZ G dd	 d	ZdS )
zCRequest/response of PutObjectRetention and GetObjectRetention APIs.    )absolute_importN   )
COMPLIANCE
GOVERNANCE)from_iso8601utcto_iso8601utc)Element
SubElementfindtextc                   @   sD   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 )	RetentionzRetention configuration.c                 C   sD   |t tfkr tdt  dt t|tjs4td|| _|| _d S )Nzmode must be z or z0retain until date must be datetime.datetime type)r   r   
ValueError
isinstancedatetime_mode_retain_until_date)selfmoderetain_until_date r   3/tmp/pip-unpacked-wheel-xery97c7/minio/retention.py__init__   s    zRetention.__init__c                 C   s   | j S )z	Get mode.)r   r   r   r   r   r   )   s    zRetention.modec                 C   s   | j S )zGet retain util date.)r   r   r   r   r   r   .   s    zRetention.retain_until_datec                 C   s&   t |dd}tt |dd}| ||S )z/Create new object with values from XML element.ModeTRetainUntilDate)r
   r   )clselementr   r   r   r   r   fromxml3   s
    
zRetention.fromxmlc                 C   s,   t d}t|d| j t|dt| j |S )zConvert to XML.r   r   r   )r   r	   r   r   r   )r   r   r   r   r   toxml<   s    zRetention.toxmlN)__name__
__module____qualname____doc__r   propertyr   r   classmethodr   r   r   r   r   r   r      s   



r   )r!   
__future__r   r   Zcommonconfigr   r   timer   r   xmlr   r	   r
   r   r   r   r   r   <module>   s   