
    Vh3
                         d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ  e       Z G d d      Zy)    )NoReturn)OptionalAnsibleError)	to_native)Display)check_sdk_version_supported)RetryingBotoClientWrapper)
boto3_conn)get_aws_connection_infoget_aws_regionc                       e Zd ZdefdZdefdZdedefdZddedee	   defdZ
dd	efd
Zd Zedee   fd       Zddee   dee   defdZy)AWSPluginBasemessagec                 .    t         j                  |       y N)displaywarningselfr   s     h/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/amazon/aws/plugins/plugin_utils/base.pywarnzAWSPluginBase.warn   s         c                 .    t         j                  |       y r   )r   debugr   s     r   r   zAWSPluginBase.debug   s    gr   returnc                     t        |      r   r   r   s     r   _do_failzAWSPluginBase._do_fail   s    7##r   N	exceptionc                 z    |s| j                  t        |             | j                  | dt        |              y )Nz: )r   r   )r   r   r    s      r   fail_awszAWSPluginBase.fail_aws#   s3    MM)G,-	Ii$8#9:;r   servicec                     t        |       \  }}}t        d||d|}|j                  |       t        | fd|d|}||S t	        ||      S )Nregionendpointclient	conn_typeresource )r   dictupdater   r
   )	r   r#   retry_decoratorextra_paramsr&   endpoint_urlaws_connect_kwargskw_argsconns	            r   r(   zAWSPluginBase.client(   sd    3J43P00Rf|R?QR|$$P(WPP&.td4MdTc4ddr   c                 |    t        |       \  }}}t        d||d|}|j                  |       t        | fd|d|S )Nr%   r+   r)   r,   )r   r-   r.   r   )r   r#   r0   r&   r1   r2   r3   s          r   r+   zAWSPluginBase.resource/   sL    3J43P00Rf|R?QR|$$R*wR'RRr   c                     t        |       S r   r   )r   s    r   r&   zAWSPluginBase.region5   s    d##r   botocore_versionboto3_versionc                 2    t        ||| j                        S )N)r7   r8   r   )r	   r   )r   r7   r8   s      r   require_aws_sdkzAWSPluginBase.require_aws_sdk9   s    *-]QUQZQZ
 	
r   r   )NN)__name__
__module____qualname__strr   r   r   r   r   	Exceptionr"   r(   r+   propertyr&   boolr:   r,   r   r   r   r      s    !C !S $ $ $
< <0C <x <
ec eS $ $ $
 
U]^aUb 
nr 
r   r   N)typingr   r   ansible.errorsr   ansible.module_utils.basicr   ansible.utils.displayr   <ansible_collections.amazon.aws.plugins.module_utils.botocorer	   ;ansible_collections.amazon.aws.plugins.module_utils.retriesr
   <ansible_collections.amazon.aws.plugins.plugin_utils.botocorer   r   r   r   r   r,   r   r   <module>rI      s6      ' 0 ) d a S ` W
)&
 &
r   