
                            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  ej(                  ej*                  j,                         G d dej.                               Z ej(                  ej*                  j2                  ej*                  j4                         G d de             Zy)z!Vertex AI indexes create command.    )absolute_import)division)unicode_literals)client)base)	constants)endpoint_util)flags)indexes_util)region_util)
validation)labels_util)logc                   ,    e Zd ZdZed        Zd Zd Zy)CreateV1b  Create a new Vertex AI index.

  ## EXAMPLES

  To create an index under project `example` in region
  `us-central1`, encrypted with KMS key `kms-key-name`, run:

    $ {command} --display-name=index --description=test
    --metadata-file=path/to/your/metadata.json
    --project=example --region=us-central1
    --encryption-kms-key-name=kms-key-name
  c                 P   t        j                  | dt        j                  t        j
                               t        j                  d      j                  |        t        j                  d      j                  |        t        j                  dd      j                  |        t        j                  d      j                  |        t        j                         j                  |        t        j                         j                  |        t        j                  |        y )Nzto create index)prompt_funcindexT)required)r
   AddRegionResourceArgr   GetPromptForRegionFuncr   SUPPORTED_OP_REGIONSGetDisplayNameArgAddToParserGetDescriptionArgGetMetadataFilePathArgGetMetadataSchemaUriArgGetIndexUpdateMethodGetEncryptionKmsKeyNameArgr   AddCreateLabelsFlags)parsers     lib/surface/ai/indexes/create.pyArgszCreateV1.Args0   s    	66**
 
G$008	G$008	  48DDVL	!!'*66v>	 ,,V4	$$&226:$$V,    c                    t        j                  |j                         |j                  j                  j                         }|j                         d   }|j                         d   }t        j                  ||      5  t        j                  |      }|t        j                  k(  r|j                  ||      }n|j                  ||      }t        j                   |j"                        }|j                         d   }	t$        j&                  j)                  t        j*                  j-                  |j"                  d|j/                         dj-                  |	||                   |cd d d        S # 1 sw Y   y xY w)	NlocationsId
projectsId)region)version	indexesIdzcreate indexz%--index={} --region={} [--project={}])nameverbidsub_commands)r   ValidateDisplayNamedisplay_nameCONCEPTSr)   ParseAsDictr	   AiplatformEndpointOverridesr   IndexesClientr   
GA_VERSIONCreate
CreateBetar   ParseIndexOperationr,   r   statusPrint"OPERATION_CREATION_DISPLAY_MESSAGEformatName)
selfargsr*   
region_refr)   
project_idindex_client	operationop_refindex_ids
             r#   _RunzCreateV1._RunA   s/   ""4#4#45%%++-J /F""$\2J		2	276	J))':l	I((	( ''
D9	 ++J=	//	?f-h	jj

6
6
=
=>>!BIIFJ0	 > 12 ! 
K	J	Js   C+E66E?c                 B    | j                  |t        j                        S N)rH   r   r7   r@   rA   s     r#   RunzCreateV1.RunX   s    99T9//00r%   N)__name__
__module____qualname____doc__staticmethodr$   rH   rL    r%   r#   r   r   !   s%     - - .1r%   r   c                       e Zd ZdZd Zy)CreateV1Beta1r   c                 B    | j                  |t        j                        S rJ   )rH   r   BETA_VERSIONrK   s     r#   rL   zCreateV1Beta1.Runk   s    99T91122r%   N)rM   rN   rO   rP   rL   rR   r%   r#   rT   rT   \   s    3r%   rT   N)rP   
__future__r   r   r   !googlecloudsdk.api_lib.ai.indexesr   googlecloudsdk.callioper   googlecloudsdk.command_lib.air   r	   r
   r   r   r   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   ReleaseTracksReleaseTrackGACreateCommandr   ALPHABETArT   rR   r%   r#   <module>rc      s    ( &  ' 4 ( 3 7 / 6 5 4 < # D%%(()71t!! 71 *71t D%%++T->->-C-CD3H 3 E3r%   