d"·V d dl Z d dlZd dlZd dlZd dlZ d dlZd dlZdZej j Zn# e$ r dZ G d de ZY nw xY wd dlZd dlmZmZ d dlmZ d dlmZ d dlZd dlZd d lmZmZmZmZmZ d d lmZ d dl m!Z! d dl"m#Z# d d l$m%Z%m&Z& d dl'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- ee. Z/ e( Z0 e( Z1de ddfdZ2 G d dee Z3 G d de3 Z4 G d de4 Z5 G d d Z6dS ) NTFc e Zd ZdS )_NATSMaxPayloadErrorN)__name__ __module____qualname__ \/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/api/server/send_message.pyr r s r r )ABCabstractmethod) getLogger)Optional)APIAPIError APITokenErrorFGWSendMessgeExceptionNATSSendMessageException)Core)Message)g)IndependentAgentIDAPIIAIDTokenError)Gen publisher)AsyncIterate)ServerJSONEncoderexreturnc @ K t d| dS )a Downgrade nats-py internal errors to DEBUG. Transient errors (ConnectionRefused, AuthorizationViolation) are expected during agent restarts. Our code already logs a WARNING with context, so the nats-py default ERROR + traceback is noise. znats: %sN)loggerdebug)r s r _nats_error_cbr" 2 s" LLR r c R e Zd ZdZedefd ZdeddfdZdede ddfd Z dS ) BaseSendMessageAPIz/api/v2/send-message/{method}r c K d S Nr )selfmessage_methodheaders post_datas r _send_requestz BaseSendMessageAPI._send_request? s r resultNc d|vr"t d | |d dk r5t d | d d S )Nstatusz unexpected server response: {!r}okzserver error: {}msg)r formatget)r' r, s r check_responsez!BaseSendMessageAPI.check_responseC sk 6!!=DDVLLMMM(t##-44VZZ5F5FGGHHH $#r methodr* c K t j d {V }n$# t $ r}t d| d }~ww xY wd|d}| ||| d {V }| | d S )NzIAID token error occurred zapplication/json)zContent-TypezX-Auth)r get_tokenr r r+ r3 )r' r4 r* tokener) r, s r send_datazBaseSendMessageAPI.send_dataI s B/9;;;;;;;;EE B B B @Q @ @AAA B / ))&'9EEEEEEEEF#####s ?:?)r r r URLr dictr+ r3 strbytesr9 r r r r$ r$ <