
    w                        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 jr\R(                  " \R*                  R,                  5       " S S\R.                  5      5       r\R(                  " \R*                  R2                  \R*                  R4                  5       " S S\5      5       rg)z*Cloud Pub/Sub subscription modify command.    )absolute_import)division)unicode_literals)
exceptions)subscriptions)base)flags)resource_args)util)log)
propertiesc                 Z   [         R                  " 5       nU R                  R                  R	                  5       nU(       d  UR                  XQU R                  5      n[        R                  R                  SR                  U R                  SR                  U5      UR                  5       5      5        U(       a   UR                  5       UU R                  S.0 4$ U0 4$ Sn0 n UR                  XQU R                  5      n[        R"                  " Xq5      u  p[        R                  R                  SR                  U R                  SR                  U
5      UR                  5       5      5        U	(       aW  [        R                  R                  SR                  U R                  SR                  U	5      UR                  5       5      5        U(       a  UR                  5       UU R                  S.nXg4$ ! [        R                   a!  n[        R                   " U5      n SnAGN%SnAff = f)z3Modifies the ack deadline for one or more messages.zUSet ackDeadlineSeconds to [{0}] for messages with ackId [{1}]] for subscription [{2}],)subscriptionIdackIdackDeadlineSecondsNz\Set ackDeadlineSeconds to [{0}] for messages with ackId [{1}]] failed for subscription [{2}])r   SubscriptionsClientCONCEPTSsubscriptionParseModifyAckDeadlineack_deadliner   statusPrintformatjoinRelativeNameapi_ex	HttpErrorr   HandleExactlyOnceDeliveryError'ParseExactlyOnceAckIdsAndFailureReasons)argsack_idslegacy_outputcapture_failuresclientsubscription_refresultack_ids_and_failure_reasonserrorfailed_ack_idssuccessfully_processed_ack_idss              ?lib/surface/pubsub/subscriptions/modify_message_ack_deadline.py_Runr.       s   ,,.&]]//557	%%&6&*&7&79F JJ 55;V**CHHW,=)6686:;
 ,99; $ 1 1 
	  RZ& "M%%&6&*&7&79F
 483_3_!4,0. ** 3396((xx >?'446489
 JJ <<BF**CHH^,D)668=:; *779"//F
 
	,,- 
		 M"&"E"Ee"LMs   $G5 5H*	H%%H*c                   6    \ rS rSrSrSS0r\S 5       rS rSr	g)	ModifyMessageAckDeadlineU   ?Modifies the ACK deadline for a specific Cloud Pub/Sub message.DESCRIPTIONz          This method is useful to indicate that more time is needed to process
          a message by the subscriber, or to make the message available for
          redelivery if the processing was interrupted.c                     [         R                  " U S5        [        R                  " U S5        [        R                  " U SS9  g )Nmessages belong to.modify the deadline for.Trequiredr
   AddSubscriptionResourceArgr	   AddAckIdFlagAddAckDeadlineFlagparsers    r-   ArgsModifyMessageAckDeadline.Argsa   s4    ,,V5JK	v9:	Vd3    c                 D    [        XR                  SS9u  p#U(       a  U$ U$ )NT)r%   )r.   r#   )selfr"   r(   r)   s       r-   RunModifyMessageAckDeadline.Rung   s&    *.llT+3'F"((MrA    N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr?   rD   __static_attributes__rF   rA   r-   r0   r0   U   s/    G ;- 4 4
rA   r0   c                   .    \ rS rSrSr\S 5       rS rSrg)ModifyMessageAckDeadlineBetao   r2   c                     [         R                  " U S5        [        R                  " U SSS9  [        R                  " U SS9  g )Nr5   r6   T)add_deprecatedr7   r9   r=   s    r-   r?   !ModifyMessageAckDeadlineBeta.Argss   s6    ,,V5JK	v9$O	Vd3rA   c                     [         R                  " U5      n[        R                  R                  R
                  R                  5       n[        XUSS9u  pEU(       a  U$ U$ )NT)r$   r%   )r	   ParseAckIdsArgsr   VALUESpubsubr$   GetBoolr.   )rC   r"   r#   r$   r(   r)   s         r-   rD    ModifyMessageAckDeadlineBeta.Runy   sU    ##D)G%%,,::BBDM*.]T+K'F"((MrA   rF   N)	rG   rH   rI   rJ   rK   rM   r?   rD   rN   rF   rA   r-   rP   rP   o   s    G4 4
rA   rP   N)FF)rK   
__future__r   r   r   apitools.base.pyr   r   googlecloudsdk.api_lib.pubsubr   googlecloudsdk.callioper   !googlecloudsdk.command_lib.pubsubr	   r
   r   googlecloudsdk.corer   r   r.   ReleaseTracksReleaseTrackGACommandr0   BETAALPHArP   rF   rA   r-   <module>rg      s    1 &  ' 1 7 ( 3 ; 2 # *2-j D%%(()t||  *2 D%%**D,=,=,C,CD#;  ErA   