
    /                         d Z ddlmZ ddlmZ dZdZdZdZdZd	Z	d
Z
dZdZdZdZdZdZdZdZ G d dej&                        Zy)z<Wraps a Cloud Run revision message with convenience methods.    )container_resource)
k8s_objectzserving.knative.dev/servicezrun.googleapis.com/workerPoolzclient.knative.dev/noncez autoscaling.knative.dev/minScalez autoscaling.knative.dev/maxScalez"run.googleapis.com/sessionAffinityzrun.googleapis.com/meshzrun.googleapis.com/base-imageszrun.googleapis.com/identityz.run.googleapis.com/enable-workload-certificatez!run.googleapis.com/mesh-dataplanez*run.googleapis.com/linux-base-image-updatez0run.googleapis.com/gpu-zonal-redundancy-disabledzrun.googleapis.com/sourcesz#run.googleapis.com/overflow-scalingc                   D   e Zd ZdZdZd ZdZdZ eeg      Z	e
d        Ze
d        Ze
d        Ze
d        Ze
d	        Ze
d
        Zej"                  d        Ze
d        Zej"                  d        Ze
d        Zej"                  d        Ze
d        Zd Ze
d        Zy)RevisionzBWraps a Cloud Run Revision message, making fields more convenient.zserving.knative.devReadyActivec                 V    | j                   j                  j                  j                  S N)_mstatusgcslocationselfs    *lib/googlecloudsdk/api_lib/run/revision.pygcs_locationzRevision.gcs_locationE   s    77>>&&&    c                 P    t         | j                  v r| j                  t            S d S r
   )SERVICE_LABELlabelsr   s    r   service_namezRevision.service_nameI   s!    )6$++)E4;;}%O4Or   c                 P    t         | j                  v r| j                  t            S d S r
   )WORKER_POOL_LABELr   r   s    r   worker_pool_namezRevision.worker_pool_nameM   s.     + 	%& r   c                 .    | j                   j                  S r
   )specservingStater   s    r   serving_statezRevision.serving_stateU   s    99!!!r   c                 \    | j                   }| j                  |v r|| j                     d   S y )Nr   )
conditions_ACTIVE_CONDITION)r   conds     r   activezRevision.activeY   s2    ??D%$(()(33r   c                 .    | j                   j                  S )zThe concurrency number in the revisionTemplate.

    0: Multiple concurrency, max unspecified.
    1: Single concurrency
    n>1: Allow n simultaneous requests per instance.
    )r   containerConcurrencyr   s    r   concurrencyzRevision.concurrency`   s     99)))r   c                 h    	 d | j                   _        || j                   _        y # t        $ r Y w xY wr
   )r   concurrencyModelAttributeErrorr%   r   values     r   r&   zRevision.concurrencyj   s7    #'dii 
 &+DII"	   s   % 	11c                 .    | j                   j                  S )zThe timeout number in the revisionTemplate.

    The lib can accept either a duration format like '1m20s' or integer like
    '80' to set the timeout. The returned object is an integer value, which
    assumes second the unit, e.g., 80.
    r   timeoutSecondsr   s    r   timeoutzRevision.timeoutu   s     99###r   c                 &    || j                   _        y r
   r-   r*   s     r   r/   zRevision.timeout   s    $DIIr   c                 .    | j                   j                  S )z,The service account in the revisionTemplate.r   serviceAccountNamer   s    r   service_accountzRevision.service_account   s     99'''r   c                 &    || j                   _        y r
   r2   r*   s     r   r4   zRevision.service_account   s    #(DII r   c                 .    | j                   j                  S )z:The URL of the image, by digest. Stable when tags are not.)r   imageDigestr   s    r   image_digestzRevision.image_digest   s     ;;"""r   c                     | j                   j                  Ct        j                  | j                  j
                  j                        | j                   _        y y r
   )r   nodeSelectorr   InitializedInstance	_messagesRevisionSpecNodeSelectorValuer   s    r   _EnsureNodeSelectorzRevision._EnsureNodeSelector   sA    yy%)==
..
%
%
7
7 dii &r   c                     | j                          t        j                  | j                  j                  j
                  | j                  j                  j                  j                  dd      S )z=The node selector as a dictionary { accelerator_type: value}.keyr+   )	key_fieldvalue_field)
r?   r   KeyValueListAsDictionaryWrapperr   r:   additionalPropertiesr<   r=   r>   AdditionalPropertyr   s    r   node_selectorzRevision.node_selector   sU     	55		33##55HH	 r   N)__name__
__module____qualname____doc__API_CATEGORYKINDREADY_CONDITIONr!   	frozensetTERMINAL_CONDITIONSpropertyr   r   r   r   r#   r&   setterr/   r4   r8   r?   rG    r   r   r   r   :   sH   J&,	$/!#  ' ' P P   " "   * * + + $ $ >>% % ( ( ) ) # #  r   r   N)rK   googlecloudsdk.api_lib.runr   r   r   r   NONCE_LABELMIN_SCALE_ANNOTATIONMAX_SCALE_ANNOTATIONSESSION_AFFINITY_ANNOTATIONMESH_ANNOTATIONBASE_IMAGES_ANNOTATIONIDENTITY_ANNOTATION&ENABLE_WORKLOAD_CERTIFICATE_ANNOTATIONMESH_DATAPLANE_ANNOTATION$BASE_IMAGE_UPDATE_RUNTIME_CLASS_NAME(GPU_ZONAL_REDUNDANCY_DISABLED_ANNOTATIONSOURCES_ANNOTATIONOVERFLOW_SCALING_ANNOTATIONContainerResourcer   rS   r   r   <module>rc      s    C 9 1 .3  )9 9 B +9 3  5 ' @  1 %
 7 )
 !  D f!33 fr   