
                             S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  S r
S	 rS
 rS rS rS rS rS rg)zBHelper methods for configuring web security scanner command flags.    )absolute_import)division)unicode_literals)wss_base)base)
exceptionsc                      [         R                  " SS9n U R                  [        5       5        U R                  [	        5       5        U R                  [        5       5        U R                  [        5       5        U /$ )zIHook to add additional authentication flags.

Returns:
  Auth flag group
F)mutex)r   ArgumentGroupAddArgument	_TypeFlag	_UserFlag_PasswordFlag_UrlFlag)
auth_groups    ;lib/googlecloudsdk/command_lib/web_security_scanner/auth.py	AuthFlagsr      s\     !!.*%%)$
    c                  6    [         R                  " SSSSS.SS9$ )z(Returns a flag for setting an auth type.--auth-typezDisables Authentication.z%Authentication with a Google account.z%Authentication with a custom account.)nonegooglecustomzType of authentication to use.)choiceshelp_str)r   ChoiceArgument r   r   r   r   (   s+    			,;;
 0
 r   c                  ,    [         R                  " SSS9$ )z(Returns a flag for setting an auth user.z--auth-userz      The test user to log in as. Required if `--auth-type` is not 'none'.
      'google' login requires a full email address. Cannot be your own account.
      helpr   Argumentr   r   r   r   r   5   s    	

 r   c                  ,    [         R                  " SSS9$ )z,Returns a flag for setting an auth password.z--auth-passwordzQ      Password for the test user. Required if `--auth-type` is not 'none'.
      r   r!   r   r   r   r   r   ?   s    	

 r   c                  ,    [         R                  " SSS9$ )z'Returns a flag for setting an auth url.z
--auth-urlz      URL of the login page for your site. Required if `--auth-type` is
      'custom'. Otherwise, it should not be set.
      r   r!   r   r   r   r   r   H   s    	

 r   c                 0   [         R                  " 5       nUR                  cJ  [        UR                  UR
                  UR                  /5      (       a  [        R                  " SS5      eU$ UR                  S:X  aJ  [        UR                  UR
                  UR                  /5      (       a  [        R                  " SS5      eU$ UR                  c  UR                  R                  5       Ul
        UR                  R                  5       UR                  l        UR                  S:X  aX  [        USS/S5        UR                  R!                  UR                  UR
                  S9UR                  R                  l        U$ UR                  S	:X  ac  [        U/ S
QS	5        UR                  R%                  UR                  UR
                  UR                  S9UR                  R                  l        U$ [        R(                  " SUR                  5      e)a  Modify request hook to set scan config details.

Args:
  unused_ref: not used parameter to modify request hooks
  args: Parsed args namespace
  request: The partially filled request object.

Returns:
  Request object with Authentication message filled out.
r   z+Required when setting authentication flags.r   z4No other auth flags can be set with --auth-type=noner   	auth_userauth_password)usernamepasswordr   )r&   r'   auth_url)r(   r)   loginUrl)r   WebSecurityScannerCommand	auth_typeanyr&   r'   r*   r   RequiredArgumentExceptionInvalidArgumentException
scanConfigmessages
ScanConfigAuthenticationauthentication"_RequireAllFlagsOrRaiseForAuthTypeGoogleAccountgoogleAccountCustomAccountcustomAccountUnknownArgumentException)
unused_refargsrequestcs       r   SetScanConfigAuthr@   R   s    ((*!	^^
DNND..>??00
FH HN	^^v
DNND..>??//
OQ QN..0G&'jj&?&?&A'#	^^x&tk?-K'/167jj6N6N$*<*< 7O 7>G%%3 
. ~~!&8(D67jj6N6N## 7O 7 G%%3 
. 
-
-mT^^
LLr   c                     UR                   c  U$ UR                  (       a  U=R                  S-  sl        U$ SUl        U$ )z%Adds auth-specific fieldmask entries.z,authenticationr5   )r-   
updateMask)r<   r=   r>   s      r   AddAuthFieldMaskrC      sB    	^^N++ 
. *G	.r   c                     [        U 5      nU HO  nX4   b  M
  UR                  SS5      n[        R                  " SR	                  U5      SR	                  U5      5      e   g )N_-z--{0}zRequired by --auth-type={0})varsreplacer   r/   format)r=   flagsr-   argvarsflagdasheds         r   r6   r6      sZ    J'd}||C%f00
..
 
'
.
.y
9; ; r   N)__doc__
__future__r   r   r   +googlecloudsdk.api_lib.web_security_scannerr   googlecloudsdk.callioper   r   r   r   r   r   r   r@   rC   r6   r   r   r   <module>rR      sF    I &  ' @ ( .
*Z
;r   