
    	                         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 ddlmZ ddlmZ  G d de      Zy)z+Utilities for AI Platform Tensorboards API.    )absolute_import)division)unicode_literals)
list_pager)util)apis)common_args)	constants)errors)
validation)labels_utilc                   ^    e Zd ZdZddej
                  fdZd Zd Zd Z	d Z
ddZd	 Zd
 Zy)TensorboardsClientz:High-level client for the AI Platform Tensorboard surface.Nc                    |xs5 t        j                  t        j                  t        j                  |         | _        |xs | j
                  j                  | _        | j
                  j                  | _	        || _
        y N)r   GetClientInstancer
   AI_PLATFORM_API_NAMEAI_PLATFORM_API_VERSIONclientMESSAGES_MODULEmessagesprojects_locations_tensorboards_service_version)selfr   r   versions       4lib/googlecloudsdk/api_lib/ai/tensorboards/client.py__init__zTensorboardsClient.__init__"   sd      4D22&&))'24DK ; ; ;DMKK??DMDM    c                     | j                   t        j                  k(  r| j                  ||      S | j	                  ||      S r   )r   r
   
GA_VERSIONCreateGa
CreateBeta)r   location_refargss      r   CreatezTensorboardsClient.Create-   s6    }}	,,,]]<..__\400r   c                    t        j                  |      }t        j                  || j                  j
                  j                        }| j                  j                  |j                  |j                  |      }|, t        j                  d| j                        |      |_        | j                  j                  |j                         |      }| j                  j!                  |      S )Create a new Tensorboard.displayNamedescriptionlabelsEncryptionSpec
kmsKeyName)parent"googleCloudAiplatformV1Tensorboard)common_validationGetAndValidateKmsKeyr   ParseCreateArgsr   "GoogleCloudAiplatformV1TensorboardLabelsValuedisplay_namer+   api_util
GetMessager   encryptionSpec4AiplatformProjectsLocationsTensorboardsCreateRequestRelativeNamer   r&   r   r$   r%   kms_key_namer,   tensorboardrequests          r   r"   zTensorboardsClient.CreateGa3   s    $99$?L((dmm>>JJLF--BB%%$$ C K $+8#6#6
DMM$+%$'k  mmPP((*+6 Q 8G ==((r   c                    t        j                  |      }t        j                  || j                  j
                  j                        }| j                  j                  |j                  |j                  |      }|, t        j                  d| j                        |      |_        | j                  j                  |j                         |      }| j                  j!                  |      S )r(   r)   r-   r.   )r0   'googleCloudAiplatformV1beta1Tensorboard)r2   r3   r   r4   r   'GoogleCloudAiplatformV1beta1Tensorboardr6   r7   r+   r8   r9   r   r:   r;   r<   r   r&   r=   s          r   r#   zTensorboardsClient.CreateBetaG   s    $99$?L((dmmCCOOQF--GG%%$$ H K $+8#6#6
DMM$+%$'k  mmPP((*0; Q =G ==((r   c                     | j                   j                  |j                               }| j                  j	                  |      S N)name)r   1AiplatformProjectsLocationsTensorboardsGetRequestr<   r   Getr   tensorboard_refr@   s      r   rH   zTensorboardsClient.Get[   s=    mmMM))+ N -G==W%%r   c                     | j                   j                  |j                         t        j                  |            }t        j                  | j                  |dd||      S )N)r0   orderBytensorboardspageSize)fieldbatch_size_attribute
batch_sizelimit)r   2AiplatformProjectsLocationsTensorboardsListRequestr<   r	   ParseSortByArgr   YieldFromListr   )r   rR   	page_size
region_refsort_byr@   s         r   ListzTensorboardsClient.List`   sa    mmNN&&(**73 O 5G ##' r   c                     | j                   j                  |j                               }| j                  j	                  |      S rE   )r   4AiplatformProjectsLocationsTensorboardsDeleteRequestr<   r   DeleterI   s      r   r\   zTensorboardsClient.Deletel   s=    mmPP))+ Q -G==((r   c                      j                   t        j                  k(  r; j                  j	                         } j                  j                  j
                  }n: j                  j                         } j                  j                  j
                  }g } fd}t        j                  |||      }|j                  r"|j                  |_
        |j                  d       |j                  "|j                  |_        |j                  d       |j                  "|j                  |_        |j                  d       |st        j                   d       j                   t        j                  k(  r< j                  j#                  j%                         |dj'                  |            }n; j                  j#                  j%                         |dj'                  |            } j(                  j+                  |      S )	zUpdate a Tensorboard.c                  :     j                        j                  S r   )rH   r,   )r   rJ   s   r   	GetLabelsz+TensorboardsClient.Patch.<locals>.GetLabels|   s    XXo&---r   r,   r7   r+   zNo updates requested.,)rF   r1   
updateMask)rF   rB   ra   )r   r
   r!   r   r5   r6   rC   r   ProcessUpdateArgsLazyneeds_updater,   appendr7   r*   r+   r   NoFieldsSpecifiedError3AiplatformProjectsLocationsTensorboardsPatchRequestr<   joinr   Patch)	r   rJ   r%   r?   labels_valueupdate_maskr_   labels_updatereqs	   ``       r   rh   zTensorboardsClient.Patchq   s   }}	,,,MMDDFk]]EEQQlMMIIKk]]JJVVlK.  55dL6?AM !!(//k"$ $ 1 1k(# $ 0 0k'))*ABB}}	,,,MMMM++--8XXk* N ,c
 MMMM++-2=XXk* N ,c ==s##r   )i  2   NN)__name__
__module____qualname____doc__r
   BETA_VERSIONr   r&   r"   r#   rH   rY   r\   rh    r   r   r   r      s>    B  --	1)()(&

)
*$r   r   N)rq   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.air   r8   googlecloudsdk.api_lib.utilr   r	   googlecloudsdk.command_lib.air
   r   r   r2   $googlecloudsdk.command_lib.util.argsr   objectr   rs   r   r   <module>r{      s9    2 &  ' ' 6 , 3 3 0 I <|$ |$r   