
                            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
  \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.    )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)   "ParseUpdateDirectionalPoliciesArgsr.   )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,   r-   r.   )r:   )rD   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   s                     r   r:   UpdatePerimetersGA.PatchO   sD    
 <<%/1'E-'E)'   r    N)r   )__name__
__module____qualname____firstlineno____doc___INCLUDE_UNRESTRICTEDr1   staticmethodr   r   rE   r:   __static_attributes__rI   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)UpdatePerimetersAlphae   r   Fr   c                 ,    [         R                  U SS9  g )Nr   r   r   r   s    r   r   UpdatePerimetersAlpha.Argsk   s    $$VY$?r   rI   N)
rJ   rK   rL   rM   rN   rO   r1   rP   r   rQ   rI   r   r   rS   rS   e   s$    ',@ @r   rS   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)rN   +googlecloudsdk.api_lib.accesscontextmanagerr   r/   googlecloudsdk.callioper   /googlecloudsdk.command_lib.accesscontextmanagerr   r   $googlecloudsdk.command_lib.util.argsr   UniverseCompatibleReleaseTracksReleaseTrackBETAGAUpdateCommandr	   ALPHArS   detailed_helprI   r   r   <module>rf      s    < K ( F D 9 D%%**D,=,=,@,@AG++ G B GT D%%++,@. @ -@ 	O

(  $1   &3  #r   