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

  ## EXAMPLES

  To update an existing policy using its resource name:

    $ {command} projects/my_proj/platforms/gke/policies/policy1 --policy-file=policy1.json

  To update the same policy using flags:

    $ {command} policy1 --platform=gke --project=my_proj --policy-file=policy1.json
  c                     t        j                  | d       | j                  ddd       | j                  j	                  d       y )Nz	to updatez--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/update.pyArgszUpdate.Args/   sE    	&&v{;
?  A !!&)    c                 X   t        j                  d      }|j                  j                  j	                         j                         }t        j                  |j                        }t        j                  ||j                        }t        j                  d      j                  ||      S )Nv1)r   GetMessagesModuleCONCEPTSpolicy_resource_nameParseRelativeNamer   LoadResourceFilepolicy_filemessages_utilDictToMessageWithErrorCheckPlatformPolicyr   Clientr   )selfargsr   
policy_ref
policy_objpolicys         r   Runz
Update.Run8   s    %%d+H3399;HHJJ))$*:*:;J 66z7?7N7NPF!!$'..z6BBr   N)__name__
__module____qualname____doc__staticmethodr   r,    r   r   r   r      s!     * *
Cr   r   N)r0   
__future__r   r   r   )googlecloudsdk.api_lib.container.binauthzr   r   googlecloudsdk.api_lib.utilr   r#   googlecloudsdk.callioper	   -googlecloudsdk.command_lib.container.binauthzr
   r   DefaultUniverseOnlyReleaseTracksReleaseTrackBETAALPHAUpdateCommandr   r2   r   r   <module>r>      s     &  ' : E A ( ? A D%%**D,=,=,C,CD#CT #C E #Cr   