
                             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 creating ZoneVmExtensionPolicies.    )base_classes)base)flagsc                   0    e Zd ZdZdddZed        Zd Zy)Createz1Create a Compute Engine zone VM extension policy.a  
     To create 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create)operation_type)r   MakeZoneVmExtensionPolicyArgr   ZoneVmExtensionPoliciesArgAddArgumentAddExtensionPolicyArgs)parsers    8lib/surface/compute/zone_vm_extension_policies/create.pyArgszCreate.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                  |      fg      S )zRun the create command.

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

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