
    Q                        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
r
/ S	Qr " S
 S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r       SS jrS rS rS rg)z$API Library for gcloud tasks queues.    )absolute_import)division)unicode_literals)encoding)
list_pager)
exceptionsN)httpTarget.headerOverrideshttpTarget.httpMethod)httpTarget.oauthToken.serviceAccountEmailhttpTarget.oauthToken.scope(httpTarget.oidcToken.serviceAccountEmailhttpTarget.oidcToken.audiencehttpTarget.uriOverridec                       \ rS rSrSrSrg)"CreatingPullAndAppEngineQueueError&   zEError for when attempt to create a queue as both pull and App Engine. N__name__
__module____qualname____firstlineno____doc____static_attributes__r       *lib/googlecloudsdk/api_lib/tasks/queues.pyr   r   &   s    Mr   r   c                       \ rS rSrSrSrg)"CreatingHttpAndAppEngineQueueError*   zOError for when attempt to create a queue with both http and App Engine targets.r   Nr   r   r   r   r   r   *   s    Wr   r   c                       \ rS rSrSrSrg)NoFieldsSpecifiedError.   z?Error for when calling a patch method with no fields specified.r   Nr   r   r   r   r!   r!   .   s    Gr   r!   c                       \ rS rSrSrSrg)RequiredFieldsMissingError2   zKError for when calling a patch method when a required field is unspecified.r   Nr   r   r   r   r$   r$   2   s    Sr   r$   c                   R    \ rS rSrSrS rS rSS jrS rS r	S	 r
S
 rS rS rSrg)
BaseQueues6   1Client for queues service in the Cloud Tasks API.c                     Xl         X l        g Nmessagesqueues_service)selfr-   r.   s      r   __init__BaseQueues.__init__9   s    M(r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ Nname)r-   +CloudtasksProjectsLocationsQueuesGetRequestRelativeNamer.   Getr/   	queue_refrequests      r   r8   BaseQueues.Get=   sA    mmGG##% H G ""7++r   Nc           	          U R                   R                  UR                  5       S9n[        R                  " U R
                  UUUSSS9$ )N)parentqueuespageSize)
