
    
                     j    S r SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r " S S	\5      r	S
 r
g)zHBase classes for abstracting away common logic for web security scanner.    )absolute_import)division)unicode_literals)apisc                   F    \ rS rSrSr " S S\5      r\" SSS5      r\rSr	g)WebSecurityScannerApiVersion   zAn enum representing the API version of Web Security Scanner.

The WebSecurityScanner API version controls which version of WSS API to use
for a certain command under certain release track.
c                   *    \ rS rSrSrS rS rS rSrg)%WebSecurityScannerApiVersion._VERSION   z=An enum representing the API version of Web Security Manager.c                 (    Xl         X l        X0l        g N)idhelp_tag	help_note)selfr   r   r   s       ;lib/googlecloudsdk/api_lib/web_security_scanner/wss_base.py__init__.WebSecurityScannerApiVersion._VERSION.__init__#   s    gm n    c                     U R                   $ r   r   r   s    r   __str__-WebSecurityScannerApiVersion._VERSION.__str__(   s    WWnr   c                 4    U R                   UR                   :H  $ r   r   )r   others     r   __eq__,WebSecurityScannerApiVersion._VERSION.__eq__+   s    WW  r   )r   r   r   N)	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__ r   r   _VERSIONr      s    G!
!r   r'   v1betaNr&   )
r    r!   r"   r#   r$   objectr'   V1BETA_ALLr%   r&   r   r   r   r      s(    ! ! HdD)&
$r   r   c                   ^    \ rS rSrSr\R                  rSrSr	S r
\S 5       r\S 5       rSrg)WebSecurityScannerCommand3   zLWebSecurityScannerCommand is a base class for web security scanner commands.Nc                     g r   r&   r   s    r   r   "WebSecurityScannerCommand.__init__:   s    r   c                     U R                   c0  [        R                  " SU R                  R                  5      U l         U R                   $ )z(Specifies the WebSecurityScanner client.websecurityscanner)_clientr   GetClientInstance_versionr   r   s    r   client WebSecurityScannerCommand.client=   s:     ||++,@,0MM,<,<>dl<<r   c                     U R                   c0  [        R                  " SU R                  R                  5      U l         U R                   $ )z*Specifies the WebSecurityScanner messages.r2   )	_messagesr   GetMessagesModuler5   r   r   s    r   messages"WebSecurityScannerCommand.messagesE   s;     ~~--.B.2mm.>.>@dn>>r   )r3   r9   )r    r!   r"   r#   r$   r   r*   r5   r3   r9   r   propertyr6   r;   r%   r&   r   r   r-   r-   3   sG    T)00(')	    r   r-   c                    ^  U 4S jnU$ )zMark this command class to use given Web Security Scanner API version.

Args:
  api_version: Web Security Scanner API version to use for the command

Returns:
  The decorator function
c                    > TU l         U $ )z#Wrapper function for the decorator.)_wss_version)	cmd_classapi_versions    r   InitApiHolder/UseWebSecurityScannerApi.<locals>.InitApiHolderX   s     )Ir   r&   )rB   rC   s   ` r   UseWebSecurityScannerApirE   N   s     
r   N)r$   
__future__r   r   r   googlecloudsdk.api_lib.utilr   r)   r   r-   rE   r&   r   r   <module>rH      s4    O &  ' ,6 6 6r   