
                            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	r
S
rSrSrSr " S S\R                  5      rg)zEWraps a Serverless WorkerPool message, making fields more convenient.    )absolute_importannotations)division)unicode_literals)instance_split)
k8s_object)revisionzrun.googleapis.com/minScalezrun.googleapis.com/maxScalez&run.googleapis.com/manualInstanceCountzrun.googleapis.com/scalingModezrun.googleapis.com/operation-idc                    ^  \ rS rSrSrSrS r\S 5       r\S 5       r	\S 5       r
\S 5       r\R                  S 5       r\S	 5       r\S
 5       r\S 5       rS r\S 5       rU 4S jr\S 5       r\S 5       r\S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       rSrU =r$ )
WorkerPool"   zWraps a Serverless WorkerPool message, making fields more convenient.

Setting properties on a WorkerPool (where possible) writes through to the
nested Kubernetes-style fields.
zrun.googleapis.comc                N   U R                   R                  R                  (       d=  [        R                  " U R                  5       5      U R                   R                  l        [        R                  R                  U R                   R                  U R                  5       5      nU$ N)	spectemplatemetadatar	   MakeMetaMessagesModuler
   RevisionTemplate)selfrets     -lib/googlecloudsdk/api_lib/run/worker_pool.pyr   WorkerPool.template,   sk    99&&$.$7$78K8K8M$Ndii!



$
$TYY%7%79L9L9N
OCJ    c                    U R                  5         [        R                  " U R                  U R                  R
                  5      $ r   )AssertFullObjectr	   AnnotationsFromMetadata	_messagesr   r   r   s    r   template_annotationsWorkerPool.template_annotations3   s4    --.. r   c                .    U R                   R                  $ r   )r   labelsr    s    r   revision_labelsWorkerPool.revision_labels:   s    ==r   c                .    U R                   R                  $ r   r   namer    s    r   revision_nameWorkerPool.revision_name>   s    ==r   c                $    XR                   l        g r   r(   r   values     r   r*   r+   B   s    MMr   c                .    U R                   R                  $ r   )statuslatestCreatedRevisionNamer    s    r   latest_created_revision"WorkerPool.latest_created_revisionF   s    ;;000r   c                .    U R                   R                  $ r   )r0   latestReadyRevisionNamer    s    r   latest_ready_revision WorkerPool.latest_ready_revisionJ   s    ;;...r   c                    U R                   R                   Vs/ s H!  oR                  (       d  M  UR                  PM#     sn$ s  snf r   )r0   instanceSplitspercentrevisionName)r   is     r   serving_revisionsWorkerPool.serving_revisionsN   s0    $(KK$>$>L$>q))NANN$>LLLs
   AAc                    U R                   R                  =(       a#    UR                  U R                   R                  :H  nUR                  =(       d    U$ )zBReturns True if the split's percent is part of the latest percent.)r0   r5   r;   latestRevision)r   splitis_latest_by_names      r   _ShouldIncludeInLatestPercent(WorkerPool._ShouldIncludeInLatestPercentR   sH     	++ 	F$++"E"EE  4#44r   c                V   ^  [        U 4S jT R                  R                   5       5      $ )zCThe percent of instance split assigned tothe latest ready revision.c              3  ~   >#    U  H2  nTR                  U5      (       d  M  UR                  =(       d    S v   M4     g7f)r   N)rC   r:   ).0rA   r   s     r   	<genexpr>;WorkerPool.latest_percent_instance_split.<locals>.<genexpr>]   s4      /E--e4 	/s   ==)sumr0   r9   r    s   `r   latest_percent_instance_split(WorkerPool.latest_percent_instance_splitZ   s)      [[//  r   c                   > U R                   SL a,  U R                  (       a  U R                  U R                  :w  a  g[        [        U ]  5       $ )NF)!yellow)readyr6   r2   superr   ReadySymbolAndColor)r   	__class__s    r   rR   WorkerPool.ReadySymbolAndColorc   s?    

e&&((D,F,FFT688r   c                8    U R                   R                  S5      $ )Nz serving.knative.dev/lastModifier)r   getr    s    r   last_modifierWorkerPool.last_modifierl   s     BCCr   c                    U R                  5         [        R                  " U R                  U R                  R
                  5      $ r   )r   r   InstanceSplitsr   r   r9   r    s    r   
spec_splitWorkerPool.spec_splitp   s4    ((		00 r   c                    U R                  5         [        R                  " U R                  U R                  c  / 5      $ U R                  R
                  5      $ r   )r   r   rZ   r   r0   r9   r    s    r   status_splitWorkerPool.status_splitw   sK    ((kk! '+{{'A'A r   c                .    U R                   R                  $ r   r   imager    s    r   rb   WorkerPool.image   s    ==r   c                $    XR                   l        g r   ra   r-   s     r   rb   rc      s    MMr   c                @    U R                   R                  [        5      $ r   )r   rV   OPERATION_ID_ANNOTATIONr    s    r   operation_idWorkerPool.operation_id   s     788r   c                (    XR                   [        '   g r   )r   rf   r-   s     r   rg   rh      s    05,-r   c                T    U R                   R                  [        R                  5      $ r   )r   rV   r	   DESCRIPTION_ANNOTATIONr    s    r   descriptionWorkerPool.description   s    
 A ABBr   c                     XR                   S'   g )Nzrun.googleapis.com/descriptionr   r-   s     r   rl   rm      s    9>56r    )__name__
__module____qualname____firstlineno____doc__API_CATEGORYKINDpropertyr   r!   r%   r*   setterr2   r6   r=   rC   rK   rR   rW   r[   r^   rb   rg   rl   __static_attributes____classcell__)rS   s   @r   r   r   "   s    &,	$            1 1 / / M M5  9 D D       	<<    9 9 6 6 C C ? ?r   r   N)rt   
__future__r   r   r   r   googlecloudsdk.api_lib.runr   r	   r
    WORKER_POOL_MIN_SCALE_ANNOTATION WORKER_POOL_MAX_SCALE_ANNOTATION MANUAL_INSTANCE_COUNT_ANNOTATION#WORKER_POOL_SCALING_MODE_ANNOTATIONrf   KubernetesObjectr   ro   r   r   <module>r      sU    L & "  ' 5 1 / $A  #@  #K  &F #; s?,, s?r   