
    g                        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rSrSrSS jr\R,                  " \R.                  R0                  5       " S S\R2                  5      5       r\R,                  " \R.                  R6                  \R.                  R8                  5       " S S\5      5       rg)z(Cloud Pub/Sub subscription pull command.    )absolute_import)division)unicode_literals)
exceptions)subscriptions)base)flags)resource_args)utilNztable[box](
  message.data.decode(base64).decode(utf-8),
  message.messageId,
  message.orderingKey,
  message.attributes.list(separator='
'),
  deliveryAttempt,
  ackId.if(NOT auto_ack)
)
ztable[box](
  message.data.decode(base64).decode(utf-8),
  message.messageId,
  message.orderingKey,
  message.attributes.list(separator='
'),
  deliveryAttempt,
  ackId.if(NOT auto_ack),
  ackStatus.if(auto_ack)
)
c                 $   [         R                  " 5       nU R                  R                  R	                  5       nUR                  XAU5      n0 n/ nU R                  (       ab  UR                  (       aQ  UR                   Vs/ s H  oR                  PM     n	n UR                  X5        U(       d  U H  nUS   XmS   '   M     U R                  (       d  UR                  $ / nUR                   H  n0 nUR+                  5        H1  n[-        UUR.                  5      nU(       d  M"  UUUR.                  '   M3     UR                  U;   a  XhR                     US'   OSUS'   UR1                  U5        M     U$ s  snf ! [        R                   a  n
[        R                  " U
5      n[        R                  " UR                   R"                  5      nU(       d.  U	 H(  nS[$        R&                  " U
R(                  5      -   Xl'   M*      Sn
A
GNaSn
A
ff = f)z#Pulls messages from a subscription.FAILURE_NFailureReasonAckId	ackStatusSUCCESS)r   SubscriptionsClientCONCEPTSsubscriptionParsePullauto_ackreceivedMessagesackIdAckapi_ex	HttpErrorutil_exHttpExceptionr   ParseExactlyOnceErrorInfopayloaddetailssix	text_typestatus_code
all_fieldsgetattrnameappend)argsmax_messagesreturn_immediatelyclientsubscription_refpull_responsefailed_ack_idsack_ids_and_failure_reasonsmessageack_idserrorexcack_idack_ids_and_failure_reason
return_valmessage_copyfieldvalues                     (lib/surface/pubsub/subscriptions/pull.py_Runr<   8   s   ,,.&]]//557++.02- . "	]]}55,9,J,JK,J}},JGKQjj+ (C
$2?C 	 	 )D 
))) *//gL##%guzz*e	#(UZZ  & }}&"0"?l;"+l;l# 0 
I L  	Q!!%(c$($B$B
++

%!
 )F#-e>O>O0P#P.
  	Qs    E6E; ;HA5H

Hc                   6    \ rS rSrSrSS0r\S 5       rS rSr	g)	r   j   =Pulls one or more Cloud Pub/Sub messages from a subscription.DESCRIPTIONa             Returns one or more messages from the specified Cloud Pub/Sub
          subscription, if there are any messages enqueued.

          By default, this command returns only one message from the
          subscription. Use the `--limit` flag to specify the max messages to
          return.

          Please note that this command is not guaranteed to return all the
          messages in your backlog or the maximum specified in the --limit
          argument.  Receiving fewer messages than available occasionally
          is normal.c                     U R                   R                  [        5        [        R                  " U S5        [
        R                  " U 5        [        R                  R                  U S5        g )Nto pull messages from.   )
display_info	AddFormatMESSAGE_FORMAT_WITH_ACK_STATUSr
   AddSubscriptionResourceArgr	   AddPullFlagsr   
LIMIT_FLAG
SetDefaultparsers    r;   Args	Pull.Args~   sJ    
!!"@A,,V5MN	vOOvq)    c                 ,    [        XR                  5      $ )N)r<   limit)selfr)   s     r;   RunPull.Run   s    jj!!rO    N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodrM   rS   __static_attributes__rU   rO   r;   r   r   j   s/    E -  * *"rO   r   c                   .    \ rS rSrSr\S 5       rS rSrg)PullBeta   r?   c                     U R                   R                  [        5        [        R                  " U S5        [
        R                  " U SSSS9  g )NrB   T)add_deprecatedadd_waitadd_return_immediately)rD   rE   rF   r
   rG   r	   rH   rK   s    r;   rM   PullBeta.Args   s?    
!!"@A,,V5MN	td4rO   c                 j   UR                  S5      (       a:  UR                  S5      (       a  [        R                  " SS5      eUR                  nOUR                  nSnUR                  S5      (       a  UR
                  nO'UR                  S5      (       a  UR                  (       + n[        XU5      $ )NrQ   r*   z--max-messagesz--limitFr+   wait)IsSpecifiedr   ConflictingArgumentsExceptionrQ   r*   r+   rg   r<   )rR   r)   r*   r+   s       r;   rS   PullBeta.Run   s      			.	)	)667G7@B 	BZZl&&l,--22			&	!	!#yy=$677rO   rU   N)	rV   rW   rX   rY   rZ   r\   rM   rS   r]   rU   rO   r;   r_   r_      s    E 8rO   r_   )F)rZ   
__future__r   r   r   apitools.base.pyr   r   googlecloudsdk.api_lib.pubsubr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   !googlecloudsdk.command_lib.pubsubr	   r
   r   r"   MESSAGE_FORMATrF   r<   ReleaseTracksReleaseTrackGAListCommandr   BETAALPHAr_   rU   rO   r;   <module>rx      s    / &  ' 1 7 = ( . 3 ; 2 
	
" /d D%%(()"4 " *"> D%%**D,=,=,C,CD8t 8 E8rO   