
    Vh              
       6   d dl mZmZmZ eZd dlmZ 	 d dlm	Z	 dZ
d dlmZ d dlmZmZ  e       Zej%                   ed!i d ed	
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
      d ed
             g Zg Zg Zg Z G d de      Zy # e$ r dZ
Y w xY w)"    )absolute_importdivisionprint_function)
ActionBase)AnsibleArgSpecValidatorTF)AnsibleActionFail)ISESDKise_argument_specallowWildCardCertbool)typecertificatePoliciesstr
digestType	hostnameslist	keyLengthkeyTypeportalGroupTagsanDNSsanDirsanIPsanURIsubjectCitysubjectCommonNamesubjectCountry
subjectOrgsubjectOrgUnitsubjectStateusedForc                   6     e Zd Z fdZd Zd Zd fd	Z xZS )ActionModulec                 x    t         st        d      t        t        |   |i | d| _        d| _        d | _        y )NzYansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'F)ANSIBLE_UTILS_IS_INSTALLEDr   superr"   __init___supports_async_supports_check_mode_result)selfargskwargs	__class__s      i/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/ise/plugins/action/csr_generate.pyr&   zActionModule.__init__;   sC    )#k  	lD*D;F;$$)!    c                 *   t        | j                  j                  t        t              dt        t
        t        t        t              | j                  j                        }|j                         \  }}| j                  _        |st        |      y )N)argument_specargspec)required_ifrequired_one_ofmutually_exclusiverequired_together)dataschemaschema_formatschema_conditionalsname)r   _taskr+   dictr1   r3   r4   r5   r6   actionvalidater   )r*   aavvaliderrorss       r.   _check_argspeczActionModule._check_argspecF   sr    %m4# $' /#5"3	! ""
 *-&vtzz#F++ r/   c                    t        d$i d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d	      d
|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d |j                  d!      d"|j                  d#      }|S )%Nallow_wild_card_certr   certificate_policiesr   digest_typer   r   
key_lengthr   key_typer   portal_group_tagr   san_dnsr   san_dirr   san_ipr   san_urir   subject_cityr   subject_common_namer   subject_countryr   subject_orgr   subject_org_unitr   subject_stater   used_forr     )r=   get)r*   params
new_objects      r.   
get_objectzActionModule.get_objectW   sl    
!',?!@
!',A!B
 

<0
 jj-	

 zz+.
 ZZ	*
 $ZZ(89
 JJx(
 JJx(
 ::g&
 JJx(
  M2
 !'

+> ?
 #JJ'78
 

<0
  $ZZ(89!
" !**^4#
$ ZZ	*%

( r/   c                    d| j                   _        t        t        |   ||      | _        d| j
                  d<   | j                          t        | j                   j                        }|j                  dd| j                  | j                   j                              j                  }| j
                  j                  t        |             | j
                  j                  |j                                | j
                  S )NFchanged)rX   certificatesgenerate_csr)familyfunctionrX   )ise_response)r<   diffr%   r"   runr)   rC   r	   r+   execrZ   responseupdater=   	exit_json)r*   tmp	task_varsisere   r-   s        r.   rc   zActionModule.runn   s    

\44S)D"'YDJJOO,88!#??4::??3  
 (	 	 	Dh78CMMO,||r/   )NN)__name__
__module____qualname__r&   rC   rZ   rc   __classcell__)r-   s   @r.   r"   r"   :   s    ,". r/   r"   NrV   )
__future__r   r   r   r   __metaclass__ansible.plugins.actionr   Nansible_collections.ansible.utils.plugins.module_utils.common.argspec_validater   r$   ImportErroransible.errorsr   6ansible_collections.cisco.ise.plugins.plugin_utils.iser	   r
   r1   rf   r=   r3   r4   r5   r6   r"   rV   r/   r.   <module>rv      s   A @ -& "& , "#    F+ e, U# F#	
 E" %  '        e$ E* ' U#  '!" u%#$ % %.   D: DU  '!&'s   D DD