
    VhC/                        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mZmZ  e       Zej)                   ed.i d ed	d
d
dg      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      d" ed      d# ed      d$ ed	      d% ed      d& ed      d' ed      d( ed	             dd
d(dgdfddd(dgdfgZg Zg Zg Z G d) d*e      Z G d+ d,e      Zy-# e$ r dZ
Y mw xY w)/    )absolute_importdivisionprint_function)
ActionBase)AnsibleArgSpecValidatorTF)AnsibleActionFail)ISESDKise_argument_specise_compare_equalityget_dict_resultstatestrpresentabsent)typedefaultchoicesname)r   descriptioneapTlsdictpeapeapFasteapTtlsteapprocessHostLookupboolallowPapAscii	allowChapallowMsChapV1allowMsChapV2allowEapMd5	allowLeapallowEapTlsallowEapTtlsallowEapFast	allowPeap	allowTeapallowPreferredEapProtocolpreferredEapProtocol
eapTlsLBitallowWeakCiphersForEaprequireMessageAuthidc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
AllowedProtocolsc                    || _         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       d!|j                  d"      d#|j                  d$      d%|j                  d&      d'|j                  d(      d)|j                  d*      d+|j                  d,      d-|j                  d-      | _        y )/Nr   r   eap_tlsr   r   eap_fastr   eap_ttlsr   r   process_host_lookupr   allow_pap_asciir   
allow_chapr   allow_ms_chap_v1r    allow_ms_chap_v2r!   allow_eap_md5r"   
allow_leapr#   allow_eap_tlsr$   allow_eap_ttlsr%   allow_eap_fastr&   
allow_peapr'   
allow_teapr(   allow_preferred_eap_protocolr)   preferred_eap_protocolr*   eap_tls_l_bitr+   allow_weak_ciphers_for_eapr,   require_message_authr-   r.    )iser   get
new_object)selfparamsrG   s      n/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/ise/plugins/action/allowed_protocols.py__init__zAllowedProtocols.__init__H   s    
F#


=1
 JJx(
 F#	

 ZZ	*
 ZZ	*
 F#
 !'

+> ?
 #JJ7
 zz+.
 $ZZ8
 $ZZ8
 !**]3
 zz+.
 !**]3
  "::n5!
" "::n5#
$ zz+.%
& zz+.'
( *04O)P)
* $*::.D#E+
, !**\2-
. (.zz2J'K/
0 "(,@!A1
2 zz$3
    c                 *   	 | j                   j                  ddd|id      j                  d   }t        |d|      }|S # t        t
        f$ r7}| j                   j                  dj                  |      	       Y d }~S d }~wt        $ r d }Y |S w xY w)
Nallowed_protocolsget_allowed_protocol_by_namer   F)familyfunctionrK   handle_func_exceptionr0   '  An error occured when executing operation. Check the configuration of your API Settings and API Gateway settings on your ISE server. This collection assumes that the API Gateway, the ERS APIs and OpenAPIs are enabled. You may want to enable the (ise_debug: True) argument. The error was: {error}errormsg)	rG   execresponser   	TypeErrorAttributeError	fail_jsonformat	Exception)rJ   r   resultes       rL   get_object_by_namez#AllowedProtocols.get_object_by_namef   s    	XX]]*7~&+	 # 
 h)+F %VVT:F  >* 		HH.
 &q&/      	F	s   ;? B,B  BBc                    	 | j                   j                  dddd|i      j                  d   }|S # t        t        f$ r7}| j                   j                  dj                  |      	       Y d }~S d }~wt        $ r d }Y |S w xY w)
NrP   get_allowed_protocol_by_idFr.   )rR   rS   rT   rK   r0   rU   rV   rX   )rG   rZ   r[   r\   r]   r^   r_   r`   )rJ   r.   ra   rb   s       rL   get_object_by_idz!AllowedProtocols.get_object_by_id}   s    	XX]]*5&+bz	 # 
 h)+F$  >* 		HH.
 &q&/      	F	s   .2 B,A33BBc                 *   d}d }| j                   j                  d      }| j                   j                  d      }|r+| j                  |      }|d uxr t        |t              }||fS |r'| j                  |      }|d uxr t        |t              }||fS )NFr.   r   )rI   rH   rf   
isinstancer   rc   )rJ   ra   prev_objr.   r   s        rL   existszAllowedProtocols.exists   s    __  &""6*,,R0HT)Hj4.HF !! ..t4HT)Hj4.HF!!rN   c                 P    | j                   g d}t        fd|D              S )N))r   r   )r   r   )r   r2   )r   r   )r   r3   )r   r4   )r   r   )r   r5   )r   r6   )r   r7   )r    r8   )r!   r9   )r"   r:   )r#   r;   )r$   r<   )r%   r=   )r&   r>   )r'   r?   )r(   r@   )r)   rA   )r*   rB   )r+   rC   )r,   rD   )r-   rE   )r.   r.   c              3   z   K   | ]2  \  }}t        j                  |      j                  |              4 y w)N)r   rH   ).0	ise_paramansible_paramcurrent_objrequested_objs      rL   	<genexpr>z3AllowedProtocols.requires_update.<locals>.<genexpr>   sB      
 +M %	*M,=,=m,L 
s   8;)rI   any)rJ   rp   
obj_paramsrq   s    ` @rL   requires_updatez AllowedProtocols.requires_update   s1    

