
                            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iZd Zd Z ej,                  ej.                  j0                         G d dej2                               Z ej,                  ej.                  j6                  ej.                  j8                         G d dej2                               Zee_        ee_        y)z:Vertex AI model deployment monitoring jobs update command.    )absolute_import)division)unicode_literals)client)base)	constants)endpoint_util)errors)flags)
validation)labels_util)logEXAMPLESz
    To update display name of model deployment monitoring job `123` under project `example` in region `us-central1`, run:

      $ {command} 123 --display-name=new-name --project=example --region=us-central1
    c                    t        j                  | d       t        j                  dd      j                  |        t        j                  d      j                  |        t        j
                  dd      j                  |        t        j                  dd      j                  |        t        j                  d      j                  |        t        j                  d      j                  |        t        j                  | d       t        j                  d      j                  |        t        j                  d      j                  |        t        j                  |        y)zAdd flags for update command.z	to updatezmodel deployment monitoring jobF)requiredN)r   default)r    AddModelMonitoringJobResourceArgGetDisplayNameArgAddToParserGetEmailsArgGetPredictionSamplingRateArgGetMonitoringFrequencyArgGetAnalysisInstanceSchemaArgGetMonitoringLogTtlArg AddObjectiveConfigGroupForUpdateGetAnomalyCloudLoggingArgGetNotificationChannelsArgr   AddUpdateLabelsFlagsparsers    .lib/surface/ai/model_monitoring_jobs/update.py_Argsr"   )   s   ((='%99DV9Le$008$$d$$/K$7!!d$$/K$7$$e4@@H.::6B((%@!!51==fE""E2>>vF""6*    c                 P    t        j                   j                          j                  j                  j                         }|j                         d   }t        j                  ||      5  	 t        j                  |      j                  |       }t        j                  |j                  d       |cddd       S # t        j                   $ rC g d}t#         fd|D              s t        j$                  j'                  d	       Y ddd       yw xY w# 1 sw Y   yxY w)
zRun method for update command.locationsId)region)versionz)Vertex AI model deployment monitoring job)kindN)display_nameemailsprediction_sampling_ratefeature_thresholdsmonitoring_config_from_filemonitoring_frequencyanalysis_instance_schemalog_ttlupdate_labelsclear_labelsremove_labelsanomaly_cloud_loggingnotification_channelsc              3   @   K   | ]  }j                  |        y wN)IsSpecified).0argargss     r!   	<genexpr>z_Run.<locals>.<genexpr>T   s     H2G3!!#&2Gs   zNo update to perform.)r   ValidateDisplayNamer)   CONCEPTSmonitoring_jobParseAsDictr	   AiplatformEndpointOverridesr   ModelMonitoringJobsClientPatchr   UpdatedResourcenamer
   NoFieldsSpecifiedErroranystatusPrint)r;   r'   model_monitoring_job_refr&   resultavailable_update_argss   `     r!   _RunrN   ;   s      !2!23!]]99??A#**,];&00H//@FF
"D*f. 

++GI7 IH ((  H2GHH	jj.// IH	 IHs1   /D1&C"DADDDDD%c                   &    e Zd ZdZed        Zd Zy)UpdateGa4Update an Vertex AI model deployment monitoring job.c                     t        |        y r7   r"   r   s    r!   ArgszUpdateGa.Argsb   	    	&Mr#   c                 6    t        |t        j                        S r7   )rN   r   
GA_VERSIONselfr;   s     r!   RunzUpdateGa.Runf   s    i**++r#   N__name__
__module____qualname____doc__staticmethodrT   rZ    r#   r!   rP   rP   ^   s    < ,r#   rP   c                   &    e Zd ZdZed        Zd Zy)UpdaterQ   c                     t        |        y r7   rS   r   s    r!   rT   zUpdate.Argsn   rU   r#   c                 6    t        |t        j                        S r7   )rN   r   BETA_VERSIONrX   s     r!   rZ   z
Update.Runr   s    i,,--r#   Nr[   ra   r#   r!   rc   rc   j   s    < .r#   rc   N)r_   
__future__r   r   r   /googlecloudsdk.api_lib.ai.model_monitoring_jobsr   googlecloudsdk.callioper   googlecloudsdk.command_lib.air   r	   r
   r   r   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   DETAILED_HELPr"   rN   ReleaseTracksReleaseTrackGAUpdateCommandrP   BETAALPHArc   detailed_helpra   r#   r!   <module>ru      s    A &  ' B ( 3 7 0 / 4 < # 	+$ F D%%((),t!! , *, D%%**D,=,=,C,CD.T . E. % & r#   