
    Vh/                     p   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	       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)MERAKImeraki_argument_specmeraki_compare_equality2get_dict_result)InconsistentParametersstrpresentabsent)typedefaultchoicesdict)r   )state
managementnameorganizationIdapir   r   r   c                   ^    e Zd Zd ZddZddZd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zy)Organizationsc                     || _         t        |j                  d      |j                  d      |j                  d      |j                  d            | _        y )Nr   r   r   r   )r   r   r   r   )merakir   get
new_object)selfparamsr   s      m/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/meraki/plugins/action/organizations.py__init__zOrganizations.__init__3   sF    zz,/F#!::&67

5!	
    Nc                    i }| j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   d|d<   | j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   | j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   |S )	NperPageper_pagetotal_pagesstartingAfterstarting_afterendingBeforeending_beforer   r   r    r   idnew_object_paramss       r"   get_all_paramszOrganizations.get_all_params<   s0   ??y)59L9LZ9X9d+/??+>+>y+I ,0##J/ i(+--(??/;t?R?RSc?d?p151D1D_1U 26##$45 o.??~.:doo>Q>QRa>b>n040C0CN0S 15##O4 n-  r$   c                     i }| j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   |S Nr   organization_idr.   r/   s       r"   get_params_by_idzOrganizations.get_params_by_idJ   o    ??/0<@S@STe@f@r26//2E2EFV2W 37##$56 ./  r$   c                    i }| j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   | j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   |S )Nr   r   r.   r    r1   s     r"   create_paramszOrganizations.create_paramsQ   s    ??|,8DOO<O<OP\<]<i.2oo.A.A,.O /2##L1 l+??v&2doo6I6I&6Q6](,(;(;F(C ),##F+ f%  r$   c                     i }| j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   |S r4   r.   r9   s     r"   delete_by_id_paramsz!Organizations.delete_by_id_params[   r7   r$   c                    i }| j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   | j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   | j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   | j                   j                  d      | j                   j                  d      ;| j                   j                  d      xs | j                   j                  d      |d<   |S )Nr   r   r   r   r5   r.   r9   s     r"   update_by_id_paramsz!Organizations.update_by_id_paramsb   s   ??u%1T__5H5H5O5['+':':5'A (+##E* e$??|,8DOO<O<OP\<]<i.2oo.A.A,.O /2##L1 l+??v&2doo6I6I&6Q6](,(;(;F(C ),##F+ f%??/0<@S@STe@f@r26//2E2EFV2W 37##$56 ./  r$   c                    d }	 | j                   j                  dd| j                  |            }t        |t              rd|v r|j                  d      }t        |d|      }||}|S # t        $ r}t        d|       d }Y d }~|S d }~ww xY w)NorganizationsgetOrganizations)r   familyfunctionr!   responser   Error: )	r   exec_merakir2   
isinstancer   r   r   	Exceptionprint)r    r   resultitemses        r"   get_object_by_namez Organizations.get_object_by_namer   s    	KK++&+***5 , E
 %&&!IIj1E$UFD9F~   	)QF	s   A$A* *	B3BBc                    d }	 | j                   j                  dd| j                               }t        |t              rd|v r|j                  d      }t        |d|      }|S # t        $ r}t        d|       d }Y d }~|S d }~ww xY w)Nr@   getOrganizationrB   rE   r   rF   )	r   rG   r6   rH   r   r   r   rI   rJ   )r    r0   rK   rL   rM   s        r"   get_object_by_idzOrganizations.get_object_by_id   s    	KK++&*,,. , E
 %&&!IIj1E$U,<bAF   	)QF	s   AA$ $	B-BBc                    d}d}d }| j                   j                  d      }|xs8 | j                   j                  d      xs | 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      }|xs |j                  d      }|r|r||k7  rt        d      |rJ| j                   j                  t	        |             | j                   j                  t	        |             |r| j                  |      }|d uxr t        |t              }||fS )	NFr0   r5   r   r   z9The 'id' and 'name' params don't refer to the same object)r0   r   )r   r   rQ   rH   r   rN   r   update)r    	id_existsname_existsprev_objo_idr   _id	it_existss           r"   existszOrganizations.exists   sn   	""4( Ht** H"&//"5"56F"G 	""6*,,T2H ,KHd1KIT..t4H"$.M:h3MK,,t$C7&67C[TS[,OQ Q&&ts|4&&t3'?@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   )r   r   c              3   z   K   | ]2  \  }}t        j                  |      j                  |              4 y w)N)r   r   ).0meraki_paramansible_paramcurrent_objrequested_objs      r"   	<genexpr>z0Organizations.requires_update.<locals>.<genexpr>   sD      D4m 00M0=0A0A-0PR R Ds   8;)r   any)r    ra   
