
    K                     >    d Z ddlmZ ddlmZ d Zd Zd Zd Zd Z	y	)
z"Bigtable logical-views API helper.    )
list_pager)utilc                 >   t        j                         }t        j                         }| j                         }|j	                  |      }|||_        |j                  || j                         |j                               }|j                  j                  |      S )a  Create a logical view.

  Args:
    logical_view_ref: A resource reference to the logical view to create.
    query: The query of the logical view.
    deletion_protection: The deletion protection of the logical view.

  Returns:
    Created logical view resource object.
  )query)logicalViewlogicalViewIdparent)r   GetAdminClientGetAdminMessagesParentLogicalViewdeletionProtection7BigtableadminProjectsInstancesLogicalViewsCreateRequestNameRelativeNameprojects_instances_logicalViewsCreate)logical_view_refr   deletion_protectionclientmsgsinstance_reflogical_viewmsgs           4lib/googlecloudsdk/api_lib/bigtable/logical_views.pyr   r      s      &				 $!((*,!!!.,$&9L#DD$))+&&( 	E 	#
 
	/	/	6	6s	;;    c                     t        j                         }t        j                         j                  | j	                               }|j
                  j                  |      S )zDelete a logical view.

  Args:
    logical_view_ref: A resource reference to the logical view to delete.

  Returns:
    Empty response.
  name)r   r
   r   7BigtableadminProjectsInstancesLogicalViewsDeleteRequestr   r   Deleter   r   r   s      r   r!   r!   2   sV      &WW((* 	X 	# 
	/	/	6	6s	;;r   c                     t        j                         }t        j                         j                  | j	                               }|j
                  j                  |      S )zDescribe a logical view.

  Args:
    logical_view_ref: A resource reference to the logical view to describe.

  Returns:
    Logical view resource object.
  r   )r   r
   r   4BigtableadminProjectsInstancesLogicalViewsGetRequestr   r   Getr"   s      r   Describer&   B   sV      &TT((* 	U 	# 
	/	/	3	3C	88r   c                     t        j                         }t        j                         j                  | j	                               }t        j                  |j                  |dd      S )zList logical views.

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

  Returns:
    Generator of logical view resource objects.
  )r	   logicalViewsN)fieldbatch_size_attribute)r   r
   r   5BigtableadminProjectsInstancesLogicalViewsListRequestr   r   YieldFromListr   )r   r   r   s      r   Listr-   R   sd      &UU&&( 	V 	# 
	!	!,,		
 r   c                 v   t        j                         }t        j                         }g }|j                         }|r|j	                  d       ||_        ||j	                  d       ||_        |j                  || j                         dj                  |            }|j                  j                  |      S )a  Update a logical view.

  Args:
    logical_view_ref: A resource reference to the logical view to update.
    query: The new query of the logical view.
    deletion_protection: The new deletion protection of the logical view.

  Returns:
    Long running operation.
  r   r   ,)r   r   
updateMask)r   r
   r   r   appendr   r   6BigtableadminProjectsInstancesLogicalViewsPatchRequestr   joinr   Patch)r   r   r   r   r   changed_fieldsr   r   s           r   Updater6   h   s      &				 $.!!#,
'"L$/0&9L#CC((*.) 	D 	# 
	/	/	5	5c	::r   N)
__doc__apitools.base.pyr   googlecloudsdk.api_lib.bigtabler   r   r!   r&   r-   r6    r   r   <module>r;      s)    ) ' 0<:< 9 , ;r   