
    #                        S r SSKJr  SSKJr  SSKJr  SSK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SKJr  SSKJr  SSKJr  SSKr\R0                  \R2                  " \R4                  R6                  5      \R8                   " S S\R:                  5      5       5       5       r\R0                  \R2                  " \R4                  R>                  5      \R8                   " S S\R:                  5      5       5       5       r \R0                  \R2                  " \R4                  RB                  5      \R8                   " S S\R:                  5      5       5       5       r"g)z:Command for importing security policy configs from a file.    )absolute_import)division)unicode_literalsN)base_classes)client)base)
exceptions)scope)flags)security_policies_utils)log)filesc                   2    \ rS rSrSrSr\S 5       rS rSr	g)Import$   (  Import security policy configs into your project.

*{command}* imports a security policy to update an existing policy. To create
a new policy from a file please use the create command instead.

## EXAMPLES

To import a security policy from a YAML file run this:

  $ {command} --file-name=myFile
Nc                     [         R                  " 5       U l        U R                  R                  USS9  UR	                  SSSS9  UR	                  SSS	/S
S9  g Nimport)operation_typez--file-nameTzLThe name of the JSON or YAML file to import the security policy config from.)requiredhelpz--file-formatjsonyamlzThe format of the file to import the security policy config from. Specify either yaml or json. Defaults to yaml if not specified.)choicesr   r    SecurityPolicyMultiScopeArgumentSECURITY_POLICY_ARGAddArgumentadd_argumentclsparsers     /lib/surface/compute/security_policies/import.pyArgsImport.Args6   q    #DDFC''x'H
    N	  P    c                 2   [         R                  R                  UR                  5      (       d/  [        R
                  " SR                  UR                  5      5      e[         R                  R                  UR                  5      (       a/  [        R
                  " SR                  UR                  5      5      e[        R                  " U R                  5       5      nU R                  R                  XR                  [        R                  R                   S9n ["        R$                  " UR                  5       nUR&                  S:X  a,  [(        R*                  " XBR,                  R.                  S5      nO+[(        R*                  " XBR,                  R.                  S5      nS S S 5        [,        R8                  " X2R,                  S9n	U	R;                  WS	9  S
R                  UR=                  5       UR                  5      n[>        R@                  RC                  U5        g ! , (       d  f       N= f! [0         aX  n[3        US[4        R6                  " U5      5      nSR                  UR                  U5      n[        R
                  " U5      eS nAff = fNzNo such file [{0}]z[{0}] is a directory)default_scoper   r   messagezMUnable to read security policy config from specified file [{0}] because [{1}])compute_client)security_policyz%Updated [{0}] with config from [{1}]."ospathexists	file_namer	   BadFileExceptionformatisdirr   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALr   
FileReaderfile_formatr   SecurityPolicyFromFiler   messages	Exceptiongetattrsix	text_typeSecurityPolicyPatchNamer   statusPrint
selfargsholderrefimport_fileimportedexpexp_msgmsgr.   s
             r$   Run
Import.RunH      77>>$..))''(<(C(C
..)  	ww}}T^^$$''(>(E(E
..)   **4+<+<+>?F

"
"
4
4m.E.E.L.L 5 NC-DNN+{v%,CC==116;( -CC==116;( , ++CNO(3
1
8
8
DNN$CJJS' ,+  -Yc(:;g#VDNNG< 
'',,	-8    H4 <A(H#$H4 #
H1-H4 1H4 4
J>AJJ 
__name__
__module____qualname____firstlineno____doc__r   classmethodr%   rU   __static_attributes__rY   r(   r$   r   r   $   (    
 P P"!r(   r   c                   2    \ rS rSrSrSr\S 5       rS rSr	g)
ImportBetal   r   Nc                     [         R                  " 5       U l        U R                  R                  USS9  UR	                  SSSS9  UR	                  SSS	/S
S9  g r   r   r!   s     r$   r%   ImportBeta.Args~   r'   r(   c                 2   [         R                  R                  UR                  5      (       d/  [        R
                  " SR                  UR                  5      5      e[         R                  R                  UR                  5      (       a/  [        R
                  " SR                  UR                  5      5      e[        R                  " U R                  5       5      nU R                  R                  XR                  [        R                  R                   S9n ["        R$                  " UR                  5       nUR&                  S:X  a,  [(        R*                  " XBR,                  R.                  S5      nO+[(        R*                  " XBR,                  R.                  S5      nS S S 5        [,        R8                  " X2R,                  S9n	U	R;                  WS	9  S
R                  UR=                  5       UR                  5      n[>        R@                  RC                  U5        g ! , (       d  f       N= f! [0         aX  n[3        US[4        R6                  " U5      5      nSR                  UR                  U5      n[        R
                  " U5      eS nAff = fr*   r/   rK   s
             r$   rU   ImportBeta.Run   rW   rX   rY   rZ   rY   r(   r$   rd   rd   l   rb   r(   rd   c                   2    \ rS rSrSrSr\S 5       rS rSr	g)ImportAlpha   r   Nc                     [         R                  " 5       U l        U R                  R                  USS9  UR	                  SSSS9  UR	                  SSS	/S
S9  g r   r   r!   s     r$   r%   ImportAlpha.Args   r'   r(   c                 2   [         R                  R                  UR                  5      (       d/  [        R
                  " SR                  UR                  5      5      e[         R                  R                  UR                  5      (       a/  [        R
                  " SR                  UR                  5      5      e[        R                  " U R                  5       5      nU R                  R                  XR                  [        R                  R                   S9n ["        R$                  " UR                  5       nUR&                  S:X  a,  [(        R*                  " XBR,                  R.                  S5      nO+[(        R*                  " XBR,                  R.                  S5      nS S S 5        [,        R8                  " X2R,                  S9n	U	R;                  WS	9  S
R                  UR=                  5       UR                  5      n[>        R@                  RC                  U5        g ! , (       d  f       N= f! [0         aX  n[3        US[4        R6                  " U5      5      nSR                  UR                  U5      n[        R
                  " U5      eS nAff = fr*   r/   rK   s
             r$   rU   ImportAlpha.Run   rW   rX   rY   rZ   rY   r(   r$   rk   rk      rb   r(   rk   )#r_   
__future__r   r   r   r0   googlecloudsdk.api_lib.computer   0googlecloudsdk.api_lib.compute.security_policiesr   googlecloudsdk.callioper   r	   "googlecloudsdk.command_lib.computer
   r;   4googlecloudsdk.command_lib.compute.security_policiesr   r   googlecloudsdk.corer   googlecloudsdk.core.utilr   rD   UniverseCompatibleReleaseTracksr8   GAUnicodeIsSupportedSilentCommandr   BETArd   ALPHArk   rY   r(   r$   <module>r      s>   A &  ' 	 7 C ( . E F # * 
 D%%(()BT B  * BJ D%%**+B## B  , BJ D%%++,B$$$ B  - Br(   