
    *                     ,   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  SSKJr  S rS rS rS rS rS rS rS rS r\	R8                  " \	R:                  R<                  5      \	R>                   " S S\	R@                  5      5       5       r!\	R8                  " \	R:                  RD                  5       " S S\!5      5       r#\	R8                  " \	R:                  RH                  5       " S S\#5      5       r%g)z#Command for updating health checks.    )absolute_import)division)unicode_literals)base_classes)health_checks_utils)base)scope)
exceptions)flags)logc                      SSS.$ )NUpdate a HTTPS health check.z      *{command}* is used to update an existing HTTPS health check. Only
      arguments passed in will be updated on the health check. Other
      attributes will remain unaffected.
      )briefDESCRIPTION r       1lib/surface/compute/health_checks/update/https.py_DetailedHelpr      s     )
		
 	r   c                 N   [         R                  " S5      nUR                  U SS9  [        R                  " U U5        [        R
                  " U S5        [        R                  " U 5        U(       a  [        R                  " U 5        U(       a  [        R                  " U 5        gg)z Adds all the args in the parser.HTTPSupdate)operation_typeN)	r   HealthCheckArgumentAddArgumentr   AddHttpRelatedUpdateArgsAddProtocolAgnosticUpdateArgsAddHttpRelatedResponseArg&AddHealthCheckSourceRegionsRelatedArgs AddHealthCheckLoggingRelatedArgs)parserinclude_log_configinclude_weighted_load_balancinginclude_source_regionshealth_check_args        r   _Argsr%   ,   s     ..w7vh?..v/NP33FGD//7>>vF88@ r   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*   clienthealth_check_refs     r   _GetGetRequestr3   ?   sI    

 
 
-
-u
//
7
7*//1&.. 8 0
1 1r   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.Update)r)   healthCheckResourcer*   )r+   r,   r-    ComputeHealthChecksUpdateRequestr/   r*   r1   r2   replacements      r   _GetSetRequestr;   G   sL    

 
 
-
-x
//
:
:*//1"-&.. ; 0
1 1r   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*   r=   r0   s     r   _GetRegionalGetRequestr@   P   sR    

 
 
3
3U
//
=
=*//1&..%,, > .
/ /r   c           	          U R                   R                  SU R                  R                  UR	                  5       UUR
                  UR                  S94$ )r5   r6   )r)   r7   r*   r=   )r+   r>   r-   &ComputeRegionHealthChecksUpdateRequestr/   r*   r=   r9   s      r   _GetRegionalSetRequestrC   Y   sV    

 
 