:  
 /9	
 
 	
rN   c                 j    | j                   j                  dd| j                        j                  }|S )NrP   create_allowed_protocolrR   rS   rK   )rG   rZ   rI   r[   )rJ   ra   s     rL   createzAllowedProtocols.create   s7    &.??  
 (	 	
 rN   c                 h   | j                   j                  d      }| j                   j                  d      }d }|sE| j                  |      j                  d      }| j                   j                  t	        |             | j
                  j                  dd| j                         j                  }|S )Nr.   r   r.   rP   update_allowed_protocol_by_idrx   rI   rH   rc   updater   rG   rZ   r[   rJ   r.   r   ra   id_s        rL   r~   zAllowedProtocols.update       __  &""6*))$/33D9COO""43<0&4??  
 (	 	
 rN   c                 h   | j                   j                  d      }| j                   j                  d      }d }|sE| j                  |      j                  d      }| j                   j                  t	        |             | j
                  j                  dd| j                         j                  }|S )Nr.   r   r{   rP   delete_allowed_protocol_by_idrx   r}   r   s        rL   deletezAllowedProtocols.delete   r   rN   N)__name__
__module____qualname__rM   rc   rf   rj   ru   ry   r~   r   rF   rN   rL   r0   r0   G   s+    
<.,"%
NrN   r0   c                   0     e Zd Z f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   rM   _supports_async_supports_check_mode_result)rJ   argskwargs	__class__s      rL   rM   zActionModule.__init__   sC    )#k  	lD*D;F;$$)!rN   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_conditionalsr   )r   _taskr   r   r   r   r   r   r   actionvalidater   )rJ   aavvaliderrorss       rL   _check_argspeczActionModule._check_argspec   sr    %m4# $' /#5"3	! ""
 *-&vtzz#F++ rN   c                    d| j                   _        t        t        |   ||      | _        d| j
                  d<   | j                          t        | j                   j                        }t        | j                   j                  |      }| j                   j                  j                  d      }d }|dk(  rh|j                         \  }}|r|j                  |      r|j                         }	| j
                  j                  t        |	             |j                         \  }}
|
}d }|	j                  d      j                  d      }t        |      d	k(  s@|d	   j                  d
      dk(  rV|d	   j                  d
      |d	   j                  d      k(  r-| j
                  j!                  dd        |j#                          n|j%                          n|}|j#                          n|j'                         }|j                         \  }}|}|j)                          nM|dk(  rH|j                         \  }}|r#|j+                          |}|j-                          n|j/                          | j
                  j                  t        |             | j
                  j                  |j1                                | j
                  S )NFchanged)rK   r   r   )ise_update_responseUpdatedFieldsListupdatedFieldr   newValue oldValuer   r   )ise_response)r   diffr   r   runr   r   r	   r   r0   rH   rj   ru   r~   r   lenpopobject_already_presentobject_updatedry   object_createdr   object_deletedobject_already_absent	exit_json)rJ   tmp	task_varsrG   objr   r[   
obj_existsri   r   updated_objhas_changedise_create_responsecreated_objr   s                 rL   r   zActionModule.run	  s<   

\44S)D"'YDJJOO,tzz4

##G,I%(ZZ\"Z&&x0*-**,'LL''AT(UV03

-Z*H"&K"5"9"9:M"N"R"R&#K K(A-&q>--j9R?'N..z:&q>--j9: (()>E224**,'H..0&)jjl#,/JJL)[&""$h%(ZZ\"Z

#""$))+Dh78CMMO,||rN   )NN)r   r   r   rM   r   r   __classcell__)r   s   @rL   r   r      s    ,"7 7rN   r   NrF   )
__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
   r   r   r   r~   r   r   r   r   r   objectr0   r   rF   rN   rL   <module>r      sR   A @ -& "& ,  "#    y9h:OPu e$  	
 v &! &! v F+ ' F# ' ' f% F#  f%!" v&#$ v&%& F#'( F#)* #'F"3+, "u--. V$/0  $012  V,34 U5@ i$.hv-   bv bJT: Ty  '!&'s   E? ?F
	F
