
                         ~   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	rS
rSrSrSrS rS rS rS rS r\R4                  " \R6                  R8                  5       " S S\R:                  5      5       r\R4                  " \R6                  R>                  5       " S S\5      5       r g)z-Implements command to list patch deployments.    )absolute_import)division)unicode_literals)
list_pager)utils)base)
propertiesz---oneTimeSchedulerecurringSchedulelastExecuteTimenextExecuteTimec                 6    U R                  [        [        5      $ N)get_LAST_EXECUTE_TIME_DEFAULT_NO_VALUE)resources    7lib/surface/compute/os_config/patch_deployments/list.py_TransformLastRunr   "   s    	(*;	<<    c                     [         U ;   a@  U R                  [        S5      (       a  [        $ U [            nUR                  S[        5      $ [        U ;   a#  U [           nUR                  [
        [        5      $ [        $ )zJReturns the timestamp of the next scheduled run for this patch deployment. executeTime)_ONE_TIME_SCHEDULEr   r   r   _RECURRING_SCHEDULE_NEXT_EXECUTE_TIME)r   schedules     r   _TransformNextRunr   &   so     8#||&++ ,-h\\-):;;h&+,H<<*,=>>r   c                 p   [         U ;   a  SU [            S   -   $ [        U ;   a  SnU [           nUS   S:X  a  UR                  SS5      $ US   S:X  a  UR                  S	S5      $ US   S
:X  a>  US   R                  SS5      (       a  UR                  SS5      $ UR                  SS5      $ [        $ [        $ )z>Returns a string description of the patch deployment schedule.zOnce: Scheduled for r   zRecurring - {} {}	frequencyDAILYDailyr   WEEKLYWeeklyMONTHLYmonthlyweekDayOfMonthMonthlyzon specific day(s)zon specific date(s))r   r   formatr   r   )r   output_formatr   s      r   _TransformFrequencyr+   8   s     8#!H-?$@$OOOh&'M+,H'!!'2..	+	(	*!!(B//	+	)	+	)		 	 !12	6	6##I/CDD##I/DEEr   c                    ^  U 4S jnU$ )zMReturns a transformation function from a patch deployment resource to an URI.c                    > TR                  U R                  [        R                  R                  R
                  R                  U R                  S.SS9nUR                  5       $ )N)projectspatchDeploymentsz"osconfig.projects.patchDeployments)params
collection)Parsenamer	   VALUEScoreproject	GetOrFailSelfLink)r   refregistrys     r   UriFunc _MakeGetUriFunc.<locals>.UriFuncR   sW    
.."))..66@@ (
 8  9C <<>r    )r:   r;   s   ` r   _MakeGetUriFuncr>   O   s     
.r   c                    U R                   R                  S5        U R                   R                  [        [        [
        S.5        [        R                  " U5      nU R                   R                  [        U5      5        g)z.Parses input flags and sets up output formats.z
          table(
            name.basename(),
            last_run(),
            next_run(),
            frequency()
          )
        )last_runnext_runr    N)
display_info	AddFormatAddTransformsr   r   r+   osconfig_api_utilsGetRegistry
AddUriFuncr>   )parserrelease_trackr:   s      r   _ArgsrJ   _   sl     	 !  	####&% 
  ++M:(  !:;r   c                   6    \ rS rSrSrSS0r\S 5       rS rSr	g)	Lists   $List patch deployments in a project.EXAMPLES^      To list all patch deployments in the current project, run:

          $ {command}
      c                 L    [        U [        R                  R                  5        g r   )rJ   r   ReleaseTrackGArH   s    r   Args	List.Args   s    	&$##&&'r   c           	         U R                  5       n[        R                  " U5      n[        R                  " U5      n[        R
                  R                  R                  R                  5       nUR                  UR                  [        R                  " U5      S9nUR                  n[        R                  " UUUR                   [        R"                  " U5      SSS9$ )N)pageSizeparentr/   rX   )limit
batch_sizefieldbatch_size_attribute)rR   rE   GetClientInstanceGetClientMessagesr	   r4   r5   r6   r7   +OsconfigProjectsPatchDeploymentsListRequest	page_sizeosconfig_command_utilsGetProjectUriPathprojects_patchDeploymentsr   YieldFromListrZ   GetListBatchSize)selfargsrI   clientmessagesr6   requestservices           r   RunList.Run   s    %%'M11-@F!33MBH$$,,668GBB%77@ C G ..G##jj)::4@ ' r   r=   N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodrU   rm   __static_attributes__r=   r   r   rL   rL   s   s/    , 
- ( (r   rL   c                   0    \ rS rSrSrSS0r\S 5       rSrg)ListBeta   rN   rO   rP   c                 L    [        U [        R                  R                  5        g r   )rJ   r   rR   BETArT   s    r   rU   ListBeta.Args   s    	&$##(()r   r=   N)	ro   rp   rq   rr   rs   rt   ru   rU   rv   r=   r   r   rx   rx      s*    , 
- * *r   rx   N)!rs   
__future__r   r   r   apitools.base.pyr   (googlecloudsdk.api_lib.compute.os_configr   rE   googlecloudsdk.callioper   ,googlecloudsdk.command_lib.compute.os_configrb   googlecloudsdk.corer	   r   r   r   r   r   r   r   r+   r>   rJ   ReleaseTracksrR   rS   ListCommandrL   r{   rx   r=   r   r   <module>r      s    4 &  ' ' P ( X * & ) & & =$. <( D%%(()#4 # *#L D%%**+*t * ,*r   