
    Vh>                     F    d dl mZmZmZ eZd dlmZ d Z G d d      Z	dZ
y)    )absolute_importdivisionprint_function)AnsibleModulec                      | g S t        |       S N)list)values    q/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/crypto/plugins/module_utils/argspec.py_ensure_listr      s    }	;    c                   J    e Zd Z	 	 	 	 	 	 ddZd Z	 	 	 	 	 d	dZd Zd Zd Zy)
ArgumentSpecNc                     |xs i | _         t        |      | _        t        |      | _        t        |      | _        t        |      | _        |xs i | _        y r   )argument_specr   mutually_exclusiverequired_togetherrequired_one_ofrequired_ifrequired_by)selfr   r   r   r   r   r   s          r   __init__zArgumentSpec.__init__   sT     +0b"./A"B!-.?!@+O<'4&,"r   c                 <    | j                   j                  |       | S r   )r   updater   kwargss     r   update_argspeczArgumentSpec.update_argspec'   s    !!&)r   c                    |r| j                   j                  |       |r| j                  j                  |       |r| j                  j                  |       |r| j                  j                  |       |rY|j                         D ]F  \  }}|| j                  v r$t        | j                  |         t        |      z   }|| j                  |<   H | S r   )r   extendr   r   r   itemsr   r	   )r   r   r   r   r   r   kvs           r   r   zArgumentSpec.update+   s     ##**+=>""))*;<  ''8##K0#))+ (1(((T--a01DG;A&'  #( r   c                      | j                   di |j                   | j                  |j                  |j                  |j
                  |j                  |j                         | S )N)r   r   r   r   r    )r   r   r   r   r   r   r   r   )r   others     r   mergezArgumentSpec.mergeB   s`    2e112$77#55!11)))) 	 	
 r   c           
           ||| j                   | j                  | j                  | j                  | j                  | j
                  d|S )Nr   r   r   r   r   r   r(   )r   clazzargsr   s       r   create_ansible_module_helperz)ArgumentSpec.create_ansible_module_helperM   sR    ,,#66"44 00((((	
 	
 		
r   c                 2     | j                   t        dfi |S )Nr$   )r+   r   r   s     r   create_ansible_modulez"ArgumentSpec.create_ansible_moduleY   s    0t00MfMMr   )NNNNNN)NNNNN)	__name__
__module____qualname__r   r   r   r&   r+   r-   r$   r   r   r   r      sF     -   .	

Nr   r   )r   N)
__future__r   r   r   type__metaclass__ansible.module_utils.basicr   r   r   __all__r$   r   r   <module>r6      s5    A @  5DN DNN r   