
                             d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ e
j                   G d
 de
j                               Zy)z'logging logs list' command.    )absolute_import)division)unicode_literals)
list_pager)util)base)
properties)	resourcesc                   &    e Zd ZdZed        Zd Zy)Lista  List your project's logs.

  Only logs that contain log entries are listed.

  ## EXAMPLES

  To list all logs in current project:

    $ {command}

  To list all logs for a view:

    $ {command} --bucket=[BUCKET_ID] --location=[LOCATION] --view=[VIEW_ID]
  c                 T   t         j                  j                  |        t         j                  j                  |        | j                  j                  d       | j                  d      }|j                  dddd       |j                  d	dd
       |j                  ddd       y )Nztable(.:label=NAME)zUThese arguments are used in conjunction with the parent to construct a view resource.)helpz
--locationTLOCATIONzLocation of the log bucket.)requiredmetavarr   z--bucketzId of the log bucket.)r   r   z--viewzId of the view.)r   PAGE_SIZE_FLAGRemoveFromParserURI_FLAGdisplay_info	AddFormatadd_argument_groupadd_argument)parser
view_groups      lib/surface/logging/logs/list.pyArgsz	List.Args/   s    ((0MM""6*
!!"78**% + &J *	  ,
 $  &        c           	      z   t         j                  j                  j                  j	                  d      }t
        j                  j                  |d      }|j                         }|j                  d      r_t        j                  t        j                  t        j                  |d|j                        d|j                        d|j                        }t        j                         j!                  |	      }t#        j$                  t        j&                         j(                  |d
|j*                  dd      }|S )zThis is what gets called when the user runs this command.

    Args:
      args: an argparse namespace. All the arguments that were provided to this
        command invocation.

    Returns:
      The list of logs.
    T)r   zcloudresourcemanager.projects)
collectionview	locationsbucketsviews)parentlogNamesNpageSize)fieldlimit
batch_sizebatch_size_attribute)r	   VALUEScoreprojectGetr
   REGISTRYParseRelativeNameIsSpecifiedr   CreateResourceNamelocationbucketr    GetMessagesLoggingProjectsLogsListRequestr   YieldFromList	GetClientprojects_logsr(   )selfargsr-   project_refr$   requestresults          r   RunzList.RunE   s    $$,,00$0?G$$**; + =K%%'F &&

!
!%%fk4==I&'.		;f
  ??v?NG%%&&jj')F Mr   N)__name__
__module____qualname____doc__staticmethodr   r@    r   r   r   r      s         *#r   r   N)rD   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.loggingr   googlecloudsdk.callioper   googlecloudsdk.corer	   r
   UniverseCompatibleListCommandr   rF   r   r   <module>rN      sL     # &  ' ' / ( * ) I4 I Ir   