
                            S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S rS r\R2                  " \R4                  R6                  5      \R8                   " S S\R:                  5      5       5       r\R2                  " \R4                  R>                  \R4                  R@                  5      \R8                   " S S\5      5       5       r!g)z)Vertex AI endpoints deploy-model command.    )absolute_import)division)unicode_literals)encoding)
operations)client)base)	constants)endpoint_util)endpoints_util)flags)operations_util)region_util)
validation)logc                    [         R                  " S5      R                  U 5        [         R                  " 5       R                  U 5        [         R                  " X5        [         R
                  " X5        [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " S5      R                  U 5        [         R                  " 5       R                  U 5        [         R                  " X5        [         R                  " U S[        R                  S9  U[        R                  :w  a  [         R                   " U S5        gg)z*Prepares for the arguments of the command.zdeployed modelzdeployed-modelzto deploy a model to)prompt_funczto co-host a model onN)r   GetDisplayNameArgAddToParserGetTrafficSplitArgAddPredictionResourcesArgsAddScaleToZeroArgsGetEnableAccessLoggingArgGetServiceAccountArgGetUserSpecifiedIdArgGetAutoscalingMetricSpecsArgAddModelIdArgAddEndpointResourceArgr   PromptForOpRegionr
   
GA_VERSIONAddSharedResourcesArg)parserversions     (lib/surface/ai/endpoints/deploy_model.py_AddArgsr%   #   s   *+77?((0""636+!!#//7**62./;;FC$$&226:g&//1 	$$$	! %    c                    [         R                  " U R                  5        [         R                  " U R                  5        [         R
                  " U R                  U R                  5        U R                  R                  R                  5       nUR                  5       S   U l        [        R                  " XR                  S9   [        R                   " US9n["        R$                  " 5       nU[&        R(                  :X  a  UR+                  UU R,                  U R                  U R                  U R.                  U R0                  U R                  U R2                  U R                  U R4                  U R                  U R6                  U R8                  U R:                  U R<                  U R>                  U R@                  S9nGOU R                  RB                  R                  5       n[         RD                  " UU R.                  U R0                  U R                  U R2                  U R                  U R                  S9  [         RF                  " U R                  U RH                  U R2                  U RJ                  U RL                  5        URO                  UU R,                  U R                  U R                  U R.                  U RP                  U RR                  U R0                  U R                  U R2                  U R                  U R4                  U R                  U R6                  U R8                  U RT                  U R<                  U R>                  U R@                  UU RJ                  U RL                  U RH                  U RV                  S9n[X        RZ                  " XE[\        R^                  " UR`                  5      5      nUbk  [b        Rd                  " U5      nSU;   aO  S	US   ;   aF  [f        Rh                  Rk                  S
Rm                  UR                  5       S   US   S	   5      5        UsSSS5        $ ! , (       d  f       g= f)z1Deploy a model to an existing Vertex AI endpoint.locationsId)region)r#   )machine_typeaccelerator_dictmin_replica_countmax_replica_countrequired_replica_countreservation_affinityautoscaling_metric_specsspotenable_access_loggingdisable_container_loggingservice_accounttraffic_splitdeployed_model_id)shared_resources_refr*   r+   r,   r-   r.   r0   )r*   tpu_topologymultihost_gpu_node_countr+   r,   r-   r.   r/   r0   r1   r2   enable_container_loggingr4   r5   r6   r7   min_scaleup_periodidle_scaledown_periodinitial_replica_countgpu_partition_sizeNdeployedModelidzBDeployed a model to the endpoint {}. Id of the deployed model: {}.endpointsId)7r   ValidateDisplayNamedisplay_nameValidateAutoscalingMetricSpecsr0   ValidateRequiredReplicaCountr.   r,   CONCEPTSendpointParseAsDictr)   r   AiplatformEndpointOverridesr   EndpointsClientr   OperationsClientr
   r    DeployModelmodelr*   acceleratorr-   r/   r1   r2   r3   r4   r5   r6   shared_resourcesValidateSharedResourceArgsValidateScaleToZeroArgsr=   r;   r<   DeployModelBetar8   r9   r:   r>   r   WaitForOpMayber   ParseOperationnamer   MessageToPyValuer   statusPrintformat)	argsr#   endpoint_refendpoints_clientoperation_clientopr7   response_msgresponses	            r$   _Runrb   8   sx     !2!23++D,I,IJ))$*E*E*.*@*@B''--/,##%m4$+00M--g>!224)&&&''

**
++


((++ 22 22!%!<!<#88#'#@#@yy $ : :$($B$B..** 22# ( 4b& "]];;AAC++3((++ 22 22!%!<!<#'#@#@B ((

 
 

$
$d&<&<

!
!4#=#=
 ++

**
++


((((#'#@#@++ 22 22!%!<!<#88#'#@#@yy $ : :#'#@#@..** 223!44 $ : : $ : :!441 , 6b2 #11n;;BGGDFL**<8h	H	$/1J)J

 :;A6*113MB&7=<?	@ O NMMs   M+P;;
Q	c                   .    \ rS rSrSr\S 5       rS rSrg)DeployModelGa     Deploy a model to an existing Vertex AI endpoint.

## EXAMPLES

To deploy a model ``456'' to an endpoint ``123'' under project ``example'' in
region ``us-central1'', run:

  $ {command} 123 --project=example --region=us-central1 --model=456
  --display-name=my_deployed_model
c                     [        U [        R                  5        [        R                  " 5       R                  U 5        g N)r%   r
   r    r   GetDisableContainerLoggingArgr   r"   s    r$   ArgsDeployModelGa.Args   s)    VY))*	'')55f=r&   c                 8    [        U[        R                  5        g rh   )rb   r
   r    selfr[   s     r$   RunDeployModelGa.Run   s    y##$r&    N	__name__
__module____qualname____firstlineno____doc__staticmethodrk   rp   __static_attributes__rr   r&   r$   rd   rd      s     	 > >%r&   rd   c                   .    \ rS rSrSr\S 5       rS rSrg)rS      rf   c                     [        U [        R                  5        [        R                  " 5       R                  U 5        g rh   )r%   r
   BETA_VERSIONr   GetEnableContainerLoggingArgr   rj   s    r$   rk   DeployModelBeta.Args   s)    VY++,	&&(44V<r&   c                 8    [        U[        R                  5        g rh   )rb   r
   r~   rn   s     r$   rp   DeployModelBeta.Run   s    y%%&r&   rr   Nrs   rr   r&   r$   rS   rS      s     	 = ='r&   rS   N)"rx   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.air   #googlecloudsdk.api_lib.ai.endpointsr   googlecloudsdk.callioper	   googlecloudsdk.command_lib.air
   r   r   r   r   r   r   googlecloudsdk.corer   r%   rb   ReleaseTracksReleaseTrackGAUniverseCompatibleCommandrd   BETAALPHArS   rr   r&   r$   <module>r      s    0 &  ' % 0 6 ( 3 7 8 / 9 5 4 #!*Od D%%(()%DLL %  *%* D%%**D,=,=,C,CD'm '  E'r&   