
                            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SK
Jr  SS	KJr  \	R                  \	R                   " \	R"                  R$                  \	R"                  R&                  5       " S
 S\	R(                  5      5       5       r\	R                   " \	R"                  R,                  5       " S S\5      5       rSSSS.r\\l        \\l        g)z5`gcloud access-context-manager zones update` command.    )absolute_import)division)unicode_literals)zones)base)
perimeters)policies)repeatedc                   P    \ rS rSrSrSrSr\S 5       r\SS j5       r	S r
S rS	rg
)UpdatePerimetersGA   Update an existing access zone.Fv1c                 ,    [         R                  U SS9  g )Nr   versionr   ArgsVersionedparsers    7lib/surface/access_context_manager/perimeters/update.pyArgsUpdatePerimetersGA.Args#   s    $$VT$:    c                 Z    [         R                  " U S5        [         R                  " XS9  g )Nz	to updater   )r   AddResourceArgAddPerimeterUpdateArgs)r   r   s     r   r    UpdatePerimetersGA.ArgsVersioned'   s     fk2%%f>r   c                 x   [         R                  " U R                  S9nUR                  R                  R                  5       n[        R                  R                  UR                  U5      n[        R                  " X15        S nSnU R                  S:X  a  [        R                  " US5      u  pVU R                  UUUUUR                  UR                   [        R"                  " U R                  S9R%                  UR&                  5      [        R(                  " X5      [        R*                  " X5      [        R,                  " XUR.                  5      [        R0                  " XU R                  5      UR2                  UU[        R4                  " US5      [        R4                  " US5      UR6                  S9$ )Nr   Fv1alphazvpc-accessible-serviceszingress-policieszegress-policies)clientargsresultperimeter_refdescriptiontitleperimeter_type	resourcesrestricted_serviceslevelsvpc_allowed_servicesenable_vpc_accessible_servicesvpc_yaml_flag_usedvpc_accessible_services_configingress_policiesegress_policiesetag)	zones_apiClient_API_VERSIONCONCEPTS	perimeterParser
   CachedResultFromFuncGetr	   ValidateAccessPolicyArgr   $ParseUpdateVpcAccessibleServicesArgsPatchr%   r&   GetTypeEnumMapperGetEnumForChoicetypeParseResourcesParseRestrictedServicesParseLevelsaccessPoliciesIdParseVpcRestrictionr,   "ParseUpdateDirectionalPoliciesArgsr1   )selfr"   r!   r$   r#   r.   r-   s          r   RunUpdatePerimetersGA.Run,   sw   d&7&78FMM++113M""++FJJFF$$]9%)"I%

9
9- 9$
 ::#$$jj!33%%''7'7		'B++D9&>>tL%%d&3&D&DF';;$++-'+'J'J-'E#FF$&"EE#%YY-   r   c                 :    UR                  UUUUUU	U
UUUUUUUS9$ )N)r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   )r=   )rG   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   s                     r   r=   UpdatePerimetersGA.PatchR   sD    
 <<%/1'E-'E)'   r    N)r   )__name__
__module____qualname____firstlineno____doc___INCLUDE_UNRESTRICTEDr4   staticmethodr   r   rH   r=   __static_attributes__rL   r   r   r   r      sC     (,; ; ? ?$Lr   r   c                   0    \ rS rSrSrSrSr\S 5       rSr	g)UpdatePerimetersAlphah   r   Fr    c                 ,    [         R                  U SS9  g )Nr    r   r   r   s    r   r   UpdatePerimetersAlpha.Argsn   s    $$VY$?r   rL   N)
rM   rN   rO   rP   rQ   rR   r4   rS   r   rT   rL   r   r   rV   rV   h   s$    ',@ @r   rV   zDUpdate the enforced configuration for an existing Service Perimeter.zRThis command updates the enforced configuration (`status`) of a Service Perimeter.a7  To update the enforced configuration for a Service Perimeter:

  $ {command} my-perimeter --add-resources="projects/123,projects/456" --remove-restricted-services="storage.googleapis.com" --add-access-levels="accessPolicies/123/accessLevels/a_level" --enable-vpc-accessible-services --clear-vpc-allowed-services)briefDESCRIPTIONEXAMPLESN)rQ   
__future__r   r   r   +googlecloudsdk.api_lib.accesscontextmanagerr   r2   googlecloudsdk.callioper   /googlecloudsdk.command_lib.accesscontextmanagerr   r	   $googlecloudsdk.command_lib.util.argsr
   UniverseCompatibleReleaseTracksReleaseTrackBETAGAUpdateCommandr   ALPHArV   detailed_helprL   r   r   <module>rj      s    < &  ' J ( F D 9 D%%**D,=,=,@,@AG++ G B GT D%%++,@. @ -@ 	O

(  $1   &3  #r   