
    VhQ                         d dl mZmZmZ eZd dlZd dlZd dlm	Z	 d dl
mZ d Z G d de      Z G d d	e      Z G d
 de      Zy)    )absolute_importdivisionprint_functionN)env_fallback)	fetch_urlc            	          t        t        dt        g dfddg      t        t        dgfddg      t        d	d
dg      t        dd            S )NT)ONLINE_TOKENONLINE_API_KEYONLINE_OAUTH_TOKENONLINE_API_TOKENoauth_token)requiredfallbackno_logaliasesONLINE_API_URLzhttps://api.online.netbase_url)r   defaultr   int   timeout)typer   r   bool)r   r   )	api_tokenapi_urlapi_timeoutvalidate_certs)dictr        q/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/general/plugins/module_utils/online.pyonline_argument_specr"      s`      ?K  0L"]O=|.>-?@JbmwlxyeR)EDv6 r    c                       e Zd Zd Zy)OnlineExceptionc                     || _         y N)message)selfr'   s     r!   __init__zOnlineException.__init__   s	    r    N)__name__
__module____qualname__r)   r   r    r!   r$   r$      s    r    r$   c                   B    e Zd Zd Zed        Zed        Zed        Zy)Responsec                 N    d | _         |r|j                         | _         || _        y r&   )bodyreadinfo)r(   respr2   s      r!   r)   zResponse.__init__"   s     			DI	r    c                     | j                   s1d| j                  v r"t        j                  | j                  d         S y 	 t        j                  | j                         S # t        $ r Y y w xY w)Nr0   )r0   r2   jsonloads
ValueErrorr(   s    r!   r5   zResponse.json(   sZ    yy"zz$))F"344	::dii(( 		s   A 	A*)A*c                      | j                   d   S )Nstatus)r2   r8   s    r!   status_codezResponse.status_code3   s    yy""r    c                     | j                   dv S )N)            )r;   r8   s    r!   okzResponse.ok7   s    #777r    N)r*   r+   r,   r)   propertyr5   r;   rA   r   r    r!   r.   r.       sC       # # 8 8r    r.   c                   f    e Zd Zd Zd Zd ZddZed        ZddZ	ddZ
dd	Zdd
ZddZddZy)Onlinec                     || _         d| j                   j                  j                  d      z  | j                  |      dd| _        d | _        y )Nz	Bearer %sr   zapplication/json)Authorizationz
User-AgentzContent-type)moduleparamsgetget_user_agent_stringheadersname)r(   rG   s     r!   r)   zOnline.__init__>   sI    (4;;+=+=+A+A++NN44V<.

 	r    c           	      N   | j                  d| j                  z        }|j                  spt        dj	                  | j                  | j
                  j                  j                  d      d| j                  |j                  |j                  d               |j                  S )Nz/%sz#Error fetching {0} ({1}) [{2}: {3}]r   /r'   )	rI   rL   rA   r$   formatrG   rH   r;   r5   )r(   resultss     r!   get_resourceszOnline.get_resourcesG   s    ((5499,-zz!"G"N"N		dkk&8&8&<&<Y&GS##W\\)%<#  
 ||r    c                 p    |d   dk(  r|dd  }| j                   j                  j                  d      d|S )Nr   rN      r   )rG   rH   rI   )r(   paths     r!   _url_builderzOnline._url_builderQ   s8    7c>8D++,,00;TBBr    Nc           
         | j                  |      }| j                  j                  |      }|| j                  j	                  |       t        | j                  ||| j                  || j                  j                  j                  d            \  }}|d   dk(  r| j                  j                  |d          t        ||      S )Nr   )datarK   methodr   r:   msg)rZ   )
rU   rG   jsonifyrK   updater   rH   rI   	fail_jsonr.   )r(   rX   rT   rW   rK   urlr3   r2   s           r!   sendzOnline.sendV   s    %{{""4(LL(KK4fKK&&**=9

d >RKK!!d5k!2d##r    c                 h    d| j                   dt        j                  j                  dd      d   S )Nzansible z Python  rS   r   )ansible_versionsysversionsplit)rG   s    r!   rJ   zOnline.get_user_agent_stringh   s,    )/)?)?ARARSVXYAZ[\A]^^r    c                 *    | j                  d|||      S )NGETr_   r(   rT   rW   rK   s       r!   rI   z
Online.getl       yydG44r    c                 *    | j                  d|||      S )NPUTrh   ri   s       r!   putz
Online.puto   rj   r    c                 *    | j                  d|||      S )NPOSTrh   ri   s       r!   postzOnline.postr   s    yytW55r    c                 *    | j                  d|||      S )NDELETErh   ri   s       r!   deletezOnline.deleteu       yy4w77r    c                 *    | j                  d|||      S )NPATCHrh   ri   s       r!   patchzOnline.patchx   s    yy$g66r    c                 *    | j                  d|||      S )NUPDATErh   ri   s       r!   r\   zOnline.update{   rt   r    )NN)r*   r+   r,   r)   rQ   rU   r_   staticmethodrJ   rI   rm   rp   rs   rw   r\   r   r    r!   rD   rD   <   sK    C
$$ _ _556878r    rD   )
__future__r   r   r   r   __metaclass__r5   rc   ansible.module_utils.basicr   ansible.module_utils.urlsr   r"   	Exceptionr$   objectr.   rD   r   r    r!   <module>r      sJ    C B  
 3 /i 8v 88@8V @8r    