B
    zkF[¿  ã               @   sJ   d dl Z d dlmZ d dlmZ d dlmZ dZdZG dd„ dej	ƒZ
dS )	é    N)ÚUser)ÚInvalidEncryptionConfigError)ÚhandlerZDefaultKmsKeyNameZEncryptionConfigurationc               @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚEncryptionConfigz5Encapsulates the EncryptionConfiguration XML documentc             C   s   d | _ d| _d S )Nr   )Údefault_kms_key_nameÚparse_level)Úself© r	   ú7lib/python3.7/site-packages/boto/gs/encryptionconfig.pyÚ__init__!   s    zEncryptionConfig.__init__c             C   s    | j |krtd|| j f ƒ‚dS )z#Verify parse level for a given tag.z"Invalid tag %s at parse level %d: N)r   r   )r   ÚtagÚlevelr	   r	   r
   ÚvalidateParseLevel'   s    
z#EncryptionConfig.validateParseLevelc             C   sX   |t kr$|  |d¡ |  jd7  _n0|tkrH|  |d¡ |  jd7  _ntd| ƒ‚dS )z,SAX XML logic for parsing new element found.r   é   zUnsupported tag N)ÚENCRYPTION_CONFIGr   r   ÚDEFAULT_KMS_KEY_NAMEr   )r   ÚnameZattrsÚ
connectionr	   r	   r
   ÚstartElement-   s    zEncryptionConfig.startElementc             C   sb   |t kr$|  |d¡ |  jd8  _n:|tkrR|  |d¡ |  jd8  _| ¡ | _ntd| ƒ‚dS )z,SAX XML logic for parsing new element found.r   é   zUnsupported end tag N)r   r   r   r   Ústripr   r   )r   r   Úvaluer   r	   r	   r
   Ú
endElement8   s    zEncryptionConfig.endElementc             C   s>   dt  g}| jr&| dt| jtf ¡ | dt  ¡ d |¡S )z?Convert EncryptionConfig object into XML string representation.z<%s>z<%s>%s</%s>z</%s>Ú )r   r   Úappendr   Újoin)r   Úsr	   r	   r
   Úto_xmlD   s    

zEncryptionConfig.to_xmlN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r	   r	   r	   r
   r      s   r   )ÚtypesZboto.gs.userr   Zboto.exceptionr   Zxml.saxr   r   r   ZContentHandlerr   r	   r	   r	   r
   Ú<module>   s   