
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddl
mZ dd	lmZ e	j                   e	j                   e	j"                  j$                  e	j"                  j&                         G d
 de	j(                                      Z e	j                   e	j"                  j,                         G d de             ZddddZee_        ee_        y)z5`gcloud access-context-manager zones update` command.    )absolute_import)division)unicode_literals)zones)base)
perimeters)policies)repeatedc                   F    e Zd ZdZdZdZed        Zed	d       Zd Z	d Z
y)
UpdatePerimetersGAUpdate an existing access zone.Fv1c                 2    t         j                  | d       y )Nr   versionr   ArgsVersionedparsers    7lib/surface/access_context_manager/perimeters/update.pyArgszUpdatePerimetersGA.Args#   s    $$VT$:    c                 ^    t        j                  | d       t        j                  | |       y )Nz	to updater   )r   AddResourceArgAddPerimeterUpdateArgs)r   r   s     r   r   z UpdatePerimetersGA.ArgsVersioned'   s"    fk2%%fg>r   c                    t        j                  | j                        }|j                  j                  j                         }t        j                  j                  |j                  |      }t        j                  ||       d }d}| j                  dk(  rt        j                  |d      \  }}| j                  |||||j                  |j                   t        j"                  | j                        j%                  |j&                        t        j(                  ||      t        j*                  ||      t        j,                  |||j.                        t        j0                  ||| j                        |j2                  ||t        j4                  |d      t        j4                  |d      |j6                        S )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   RunzUpdatePerimetersGA.Run,   s   d&7&78FMM++113M""++FJJFF$$]D9%)"I%

9
9- 9$&8
 ::#$$jj!33%%''7'7		'B++D&9&>>tVL%%dF&3&D&DF';;&$++-'+'J'J-'E#FF$&"EE#%YY-   r   c                 @    |j                  ||||||	|
|||||||      S )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:   zUpdatePerimetersGA.PatchR   sD    
 <<%/1'E-'E)'   r   N)r   )__name__
__module____qualname____doc___INCLUDE_UNRESTRICTEDr1   staticmethodr   r   rE   r:    r   r   r   r      sC     (,; ; ? ?$Lr   r   c                   (    e Zd ZdZdZdZed        Zy)UpdatePerimetersAlphar   Fr   c                 2    t         j                  | d       y )Nr   r   r   r   s    r   r   zUpdatePerimetersAlpha.Argsn   s    $$VY$?r   N)rG   rH   rI   rJ   rK   r1   rL   r   rM   r   r   rO   rO   h   s$    ',@ @r   rO   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)rJ   
__future__r   r   r   +googlecloudsdk.api_lib.accesscontextmanagerr   r/   googlecloudsdk.callioper   /googlecloudsdk.command_lib.accesscontextmanagerr   r	   $googlecloudsdk.command_lib.util.argsr
   UniverseCompatibleReleaseTracksReleaseTrackBETAGAUpdateCommandr   ALPHArO   detailed_helprM   r   r   <module>ra      s    < &  ' J ( F D 9 D%%**D,=,=,@,@AG++ G B GT D%%++,@. @ -@ 	O

(  $1   &3  #r   