
    
                     D   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SKJr  \	R                   \	R"                  " \	R$                  R&                  \	R$                  R(                  5       " S S\	R*                  5      5       5       rg)zEvaluate policy command.    )absolute_import)division)unicode_literals)apis)platform_policy)base)flags)parsing)util)Errorc                   .    \ rS rSrSr\S 5       rS rSrg)Evaluate   aT  Evaluate a Binary Authorization platform policy.

## EXAMPLES

To evaluate a policy using its resource name:

  $ {command} projects/my-proj/platforms/gke/policies/my-policy
  --resource=$KUBERNETES_RESOURCE

To evaluate the same policy using flags against an image:

  $ {command} my-policy --platform=gke --project=my-proj --image=$IMAGE
c                 ^    [         R                  " U S5        [         R                  " U 5        g )Nzto evaluate)r	   AddPlatformPolicyResourceArgAddEvaluationUnitArg)parsers    1lib/surface/container/binauthz/policy/evaluate.pyArgsEvaluate.Args/   s     	&&v}=	v&    c                    UR                   R                  R                  5       R                  5       nUR	                  S5      S   nUS:w  a  [        SR                  U5      5      eUR                  (       aG  [        R                  " UR                  5      n[        R                  " S5      R                  X$S5      nOF[        R                  " UR                  5      n[        R                  " S5      R                  X&S5      nUR                   ["        R$                  " S5      R&                  R(                  R*                  :w  a  SU l        U$ )N/   gkezVFound unsupported platform '{}'. Currently only 'gke' platform policies are supported.v1F   )CONCEPTSpolicy_resource_nameParseRelativeNamesplitr   formatresourcer
   LoadResourceFiler   Clientr   r   GeneratePodSpecFromImagesimageverdictr   GetMessagesModuleEvaluateGkePolicyResponseVerdictValueValuesEnum
CONFORMANT	exit_code)selfargs
policy_refplatform_idresource_objresponsepod_specs          r   RunEvaluate.Run4   s   3399;HHJJ""3'*Ke$$*F;$7 
 }}--dmm<l ''-66
Eh //

;h ''-66
h 	!!

#
#$:$:::	F
 dnOr   )r.   N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   r6   __static_attributes__ r   r   r   r      s      ' 'r   r   N)r<   
__future__r   r   r   )googlecloudsdk.api_lib.container.binauthzr   r   googlecloudsdk.callioper   -googlecloudsdk.command_lib.container.binauthzr	   r
   r   googlecloudsdk.core.exceptionsr   DefaultUniverseOnlyReleaseTracksReleaseTrackBETAALPHACommandr   r?   r   r   <module>rK      s{     &  ' : E ( ? A > 0 D%%**D,=,=,C,CD2t|| 2 E 2r   