
                            d Z ddl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mZ ej$                  Zej&                   ej(                  ej*                  j,                  ej*                  j.                  ej*                  j0                         G d dej2                                      Zy)z+Bigtable materialized views create command.    N)
exceptions)materialized_views)util)base)parser_arguments)parser_extensions)	arguments)log)	resources)bigtableadmin_v2_messagesc                       e Zd ZdZd ej
                  d      iZedej                  ddfd       Z
dej                  d	ej                  dej                   fd
Zd	ej                  dej                   fdZy)CreateMaterializedViewz(Create a new Bigtable materialized view.EXAMPLESz          To create a materialized view, run:
            $ {command} my-materialized-view-id --instance=my-instance-id --query="SELECT my-column-family FROM my-table --deletion-protection=false"
          parserreturnNc                     t        j                  | d       t        j                  |       j                  d      j	                         j                          y )Nz	to createT)required)r	   AddMaterializedViewResourceArgArgAdderAddViewQueryAddDeletionProtectionAddAsync)r   s    1lib/surface/bigtable/materialized_views/create.pyArgszCreateMaterializedView.Args0   sB    ,,V[Av++ , hhj    materialized_view_refargsc                 X    t        j                  ||j                  |j                        S )a@  Creates a materialized view with the given arguments.

    Args:
      materialized_view_ref: A resource reference of the new materialized view.
      args: an argparse namespace. All the arguments that were provided to this
        command invocation.

    Returns:
      Created materialized view resource object.
    )r   Createquerydeletion_protection)selfr   r   s      r   _CreateMaterializedViewz.CreateMaterializedView._CreateMaterializedView7   s(     $$tzz4+C+C r   c                 x   |j                   j                  j                         }| j                  ||      }|j                  sHt        j                  |      }t        j                  |dj                  |j                                     S t        j                  |j                         d|j                         y)zThis is what gets called when the user runs this command.

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

    Returns:
      Created resource.
    zCreating materialized view {0}zmaterialized view)kindis_asyncN)CONCEPTSmaterialized_viewParser#   async_r   GetOperationRefAwaitMaterializedViewformatNamer
   CreatedResource)r"   r   r   	operationoperation_refs        r   RunzCreateMaterializedView.RunJ   s     !MM;;AAC,,-BDII;;**95m''

*
1
12G2L2L2N
O  ""$ 
 r   )__name__
__module____qualname____doc__textwrapdedentdetailed_helpstaticmethodr   ArgumentInterceptorr   r   Resourcer   	Namespacer   MaterializedViewr#   r2    r   r   r   r   "   s    
 1 /(// # - )#77 )D ) )&// '' !11	&#-- 11r   r   )r6   r7   apitools.base.pyr   googlecloudsdk.api_lib.bigtabler   r   googlecloudsdk.callioper   r   r   #googlecloudsdk.command_lib.bigtabler	   googlecloudsdk.corer
   r   6googlecloudsdk.generated_clients.apis.bigtableadmin.v2r   	HttpErrorUniverseCompatibleReleaseTracksReleaseTrackGABETAALPHACreateCommandr   r?   r   r   <module>rN      s    2  ' > 0 ( 4 5 9 # ) \   	 $++00$2C2C2I2I=T// = =r   