
    VhK               
       `   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 ed	d
d
dg       ed	       e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)DNACSDKdnac_argument_specdnac_compare_equalityget_dict_result)InconsistentParametersstrpresentabsent)typedefaultchoices)r   )statenameparentIdidr   r   r   c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)AreasV1c                     || _         t        |j                  d      |j                  d      |j                  d            | _        y )Nr   r   r   )r   r   r   )dnacdictget
new_object)selfparamsr   s      f/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/dnac/plugins/action/areas_v1.py__init__zAreasV1.__init__1   s9    	F#ZZ
+zz$
    c                     i }| j                   j                  d      |d<   | j                   j                  d      |d<   |S )Nr   r   r   r   r   new_object_paramss     r!   create_paramszAreasV1.create_params9   sB    $(OO$7$7$?&!(,(;(;J(G*%  r#   c                 F    i }| j                   j                  d      |d<   |S )Nr   r%   r&   s     r!   delete_by_id_paramszAreasV1.delete_by_id_params?   s(    "&//"5"5d";$  r#   c                     i }| j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   |S )Nr   r   r   r%   r&   s     r!   update_by_id_paramszAreasV1.update_by_id_paramsD   s\    $(OO$7$7$?&!(,(;(;J(G*%"&//"5"5d";$  r#   c                 
    d }|S N )r   r   results      r!   get_object_by_namezAreasV1.get_object_by_nameK   s     r#   c                     d }	 | j                   j                  ddd|i      }t        |t              rd|v r|j	                  d      }t        |d|      }|S # t        $ r d }Y |S w xY w)Nsite_designgets_an_area_v1r   familyfunctionr    response)r   exec
isinstancer   r   r   	Exception)r   r   r0   itemss       r!   get_object_by_idzAreasV1.get_object_by_idQ   s    	IINN$*bz # E
 %&&!IIj1E$UD"5F   	F	s   AA A'&A'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              }|r_|j                  d      }|r|r||k7  rt        d      |r%| j                   j                  t	        |             |r| j                  |      }|d uxr t        |t              }||fS )NFr   r   z9The 'id' and 'name' params don't refer to the same objectr   )r   r   r=   r:   r   r1   r   update)r   	id_existsname_existsprev_objo_idr   _id	it_existss           r!   existszAreasV1.existsa   s   	""4(""6*,,T2H ,KHd1KIT..t4H"$.M:h3MK,,t$C[TS[,-hii&&ts|4005D(GZ$-G	8$$r#   c                 P    | j                   g d}t        fd|D              S )N))r   r   )r   r   )r   r   c              3   z   K   | ]2  \  }}t        j                  |      j                  |              4 y wr.   )r   r   ).0
dnac_paramansible_paramcurrent_objrequested_objs      r!   	<genexpr>z*AreasV1.requires_update.<locals>.<genexpr>   sD      B2
M -[__Z-H-:->->}-MO O Bs   8;)r   any)r   rM   
obj_paramsrN   s    ` @r!   requires_updatezAreasV1.requires_updatex   s3    

  B6@B B 	Br#   c                 `    | j                   j                  dd| j                         d      }|S )Nr3   creates_an_area_v1Tr6   r7   r    op_modifies)r   r9   r(   )r   r0   s     r!   createzAreasV1.create   s5     )%%'	   
 r#   c                 n   | j                   j                  d      }| j                   j                  d      }d }|sM| j                  |      }d }|r|j                  d      }|r%| j                   j                  t	        |             | j
                  j                  dd| j                         d      }|S )Nr   r   r?   r3   updates_an_area_v1TrU   )r   r   r1   r@   r   r   r9   r,   r   r   r   r0   prev_obj_nameid_s         r!   r@   zAreasV1.update   s    __  &""6* 33D9MC#''-&&ts|4 )++-	   
 r#   c                 l   | j                   j                  d      }| j                   j                  d      }d }|sM| j                  |      }d }|r|j                  d      }|r%| j                   j                  t	        |             | j
                  j                  dd| j                               }|S )Nr   r   r?   r3   deletes_an_area_v1r5   )r   r   r1   r@   r   r   r9   r*   rZ   s         r!   deletezAreasV1.delete   s    __  &""6* 33D9MC#''-&&ts|4 )++-   

 r#   N)__name__
__module____qualname__r"   r(   r*   r,   r1   r=   rG   rR   rW   r@   r_   r/   r#   r!   r   r   0   s:    
!!
! %.B&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   superrd   r"   _supports_async_supports_check_mode_result)r   argskwargs	__class__s      r!   r"   zActionModule.__init__   sC    )#$  A  A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   _taskrk   r   ro   rq   rr   rs   rt   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(  r{|j                         \  }}|rE|j                  |      r!|j                         }|j                          n|}|j                          nl|j!                         }|j#                          nK|dk(  rF|j                         \  }}|r!|j%                         }|j'                          n|j)                          | j
                  j                  t+        |             | j
                  j                  |j-                                | j
                  S )NFchangedr   r   r   )dnac_response)ry   diffrg   rd   runrj   r   r	   rk   r   r   rG   rR   r@   object_updatedobject_already_presentrW   object_createdr_   object_deletedobject_already_absentr   	exit_json)
r   tmp	task_varsr   objr   r8   
obj_existsrC   rm   s
            r!   r   zActionModule.run   s`   

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

##G,I%(ZZ\"Z&&x0"zz|H'')'H//1::<##%h%(ZZ\"Z::<##%**,Dx89DNN,-||r#   )NN)r`   ra   rb   r"   r   r   __classcell__)rm   s   @r!   rd   rd      s    ,"$ $r#   rd   N)
__future__r   r   r   r   __metaclass__ansible.plugins.actionr   Nansible_collections.ansible.utils.plugins.module_utils.common.argspec_validater   rf   ImportErroransible.errorsr   8ansible_collections.cisco.dnac.plugins.plugin_utils.dnacr	   r
   r   r   >ansible_collections.cisco.dnac.plugins.plugin_utils.exceptionsr   ro   r@   r   rq   rr   rs   rt   objectr   rd   r/   r#   r!   <module>r      s    C B -& "& , 
 #$   T
E9y(6K
L	5	u	  i$.hv-   Bf BJ?: ?O  '!&'s   B# #B-,B-