
    -pj                         S r SSKrSSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  \R$                  " \5      r " S S\5      rg)z8
This module provides a client class for BOS CloudFlow.
    N)BceBaseClient)bce_v1_signer)bce_http_client)handler)http_methods)http_content_types)http_headers)required)cloudflow_modelc                   d   \ rS rSrSrSrSS jrS r\  SS j5       r	  SS jr
\" \R                  S	9SS
 j5       r\" \R                  S9SS j5       r\" \S9SS j5       rSS jr\" \S9SS j5       r\" \S9SS j5       r\" \S9SS j5       r\" \S9SS j5       r\" \S9SS j5       rSrg)CloudFlowClient   z
sdk client
s   /v1/Nc                 0    [         R                  " X5        g N)r   __init__)selfconfigs     h/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/baidubce/services/cloudflow/cloudflow_client.pyr   CloudFlowClient.__init__   s    t,    c                     Uc  U R                   $ [        R                  " U R                   5      nUR                  U5        U$ r   )r   copymerge_non_none_values)r   r   
new_configs      r   _merge_configCloudFlowClient._merge_config"   s7    >;;4;;/J,,V4r   c           
      0   / SQnUb  [        U5      S:X  av  / nU H]  n	U	R                  5       R                  5       n
U
R                  [        R
                  5      (       d  X;   d  ML  UR                  U
5        M_     UR                  5         OnU HX  n	U	R                  5       R                  5       n
U
R                  [        R
                  5      (       d  MG  UR                  U
5        MZ     UR                  5         [        R                  " U UUUUUUU5      $ )z+
CloudFlow API signature adaptation method
)s   hosts   content-md5s   content-lengths   content-typer   )
lenstriplower
startswithr	   
BCE_PREFIXappendsortr   sign)credentialshttp_methodpathheadersparams	timestampexpiration_in_secondsheaders_to_signheaders_to_sign_listkk_lowers              r   _bce_cloudflow_sign#CloudFlowClient._bce_cloudflow_sign,   s     D "c/&:a&? O'')//+%%l&=&=>>'Ba#**73    "'')//+%%l&=&=>>#**73    "!!+"-"&")"("+"7"13 	3r   c           
          U R                  U5      nUc  [        R                  nUc  [        R                  S0n[
        R                  n[        R                  " XPR                  [        R                  U/XX4U5      $ )Ns   application/json)r   r   
parse_jsonr	   CONTENT_TYPEr   r(   r   send_requestr1   parse_error)r   r'   r*   bodyr)   r   body_parserr(   s           r   _send_requestCloudFlowClient._send_requestN   sv    ##F+!,,K?#002EFG##++F4L4L  +.4RXZ 	Zr   )create_task_infoc                     UR                  5       n[        R                  R                  S0nU R	                  [
        R                  UX2S9$ )z
create migration task
Nr*   r8   r   )to_json_stringcfmMigrationInterfacePOSTMIGRATIONr:   r   POST)r   r<   r   r8   r*   s        r   create_migration CloudFlowClient.create_migration]   sQ    
  ..0""00$
 !!,"3"3F'+ " < 	<r   )create_task_list_infoc                     UR                  5       n[        R                  R                  S0nU R	                  [
        R                  UX2S9$ )z!
create migration task from list
Nr>   )r?   r@   rA   POSTMIGRATIONFROMLISTr:   r   rC   )r   rF   r   r8   r*   s        r   create_migration_from_list*CloudFlowClient.create_migration_from_listi   sQ    
 %335""88$
 !!,"3"3F'+ " < 	<r   )task_idc                 z    [         R                  R                  SSU0nU R                  [        R
                  X2S9$ )z
get migration task
N   taskIdr*   r   )r@   rA   GETMIGRATIONr:   r   GETr   rK   r   r*   s       r   get_migrationCloudFlowClient.get_migrationu   s?     ""//w
 !!,"2"26!QQr   c                 v    [         R                  R                  S0nU R                  [        R
                  X!S9$ )z
list migration task
NrN   )r@   rA   LISTMIGRATIONr:   r   rP   )r   r   r*   s      r   list_migrationCloudFlowClient.list_migration   s:    
 ""00$
 !!,"2"26!QQr   c                 z    [         R                  R                  SSU0nU R                  [        R
                  X2S9$ )z
get migration task result
NrM   rN   )r@   rA   GETMIGRATIONRESULTr:   r   rP   rQ   s       r   get_migration_result$CloudFlowClient.get_migration_result   s?     ""55tw
 !!,"2"26!QQr   c                 z    [         R                  R                  SSU0nU R                  [        R
                  X2S9$ )z
pause migration task
NrM   rN   )r@   rA   PAUSEMIGRATIONr:   r   rC   rQ   s       r   pause_migrationCloudFlowClient.pause_migration   ?     ""114w
 !!,"3"3F!RRr   c                 z    [         R                  R                  SSU0nU R                  [        R
                  X2S9$ )z
resume migration task
NrM   rN   )r@   rA   RESUMEMIGRATIONr:   r   rC   rQ   s       r   resume_migration CloudFlowClient.resume_migration   s?     ""22Dw
 !!,"3"3F!RRr   c                 z    [         R                  R                  SSU0nU R                  [        R
                  X2S9$ )z
retry migration task
NrM   rN   )r@   rA   RETRYMIGRATIONr:   r   rC   rQ   s       r   retry_migrationCloudFlowClient.retry_migration   r`   r   c                 z    [         R                  R                  SSU0nU R                  [        R
                  X2S9$ )z
delete migration task
NrM   rN   )r@   rA   DELETEMIGRATIONr:   r   DELETErQ   s       r   delete_migration CloudFlowClient.delete_migration   s?     ""22Dw
 !!,"5"5f!TTr    r   )r   i  N)NNNNN)__name__
__module____qualname____firstlineno____doc__r(   r   r   staticmethodr1   r:   r
   r@   CreateTaskInforD   CreateTaskListInforI   strrR   rV   rZ   r^   rc   rg   rl   __static_attributes__rn   r   r   r   r      s)    D
- >B+/3 3B JN04Z  2 24	< 5	< S%;%;=	< >	< sR RR sR R sS S sS S sS S sU Ur   r   )rs   r   loggingbaidubce.bce_base_clientr   baidubce.authr   baidubce.httpr   r   r   r   r	   baidubce.utilsr
   baidubce.services.cloudflowr   r@   	getLoggerro   _loggerr   rn   r   r   <module>r      sO      2 ' ) ! & , & # > 

H
%hUm hUr   