
                            S 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  SS
KJr  \	R                   \	R"                  " \	R$                  R&                  5       " S S\	R(                  5      5       5       rg)z#Command for updating health checks.    )absolute_import)division)unicode_literals)base_classes)health_checks_utils)base)
exceptions)flags)logc                   P    \ rS rSrSrSr\S 5       rS rS r	S r
S rS	 rS
 rSrg)Update   zUpdate a UDP health check.

*{command}* is used to update an existing UDP health check. Only
arguments passed in will be updated on the health check. Other
attributes will remain unaffected.
Nc                     [         R                  " S5      U l        U R                  R                  USS9  [        R
                  " USS9  [        R                  " US5        g )NUDPupdate)operation_typeF)request_and_response_required)r
   HealthCheckArgumentHEALTH_CHECK_ARGAddArgumentr   AddUdpRelatedArgsAddProtocolAgnosticUpdateArgs)clsparsers     /lib/surface/compute/health_checks/update/udp.pyArgsUpdate.Args*   sQ     44U;C$$VH$E))e555feD    c                     UR                   R                  SUR                  R                  UR	                  5       UR
                  S94$ )9Returns a request for fetching the existing health check.Get)healthCheckproject)apitools_clienthealthChecksmessagesComputeHealthChecksGetRequestNamer#   selfclienthealth_check_refs      r   _GetGetRequestUpdate._GetGetRequest2   sI    ""//OO99,113(00 : 23 3r   c                     UR                   R                  SUR                  R                  UR	                  5       UUR
                  S94$ )0Returns a request for updating the health check.r   )r"   healthCheckResourcer#   )r$   r%   r&    ComputeHealthChecksUpdateRequestr(   r#   r*   r+   r,   replacements       r   _GetSetRequestUpdate._GetSetRequest9   sL    ""//OO<<,113$/(00 = 23 3r   c                     UR                   R                  SUR                  R                  UR	                  5       UR
                  UR                  S94$ )r    r!   )r"   r#   region)r$   regionHealthChecksr&   #ComputeRegionHealthChecksGetRequestr(   r#   r8   r)   s      r   _GetRegionalGetRequestUpdate._GetRegionalGetRequestA   sS    ""55uOO??,113(00'.. @ 01 1r   c           	          UR                   R                  SUR                  R                  UR	                  5       UUR
                  UR                  S94$ )r0   r   )r"   r1   r#   r8   )r$   r9   r&   &ComputeRegionHealthChecksUpdateRequestr(   r#   r8   r3   s       r   _GetRegionalSetRequestUpdate._GetRegionalSetRequestI   sV    ""55xOOBB,113$/(00'..	 C 01 1r   c                 v   UR                   UR                  R                  R                  R                  :w  a-  [
        R                  " SUR                   R                  -   5      eUR                  (       a  UR                  nOUR                  c  UR                  nOSnUR                  (       a  UR                  nO&UR                  c  UR                  R                  nOSnUR                  R                  UR                  UUR                  R                  R                  R                  UR                  R                  UR                  =(       d    UR                  R                  UR                  =(       d    UR                  R                  UR                  =(       d    UR                  R                  US9UR                   =(       d    UR"                  UR$                  =(       d    UR&                  UR(                  =(       d    UR*                  UR,                  =(       d    UR.                  S9nU$ )z'Returns a modified HealthCheck message.z<update udp subcommand applied to health check with protocol N)requestresponseportportName)namedescriptiontypeudpHealthCheckcheckIntervalSec
timeoutSechealthyThresholdunhealthyThreshold)rH   r&   HealthCheckTypeValueValuesEnumr   core_exceptionsErrorrF   rG   	port_namerI   rE   UDPHealthCheckrB   rC   rD   check_intervalrJ   timeoutrK   healthy_thresholdrL   unhealthy_thresholdrM   )r*   r+   argsexisting_checkrG   rR   new_health_checks          r   ModifyUpdate.ModifyR   s    	##77;;	<!!
H



"
"#$ $ $$k				!"..kk~~..i		 //88ii22  __((<<@@55LLIN$A$A$I$I]]Ln&C&C&L&L@n;;@@	 6  
 -- :(99<<<>#<#<00 :(99 44 >*== 3 " r   c                    [         R                  " U R                  5       5      nUR                  n[        R
                  " U5        UR                  =(       dk    UR                  =(       dX    UR                  =(       dE    UR                  =(       d2    UR                  =(       d    UR                  =(       d    UR                  (       + nUR                  c*  UR                  c  U(       a  [        R                   " S5      eUR                  b'  UR                  (       d  [        R                   " S5      eUR                  b'  UR                  (       d  [        R                   " S5      eU R"                  R%                  XR&                  5      n[        R(                  " U5      (       a  U R+                  X55      nOU R-                  X55      nUR/                  U/5      nU R1                  X1US   5      nUS   U:X  a=  [2        R4                  R7                  SR9                  US   R:                  5      5        U$ [        R(                  " U5      (       a  U R=                  X5U5      n	OU R?                  X5U5      n	UR/                  U	/5      $ )z6Issues requests necessary to update UDP Health Checks.z'At least one property must be modified.z)"request" field for UDP can not be empty.z*"response" field for UDP can not be empty.r   z/No change requested; skipping update for [{0}].) r   ComputeApiHolderReleaseTrackr+   r   CheckProtocolAgnosticArgsrD   rT   rU   rV   rW   rB   rC   rG   rR   r	   ArgumentErrorr   ResolveAsResource	resourcesIsRegionalHealthCheckRefr;   r-   MakeRequestsr[   r   statusPrintformatrF   r?   r5   )
r*   rX   holderr+   
args_unsetr,   get_requestobjects
new_objectset_requests
             r   Run
Update.Run   s   **4+<+<+>?F]]F11$7ii 44#6#6 4$,, 4,,4040H0H4ll4&*mm5J DNN$:z$$%NOO ||$$
57 7}} $$
68 8 ,,>> 334DEE//Ik''Ak!!;-0GV71:6J
 qzZ	jjHOO
!*// n334DEE//0:<k ''*Mk}--r    )__name__
__module____qualname____firstlineno____doc__r   classmethodr   r-   r5   r;   r?   r[   ro   __static_attributes__rq   r   r   r   r      sB     E E3311+Z/.r   r   N)rv   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   0googlecloudsdk.command_lib.compute.health_checksr	   r
   googlecloudsdk.corerP   r   HiddenReleaseTracksr_   ALPHAUpdateCommandr   rq   r   r   <module>r      so    * &  ' 7 > ( G B = # D%%++,N.T N. - N.r   