batch_sizelimitfieldbatch_size_attribute)r-   ,CloudtasksProjectsLocationsQueuesListRequestr7   r   YieldFromListr.   )r/   
parent_refrB   	page_sizer;   s        r   ListBaseQueues.ListC   sU    mmHH&&( I G ##' r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ r3   )r-   .CloudtasksProjectsLocationsQueuesDeleteRequestr7   r.   Deleter9   s      r   rM   BaseQueues.DeleteP   A    mmJJ##% K G %%g..r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ r3   )r-   -CloudtasksProjectsLocationsQueuesPurgeRequestr7   r.   Purger9   s      r   rR   BaseQueues.PurgeV   A    mmII##% J G $$W--r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ r3   )r-   -CloudtasksProjectsLocationsQueuesPauseRequestr7   r.   Pauser9   s      r   rW   BaseQueues.Pause\   rT   r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ r3   )r-   .CloudtasksProjectsLocationsQueuesResumeRequestr7   r.   Resumer9   s      r   r[   BaseQueues.Resumeb   rO   r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )N)resource)r-   4CloudtasksProjectsLocationsQueuesGetIamPolicyRequestr7   r.   GetIamPolicyr9   s      r   r`   BaseQueues.GetIamPolicyh   sD    JJ++- 	K 	
 
 ++G44r   c                     U R                   R                  UR                  5       U R                   R                  US9S9nU R                  R                  U5      $ )N)policy)r^   setIamPolicyRequest)r-   4CloudtasksProjectsLocationsQueuesSetIamPolicyRequestr7   SetIamPolicyRequestr.   SetIamPolicy)r/   r:   rc   r;   s       r   rg   BaseQueues.SetIamPolicyp   s_    JJ++- $ A A !B ! 	K 	
  ++G44r   r,   )Nd   )r   r   r   r   r   r0   r8   rI   rM   rR   rW   r[   r`   rg   r   r   r   r   r'   r'   6   s2    9),/../5	5r   r'   c                   L    \ rS rSrSr     SS jr           SS jrSrg)	Queues|   r)   Nc           	         XW4n[        U V	s/ s H	  ob  SOSPM     sn	5      S:  aC  [        SR                  [        R                  " U5      [        R                  " U5      5      5      eU R
                  R                  UR                  5       UUUUUS9n
U R
                  R                  UR                  5       U
S9nU R                  R                  U5      $ s  sn	f )9Prepares and sends a Create request for creating a queue.   r   FAttempting to send multiple queue target types simultaneously: {} , {})r5   retryConfig
rateLimitsappEngineRoutingOverridestackdriverLoggingConfig
httpTargetr>   queue)sumr   formatsix	text_typer-   Queuer7   .CloudtasksProjectsLocationsQueuesCreateRequestr.   Create)r/   rG   r:   retry_configrate_limitsapp_engine_routing_overridestackdriver_logging_confighttp_targettargetsxrw   r;   s               r   r~   Queues.Create   s     +8G
w7w!AA%w781<.&mm78mmK(  MM##% !<!;   E mmJJ&&( K G %%g..) 8s   Cc                 j   [        X4U/5      (       d5  U(       d.  SU;  a(  [        UUU	U
UUU/[        U5      (       a  [        S5      eU R                  R                  UR                  5       S9nUb  X>l        Ub  XNl        Ub6  [        U5      (       a   U R                  R                  5       Ul        OX^l        Ub  Xnl        [        U R                  UUUUU	U
UUU5
        SR                  U5      nU R                  R                  UR                  5       XS9nU R                   R#                  U5      $ )9Prepares and sends a Patch request for modifying a queue.rs   *Must specify at least one field to update.r4   ,r5   rw   
updateMask)any_NeitherUpdateNorClearhttp_target_update_masks_listr!   r-   r|   r7   rq   rr   _IsEmptyConfigAppEngineRoutingrs   rt   _GenerateHttpTargetUpdateMaskjoin-CloudtasksProjectsLocationsQueuesPatchRequestr.   Patch)r/   r:   updated_fieldsr   r   r   r   http_uri_overridehttp_method_overridehttp_header_overridehttp_oauth_email_overridehttp_oauth_scope_overridehttp_oidc_email_overridehttp_oidc_audience_overriderw   update_maskr;   s                    r   r   Queues.Patch   sS   " +EFGG *(>"""''&) (
  %8
 	
 MMY%;%;%=>E&$".	3	4	4)-)G)G)I&)D&!-'A$ "!! # ((>*KmmII##%U J G $$W--r   r   NNNNN)NNNNNNNNNNNr   r   r   r   r   r~   r   r   r   r   r   rk   rk   |   sE    9 "&!% /L "&!% $ $#"&I.r   rk   c                   T    \ rS rSrSr      SS jr              SS jrSrg)	
BetaQueues   r)   Nc	           	      $   USL=(       a    UR                   SLn	USLn
U	(       aJ  U
(       aC  [        SR                  [        R                  " U5      [        R                  " U5      5      5      eU
(       a-  U R
                  R                  UR                  5       UUUUUS9nO,U R
                  R                  UR                  5       UUUUUS9nU R
                  R                  UR                  5       US9nU R                  R                  U5      $ )rn   Nrp   )r5   rq   rr   rt   typeru   )r5   rq   rr   appEngineHttpQueuert   r   rv   )rs   r   ry   rz   r{   r-   r|   r7   r}   r.   r~   )r/   rG   r:   r   r   app_engine_http_queuer   
queue_typer   is_app_engine_target_setis_http_target_setrw   r;   s                r   r~   BetaQueues.Create   s   " 	T) 	G!::$F 
 %D0$6.&mm12CMM+4N  mm!!%%'" #=  " e mm!!%%'" 2#= " e mmJJ&&( K G %%g..r   c                    U	(       a  XR                   :w  a  Sn	[        UUUUU/5      (       d<  [        U/S/U5      (       a(  [        U
UUUUUU/[        U5      (       a  [	        S5      eU R
                  R                  UR                  5       U	S9nUb  UUl        Ub  UUl	        Ub  UUl
        Ub  UUl        Ub  UUl        UbN  [        U5      (       a   U R
                  R                  5       Ul        OU R
                  R                  US9Ul        [!        U R
                  UUU
UUUUUU5
        SR#                  U5      nU R
                  R%                  UR                  5       UUS9nU R&                  R)                  U5      $ )r   Nrs   r   )r5   r   rs   r   r   )PULLr   r   r   r!   r-   r|   r7   rq   rr   taskTtltombstoneTtlrt   r   AppEngineHttpQueuer   r   r   r   r.   r   )r/   r:   r   r   r   r   task_ttltask_tombstone_ttlr   r   r   r   r   r   r   r   r   rw   r   r;   s                       r   r   BetaQueues.Patch&  s   , jOO3j"   
 &
'%
&

 
 #""''&) (
  %8
 	
 MMY%;%;%=JOE&e$eem%-e!-'Ae$".	3	4	4#'==#C#C#E #'==#C#C%@ $D $
 
 "!! # ((>*KmmII##%U{ J G $$W--r   r   )NNNNNN)NNNNNNNNNNNNNNr   r   r   r   r   r      sQ    9  !%4/t "&!% $ $#"&#b.r   r   c                   J    \ rS rSrSr     SS jr          SS jrSrg)	AlphaQueuesi  r)   Nc           	      .   Xg4n[        U V	s/ s H	  ob  SOSPM     sn	5      S:  aC  [        SR                  [        R                  " U5      [        R                  " U5      5      5      eXVU4n[        U V	s/ s H	  ob  SOSPM     sn	5      S:  a  [        S5      eU R                  R                  UR                  5       UUUUUS9n
U R                  R                  UR                  5       U
S9nU R                  R                  U5      $ s  sn	f s  sn	f )rn   ro   r   rp   z=Attempting to send multiple queue target types simultaneously)r5   rq   rr   
pullTargetappEngineHttpTargetru   rv   )rx   r   ry   rz   r{   r   r-   r|   r7   r}   r.   r~   )r/   rG   r:   r   r   pull_targetapp_engine_http_targetr   r   r   rw   r;   s               r   r~   AlphaQueues.Create  s%    &3G
w7w!AA%w781<.&mm23S]];5O  K@G
w7w!AA%w781<.
I  MM##% 2   E mmJJ&&( K G %%g..1 8 8s   D8Dc                    [        X4/5      (       d<  [        U/S/U5      (       a(  [        UUUU	U
UU/[        U5      (       a  [        S5      eU R                  R                  UR                  5       S9nUb  X=l        Ub  XMl        UbN  [        U5      (       a   U R                  R                  5       Ul        OU R                  R                  US9Ul        [        U R                  UUUUUU	U
UU5
        SR                  U5      nU R                  R                  UR                  5       XS9nU R                  R!                  U5      $ )r   rs   r   r4   r   r   r   )r   r   r   r!   r-   r|   r7   rq   rr   r   AppEngineHttpTargetr   r   r   r   r.   r   )r/   r:   r   r   r   r   r   r   r   r   r   r   r   rw   r   r;   s                   r   r   AlphaQueues.Patch  sq   " *++ 
 &
'%
&

 
 #""''&) (
  %8
 	
 MMY%;%;%=>E&$".	3	4	4$(MM$E$E$G!$(MM$E$E%@ %F %
! "!! # ((>*KmmII##%U J G $$W--r   r   r   )
NNNNNNNNNNr   r   r   r   r   r     sB    9 !%/V "& $ $#"&L.r   r   c
                    [        U5      (       GaF  U R                  5       n
SU;   a  X:l        SU;   a  XJl        SU;   ar  Uc  / U
l        Og/ nU HY  nU R                  U R                  UR                  R                  UR                  R                  S9S9nUR                  U5        M[     Xl        SU;   d  SU;   a:  SU;  d  Uc  Ub  [        S	5      eUc  Uc  SU
l        OU R                  UUS
9U
l        SU;   d  SU;   a:  SU;  d  Uc  U	b  [        S5      eUc  U	c  SU
l        OU R                  UU	S9U
l        [!        U
5      (       a  SOU
Ul        gg)zDA helper function to generate update mask given the override config.r   r
   r	   N)keyvalue)headerr   r   zTOauth service account email (http-oauth-service-account-email-override) must be set.)serviceAccountEmailscoper   r   zROidc service account email (http-oidc-service-account-email-override) must be set.)r   audience)_HttpTargetNeedsUpdate
HttpTargeturiOverride
httpMethodheaderOverridesHeaderOverrideHeaderr   r   r   appendr$   
oauthToken
OAuthToken	oidcToken	OidcTokenr   ru   )r-   rw   r   r   r   r   r   r   r   r   r   headers_listhoheader_overrides                 r   r   r     s    N++%%'K>1 1.03#~5		%&(#&B$33__biioo_N 4 / 

o
.	 '
 '3# 	4~E(N: 
5N	J
#
+'3 )H
 	

 $
+'/!%!)!4!4 9+ "5 "
 	3nD*n< 
4>	I
"
*)5(G
 	

 #
*)1 $ ( 2 2 80 !3 !

  .k::tES ,r   c                 ,    [          H
  nX;   d  M
    g   g)NTF)r   )r   masks     r   r   r   ^  s    +d , 
r   c                 j   ^ [        S U  5       5      =(       a    [        U4S jU 5       5      (       + $ )Nc              3   (   #    U  H  oS L v   M
     g 7fr+   r   ).0items     r   	<genexpr>)_NeitherUpdateNorClear.<locals>.<genexpr>g  s     4mdT\ms   c              3   ,   >#    U  H	  oT;   v   M     g 7fr+   r   )r   r   available_maskss     r   r   r   g  s      A*7$o-s   )allr   )update_valuesr   update_fieldss    ` r   r   r   f  s6    	4m4	4 
S A*7A > : r   c                 r    U c  g[         R                  " U 5      n[        UR                  5       5      (       + $ )NT)r   MessageToDictr   values)configconfig_dicts     r   r   r   l  s1    ^&&v.+##%&	&&r   )NNNNNNN)r   
__future__r   r   r   apitools.base.pyr   r   googlecloudsdk.corer   rz   r   InternalErrorr   r   Errorr!   r$   objectr'   rk   r   r   r   r   r   r   r   r   r   <module>r      s    + &  ' % ' * 
! N)A)A NX)A)A XHZ-- HT!1!1 TC5 C5Ln.Z n.b[. [.|v.* v.z ""! $WLt'r   