
                            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r\R(                  \R*                  " \R,                  R.                  \R,                  R0                  \R,                  R2                  5       " S S\R4                  5      5       5       rSS0\l        g)z4Command for creating organization security policies.    )absolute_import)division)unicode_literalsN)base_classes)client)base)
exceptions)flags)security_policies_utils)filesc                   8    \ rS rSrSrSr\S 5       rS rS r	Sr
g)Create!   zCreate a Compute Engine organization security policy.

*{command}* is used to create organization security policies. An organization
security policy is a set of rules that controls access to various resources.
Nc                     [         R                  " U5        UR                  R                  [         R                  5        g )N)r
   AddArgSpCreationdisplay_infoAddCacheUpdaterOrgSecurityPoliciesCompleter)clsparsers     3lib/surface/compute/org_security_policies/create.pyArgsCreate.Args.   s*    	6"
''(J(JK    c                 (   [         R                  " U R                  5       5      n[        R                  " UR                  UR
                  [        R                  " U R                  5       5      R                  5       S9nUR                  S5      (       a  SUR                  -   nO%UR                  S5      (       a  SUR                  -   nUR                  S5      (       a&  U R                  XR                  R                  5      nOUR                  S5      (       a|  UR                  S:X  al  UR                  R                  R                  UR                   UR"                  UR                  R                  R                  R$                  R&                  S	9nOkUR                  R                  R                  UR                   UR(                  UR                  R                  R                  R$                  R*                  S
9nUR-                  UWSS9$ )N)compute_client	resourcesversionorganizationzorganizations/folderzfolders/	file_nametypeCLOUD_ARMOR)description	shortNamer"   )r$   displayNamer"   F)security_policy	parent_idonly_generate_request)r   ComputeApiHolderReleaseTrackr   OrgSecurityPolicyr   six	text_typelowerIsSpecifiedr   r    _GetTemplateFromFilemessagesr"   SecurityPolicyr$   
short_nameTypeValueValuesEnumr#   display_nameFIREWALLr   )selfargsholderorg_security_policyr(   r'   s         r   Run
Create.Run3   s   **4+<+<+>?F 22}}""d//1288:<
 ''"T%6%66i			(	#	#t{{*i$$11$8N8NOo			&	!	!dii=&@ --00??((oo&&55IIUU	 @ 
 !--00??(())&&55IIRR	 @ 
 %%'# & % %r   c                 F   [         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       nUR                  S:X  a   [        R                  " X2S5      sS S S 5        $ [        R                  " X2S5      sS S S 5        $ ! , (       d  f       g = f! [         aX  n[        US[        R                   " 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jsonyamlmessagezMUnable to read security policy config from specified file [{0}] because [{1}])ospathexistsr!   r	   BadFileExceptionformatisdirr   
FileReaderfile_formatr   SecurityPolicyFromFile	Exceptiongetattrr-   r.   )r8   r9   r2   import_fileexpexp_msgmsgs          r   r1   Create._GetTemplateFromFileX   s4   77>>$..))''

%
%dnn
5  
ww}}T^^$$''
 
'
'
7 -DNN+{v%(??V ,+
 '==6
 ,++  -Yc(:;g  &t~~w ? 
 '',,-sC   < D> 'D-	D> D-#	D> -
D;7D> ;D> >
F AFF  )__name__
__module____qualname____firstlineno____doc__ORG_SECURITY_POLICY_ARGclassmethodr   r<   r1   __static_attributes__rR   r   r   r   r   !   s.    
 !L L#%J-r   r   EXAMPLESaG      To create an organization security policy under folder with ID ``123456789'',
    run:

      $ {command} --short-name=my-policy --folder=123456789

    To create an organization security under organization with ID ``12345'' from
    an input file, run:

      $ {command} --file-name=my-file-name --organization=12345
    )rW   
__future__r   r   r   rB   googlecloudsdk.api_lib.computer   4googlecloudsdk.api_lib.compute.org_security_policiesr   googlecloudsdk.callioper   r	   8googlecloudsdk.command_lib.compute.org_security_policiesr
   4googlecloudsdk.command_lib.compute.security_policiesr   googlecloudsdk.core.utilr   r-   UniverseCompatibleReleaseTracksr+   ALPHABETAGACreateCommandr   detailed_helprR   r   r   <module>rj      s    ; &  ' 	 7 G ( . J X * 
 T..33T5F5F5I5IK-T K- K-^  
 r   