+
     Ii%  c                   s    ^ RI t ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RI	H
t
 ^RIHtHt ] P                  ! ]4      t ! R R	4      t ! R
 R]4      t ! R R4      t ! R R4      tR# )i    N)
xform_name)ActionDocstring)inject_attribute)Action)create_request_parameters)
RawHandlerResourceHandlerc                   s4   a  ] tR t^t o RtRR ltR tRtV tR# )ServiceActionau  
A class representing a callable action on a resource, for example
``sqs.get_queue_by_name(...)`` or ``s3.Bucket('foo').delete()``.
The action may construct parameters from existing resource identifiers
and may return either a raw response or a new resource instance.

:type action_model: :py:class`~boto3.resources.model.Action`
:param action_model: The action model.

:type factory: ResourceFactory
:param factory: The factory that created the resource class to which
                this action is attached.

:type service_context: :py:class:`~boto3.utils.ServiceContext`
:param service_context: Context about the AWS service
Nc                s    Wn         VP                  pV'       d6   \        VP                  VVVVP                  P
                  R 7      V n        R# \        VP                  4      V n        R# ))Zsearch_pathfactoryZresource_modelservice_contextoperation_nameN)_action_modelresourcer   Zpathrequest	operation_response_handlerr   )selfaction_modelr   r	   Zresource_response_models   &&&& ;/usr/lib/python3.14/site-packages/boto3/resources/action.py__init__ZServiceAction.__init__.   s\    ) #/"7"7"%43886 /+33==&D" &00A0A%BD"    c                s   \        V P                  P                  P                  4      p\	        WP                  P                  4      pVP                  V4       \        P                  RVP                  P                  VV4       \        VP                  P                  V4      ! V/ VB p\        P                  RV4       V P                  WV4      # )a  
Perform the action's request operation after building operation
parameters and build any defined resources from the response.

:type parent: :py:class:`~boto3.resources.base.ServiceResource`
:param parent: The resource instance to which this action is attached.
:rtype: dict or ServiceResource or list(ServiceResource)
:return: The response, either as a raw dict or resource instance(s).
Calling %s:%s with %rResponse: %r)r    r   r   r   r   updateloggerdebugmetaservice_namegetattrclientr   )r   parentargskwargsr
   paramsresponses   &&*,   r   __call__ZServiceAction.__call__?   s     $D$6$6$>$>$H$HI
 +63E3E3M3MNf#KK$$		
 6;;--~>OO^X.%%fh??r   )r   r   )NN	__name__
__module____qualname____firstlineno____doc__r   r#   __static_attributes____classdictcell__Z__classdict__   @r   r   r      s     "C"@ @r   r   c                   s*   a  ] tR t^_t o RtR tRtV tR# )BatchActiona  
An action which operates on a batch of items in a collection, typically
a single page of results from the collection's underlying service
operation call. For example, this allows you to delete up to 999
S3 objects in a single operation rather than calling ``.delete()`` on
each one individually.

:type action_model: :py:class`~boto3.resources.model.Action`
:param action_model: The action model.

:type factory: ResourceFactory
:param factory: The factory that created the resource class to which
                this action is attached.

:type service_context: :py:class:`~boto3.utils.ServiceContext`
:param service_context: Context about the AWS service
c           	     sb   RpRp. p\        V P                  P                  P                  4      pVP	                  4        F  p/ p	\        V4       F\  w  rVf   VP                  P                  pVf   VP                  P                  p\        VV P                  P                  V	V
R7       K^  	  V	'       g    V# V	P                  V4       \        P                  RWGV	4       \        WW4      ! V/ V	B p\        P                  RV4       VP                  V P                  WV4      4       K  	  V# )aI  
Perform the batch action's operation on every page of results
from the collection.

:type parent:
    :py:class:`~boto3.resources.collection.ResourceCollection`
:param parent: The collection iterator to which this action
               is attached.
