
    G                     @   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 dd
lmZ ddlZej"                   ej$                  ej&                  j(                  ej&                  j*                         G d dej,                                      Zy)zCreate policy command.    )absolute_import)division)unicode_literals)apis)platform_policy)messages)base)flags)parsingNc                   &    e Zd ZdZed        Zd Zy)Createa  Create a Binary Authorization platform policy.

  ## EXAMPLES

  To create a policy for GKE in the current project:

      $ {command} my-policy --platform=gke --policy-file=my_policy.yaml

  To create a policy for GKE in a specific project:

      $ {command} my-policy --platform=gke --project=my-project-id \
        --policy-file=my_policy.yaml

  or

      $ {command} /projects/my-project-id/platforms/gke/policies/my-policy
      \
        --policy-file=my_policy.yaml
  c                     t        j                  | d       | j                  ddd       | j                  j	                  d       y )Nz	to createz--policy-fileTz0The JSON or YAML file containing the new policy.)requiredhelpyaml)r
   AddPlatformPolicyResourceArgadd_argumentdisplay_info	AddFormat)parsers    /lib/surface/container/binauthz/policy/create.pyArgszCreate.Args5   sE    	&&v{;
?  A !!&)    c                 ^   |j                   j                  j                         }t        j                  t        j                  |j                              }t        j                  |t        j                  d      j                        }t        j                  d      j                  ||      S )zRuns the command.

    Args:
      args: argparse.Namespace with command-line arguments.

    Returns:
      The policy resource.
    v1)CONCEPTSpolicy_resource_nameParser   LoadResourceFilesix
ensure_strpolicy_filemessages_utilDictToMessageWithErrorCheckr   GetMessagesModulePlatformPolicyr   Clientr   )selfargsr   
policy_objpolicys        r   Runz
Create.Run>   s      ====CCE )) 	t''(*J 66t$335F
 !!$'../CVLLr   N)__name__
__module____qualname____doc__staticmethodr   r,    r   r   r   r      s!    ( * *Mr   r   )r0   
__future__r   r   r   )googlecloudsdk.api_lib.container.binauthzr   r   googlecloudsdk.api_lib.utilr   r#   googlecloudsdk.callioper	   -googlecloudsdk.command_lib.container.binauthzr
   r   r    DefaultUniverseOnlyReleaseTracksReleaseTrackBETAALPHACreateCommandr   r2   r   r   <module>r>      s     &  ' : E A ( ? A 
 D%%**D,=,=,C,CD6MT 6M E 6Mr   