
    	                       % S r SSKJr  SSKrSSKJrJr  SSKr\R                  S:  a  SSK	J
r
  OSSK	Jr   " S S	\\5      r
 " S
 S\
5      rSr\R                  " SS9 " S S5      5       r    S/S jr\" SSS9\" SSS9\" SSS9\" SSS9\" SSS9\" SSS9\" S S!S9\" S"S#S9\" S$S%S9\" S&S'S9\" S(S)S9\" S*S+S9\" S,S-S94r\" \5      rS\S.'   g)0z Management API gcloud constants.    )annotationsN)DictList)      )StrEnum)Enumc                      \ rS rSrSrg)r   "    N)__name__
__module____qualname____firstlineno____static_attributes__r       6lib/googlecloudsdk/command_lib/scc/manage/constants.pyr   r   "   s    r   r   c                  (    \ rS rSrSrSrSrSrSrSr	g)	CustomModuleType*   $securityHealthAnalyticsCustomModules!eventThreatDetectionCustomModules*effectiveEventThreatDetectionCustomModules-effectiveSecurityHealthAnalyticsCustomModulesbillingMetadatar   N)
r   r   r   r   SHAETDEFFECTIVE_ETDEFFECTIVE_SHABILLING_METADATAr   r   r   r   r   r   *   s    .#+#>-A-&r   r   securityCenterServicesT)frozenc                  F    \ rS rSr% SrS\S'   SrS\S'   SS jrSS	 jrS
r	g)SecurityCenterService5   z5Dataclass that reprsesents a Security Center Service.strnameNz
str | Noneabbreviationc                l    U R                   b  U R                   SU R                    S3$ U R                  $ )Nz (can be abbreviated as ))r(   r'   )selfs    r   __str__SecurityCenterService.__str__<   s7    $		{243D3D2EQGGYYr   c                    [        U[        5      (       aR  U R                  UR                  :H  nU R                  UR                  :H  =(       a    U R                  S LnU=(       d    U$ g)NF)
isinstancer$   r'   r(   )r+   otheris_same_nameis_same_abbreviations       r   __eq__SecurityCenterService.__eq__B   s_    %.//YY%**,l


u11
1 ,t+ 
 111r   r   )returnr&   )r0   z'SecurityCenterService'r5   bool)
r   r   r   r   __doc____annotations__r(   r,   r3   r   r   r   r   r$   r$   5   s    =)!,
!
r   r$    Dict[str, SecurityCenterService]c                   [        [        U 5      5       HH  n[        US-   [        U 5      5       H)  nX   X   :X  d  M  [        SX    SU SX    SU S3	5      e   MJ     U  Vs/ s H  o3R                  c  M  UPM     nnU  Vs0 s H  o3R                  U_M     nnU Vs0 s H  o3R                  U_M     nn0 UEUE$ s  snf s  snf s  snf )a  Maps a list of SecurityCenterService objects to an immutable dictionary.

The dictionary will contain a mapping between each service name and service
object as well as service abbreviation to service object if the service has
an abbreviation.

Args:
  services: list of service objects to add to the dictionary.

Returns:
  an immutable dictionary mapping service names and abbreviations to services.

Raises:
  KeyError: if there are duplicate entries for any service name or
  abbreviation.
   z(Duplicate entries in service inventory: z
 at index z and zK in service inventory. Both service names and abbreviations must be unique.)rangelenKeyErrorr(   r'   )servicesijserviceabbreviated_servicesnames_to_servicesabbreviations_to_servicess          r   make_service_inventoryrF   O   s   & Xa1q5#h-(		#6x{m Ds%}Jqc 2??
 	
 )   &%')=)=gX   =EEH||W,HE3G3GG#3G   
<	;!:	;; Fs   %B?9B?C!C	zsecurity-health-analyticssha)r(   zevent-threat-detectionetdzcontainer-threat-detectionctdzvm-threat-detectionvmtdzweb-security-scannerwsszvm-threat-detection-awszvmtd-awszcloud-run-threat-detectioncrtdz
vm-managervmmzec2-vulnerability-assessmentzec2-vazgce-vulnerability-assessmentzgce-vazazure-vulnerability-assessmentzazure-vaznotebook-security-scannernsszagent-engine-threat-detectionaetdSERVICE_INVENTORY)r?   zList[SecurityCenterService]r5   r9   )r7   
__future__r   dataclassestypingr   r   sysversion_infoenumr   r	   r&   r   SERVICE_RESOURCE_PLURAL_NAME	dataclassr$   rF   SUPPORTED_SERVICESrP   r8   r   r   r   <module>rZ      sG   ' "   w 	T 	'w '  8  d#  $2%<)%<%%<P 5EJ2G6UK/fE0uE3*M6VL,U;&X &X (z 5EJ9O' , 7M7 3 r   