
    Vhi#                        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 edd	d	g
       ed       ed       ed       ed       ed       ed       ed       ed      	             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 w xY w)    )absolute_importdivisionprint_function)
ActionBase)AnsibleArgSpecValidatorTF)AnsibleActionFail)ISESDKise_argument_specise_compare_equalityget_dict_resultstrpresent)typedefaultchoices)r   bool)	stateidnamedescriptionexternalIdentityStoreNamecertificateAttributeNameallowedAsUserName	matchModeusernameFromr   r   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	CertificateProfilec                 2   || _         t        |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      	      | _        y )
Nr   r   r   r   r   r   r   r   )r   r   r   external_identity_store_namecertificate_attribute_nameallowed_as_user_name
match_modeusername_from)isedictget
new_object)selfparamsr$   s      p/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/ise/plugins/action/certificate_profile.py__init__zCertificateProfile.__init__6   sx    zz$F#

=1)/4O)P'-zz2L'M!',?!@zz+. **^4	
    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certificate_profileget_certificate_profile_by_namer   Ffamilyfunctionr)   handle_func_exceptionr   '  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)	r$   execresponser   	TypeErrorAttributeError	fail_jsonformat	Exception)r(   r   resultes       r*   get_object_by_namez%CertificateProfile.get_object_by_nameC   s    	XX]],:~&+	 # 
 h+-F %VVT:F  >* 		HH.
 &q&/      	F	s   ;? B,B  BBc                    	 | j                   j                  ddd|id      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)
Nr.   get_certificate_profile_by_idr   Fr0   r   r4   r5   r7   )r$   r9   r:   r;   r<   r=   r>   r?   )r(   r   r@   rA   s       r*   get_object_by_idz#CertificateProfile.get_object_by_idZ   s    	XX]],8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   )r'   r&   rE   
isinstancer%   rB   )r(   prev_objr@   r   r   s        r*   existszCertificateProfile.existsp   s    __  &""6*,,R0HT)Hj4.HF !! ..t4HT)Hj4.HF!!r,   c                 P    | j                   g d}t        fd|D              S )N))r   r   )r   r   )r   r   )r   r   )r   r    )r   r!   )r   r"   )r   r#   c              3   z   K   | ]2  \  }}t        j                  |      j                  |              4 y w)N)r   r&   ).0	ise_paramansible_paramcurrent_objrequested_objs      r*   	<genexpr>z5CertificateProfile.requires_update.<locals>.<genexpr>   sB      
 +M %	*M,=,=m,L 
s   8;)r'   any)r(   rO   
obj_paramsrP   s    ` @r*   requires_updatez"CertificateProfile.requires_update}   s1    	

  
 /9	
 
 	
r,   c                 j    | j                   j                  dd| j                        j                  }|S )Nr.   create_certificate_profiler1   r2   r)   )r$   r9   r'   r:   )r(   r@   s     r*   createzCertificateProfile.create   s7    (1??  
 (	 	
 r,   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   r.    update_certificate_profile_by_idrW   )r'   r&   rB   updater%   r$   r9   r:   )r(   r   r   r@   id_s        r*   r[   zCertificateProfile.update   s    __  &""6*))$/33D9COO""43<0(7??  
 (	 	
 r,   N)
__name__
__module____qualname__r+   rB   rE   rI   rT   rX   r[    r,   r*   r   r   5   s%    
.,"
,r,   r   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   superrb   r+   _supports_async_supports_check_mode_result)r(   argskwargs	__class__s      r*   r+   zActionModule.__init__   sC    )#k  	lD*D;F;$$)!r,   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   _taskri   r%   rm   ro   rp   rq   rr   actionvalidater   )r(   aavvaliderrorss       r*   _check_argspeczActionModule._check_argspec   sr    %m4# $' /#5"3	! ""
 *-&vtzz#F++ r,   c                    d| j                   _        t        t        |   ||      | _        d| j
                  d<   | j                          t        | j                   j                        }t        | j                   j                  |      }| j                   j                  j                  d      }d }|dk(  rg|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#                          nY|j%                          nH|}|j#                          n5|j'                         }|j                         \  }}|}|j)                          | j
                  j                  t        |             | j
                  j                  |j+                                | j
                  S )NFchanged)r)   r   r   )ise_update_responseUpdatedFieldsListupdatedFieldr   newValue oldValuer   )ise_response)rw   diffre   rb   runrh   r}   r	   ri   r   r&   rI   rT   r[   r%   lenpopobject_already_presentobject_updatedrX   object_created	exit_json)r(   tmp	task_varsr$   objr   r:   
obj_existsrH   r   updated_objhas_changedise_create_responsecreated_objrk   s                 r*   r   zActionModule.run   s   

\44S)D"'YDJJOO, #6

##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)[&""$Dh78CMMO,||r,   )NN)r]   r^   r_   r+   r}   r   __classcell__)rk   s   @r*   rb   rb      s    ,"- -r,   rb   N)
__future__r   r   r   r   __metaclass__ansible.plugins.actionr   Nansible_collections.ansible.utils.plugins.module_utils.common.argspec_validater   rd   ImportErroransible.errorsr   6ansible_collections.cisco.ise.plugins.plugin_utils.iser	   r
   r   r   rm   r[   r%   ro   rp   rq   rr   objectr   rb   r`   r,   r*   <module>r      s   A @ -& "& ,  "#   y9+FUue$"&E"2!%5!1F+E"u%
 i$.   r rjJ: Ju  '!&'s   B= =CC