
    Vh-                        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 d dl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	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 _w xY w).    )absolute_importdivisionprint_function)
ActionBase)AnsibleArgSpecValidatorTF)AnsibleActionFail)ISESDKise_argument_specise_compare_equalityget_dict_result)InconsistentParametersstatestrpresentabsent)typedefaultchoicesconnectedLinksdict)r   customAttributesdescription
deviceTypegroupIdhardwareRevisionididentityStoreidentityStoreId	ipAddressmacmdmAttributesname
portalUser	productId	profileIdprotocolserialNumbersoftwareRevisionstaticGroupAssignmentboolstaticProfileAssignmentvendorvaluec                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
	Endpointsc                 j   || _         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'      | _        y ))Nconnected_linksr   custom_attributesr   r   device_typer   group_idr   hardware_revisionr   r   identity_storer   identity_store_idr   
ip_addressr   r    mdm_attributesr!   r"   portal_userr#   
product_idr$   
profile_idr%   r&   serial_numberr'   software_revisionr(   static_group_assignmentr)   static_profile_assignmentr+   r,   r-    )iser   get
new_object)selfparamsrB   s      f/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/ise/plugins/action/endpoints.py__init__zEndpoints.__init__I   s    
"JJ'78
$jj);<
 

=1
 

<0	

 ZZ	*
 %jj);<
 zz$
 "::o6
 %jj):;
 zz+.
 

5!
 "::o6
 F#
 

<0
 zz+.
  zz+.!
" ZZ
+#
$ !**^4%
& %jj);<'
( %+JJ/F$G)
* '-jj1J&K+
, ::h'-
. **W%/
    c                 b   d }| j                   j                  dd      }	 |D ]1  }|j                  j                  dg       }t	        |d|      }|s/|c S  	 |S # t
        t        f$ r7}| j                   j                  dj                  |             Y d }~|S d }~wt        $ r d }|cY S w xY w)	N	endpointslist_1_generator)familyfunctionresponser"   '  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)
rB   execrO   rC   r   	TypeErrorAttributeError	fail_jsonformat	Exception)rE   r"   resultgen_items_responsesitems_responseitemses          rG   get_object_by_namezEndpoints.get_object_by_namee   s    "hhmm); , 
	"5 "&//33JC(=!M	"$  >* 		HH.
 &q&/      	FM	s)   0A A A B.),BB.-B.c                 
   	 | j                   j                  dddd|i      j                  }|S # t        t        f$ r7}| j                   j                  dj                  |             Y d }~S d }~wt        $ r d }Y |S w xY w)	NrK   get_1Fr   )rM   rN   handle_func_exceptionrF   rP   rQ   rS   )rB   rU   rO   rV   rW   rX   rY   rZ   )rE   r   r[   r_   s       rG   get_object_by_idzEndpoints.get_object_by_id   s    	XX]]" &+bz	 # 
 h $  >* 		HH.
 &q&/      	F	s   +/ B,A00BBc                    d}d}d }| j                   j                  d      }| j                   j                  d      }|r'| j                  |      }|d uxr t        |t              }|s)|r'| j                  |      }|d uxr t        |t              }|r8|j                  d      }|r|r||k7  rt        d      |r| j                  |      }|d uxr t        |t              }||fS )NFr   r"   z9The 'id' and 'name' params don't refer to the same object)rD   rC   rd   
isinstancer   r`   r   )rE   	id_existsname_existsprev_objo_idr"   _id	it_existss           rG   existszEndpoints.exists   s    	""4(""6*,,T2H ,KHd1KIT..t4H"$.M:h3MK,,t$C[TS[,O  005D(GZ$-G	8$$rI   c                 P    | j                   g d}t        fd|D              S )N))r   r1   )r   r2   )r   r   )r   r3   )r   r4   )r   r5   )r   r   )r   r6   )r   r7   )r   r8   )r    r    )r!   r9   )r"   r"   )r#   r:   )r$   r;   )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   rC   ).0	ise_paramansible_paramcurrent_objrequested_objs      rG   	<genexpr>z,Endpoints.requires_update.<locals>.<genexpr>   sB      
 +M %	*M,=,=m,L 
s   8;)rD   any)rE   rs   
obj_paramsrt   s    ` @rG   requires_updatezEndpoints.requires_update   s1    

6  
 /9	
 
 	
rI   c                 j    | j                   j                  dd| j                        j                  }|S )NrK   create_end_pointrM   rN   rF   )rB   rU   rD   rO   )rE   r[   s     rG   createzEndpoints.create   s7    '??  
 (	 	
 rI   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   rK   update_endpointr{   rD   rC   r`   updater   rB   rU   rO   rE   r   r"   r[   id_s        rG   r   zEndpoints.update       __  &""6*))$/33D9COO""43<0):4??  

( 	 rI   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~   rK   delete_endpointr{   r   r   s        rG   deletezEndpoints.delete   r   rI   N)__name__
__module____qualname__rH   r`   rd   rm   rx   r|   r   r   rA   rI   rG   r/   r/   H   s+    
86,%.#
J

rI   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   superr   rH   _supports_async_supports_check_mode_result)rE   argskwargs	__class__s      rG   rH   zActionModule.__init__   sC    )#k  	lD*D;F;$$)!rI   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   )rE   aavvaliderrorss       rG   _check_argspeczActionModule._check_argspec   sr    %m4# $' /#5"3	! ""
 *-&vtzz#F++ rI   c                 P   d| j                   _        t        t        |   ||      | _        d| j
                  d<   | j                          t        | j                   j                        }t        | j                   j                  |      }| j                   j                  j                  d      }d }|dk(  r|j                         \  }}|r|j                  |      r[|j                         }	| j
                  j                  t        |	             |j                         \  }}
|
}|j                          n|}|j!                          n|j#                         }|j                         \  }}|}|j%                          nM|dk(  rH|j                         \  }}|r#|j'                          |}|j)                          n|j+                          | j
                  j                  t        |             | j
                  j                  |j-                                | j
                  S )	NFchanged)rF   r   r   )ise_update_responser   )ise_response)r   diffr   r   runr   r   r	   r   r/   rC   rm   rx   r   r   object_updatedobject_already_presentr|   object_createdr   object_deletedobject_already_absent	exit_json)rE   tmp	task_varsrB   objr   rO   
obj_existsri   r   updated_objise_create_responsecreated_objr   s                rG   r   zActionModule.run  s   

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

-

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

-Z*H&&('H..0&)jjl#,/JJL)[&""$h%(ZZ\"Z

#""$))+Dh78CMMO,||rI   )NN)r   r   r   rH   r   r   __classcell__)r   s   @rG   r   r      s    ,"* *rI   r   NrA   )
__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   =ansible_collections.cisco.ise.plugins.plugin_utils.exceptionsr   r   r   r   r   r   r   r   objectr/   r   rA   rI   rG   <module>r      s:   A @ -& "& , 
 "#    y9h:OP( 6* e$	
 U# %  5) U & %( E" e ' u U#  E"!" E"#$ 5!%& u%'( 5))* #/+, !%& 1-. /0 1< i&'*D1h)40   h hVG: GG  '!&'s   E1 1E<;E<