
    a                     `   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ej                  de
j                  fd	Zdej                  d
edede
j                  fdZdej                  ddfdZdej                  dee
j                  ddf   fdZdej                  dede
j                  fdZy)z'Bigtable materialized-views API helper.    )	Generator)
list_pager)util)	resources)bigtableadmin_v2_messagesmaterialized_view_refreturnc                     t        j                         }t        j                         j                  | j	                               }|j
                  j                  |      S )zDescribe a materialized view.

  Args:
    materialized_view_ref: A resource reference to the materialized view to
      describe.

  Returns:
    materialized view resource object.
  name)r   GetAdminClientGetAdminMessages9BigtableadminProjectsInstancesMaterializedViewsGetRequestRelativeName$projects_instances_materializedViewsGetr   clientmsgs      9lib/googlecloudsdk/api_lib/bigtable/materialized_views.pyDescriber      sV      &YY --/ 	Z 	# 
	4	4	8	8	==    querydeletion_protectionc                 >   t        j                         }t        j                         }| j                         }|j	                  |      }|||_        |j                  || j                         |j                               }|j                  j                  |      S )aD  Create a materialized view.

  Args:
    materialized_view_ref: A resource reference to the materialized view to
      create.
    query: The query of the materialized view.
    deletion_protection: Whether the materialized view is protected from
      deletion.

  Returns:
    Created materialized view resource object.
  )r   )materializedViewmaterializedViewIdparent)r   r   r   ParentMaterializedViewdeletionProtection<BigtableadminProjectsInstancesMaterializedViewsCreateRequestNamer   r   Create)r   r   r   r   msgsinstance_refmaterialized_viewr   s           r   r$   r$   +   s    $  &				 $&--/,++%+8$+>(II(.335&&( 	J 	#
 
	4	4	;	;C	@@r   Nc                     t        j                         }t        j                         j                  | j	                               }|j
                  j                  |       y)zDelete a materialized view.

  Args:
    materialized_view_ref: A resource reference to the materialized view to
      delete.
  r   N)r   r   r   <BigtableadminProjectsInstancesMaterializedViewsDeleteRequestr   r   Deleter   s      r   r*   r*   N   sS      &\\ --/ 	] 	# 	--44S9r   r&   c                     t        j                         }t        j                         j                  | j	                               }t        j                  |j                  |dd      S )zList materialized views.

  Args:
    instance_ref: A resource reference of the instance to list materialized
      views for.

  Returns:
    Generator of materialized view resource objects.
  )r   materializedViewsN)fieldbatch_size_attribute)r   r   r   :BigtableadminProjectsInstancesMaterializedViewsListRequestr   r   YieldFromListr   )r&   r   r   s      r   Listr1   ^   sd      &ZZ&&( 	[ 	# 
	!	!11		
 r   c                     t        j                         }t        j                         }|j                  |j	                  |      | j                         d      }|j                  j                  |      S )a  Update a materialized view.

  Args:
    materialized_view_ref: A resource reference to the materialized view to
      update.
    deletion_protection: Whether the materialized view is protected from
      deletion.

  Returns:
    Updated materialized view resource object.
  )r!   r   )r   r   
updateMask)r   r   r   ;BigtableadminProjectsInstancesMaterializedViewsPatchRequestr    r   r   Patch)r   r   r   r%   r   s        r   Updater6   w   sv      &				 $HH,,0 -  !--/& 	I 	# 
	4	4	:	:3	??r   )__doc__typingr   apitools.base.pyr   googlecloudsdk.api_lib.bigtabler   googlecloudsdk.corer   6googlecloudsdk.generated_clients.apis.bigtableadmin.v2r   Resourcer    r   strboolr$   r*   r1   r6    r   r   <module>rA      s    .  ' 0 ) \>$-->//>& A$-- A A  A //	 AF:$--:	: $$(994EF2@$--@DH@//@r   