
                            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 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j2                  ej4                  j6                         G d dej8                               Z ej2                  ej4                  j<                  ej4                  j>                         G d de             Z y)z)Vertex AI index endpoints create command.    )absolute_import)division)unicode_literals)encoding)
operations)client)base)	constants)endpoint_util)flags)index_endpoints_util)operations_util)region_util)
validation)labels_util)logc                   ,    e Zd ZdZed        Zd Zd Zy)CreateV1o  Create a new Vertex AI index endpoint.

  ## EXAMPLES

  To create an index endpoint under project `example` with network
  `projects/123/global/networks/test-network` in region
  `us-central1`, run:

    $ {command} --display-name=index-endpoint --description=test
    --network=projects/123/global/networks/test-network
    --project=example --region=us-central1
  c                 ,   t        j                  | dt        j                  t        j
                               t        j                  d      j                  |        t        j                  d      j                  |        t        j                         j                  |        t        j                         j                  |        t        j                  |        t        j                  |        t        j                         j                  |        y )Nzto create index endpoint)prompt_funczindex endpoint)r   AddRegionResourceArgr   GetPromptForRegionFuncr
   SUPPORTED_OP_REGIONSGetDisplayNameArgAddToParserGetDescriptionArgGetNetworkArgGetPublicEndpointEnabledArgr   AddCreateLabelsFlagsAddPrivateServiceConnectConfigGetEncryptionKmsKeyNameArg)parsers    (lib/surface/ai/index_endpoints/create.pyArgszCreateV1.Args3   s    	"66**
 
,-99&A	,-99&A	%%f-	%%'33F;$$V,	((0	$$&226:    c                 &   t        j                  |j                         t        j                  |j                  |j
                         |j                  j                  j                         }|j                         d   }t        j                  ||      5  t        j                  |      }|t        j                  k(  r|j!                  ||      }n|j#                  ||      }t%        j&                  t)        j*                  |      |t-        j.                  |j0                              }|Jt3        j4                  |      }d|v r1t6        j8                  j;                  dj=                  |d                |cd d d        S # 1 sw Y   y xY w)NlocationsId)region)version)operations_clientopop_refnamez%Created Vertex AI index endpoint: {}.)r   ValidateDisplayNamedisplay_nameValidateEndpointArgsnetworkpublic_endpoint_enabledCONCEPTSr)   ParseAsDictr   AiplatformEndpointOverridesr   IndexEndpointsClientr
   
GA_VERSIONCreate
CreateBetar   WaitForOpMayber   OperationsClientr   ParseIndexEndpointOperationr.   r   MessageToPyValuer   statusPrintformat)	selfargsr*   
region_refr)   index_endpoint_client	operationresponse_msgresponses	            r$   _RunzCreateV1._RunD   s<   ""4#4#45##DLL$2N2NO%%++-J /F		2	276	J$99'J	I((	()00TB	)44ZF	$33&77H%AAnnl
 
	!,,\:X
**

CKKv  !# 
K	J	Js   C%FFc                 B    | j                  |t        j                        S N)rJ   r
   r9   rC   rD   s     r$   RunzCreateV1.Run\   s    99T9//00r&   N)__name__
__module____qualname____doc__staticmethodr%   rJ   rN    r&   r$   r   r   $   s%     ; ; 01r&   r   c                       e Zd ZdZd Zy)CreateV1Beta1r   c                 B    | j                  |t        j                        S rL   )rJ   r
   BETA_VERSIONrM   s     r$   rN   zCreateV1Beta1.Runo   s    99T91122r&   N)rO   rP   rQ   rR   rN   rT   r&   r$   rV   rV   `   s    3r&   rV   N)!rR   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.air   )googlecloudsdk.api_lib.ai.index_endpointsr   googlecloudsdk.callioper	   googlecloudsdk.command_lib.air
   r   r   r   r   r   r   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   ReleaseTracksReleaseTrackGACreateCommandr   ALPHABETArV   rT   r&   r$   <module>rg      s    0 &  ' % 0 < ( 3 7 / > 9 5 4 < # D%%(()81t!! 81 *81v D%%++T->->-C-CD3H 3 E3r&   