
    
                         S r SSKJr  SSKJr  SSKJr  SSK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                   " S S\
R                  5      5       rg)z%Command for spanner databases update.    )absolute_import)division)unicode_literalsN)database_operations)	databases)base)flags)resource_argsc                   V    \ rS rSrSrS\R                  " S5      0r\S 5       r	S r
Srg)	Update   z Update a Cloud Spanner database.EXAMPLESa          To enable database deletion protection on a Cloud Spanner database
        'my-database', run:

          $ {command} my-database --enable-drop-protection

        To disable database deletion protection on a Cloud Spanner database
        'my-database', run:

          $ {command} my-database --no-enable-drop-protection

        To update KMS key references for a Cloud Spanner database
        'my-database', run:

          $ {command} my-database --kms-keys="KEY1,KEY2"
        c                    [         R                  " U S5        U R                  SS9n[        R                  " 5       R                  U5        [        R                  " 5       R                  U5        [        R                  R                  U 5        g)zArgs is called by calliope to gather arguments for this command.

Args:
  parser: An argparse parser that you can use to add arguments that go on
    the command line after this command. Positional arguments are allowed.
z	to updateT)mutexN)	r
   AddDatabaseResourceArgadd_argument_groupr	   EnableDropProtectionAddToParserEnableUpdateKmsKeysr   
ASYNC_FLAG)parsergroup_parsers     'lib/surface/spanner/databases/update.pyArgsUpdate.Args5   sg     ((=,,4,8L	 ,,\:	++L9OO'    c                     [         R                  " UR                  R                  R	                  5       UR
                  UR                  5      nUR                  (       a  U$ [        R                  " US5      $ )zThis is what gets called when the user runs the `database update` command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  Database update response.
zUpdating database.)
r   r   CONCEPTSdatabaseParseenable_drop_protectionkms_keysasync_r   Await)selfargsops      r   Run
Update.RunC   s\     
		$$&##
B
 {{i$$R)=>>r    N)__name__
__module____qualname____firstlineno____doc__textwrapdedentdetailed_helpstaticmethodr   r(   __static_attributes__r*   r   r   r   r      s:    ( (// # -& ( (?r   r   )r/   
__future__r   r   r   r0   googlecloudsdk.api_lib.spannerr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.spannerr	   r
   UniverseCompatibleUpdateCommandr   r*   r   r   <module>r;      sL    , &  '  > 4 ( 4 < 5?T 5? 5?r   