
                             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\R"                  5      rS rS rg)z*`gcloud monitoring uptime create` command.    )absolute_import)division)unicode_literals)uptime)base)flags)resource_args)util)repeated)logc                   8    \ rS rSrSrSSS.r\S 5       rS rSr	g	)
Update   z5Update an existing uptime check or synthetic monitor.aZ            Updates an existing uptime check or synthetic monitor.

          Flags only apply to uptime checks unless noted that they apply to
          synthetic monitors.

          For information about the JSON/YAML format of an uptime check:
          https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs
       z~          To update an uptime check or synthetic monitor, run:

          $ {command} CHECK_ID --period=5 --timeout=30
       )DESCRIPTIONEXAMPLESc                     [         R                  " S5      /n[         R                  " X5        [        R                  " U SS9  g )Nzto be updated.T)update)r	   CreateUptimeResourceArgAddResourceArgsr   AddUptimeSettingsFlags)parser	resourcess     'lib/surface/monitoring/uptime/update.pyArgsUpdate.Args1   s4    667GHII!!&4	  5    c                 @  ^^^ [         R                  " 5       nUR                  R                  R	                  5       nUR                  U5      n[        R                  " USUR                  R                  R                  UR                  5      nS n[        UR                  5      m[        R                  " USU4S j5      n/ m/ n/ m/ n	UR                   b  [        R                  " USUR                  R"                  R$                  UR                   R&                  5      nUR                   R(                   HH  n
U
R*                  b  TR-                  U
R*                  5        M-  TR-                  U
R.                  5        MJ     [        R                  " USU4S j5      n[1        T5      m[        R                  " USU4S j5      n	[        R2                  " UUR                  UUUUU	US	S
9	  UR5                  X4S S9n[6        R8                  " UR:                  S5        U$ )Nuser_labelsregionsc                     > T $ N )r   s   r   <lambda>Update.Run.<locals>.<lambda>E   s    wr   headersstatus_codesc                     > T $ r!   r"   )r&   s   r   r#   r$   W   s    r   status_classesc                     > T $ r!   r"   )r(   s   r   r#   r$   [   s    .r   T)r   r   r%   r(   r&   r   )fieldsr   )r   UptimeClientCONCEPTScheck_idParseGetr
   ProcessUpdateLabelsmessagesUptimeCheckConfigUserLabelsValue
userLabelsParseSelectedRegionsselectedRegionsr   ParsePrimitiveArgs	httpCheck	HttpCheckHeadersValuer%   acceptedResponseStatusCodesstatusClassappendstatusValueParseStatusClassesModifyUptimeCheckr   r   UpdatedResourcename)selfargsclientuptime_check_refuptime_checknew_user_labelsnew_headersnew_regionsnew_status_codesnew_status_classesstatusresultr   r(   r&   s               @@@r   Run
Update.Run7   s     "F}}--335::./L..))99	O K"<#?#?@G--dIOKLN),,


//
#
#
0
0

 
 
(
(	k !**FF&)


 2 2
3


f00
1	 G
 "44
 4 *.9n#66
 "8 	#)%
 ]]+$]GFX.Mr   r"   N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   rO   __static_attributes__r"   r   r   r   r      s/    =-  6 6
5r   r   c                    [         R                  " 5       nUR                  nUR                  R                  R
                  SUR                  R                  R                  SUR                  R                  R                  SUR                  R                  R                  SUR                  R                  R                  SUR                  R                  R                  S0nU  Vs/ s H  oCR                  U5      PM     sn$ s  snf )zGConvert previously selected regions from enum to flag for update logic.z
usa-oregonzusa-iowazusa-virginiaeuropezsouth-americazasia-pacific)r   r+   r1   r2   'SelectedRegionsValueListEntryValuesEnum
USA_OREGONUSA_IOWAUSA_VIRGINIAEUROPESOUTH_AMERICAASIA_PACIFICget)selected_regionsrE   r1   region_mappingregions        r   r5   r5   o   s     &__(  HHSS
  HHQQ
  HHUU
  HHOO
  HHVV
  HHUU
#.( 4D	D3C

V
$3C	DD	D   (Dc                    [         R                  " 5       nUR                  nUR                  R                  R
                  SUR                  R                  R                  SUR                  R                  R                  SUR                  R                  R                  SUR                  R                  R                  SUR                  R                  R                  S0nU  Vs/ s H  oCR                  U5      PM     sn$ s  snf )zEConvert previously status classes from enum to flag for update logic.1xx2xx3xx4xx5xxany)r   r+   r1   ResponseStatusCodeStatusClassValueValuesEnumSTATUS_CLASS_1XXSTATUS_CLASS_2XXSTATUS_CLASS_3XXSTATUS_CLASS_4XXSTATUS_CLASS_5XXSTATUS_CLASS_ANYrb   )r(   rE   r1   status_mappingstatus_classs        r   r?   r?      s     &__(!!<<MM
!!<<MM
!!<<MM
!!<<MM
!!<<MM
!!<<MM
#.( @N	N~|

\
*~	NN	Nrf   N)rU   
__future__r   r   r   !googlecloudsdk.api_lib.monitoringr   googlecloudsdk.callioper   %googlecloudsdk.command_lib.monitoringr   r	   r
   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   UpdateCommandr   r5   r?   r"   r   r   <module>r      sI    1 &  ' 4 ( 7 ? 6 9 #NT NbE6Or   