
                             d 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                         G d dej                                      Zy)z-Command for updating ZoneVmExtensionPolicies.    )base_classes)base)flagsc                   0    e Zd ZdZdddZed        Zd Zy)Updatez1Update a Compute Engine zone VM extension policy.a  
     To update a zone VM extension policy, run:

       $ {command} test-policy-name         --description="test policy"         --extensions=extension1,extension2         --version=extension1=version1,extension2=version2         --config=extension1="config1",extension2="config2"         --inclusion-labels=env=prod         --inclusion-labels=env=preprod,workload=load-test         --priority=1000
   )briefEXAMPLESc                     t        j                         t        _        t        j                  j	                  | d       t        j
                  |        y )Nupdate)operation_type)r   MakeZoneVmExtensionPolicyArgr   ZoneVmExtensionPoliciesArgAddArgumentAddExtensionPolicyArgs)parsers    8lib/surface/compute/zone_vm_extension_policies/update.pyArgszUpdate.Args-   sA    (-(J(J(LF%
%%11x 2  
  (    c           
         t        j                  | j                               }|j                  }|j                  j                  }t
        j                  j                  ||j                  t        j                  |            }t        j                  |j                  |j                  |j                         t        j                   |j                  |j"                         t        j$                  |||      }|j'                  |j(                  j*                  d|j-                  |j.                  |j0                  |j3                         |      fg      S )zRun the Update command.

    Args:
      args: argparse.Namespace, The arguments to this command.

    Returns:
      Response calling the ZoneVmExtensionPoliciesService.Update API.
    )scope_listerr   )projectzonevmExtensionPolicyvmExtensionPolicyResource)r   ComputeApiHolderReleaseTrackclientmessagesr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   ParseExtensionConfigs
extensionsconfigconfig_from_fileParseExtensionVersionsversionBuildZoneVmExtensionPolicyMakeRequestsapitools_clientzoneVmExtensionPolicies+ComputeZoneVmExtensionPoliciesUpdateRequestr   r   Name)selfargsholderr   r   resource_ref
zve_policys          r   Runz
Update.Run5   s!    **4+<+<+>?F]]F}}%%H44FF"88@ G L
 
d&;&; 
  $,,?11,hOJ66<< ((""*//1&0	 	= 	
	! 	  	 	r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r4    r   r   r   r      s2     : C-  ) ) r   r   N)r8   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r!   =googlecloudsdk.command_lib.compute.zone_vm_extension_policiesUniverseCompatibleReleaseTracksr   ALPHAUpdateCommandr   r;   r   r   <module>rD      s^     4 7 ( E O D%%++,;T ; - ;r   