o
    È·e¿  ã                   @   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)ÚhandlerÚDefaultKmsKeyNameÚ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   úO/var/www/ideatree/venv/lib/python3.10/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  _dS |tkr&|  |d¡ |  jd7  _dS td| ƒ‚)ú,SAX XML logic for parsing new element found.r   é   zUnsupported tag N)ÚENCRYPTION_CONFIGr   r	   ÚDEFAULT_KMS_KEY_NAMEr   )r
   ÚnameÚattrsÚ
connectionr   r   r   ÚstartElement-   s   zEncryptionConfig.startElementc                 C   sb   |t kr|  |d¡ |  jd8  _dS |tkr+|  |d¡ |  jd8  _| ¡ | _dS td| ƒ‚)r   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   )ÚtypesÚboto.gs.userr   Úboto.exceptionr   Úxml.saxr   r   r   ÚContentHandlerr   r   r   r   r   Ú<module>   s   