
                             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	 Zd
 Zd Zd Zd ZddZd ZddZd Zd Zd Zy)z/Utility for making containeranalysis API calls.    )absolute_import)division)unicode_literalsN)
list_pager)apis)	resourcesc                  .    t        j                  dd      S Ncontaineranalysisv1r   GetClientInstance     8lib/googlecloudsdk/api_lib/containeranalysis/requests.py	GetClientr          			 3T	::r   c                  .    t        j                  dd      S r
   r   GetMessagesModuler   r   r   GetMessagesr       r   r   c                  .    t        j                  dd      S Nr   v1beta1r   r   r   r   GetClientV1beta1r   $       			 3Y	??r   c                  .    t        j                  dd      S r   r   r   r   r   GetMessagesV1beta1r   (   r   r   c                     t               }t               }t        j                  j	                  d| |      }|j                         }|j                  |      }|j                  j                  |      S )z#Export SBOM for AR image resources.z$containeranalysis.projects.resources)
projectsIdresourcesId)name)	r   r   r   REGISTRYCreateRelativeName3ContaineranalysisProjectsResourcesExportSBOMRequestprojects_resources
ExportSBOM)projecturiclientmessagesresource_refr"   reqs          r   ExportSbomV1beta1r/   ,   sp    &!(##**, + ,
 
	"	"	$$DD$DO#		"	"	-	-c	22r   c                     t               }t               }t        j                  j	                  | d      }t        j                  |j                  |j                  |j                         |      d|d      S z,List occurrences for resources in a project.cloudresourcemanager.projects
collectionparentfilteroccurrencespageSize)requestfield
batch_sizebatch_size_attribute)
r   r   r   r#   Parser   YieldFromListprojects_occurrences/ContaineranalysisProjectsOccurrencesListRequestr%   r)   
res_filter	page_sizer+   r,   project_refs         r   ListOccurrencesV1beta1rF   :   s~    &!(""((9 ) + 
	!	!!!FF))+J G  %
 r   c                 b    |D cg c]  }t        | |       }}t        j                  | S c c}w zBList occurrences for resources in a project with multiple filters.)rF   	itertoolschainr)   filtersfresultss       r   !ListOccurrencesWithFiltersV1beta1rO   L   s3    9@AA#GQ/'A	'	"" B   ,c                     t               }t               }t        j                  j	                  | d      }t        j                  |j                  |j                  |j                         |      d|d      S r1   )
r   r   r   r#   r>   r   r?   r@   rA   r%   rB   s         r   ListOccurrencesrR   R   sy    ;&](""((9 ) ;+		!	!!!FF))+J G @%
' 'r   c                 b    |D cg c]  }t        | |       }}t        j                  | S c c}w rH   )rR   rI   rJ   rK   s       r   ListOccurrencesWithFiltersrT   a   s1    29:'Q_Wa('':	'	"" ;rP   c                     t               }t               }t        j                  j	                  | d      }|j                  |j                         |      }|j                  j                  |      S )z5Get vulnerability summary for resources in a project.r2   r3   r5   )	r   r   r   r#   r>   BContaineranalysisProjectsOccurrencesGetVulnerabilitySummaryRequestr%   r@   GetVulnerabilitySummary)r)   rC   r+   r,   rE   r.   s         r   rW   rW   g   st    ;&](""((9 ) ;+ II))+J J @  
	$	$	<	<S	AAr   c                 @    |D cg c]  }t        | |       c}S c c}w )zKGet vulnerability summary for resources in a project with multiple filters.)rW   )r)   rL   rM   s      r   "GetVulnerabilitySummaryWithFiltersrY   t   s"    7>	?w!
!'1
-w	??	?s   )i  )__doc__
__future__r   r   r   rI   apitools.base.pyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer   r   r   r   r   r/   rF   rO   rR   rT   rW   rY   r   r   r   <module>r_      sZ    6 &  '  ' , );;@@3$#'#
B@r   