o
    e                     @   s   d dl mZm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G dd deZdd ZdS )    )PlivoResourcePlivoResourceInterfacec                   @      e Zd Zd ZdZdS )EndUserend_userN__name__
__module____qualname___name_identifier_string r   r   X/var/www/html/venv/lib/python3.10/site-packages/plivo/resources/regulatory_compliance.pyr          r   c                       sL   e Zd Z fddZdd ZdddZddd	Zdd
dZdddZ  Z	S )EndUsersc                       t | _tt| | d S N)r   _resource_typesuperr   __init__selfclient	__class__r   r   r   
      zEndUsers.__init__c                 C      | j jdd|ftdS )NGETr   response_type)r   requestr   r   end_user_idr   r   r   get      zEndUsers.getNc                 C      | j ddt|||||dS )Nr   r   )limitoffsetname	last_nameend_user_typer   r    dict)r   r'   r(   r)   r*   r+   r   r   r   list   s   zEndUsers.listc              	   C   s   | j ddt|||dS )NPOSTr&   r)   r*   r+   r,   )r   r)   r*   r+   r   r   r   create   s   
zEndUsers.createc              	   C   s   | j dd|ft|||dS )Nr/   r   r0   r,   )r   r"   r*   r)   r+   r   r   r   update   s   zEndUsers.updatec                 C      | j dd|fS )NDELETEr   r   r    r!   r   r   r   delete      zEndUsers.deleteNNNNN)NNNNNNNr   
r   r	   r
   r   r#   r.   r1   r2   r6   __classcell__r   r   r   r   r   	   s    


r   c                   @   r   )ComplianceDocumentTypecompliance_document_typeNr   r   r   r   r   r<   !   r   r<   c                       .   e Zd Z fddZdd ZdddZ  ZS )	ComplianceDocumentTypesc                    r   r   )r   r   r   r?   r   r   r   r   r   r   '   r   z ComplianceDocumentTypes.__init__c                 C   r   )Nr   r<   r   )r   r    r<   )r   doc_idr   r   r   r#   +   r$   zComplianceDocumentTypes.getNc                 C   s   | j ddt||dS )Nr   )r<   )r'   r(   r,   )r   r'   r(   r   r   r   r.   .   s   zComplianceDocumentTypes.listNNr   r	   r
   r   r#   r.   r;   r   r   r   r   r?   &   s    r?   c                   @   r   )ComplianceDocumentcompliance_documentNr   r   r   r   r   rC   2   r   rC   c                       sL   e Zd Z fddZdd ZdddZddd	Zdd
dZdddZ  Z	S )ComplianceDocumentsc                    r   r   )r   r   r   rE   r   r   r   r   r   r   8   r   zComplianceDocuments.__init__c                 C   r   )Nr   rC   r   )r   r    rC   r   compliance_document_idr   r   r   r#   <      zComplianceDocuments.getNc                 C   r%   )Nr   rC   )r'   r(   r"   document_type_idaliasr,   )r   r'   r(   r"   rJ   rK   r   r   r   r.   @   s   zComplianceDocuments.listc                 K   s(   t |||||\}}| jjdd||dS )Nr/   rI   files%construct_compliance_document_payloadr   r    )r   r"   rJ   rK   filedata_fieldspayloadrM   r   r   r   r1   E   s   zComplianceDocuments.createc           	      K   s,   t |||||\}}| jjdd|f||dS )Nr/   rC   rL   rN   )	r   rG   r"   rJ   rK   rP   rQ   rR   rM   r   r   r   r2   I   s   zComplianceDocuments.updatec                 C   r3   )Nr4   rC   r5   rF   r   r   r   r6   N   r7   zComplianceDocuments.deleter8   r9   r   r:   r   r   r   r   rE   7   s    


rE   c                   @   r   )ComplianceRequirementcompliance_requirementNr   r   r   r   r   rS   R   r   rS   c                       r>   )	ComplianceRequirementsc                    r   r   )rS   r   r   rU   r   r   r   r   r   r   X   r   zComplianceRequirements.__init__c                 C   r   )Nr   rS   r   )r   r    rS   )r   compliance_requirement_idr   r   r   r#   \   rH   zComplianceRequirements.getNc              
   C   s   | j ddt||||dS )Nr   )rS   )country_iso2number_typer+   phone_numberr,   )r   rW   rX   r+   rY   r   r   r   r.   `   s
   
zComplianceRequirements.listr9   rB   r   r   r   r   rU   W   s    rU   c                   @   r   )ComplianceApplicationcompliance_applicationNr   r   r   r   r   rZ   f   r   rZ   c                       s^   e Zd Z fddZdd Z		dddZ		ddd	Zdd
dZdddZdddZ	  Z
S )ComplianceApplicationsc                    r   r   )r   r   r   r\   r   r   r   r   r   r   l   r   zComplianceApplications.__init__c                 C   r   )Nr   rZ   r   )r   r    rZ   r   compliance_application_idr   r   r   r#   p   rH   zComplianceApplications.getNc	           	      C   s$   | j ddt||||||||dS )Nr   rZ   )statusr+   rX   rW   rK   r'   r(   r"   r,   )	r   r`   r+   rX   rW   rK   r'   r(   r"   r   r   r   r.   t   s   
zComplianceApplications.listc                 C   s"   | j ddt|||||||dS )Nr/   r_   )rV   r"   rK   document_idsr+   rW   rX   r,   )r   rV   r"   ra   rK   r+   rW   rX   r   r   r   r1   {   s   
zComplianceApplications.createc                 C   s   | j dd|ft|dS )Nr/   rZ   )ra   r,   )r   r^   ra   r   r   r   r2      s   zComplianceApplications.updatec                 C   r3   )Nr4   rZ   r5   r]   r   r   r   r6      r7   zComplianceApplications.deletec                 C   s   | j dd|dfS )Nr/   rZ   Submitr5   r]   r   r   r   submit   s   zComplianceApplications.submit)NNNNNNNN)NNNNNNNrA   r   )r   r	   r
   r   r#   r.   r1   r2   r6   rc   r;   r   r   r   r   r\   k   s    



r\   c           	      C   sP   t | ||d}| D ]\}}|||i qddi}|r$dt|di}||fS )N)r"   rJ   rK   rP    rb)r-   itemsr2   open)	r"   rJ   rK   rP   rQ   rR   keyvaluerM   r   r   r   rO      s   rO   N)
plivo.baser   r   r   r   r<   r?   rC   rE   rS   rU   rZ   r\   rO   r   r   r   r   <module>   s    #