
                            d Z ddlmZ ddlmZ ddlmZ ddl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j!                  ej"                        Zdj!                  ej"                        Z ej(                  ej*                  j,                  ej*                  j.                  ej*                  j0                        ej2                   G d dej4                                      Zd Zy)z(List Artifact Registry container images.    )absolute_import)division)unicode_literalsN)base)containeranalysis_util)docker_util)flags)format_util)logz    table(
      package:label=IMAGE,
      version:label=DIGEST,
      createTime.date(tz=LOCAL),
      updateTime.date(tz=LOCAL),
      metadata.imageSizeBytes:label=SIZE,
      {}
    )z    table(
      package:label=IMAGE,
      version:label=DIGEST,
      tags.list(),
      createTime.date(tz=LOCAL),
      updateTime.date(tz=LOCAL),
      metadata.imageSizeBytes:label=SIZE,
      {}
    )c                   0    e Zd ZdZdddZed        Zd Zy)Lista  List Artifact Registry container images.

  List all Artifact Registry container images in the specified repository or
  image path.

  A valid Docker repository has the format of
  LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY-ID

  A valid image has the format of
  LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY-ID/IMAGE_PATH

  To specify the maximum number of images to list, use the --limit flag.
  z{description}a        To list images under the current project, repository, and location:

          $ {command}

      To list images with tags under the current project, repository, and location:

          $ {command} --include-tags

      To list images under repository `my-repo`, project `my-project`, in `us-central1`:

          $ {command} us-central1-docker.pkg.dev/my-project/my-repo

      The following command lists a maximum of five images:

          $ {command} docker.pkg.dev/my-project/my-repo --limit=5
      )DESCRIPTIONEXAMPLESc                    t        j                         j                  |        t        j                  j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        y )N)
r	   GetIncludeTagsFlagAddToParserr   URI_FLAGRemoveFromParserGetImagePathOptionalArgGetShowOccurrencesFlagGetShowOccurrencesFromFlagGetOccurrenceFilterFlag)parsers    +lib/surface/artifacts/docker/images/list.pyArgsz	List.Args^   s    	**62MM""6*	!!#//7	  "..v6	$$&226:	!!#//7    c                     t        |      r t        j                  j                  d       nS|j                  r$|j                         j                  t               n#|j                         j                  t               t        j                  |j                        }t        j                  ||      }g }t        |      r|j                  rHt        j                  |j                  |d       }|D cg c]  }dj!                  |d   |d          }}t#        j$                  ||j&                  |      }|D ]>  }dj!                  |d   |d         }||   j)                         }	|j+                  |	       @ |S c c}w )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:
      A list of Docker images.
    zBNote: The '--format' flag can be used to change the output format.c                     | d   S )N
createTime )imgs    r   <lambda>zList.Run.<locals>.<lambda>   s	    C-r   )keyz{}@{}packageversionzhttps://{}@{})_IncludeMetadatar   statusPrintinclude_tagsGetDisplayInfo	AddFormatEXTENDED_LIST_FORMATDEFAULT_LIST_FORMATr   ParseDockerImagePath
IMAGE_PATHGetDockerImagesshow_occurrences_fromheapqnlargestformatca_util%GetContainerAnalysisMetadataForImagesoccurrence_filterImagesListViewupdate)
selfargsrepo_or_imageimagesmost_recent_imagesr!   metadataimage
image_pathimg_metadatas
             r   RunzList.Rung   sc    	jj
N 
		''(<=''(;<  44T__EM((=F 		#	#&&-/ 
 NN3y>3y>: 	 
 >>
//1CEh %$++E),<eI>NO

+::<\"  M
s   4E;N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   rC   r    r   r   r   r   5   s1      
	-. 8 8+r   r   c                 \    d}| j                   xs | j                  xr | j                  |k7  S )NzIkind="BUILD" OR kind="IMAGE" OR kind="DISCOVERY" OR kind="SBOM_REFERENCE")show_occurrencesr7   )r;   default_occ_filters     r   r&   r&      s;     
 
		 

M!7!7;M!Mr   )rG   
__future__r   r   r   r2   googlecloudsdk.callioper   $googlecloudsdk.command_lib.artifactsr   r5   r   r	   r
   googlecloudsdk.corer   r4   "CONTAINER_ANALYSIS_METADATA_FORMATr-   r,   ReleaseTracksReleaseTrackALPHABETAGAUniverseCompatibleListCommandr   r&   r    r   r   <module>rY      s    / &  '  ( R < 6 < #	 
>>	? 		 
>>	?  D%%++T->->-C-C%%((*Z4 Z *Zz	r   