o
    l>j%                     @  s  d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZ ddlmZ ejdd	Zd
ZdEddZdFddZeddddddeefdGd)d*Zed+dddddeefdGd,d-Zed.ed/ed/ej d0d1d2d	dddddeef
dHd6d7Z!ed8ed/ed/ej dd1d2d	dddddeef
dId:d;Z"ed<ed/dddddeefdJd=d>Z#ed?ed/dddddeefdJd@dAZ$edBed/dddddeefdJdCdDZ%dS )KzHide My Email commands.    )annotationsN)CLIAbort	get_stateservice_callnormalize_alias)
DEFAULT_LOG_LEVELDEFAULT_OUTPUT_FORMATHttpProxyOptionHttpsProxyOptionLogLevelOptionNoVerifySslOptionOutputFormatOptionSessionDirOptionUsernameOptionstore_command_options)console_tablezManage Hide My Email aliases.)helpzHide My Emailalias
str | Nonereturnstrc                 C  s    t | tr	| r	| S tt d)z7Return a generated alias or abort on an empty response.z" generate returned an empty alias.)
isinstancer   r   HIDE_MY_EMAIL)r    r   V/home/thesage/.local/lib/python3.10/site-packages/pyicloud/cli/commands/hidemyemail.py_require_generated_alias   s   r   payloaddict	operationc                 C  s4   |  d}t|tr|r|S tt d| d| )z7Return the alias id from a successful mutator response.anonymousId z returned an invalid response: )getr   r   r   r   )r   r   anonymous_idr   r   r   _require_mutation_result$   s   
r$   listFctxtyper.Contextusernamer   session_dirr   
http_proxyr
   https_proxyr   no_verify_sslr   output_formatr   	log_levelr   Nonec           
   
     sz   t | |||||||d t| }|  tt fdd jd}	|jr*||	 dS |j	t
tg ddd |	D  dS )	zList Hide My Email aliases.r(   r)   r*   r+   r,   r-   r.   c                     s   dd  j D S )Nc                 S  s   g | ]}t |qS r   r   .0r   r   r   r   
<listcomp>J   s    z6hidemyemail_list.<locals>.<lambda>.<locals>.<listcomp>)hidemyemailr   apir   r   <lambda>J       z"hidemyemail_list.<locals>.<lambda>account_nameN)AliasLabelzAnonymous IDc                 S  s"   g | ]}|d  |d |d fqS )emaillabelr#   r   r1   r   r   r   r3   T   s    z$hidemyemail_list.<locals>.<listcomp>)r   r   get_apir   r   r:   json_output
write_jsonconsoleprintr   )
r&   r(   r)   r*   r+   r,   r-   r.   stater   r   r5   r   hidemyemail_list/   s:   


rE   generatec              
     st   t | |||||||d t| }|  tt fdd jd}	t|	}	d|	i}
|jr2||
 dS |j	
|	 dS )zGenerate a new relay address.r0   c                     s
    j  S N)r4   rF   r   r5   r   r   r7   w   s   
 z&hidemyemail_generate.<locals>.<lambda>r9   r=   N)r   r   r?   r   r   r:   r   r@   rA   rB   rC   )r&   r(   r)   r*   r+   r,   r-   r.   rD   r   r   r   r5   r   hidemyemail_generate\   s.   


rH   reserve.	Generatedz--notezAlias note.r=   r>   notec              
     st   t | ||||||	|
d t| }|  tt fdd jd}t|d}|jr2|| dS |j	
| dS )z0Reserve a generated relay address with metadata.r0   c                     s    j jdS )N)r=   r>   rK   )r4   rI   r   r6   r=   r>   rK   r   r   r7      s    z%hidemyemail_reserve.<locals>.<lambda>r9   rI   Nr   r   r?   r   r   r:   r$   r@   rA   rB   rC   )r&   r=   r>   rK   r(   r)   r*   r+   r,   r-   r.   rD   r   reserved_idr   rL   r   hidemyemail_reserve   s,   


rO   updater#   c              
     sz   t | ||||||	|
d t| }| tt fddjd}t|d}|jr2|| dS |j	
d|  dS )zUpdate alias metadata.r0   c                     s   j  S rG   )r4   update_metadatar   r#   r6   r>   rK   r   r   r7      r8   z$hidemyemail_update.<locals>.<lambda>r9   rP   NzUpdated rM   )r&   r#   r>   rK   r(   r)   r*   r+   r,   r-   r.   rD   r   
updated_idr   rR   r   hidemyemail_update   s,   


rT   
deactivatec	              
     v   t | |||||||d t| }	|	 tt fddjd}
t|
d}|	jr0|	|
 dS |	j	
d|  dS )zDeactivate an alias.r0   c                        j  S rG   )r4   rU   r   r#   r6   r   r   r7          z(hidemyemail_deactivate.<locals>.<lambda>r9   rU   NzDeactivated rM   )r&   r#   r(   r)   r*   r+   r,   r-   r.   rD   r   deactivated_idr   rX   r   hidemyemail_deactivate   ,   


r[   
reactivatec	              
     rV   )zReactivate an alias.r0   c                     rW   rG   )r4   r]   r   rX   r   r   r7     rY   z(hidemyemail_reactivate.<locals>.<lambda>r9   r]   NzReactivated rM   )r&   r#   r(   r)   r*   r+   r,   r-   r.   rD   r   reactivated_idr   rX   r   hidemyemail_reactivate   r\   r_   deletec	              
     rV   )zDelete an alias.r0   c                     rW   rG   )r4   r`   r   rX   r   r   r7   :  rY   z$hidemyemail_delete.<locals>.<lambda>r9   r`   NzDeleted rM   )r&   r#   r(   r)   r*   r+   r,   r-   r.   rD   r   
deleted_idr   rX   r   hidemyemail_delete  r\   rb   )r   r   r   r   )r   r   r   r   r   r   )r&   r'   r(   r   r)   r   r*   r
   r+   r   r,   r   r-   r   r.   r   r   r/   )r&   r'   r=   r   r>   r   rK   r   r(   r   r)   r   r*   r
   r+   r   r,   r   r-   r   r.   r   r   r/   )r&   r'   r#   r   r>   r   rK   r   r(   r   r)   r   r*   r
   r+   r   r,   r   r-   r   r.   r   r   r/   )r&   r'   r#   r   r(   r   r)   r   r*   r
   r+   r   r,   r   r-   r   r.   r   r   r/   )&__doc__
__future__r   typerpyicloud.cli.contextr   r   r   pyicloud.cli.normalizer   pyicloud.cli.optionsr   r	   r
   r   r   r   r   r   r   r   pyicloud.cli.outputr   Typerappr   r   r$   commandrE   rH   ArgumentOptionrO   rT   r[   r_   rb   r   r   r   r   <module>   s    0

,%''%%