
    c                        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  SS	KJr  S
 rS r\R"                  \R$                  " \R&                  R(                  5       " S S\R*                  5      5       5       r\R$                  " \R&                  R.                  5       " S S\5      5       r\R$                  " \R&                  R2                  5       " S S\5      5       rSSS.\l        g)zCreate resource policy command.    )absolute_import)division)unicode_literals)base_classes)base)
exceptions)flags)utilc                     [         R                  " 5       R                  U 5        [         R                  " U 5        [         R                  " U 5        [         R
                  " U 5        g)zA helper function.N)r	   MakeResourcePolicyArgAddArgumentAddCommonArgsAddTypeArgsForWorkloadPolicyAAddMaxTopologyDistanceAndAcceleratorTopologyArgsForWorkloadPolicyparsers    ?lib/surface/compute/resource_policies/create/workload_policy.py_CommonArgsr      sH     ++F3f$$V,II    c                     UR                   bP  U R                  R                  UR                  R                  R
                  :w  a  [        R                  " SS5      egg)zValidates the workload policy.Nz--accelerator-topologyzMAccelerator topology is only supported for high throughput workload policies.)accelerator_topologyworkloadPolicytypeResourcePolicyWorkloadPolicyTypeValueValuesEnumHIGH_THROUGHPUTr   InvalidArgumentException)resource_policymessagesargss      r   ValidateWorkloadPolicyr!   (   s`    	*$$))		.	.	B	B	R	RS 
-
- 	 S +r   c                   .    \ rS rSrSr\S 5       rS rSrg)CreateWorkloadPolicyGa5   1Create a Compute Engine workload resource policy.c                     [        U 5        g )N)r   r   s    r   ArgsCreateWorkloadPolicyGa.Args:   s
    r   c                 &   [         R                  " U R                  5       5      nUR                  n[        R
                  " 5       R                  UUR                  [        R                  " UR                  5      S9nUR                  R                  n[        R                  " XAU5      n[        XeU5        UR                  UUR                  UR                   S9nUR                  R"                  R$                  nUR'                  USU4/5      S   $ )N)scope_lister)resourcePolicyprojectregionInsertr   )r   ComputeApiHolderReleaseTrackclientr	   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   r
   MakeWorkloadPolicyr!   $ComputeResourcePoliciesInsertRequestr,   r-   apitools_clientresourcePoliciesMakeRequests)	selfr    holderr1   
policy_refr   r   create_requestservices	            r   RunCreateWorkloadPolicyGa.Run>   s    **4+<+<+>?F]]F,,.@@"88G A J }}%%H--jIO?d;BB&""   C N mm++<<G(N CDEaHHr    N)	__name__
__module____qualname____firstlineno____doc__staticmethodr'   r@   __static_attributes__rB   r   r   r#   r#   5   s     : Ir   r#   c                       \ rS rSrSrSrg)CreateWorkloadPolicyBetaU   r%   rB   NrC   rD   rE   rF   rG   rI   rB   r   r   rK   rK   U       9r   rK   c                       \ rS rSrSrSrg)CreateWorkloadPolicyAlphaZ   r%   rB   NrM   rB   r   r   rP   rP   Z   rN   r   rP   r%   z;To create a workload policy:

$ {command} NAME --type=TYPE
)DESCRIPTIONEXAMPLESN)rG   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.computer	   r4   4googlecloudsdk.command_lib.compute.resource_policiesr
   r   r!   UniverseCompatibleReleaseTracksr0   GACreateCommandr#   BETArK   ALPHArP   detailed_helprB   r   r   <module>r`      s    & &  ' 7 ( . E F E
 D%%(()IT// I * I< D%%**+:5 : ,: D%%++,: 6 : -:
 K(  $r   