3
3X
//
@
@*//1"-&..%,,	 A .
/ /r   c                    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[        R                  " XR                  5      u  pn
U(       a[  UR                  R                  nUR                  S5      (       a/  U R                  R                  R!                  UR"                  5      nUR                  R$                  nUR&                  b/  U R                  R                  R)                  UR&                  5      nUR*                  (       a  UR*                  nO&UR*                  c  UR                  R*                  nOSnU R                  R                  UUU	UR,                  =(       d    UR                  R.                  U
UUS9nU(       a  WUl        U R                  R                  UR                  UU R                  R                  R                  R                  UUR0                  =(       d    UR2                  UR4                  =(       d    UR6                  UR8                  =(       d    UR:                  UR<                  =(       d    UR>                  S9nU(       a&  [        R@                  " XURB                  5      Ul!        U(       a5  URD                  nUR                  S5      (       a  URF                  nUUl"        U$ )z'Returns a modified HealthCheck message.z>update https subcommand applied to health check with protocol Nweight_report_mode)hostportportNamerequestPathportSpecificationproxyHeaderresponse)namedescriptiontypehttpsHealthCheckcheckIntervalSec
timeoutSechealthyThresholdunhealthyThresholdsource_regions)$rO   r-   HealthCheckTypeValueValuesEnumr   core_exceptionsErrorrM   rN   rF   rP   r   HandlePortRelatedFlagsForUpdateweightReportModeIsSpecifiedHTTPSHealthCheckWeightReportModeValueValuesEnumrE   rK   proxy_headerProxyHeaderValueValuesEnumrL   request_pathrI   check_intervalrQ   timeoutrR   healthy_thresholdrS   unhealthy_thresholdrT   ModifyLogConfig	logConfigsourceRegionsrU   )r1   argsexisting_checkr!   r"   r#   rN   rF   rG   	port_nameport_specificationrE   r_   rL   https_health_checknew_health_checkrU   s                    r   _Modifyro   c   s    oo!!55;;<


H  	!" " 
""K ,,KK	YY99Dyy**//DD(;##)$$(*I*I)K%$% %'88II,--!??;;[[

!
!#  00<<,	"((CC	  
]]}}H}}..77HH77$$ ?!22>>* 8  %*<'__00??&&::@@)++N~/N/N:!:!:.. 8&7722 <(;; 1  !4!D!Dn.."0 #11N())**n%3"	r   c                    [         R                  " U 5        U R                  =(       d~    U R                  =(       dk    U R                  =(       dX    U R
                  =(       dE    U R                  =(       d2    U R                  =(       d    U R                  =(       d    U R                  (       + nU(       a  U R                  SL =(       a    UnSnU(       a  U R                  S5      (       a  SnSnU(       a  U R                  S5      (       a  SnU R                  cX  U R                  cJ  U R                  c<  U R                  c.  U(       d&  U(       d  U(       a  [         R"                  " S5      eggggggg)zBValidates given args and raises exception if any args are invalid.NFrU   TrE   z'At least one property must be modified.)r   CheckProtocolAgnosticArgsrG   ra   rb   rc   rd   re   r_   use_serving_portenable_loggingr\   rN   rF   rL   rk   r
   ArgumentError)ri   r!   r"   r#   
args_unsetsource_regions_modifiedweight_report_mode_modifieds          r   _ValidateArgsrx      sD    //5II *!2!2 *d6I6I *LL*$($:$:*,,*040A0A* ))+*
 %%-<*J! 0 01A B B" %$)9)9:N)O)O"& 
))

--

..
 )%


"
"#L
MM  & * !    r   c                    UR                   n[        U UUU5        [        R                  " S5      nUR	                  XR
                  [        R                  R                  S9n[        R                  " U5      (       a  [        XW5      nO[        XW5      nUR                  U/5      n	[        UU U	S   UUU5      n
U	S   U
:X  a=  [        R                   R#                  SR%                  U	S   R&                  5      5        U	$ [        R                  " U5      (       a  [)        XWU
5      nO[+        XWU
5      nUR                  U/5      $ )z<Issues the requests necessary for updating the health check.r   )default_scoper   z/No change requested; skipping update for [{0}].)r1   rx   r   r   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALr   IsRegionalHealthCheckRefr@   r3   MakeRequestsro   r   statusPrintformatrM   rC   r;   )ri   holderr!   r"   r#   r1   r$   r2   get_requestobjects
new_objectset_requests               r   _Runr      s7    ==&
%	 ..w7%77
M,C,C,J,J 8 L 112BCC(BK :K.'
aj%* QZ:JJFMM
 N112BCC(:NK :FK			k]	++r   c                   H    \ rS rSrSrSrSrSr\" 5       r	\
S 5       rS rSrg)	r6   i  r   TFc                 \    [        UU R                  U R                  U R                  5        g N)r%   _include_log_config _include_weighted_load_balancing_include_source_regions)clsr    s     r   ArgsUpdate.Args$  s(    	,,##	r   c                     [         R                  " U R                  5       5      n[        UUU R                  U R
                  U R                  5      $ r   )r   ComputeApiHolderReleaseTrackr   r   r   r   )selfri   r   s      r   Run
Update.Run-  sI    **4+<+<+>?F  --$$ r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r   detailed_helpclassmethodr   r   __static_attributes__r   r   r   r6   r6     s7     %%*" /- r   r6   c                       \ rS rSrSrSrg)
UpdateBetai8  Fr   Nr   r   r   r   r   r   r   r   r   r   r   8  s
     &+"r   r   c                       \ rS rSrSrSrg)UpdateAlphai>  Tr   Nr   r   r   r   r   r   >  s
     &*"r   r   N)&r   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r}   0googlecloudsdk.command_lib.compute.health_checksr
   r   googlecloudsdk.corerX   r   r   r%   r3   r;   r@   rC   ro   rx   r   ReleaseTracksr   GADefaultUniverseOnlyUpdateCommandr6   BETAr   ALPHAr   r   r   r   <module>r      s   * &  ' 7 > ( E G B = #
A&11//\~"NJ0,f D%%(()T   *8 D%%**++ + ,+
 D%%++,** * -*r   