:rtype: list(dict)
:return: A list of low-level response dicts from each call.
N)r!   indexr   r   )r    r   r   r   ZpagesZ	enumerater   r   r   r   r   r   r   r   Zappendr   )r   r   r   r    r   r   Z	responsesr
   Zpager!   r/   r   r"   s   &&*,         r   r#   ZBatchAction.__call__r   s    	#D$6$6$>$>$H$HI
 LLNDF#,T?  '#+==#=#=L>%]]11F)&&..!	 $3    MM&!LL'v v6GGHLL2T33FHMNA #D r    N)r%   r&   r'   r(   r)   r#   r*   r+   r,   r-   r   r.   r.   _   s     $6 6r   r.   c                   s0   a  ] tR t^t o RtR tR tRtV tR# )WaiterActiona  
A class representing a callable waiter action on a resource, for example
``s3.Bucket('foo').wait_until_bucket_exists()``.
The waiter action may construct parameters from existing resource
identifiers.

:type waiter_model: :py:class`~boto3.resources.model.Waiter`
:param waiter_model: The action waiter.
:type waiter_resource_name: string
:param waiter_resource_name: The name of the waiter action for the
                             resource. It usually begins with a
                             ``wait_until_``
c                s    Wn         W n        R # )N_waiter_model_waiter_resource_name)r   Zwaiter_modelZwaiter_resource_names   &&&r   r   ZWaiterAction.__init__   s    )%9"r   c                s   \        V P                  P                  4      p\        WP                  4      pVP	                  V4       \
        P                  RVP                  P                  V P                  V4       VP                  P                  pVP                  V4      pVP                  ! R/ VB p\
        P                  RV4       R# )z
Perform the wait operation after building operation
parameters.

:type parent: :py:class:`~boto3.resources.base.ServiceResource`
:param parent: The resource instance to which this action is attached.
r   r   Nr0   )r    r3   Zwaiter_namer   r   r   r   r   r   r4   r   Z
get_waiterZwait)	r   r   r   r    Zclient_waiter_namer!   r   Zwaiterr"   s	   &&*,     r   r#   ZWaiterAction.__call__   s     ((:(:(F(FG
 +63E3EFf#KK$$&&		
 ##""#56;;((^X.r   r2   Nr$   r,   r-   r   r1   r1      s     :/ /r   r1   c                   s0   a  ] tR t^t o RtR tR tRtV tR# )CustomModeledActionz3A custom, modeled action to inject into a resource.c                s6    Wn         W n        W0n        W@n        R# )a  
:type action_name: str
:param action_name: The name of the action to inject, e.g.
    'delete_tags'

:type action_model: dict
:param action_model: A JSON definition of the action, as if it were
    part of the resource model.

:type function: function
:param function: The function to perform when the action is called.
    The first argument should be 'self', which will be the resource
    the function is to be called on.

:type event_emitter: :py:class:`botocore.hooks.BaseEventHooks`
:param event_emitter: The session event emitter.
N)namemodelfunctionemitter)r   Zaction_namer   r8   event_emitters   &&&&&r   r   ZCustomModeledAction.__init__   s    $  	!
 $r   c                sT   VP                  R 4      R,          p\        V P                  V P                  / 4      pV P                  V P                  n        \        VV P                  VVP                  RR7      V P                  n	        \        WP                  V P                  4       R# )Z.F)resource_namer:   r   service_modelZinclude_signatureNi)Zrsplitr   r6   r7   r8   r%   r   r9   r<   r)   r   )r   Zclass_attributesr	   Z
event_namer    r;   Zactions   &&&&,  r   injectZCustomModeledAction.inject   s|    "))#.r2		4::r2!% /',,)77#!
 	)99dmmDr   )r9   r8   r7   r6   N)	r%   r&   r'   r(   r)   r   r=   r*   r+   r,   r-   r   r5   r5      s     =%.E Er   r5   )ZloggingZbotocorer    Zboto3.docs.docstringr   Zboto3.utilsr   r7   r   r!   r   r"   r   r   Z	getLoggerr%   r   r   r.   r1   r5   r0   r   r   <module>r>      sa      0 (  - 1			8	$@@ @@FI- IX./ ./b%E %Er   