obj_paramsrb   s    ` @r"   requires_updatezOrganizations.requires_update   s3    

  D8BD D 	Dr$   c                 `    | j                   j                  dd| j                         d      }|S )Nr@   createOrganizationTrC   rD   r!   op_modifies)r   rG   r:   )r    rK   s     r"   createzOrganizations.create   s7    ((")%%'	 ) 
 r$   c                    | j                   j                  d      }|xs | j                   j                  d      }| j                   j                  d      }d }|sb| j                  |      }d }|r&|j                  d      }|xs |j                  d      }|r%| j                   j                  t	        |             | j
                  j                  dd| j                         d      }|S )	Nr0   r   r   rS   r@   updateOrganizationTri   )r   r   rN   rT   r   r   rG   r>   r    r0   r   rK   prev_obj_nameid_s         r"   rT   zOrganizations.update   s    __  &84??&&'78""6* 33D9MC#''-@]../?@&&t3'?@((")++-	 ) 
 r$   c                    | j                   j                  d      }|xs | j                   j                  d      }| j                   j                  d      }d }|sb| j                  |      }d }|r&|j                  d      }|xs |j                  d      }|r%| j                   j                  t	        |             | j
                  j                  dd| j                               }|S )Nr0   r   r   rS   r@   deleteOrganizationrB   )r   r   rN   rT   r   r   rG   r<   rn   s         r"   deletezOrganizations.delete   s    __  &84??&&'78""6* 33D9MC#''-@]../?@&&t3'?@((")++- ) 

 r$   NN)__name__
__module____qualname__r#   r2   r6   r:   r<   r>   rN   rQ   r[   rf   rk   rT   rs    r$   r"   r   r   2   sD    
!!!!! ("%8D*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   superrz   r#   _supports_async_supports_check_mode_result)r    argskwargs	__class__s      r"   r#   zActionModule.__init__   sC    )#km m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   _taskr   r   r   r   r   r   r   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   )meraki_response)r   diffr}   rz   runr   r   r	   r   r   r   r[   rf   rT   object_updatedobject_already_presentrk   object_createdrs   object_deletedobject_already_absentr   	exit_json)
r    tmp	task_varsr   objr   rE   
obj_existsrW   r   s
            r"   r   zActionModule.run  sb   

\44S)D"'Y

(DJJOOV4

##G,I%(ZZ\"Z&&x0"zz|H))+'H113::<%%'h%(ZZ\"Z::<%%',,.D:;F,,./||r$   rt   )ru   rv   rw   r#   r   r   __classcell__)r   s   @r"   rz   rz      s    ,"$ $r$   rz   N)
__future__r   r   r   r   __metaclass__ansible.plugins.actionr   Nansible_collections.ansible.utils.plugins.module_utils.common.argspec_validater   r|   ImportErroransible.errorsr   <ansible_collections.cisco.meraki.plugins.plugin_utils.merakir	   r
   r   r   @ansible_collections.cisco.meraki.plugins.plugin_utils.exceptionsr   r   rT   r   r   r   r   r   objectr   rz   rx   r$   r"   <module>r      s    C B -& "& , 
 %&   T
E9y(6K
L 	5	U#&  i&"23T:h!12D9   @F @F@: @M  '!&'s   B+ +B54B5