o
    i\                     @   s  d dl mZ d dl mZ d dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ eeefZeeeef Zejdkrfd dlmZ eef7 ZG dd deZG dd dedZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%G dd dedZ&G dd  d edZ'G d!d" d"edZ(G d#d$ d$edZ)G d%d& d&edZ*G d'd( d(edZ+G d)d* d*edZ,G d+d, d,edZ-G d-d. d.edZ.G d/d0 d0edZ/G d1d2 d2edZ0G d3d4 d4edZ1G d5d6 d6edZ2G d7d8 d8edZ3dS )9    )BytesIO)StringION)Match)Any)	Generator)Iterator)Literal)HTTP_REQUEST_BLOCKED)REQUEST_PATH_PARAMS)RESPONSE_HEADERS)STATUS_403_TYPE_AUTO)      )Templatec                   @   s|   e Zd ZdZdededdfddZdeeeef  fdd	Z	dd
ededefddZ
d
edefddZd
edefddZdS )Constant_Classa1  
    metaclass for Constant Classes
    - You can access constants with APPSEC.ENV or APPSEC["ENV"]
    - Direct assignment will fail: APPSEC.ENV = "something" raise TypeError, like other immutable types
    - Constant Classes can be iterated:
        for constant_name, constant_value in APPSEC: ...
    _Constant_Class__name_Constant_Class__valuereturnNc                 C   s   t d| j|f )Nz6Constant class does not support item assignment: %s.%s)	TypeError__name__)selfr   r    r   M/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/appsec/_constants.py__setattr__'   s   zConstant_Class.__setattr__c                    s*   dt tttf td f f fdd}| S )Nr   c                  3   s*     j  D ]} | d ds| V  qd S )Nr   _)__dict__items
startswith)tr   r   r   aux+   s   z$Constant_Class.__iter__.<locals>.aux)r   tuplestrr   )r   r    r   r   r   __iter__*   s   $zConstant_Class.__iter__kdefaultc                 C   s   | j ||S N)r   get)r   r$   r%   r   r   r   r'   2   s   zConstant_Class.getc                 C   s
   || j v S r&   r   r   r$   r   r   r   __contains__5      
zConstant_Class.__contains__c                 C   s
   | j | S r&   r(   r)   r   r   r   __getitem__8   r+   zConstant_Class.__getitem__r&   )r   
__module____qualname____doc__r"   r   r   r   r!   r#   r'   boolr*   r,   r   r   r   r   r      s    r   c                   @   s  e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
Z
ed
 ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< d Zed  ed!< d"Zed" ed#< d$Zed$ ed%< d&Zed& ed'< d(Zed( ed)< d*Zed* ed+< d,Zed, ed-< d.Zed. ed/< d0Zed0 ed1< d2Zed2 ed3< d4Zed4 ed5< d6Z ed6 ed7< dZ!ed ed8< d9Z"ed9 ed:< d;Z#ed; ed<< d=Z$ed= ed>< d?Z%ed? ed@< dAZ&edA edB< dCZ'edC edD< dEZ(edE edF< dGZ)edG edH< dIZ*edI edJ< dKZ+edK edL< dMZ,edM edN< dOZ-edO edP< dQZ.edQ edR< dSZ/edS edT< dUZ0edU edV< dWZ1edW edX< dYZ2edY edZ< d[Z3ed[ ed\< d]Z4ed] ed^< d_Z5ed_ ed`< daZ6eda edb< dcZ7edc edd< deZ8ede edf< dgZ9edg edh< diZ:edi edj< dkZ;edk edl< dmZ<edm edn< doZ=edo edp< dqZ>edq edr< dsZ?eds edt< duZ@edu edv< dwZAedw edx< dyS )zAPPSECzSpecific constants for AppSecDD_APPSEC_ENABLEDENVDD_APM_TRACING_ENABLEDAPM_TRACING_ENVDD_APPSEC_RULES	RULE_FILEz_dd.appsec.enabledENABLEDunknownENABLED_ORIGIN_UNKNOWNr%   ENABLED_ORIGIN_DEFAULTremote_configENABLED_ORIGIN_RCenv_varENABLED_ORIGIN_ENVz_dd.appsec.jsonJSONappsecSTRUCTz_dd.appsec.event_rules.versionEVENT_RULE_VERSIONz_dd.appsec.event_rules.errorsEVENT_RULE_ERRORSz_dd.appsec.event_rules.loadedEVENT_RULE_LOADEDz"_dd.appsec.event_rules.error_countEVENT_RULE_ERROR_COUNTz_dd.appsec.waf.durationWAF_DURATIONz_dd.appsec.waf.duration_extWAF_DURATION_EXTz_dd.appsec.waf.timeoutsWAF_TIMEOUTSz_dd.appsec.waf.versionWAF_VERSIONz_dd.appsec.rasp.durationRASP_DURATIONz_dd.appsec.rasp.duration_extRASP_DURATION_EXTz_dd.appsec.rasp.rule.evalRASP_RULE_EVALz_dd.appsec.rasp.timeoutRASP_TIMEOUTSz_dd.appsec.downstream_requestDOWNSTREAM_REQUESTSz_dd.appsec.rc_productsRC_PRODUCTSz"_dd.appsec.truncated.string_lengthTRUNCATION_STRING_LENGTHz#_dd.appsec.truncated.container_sizeTRUNCATION_CONTAINER_SIZEz$_dd.appsec.truncated.container_depthTRUNCATION_CONTAINER_DEPTHORIGIN_VALUEzappsec.eventsCUSTOM_EVENT_PREFIXz_dd.appsec.events.users.loginUSER_LOGIN_EVENT_PREFIXzappsec.events.users.loginUSER_LOGIN_EVENT_PREFIX_PUBLICz_dd.appsec.usr.idUSER_LOGIN_USERIDz_dd.appsec.usr.loginUSER_LOGIN_USERNAMEz'appsec.events.users.login.success.trackUSER_LOGIN_EVENT_SUCCESS_TRACKz'appsec.events.users.login.failure.trackUSER_LOGIN_EVENT_FAILURE_TRACKz appsec.events.users.signup.trackUSER_SIGNUP_EVENTz$appsec.events.users.signup.usr.loginUSER_SIGNUP_EVENT_USERNAMEz!appsec.events.users.signup.usr.idUSER_SIGNUP_EVENT_USERIDz(_dd.appsec.events.users.signup.auto.modeUSER_SIGNUP_EVENT_MODEz/_dd.appsec.events.users.login.success.auto.modeAUTO_LOGIN_EVENTS_SUCCESS_MODEz/_dd.appsec.events.users.login.failure.auto.modeAUTO_LOGIN_EVENTS_FAILURE_MODEz_dd.appsec.user.collection_mode!AUTO_LOGIN_EVENTS_COLLECTION_MODEzappsec.blockedBLOCKEDzappsec.eventEVENT(DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODEAUTO_USER_INSTRUMENTATION_MODE0DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING_ENABLED&AUTO_USER_INSTRUMENTATION_MODE_ENABLEDDD_USER_MODEL_LOGIN_FIELDUSER_MODEL_LOGIN_FIELDDD_USER_MODEL_EMAIL_FIELDUSER_MODEL_EMAIL_FIELDDD_USER_MODEL_NAME_FIELDUSER_MODEL_NAME_FIELDz_dd.p.tsPROPAGATION_HEADER*DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP OBFUSCATION_PARAMETER_KEY_REGEXP,DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP"OBFUSCATION_PARAMETER_VALUE_REGEXPz_dd.rc.client_idRC_CLIENT_IDz_dd.appsec.waf.error	WAF_ERRORz_dd.appsec.rasp.error
RASP_ERRORz_dd.appsec.error.type
ERROR_TYPEz_dd.appsec.error.messageERROR_MESSAGEz!_dd.appsec.unsupported_event_typeUNSUPPORTED_EVENT_TYPEz_dd.appsec.serverless.tracerSERVERLESS_TRACER_ENABLEDz[security_response_id]SECURITY_RESPONSE_IDN)Br   r-   r.   r/   r3   r   __annotations__r5   r7   r8   r:   r;   r=   r?   r@   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   rf   rh   rj   rl   rn   ro   rq   rs   rt   ru   rv   rw   rx   ry   rz   r{   r   r   r   r   r1   <   s   
 r1   	metaclassOFFDEBUG	MANDATORYINFORMATION   
         (   c                   @   s  e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
Z
ed
 ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< d Zed  ed!< d"Zed" ed#< d$Zed$ ed%< d&Zed& ed'< d(Zed( ed)< d*Zed* ed+< d,Zed, ed-< d.Zed. ed/< eefe e!fe"e#fe$e%ffZ&e'Z'e(Z(d0Z)ed0 ed1< d2S )3IASTzSpecific constants for IASTDD_IAST_ENABLEDr3   DD_IAST_DEBUG	ENV_DEBUGDD_IAST_PROPAGATION_ENABLEDENV_PROPAGATION_ENABLEDDD_IAST_SINK_POINTS_ENABLEDENV_SINK_POINTS_ENABLEDDD_IAST_PROPAGATION_DEBUGENV_PROPAGATION_DEBUGDD_IAST_REQUEST_SAMPLINGENV_REQUEST_SAMPLING#DD_IAST_VULNERABILITIES_PER_REQUESTDD_IAST_MAX_CONCURRENT_REQUESTSDD_IAST_TELEMETRY_VERBOSITYENV_TELEMETRY_REPORT_LVL#DD_IAST_TRUNCATION_MAX_VALUE_LENGTH'ENV_DD_IAST_TRUNCATION_MAX_VALUE_LENGTH_DD_IAST_LAZY_TAINT
LAZY_TAINTz_dd.iast.jsonr@   iastrB   z_dd.iast.enabledr8   _DD_IAST_PATCH_MODULESPATCH_MODULES_DD_IAST_NO_DIR_PATCHENV_NO_DIR_PATCH_DD_IAST_DENY_MODULESDENY_MODULES,SEP_MODULES	_ddtrace_PATCH_ADDED_SYMBOL_PREFIXDD_IAST_REDACTION_ENABLEDREDACTION_ENABLEDDD_IAST_REDACTION_NAME_PATTERNREDACTION_NAME_PATTERNDD_IAST_REDACTION_VALUE_PATTERNREDACTION_VALUE_PATTERNDD_IAST_REDACTION_VALUE_NUMERALREDACTION_VALUE_NUMERALDD_IAST_STACK_TRACE_ENABLEDSTACK_TRACE_ENABLED	_iast_envREQUEST_CONTEXT_KEYN)*r   r-   r.   r/   r3   r   r|   r   r   r   r   r   r   r   r   r   r   r@   rB   r8   r   r   r   r   r   r   r   r   r   r   TELEMETRY_DEBUG_VERBOSITYTELEMETRY_DEBUG_NAMETELEMETRY_INFORMATION_VERBOSITYTELEMETRY_INFORMATION_NAMETELEMETRY_MANDATORY_VERBOSITYTELEMETRY_MANDATORY_NAMETELEMETRY_OFF_VERBOSITYTELEMETRY_OFF_NAMEMETRICS_REPORT_LVLS
TEXT_TYPESTAINTEABLE_TYPESr   r   r   r   r   r      sH   
 r   c                   @   sR   e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
S )IAST_SPAN_TAGSz%Specific constants for IAST span tagsz"_dd.iast.telemetry.request.taintedTELEMETRY_REQUEST_TAINTEDz _dd.iast.telemetry.executed.sinkTELEMETRY_EXECUTED_SINKz-_dd.iast.telemetry.suppressed.vulnerabilities"TELEMETRY_SUPPRESSED_VULNERABILITYz"_dd.iast.telemetry.executed.sourceTELEMETRY_EXECUTED_SOURCEN)
r   r-   r.   r/   r   r   r|   r   r   r   r   r   r   r   r      s   
 r   c                   @   s^  e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
Z
ed
 ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< d Zed  ed!< d"Zed" ed#< d$Zed$ ed%< eeeee	e
eeeeeeeeeeeeefZd&Zed& ed'< d(Zed( ed)< d*Zed* ed+< d,Zed, ed-< d.Zed. ed/< d0Zed0 ed1< d2Z ed2 ed3< d4Z!ed4 ed5< d6Z"ed6 ed7< d8Z#ed8 ed9< d:Z$ed: ed;< d<Z%ed< ed=< d>Z&ed> ed?< d@Z'ed@ edA< dBZ(edB edC< ee#e'eefZ)dDS )EWAF_DATA_NAMESzFstring names used by the waf library for requesting data from requestszserver.request.bodyREQUEST_BODYzserver.request.queryREQUEST_QUERYz!server.request.headers.no_cookiesREQUEST_HEADERS_NO_COOKIESzserver.request.uri.rawREQUEST_URI_RAWzserver.request.methodREQUEST_METHODzserver.request.path_paramsr
   zserver.request.cookiesREQUEST_COOKIESzhttp.client_ipREQUEST_HTTP_IPusr.idREQUEST_USER_IDz	usr.loginREQUEST_USERNAMEzusr.session_idREQUEST_SESSION_IDzserver.response.statusRESPONSE_STATUSz"server.response.headers.no_cookiesRESPONSE_HEADERS_NO_COOKIESzserver.response.bodyRESPONSE_BODYz&server.business_logic.payment.creationPAYMENT_CREATIONz%server.business_logic.payment.successPAYMENT_SUCCESSz%server.business_logic.payment.failurePAYMENT_FAILUREz*server.business_logic.payment.cancellationPAYMENT_CANCELLATIONzwaf.context.processorPROCESSOR_SETTINGSzserver.sys.exec.cmdCMDI_ADDRESSzserver.sys.shell.cmdSHI_ADDRESSzserver.io.fs.fileLFI_ADDRESSzserver.io.net.urlSSRF_ADDRESSzserver.db.statementSQLI_ADDRESSzserver.db.systemSQLI_SYSTEM_ADDRESSz)server.business_logic.users.login.failureLOGIN_FAILUREz)server.business_logic.users.login.successLOGIN_SUCCESSzserver.io.net.request.headersDOWN_REQ_HEADERSzserver.io.net.request.methodDOWN_REQ_METHODzserver.io.net.request.bodyDOWN_REQ_BODYzserver.io.net.response.statusDOWN_RES_STATUSzserver.io.net.response.headersDOWN_RES_HEADERSzserver.io.net.response.bodyDOWN_RES_BODYN)*r   r-   r.   r/   r   r   r|   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   	frozensetPERSISTENT_ADDRESSESr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   HEADER_ADDRESSESr   r   r   r   r      sx   
 
r   c                   @   s  e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
Z
ed
 ed< dZed ed< dZed ed< eZdZed ed< dZed ed< dZed ed< dZed ed< eZdZed ed< dZed ed< dZed ed< dZed ed< d Zed  ed!< d"S )#SPAN_DATA_NAMESzRstring names used by the library for tagging data from requests in context or spanzhttp.request.bodyr   zhttp.request.queryr   zhttp.request.headersr   z#http.request.headers_case_sensitiveREQUEST_HEADERS_NO_COOKIES_CASEzhttp.request.urir   zhttp.request.routeREQUEST_ROUTEzhttp.request.methodr   zhttp.request.cookiesr   zhttp.request.remote_ipr   r   r   zhttp.response.statusr   zhttp.response.bodyr   zgrpc.server.request.messageGRPC_SERVER_REQUEST_MESSAGEzgrpc.server.response.messageGRPC_SERVER_RESPONSE_MESSAGEzgrpc.server.request.metadataGRPC_SERVER_REQUEST_METADATAzgrpc.server.methodGRPC_SERVER_METHODN)r   r-   r.   r/   r   r   r|   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s*   
 r   c                   @   s  e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
Z
ed
 ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< dZed ed< d S )!API_SECURITYz!constants related to API Securityz_dd.appsec.api_security.enabledr8   DD_API_SECURITY_ENABLEDENV_VAR_ENABLED#DD_API_SECURITY_PARSE_RESPONSE_BODYPARSE_RESPONSE_BODYz_dd.appsec.s.req.headersr   z_dd.appsec.s.req.cookiesr   z_dd.appsec.s.req.queryr   z_dd.appsec.s.req.paramsr
   z_dd.appsec.s.req.bodyr   z_dd.appsec.s.res.headersr   z_dd.appsec.s.res.bodyr   #DD_API_SECURITY_REQUEST_SAMPLE_RATESAMPLE_RATEDD_API_SECURITY_SAMPLE_DELAYSAMPLE_DELAYi   MAX_PAYLOAD_SIZE+DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLEDENDPOINT_COLLECTION1DD_API_SECURITY_ENDPOINT_COLLECTION_MESSAGE_LIMITENDPOINT_COLLECTION_LIMITN)r   r-   r.   r/   r8   r   r|   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   0  s&   
 r   c                   @   s6   e Zd ZU dZdZed ed< eZdZ	ed ed< dS )WAF_CONTEXT_NAMESzJstring names used by the library for tagging data from requests in contextzhttp.request.waf.resultsRESULTSzhttp.request.waf.callbackCALLBACKN)
r   r-   r.   r/   r   r   r|   r	   rc   r   r   r   r   r   r   H  s
   
 r   c                   @   s   e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< e
Zd
Zed
 ed< dZed ed< dZed ed< ee	eeeeeiiZdS )WAF_ACTIONSz1string identifier for actions returned by the wafblockBLOCK
parameters
PARAMETERStypeTYPEidIDblock_requestBLOCK_ACTIONredirect_requestREDIRECT_ACTIONgenerate_stackSTACK_ACTIONN)r   r-   r.   r/   r  r   r|   r  r  r  r   DEFAULT_PARAMETERSr
  r  r  DEFAULT_ACTIONSr   r   r   r   r   P  s    
 r   c                   @   sR   e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed< dS )PRODUCTSz,string identifier for remote config productsASMASM_DATAASM_DDASM_FEATURESN)
r   r-   r.   r/   r  r   r|   r  r  r  r   r   r   r   r  d  s   
 r  c                   @   sb   e Zd ZU dZdZed ed< dZed ed< dZed ed< dZ	ed ed	< d
Z
ed
 ed< dS )LOGIN_EVENTS_MODEa  
    string identifier for the mode of the user login events. Can be:
    DISABLED: automatic login events are disabled. Can still be enabled by Remote Config.
    ANONYMIZATION: automatic login events are enabled but will only store non-PII fields (id, pk uid...)
    EXTENDED: automatic login events are enabled and will store potentially PII fields (username,
    email, ...).
    SDK: manually issued login events using the SDK.
    disabledDISABLEDidentificationIDENTanonymizationANONsdkSDKautoAUTON)r   r-   r.   r/   r  r   r|   r  r  r  r   r   r   r   r   r  m  s   
 	r  c                   @   sB   e Zd ZejejeZej	edZ
dZdZdZdZdZdS )DEFAULTz
rules.jsond   g      @z(?i)pass|pw(?:or)?d|secret|(?:api|private|public|access)[_-]?key|token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)|bearer|authorization|jsessionid|phpsessid|asp\.net[_-]sessionid|sid|jwtaB  (?i)(?:p(?:ass)?w(?:or)?d|pass(?:[_-]?phrase)?|secret(?:[_-]?key)?|(?:(?:api|private|public|access)[_-]?)key(?:[_-]?id)?|(?:(?:auth|access|id|refresh)[_-]?)?token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|jsessionid|phpsessid|asp\.net(?:[_-]|-)sessionid|sid|jwt)(?:\s*=([^;&]+)|"\s*:\s*("[^"]+"|\d+))|bearer\s+([a-z0-9\._\-]+)|token\s*:\s*([a-z0-9]{13})|gh[opsu]_([0-9a-zA-Z]{36})|ey[I-L][\w=-]+\.(ey[I-L][\w=-]+(?:\.[\w.+\/=-]+)?)|[\-]{5}BEGIN[a-z\s]+PRIVATE\sKEY[\-]{5}([^\-]+)[\-]{5}END[a-z\s]+PRIVATE\sKEY|ssh-rsa\s*([a-z0-9\/\.+]{100,})i,  N)r   r-   r.   ospathdirnameabspath__file__ROOT_DIRjoinRULESTRACE_RATE_LIMITWAF_TIMEOUT'APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP)APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXPr   r   r   r   r   r!  ~  s    	r!  c                   @   s   e Zd ZU dZed ed< dZed ed< dZed ed< dZed ed< d	Z	ed	 ed
< dZ
ed ed< dZed ed< G dd dedZG dd dedZdS )EXPLOIT_PREVENTIONexploit_preventionBLOCKINGstack_idSTACK_TRACE_IDDD_APPSEC_RASP_ENABLED
EP_ENABLEDDD_APPSEC_STACK_TRACE_ENABLEDr   DD_APPSEC_MAX_STACK_TRACESMAX_STACK_TRACESDD_APPSEC_MAX_STACK_TRACE_DEPTHMAX_STACK_TRACE_DEPTH+DD_APPSEC_MAX_STACK_TRACE_DEPTH_TOP_PERCENTSTACK_TOP_PERCENTc                   @   s~   e Zd ZU dZed ed< dZed ed< dZed ed< dZed ed< d	Z	ed	 ed
< dZ
ed ed< dZed ed< dS )zEXPLOIT_PREVENTION.TYPEcommand_injectionCMDIshell_injectionSHIlfiLFIssrfSSRFssrf_reqSSRF_REQssrf_resSSRF_RESsql_injectionSQLIN)r   r-   r.   r>  r   r|   r@  rB  rD  rF  rH  rJ  r   r   r   r   r    s   
 r  r}   c                   @   sn   e Zd ZU dZed ed< dZed ed< dZed ed< dZed ed< d	Z	ed	 ed
< dZ
ed ed< dS )zEXPLOIT_PREVENTION.ADDRESSr   r>  r   rB  r   r@  r   rD  r   rJ  r   	SQLI_TYPEN)r   r-   r.   r>  r   r|   rB  r@  rD  rJ  rK  r   r   r   r   ADDRESS  s   
 rL  N)r   r-   r.   r1  r   r|   r3  r5  r   r8  r:  r<  r   r  rL  r   r   r   r   r/    s   
 	r/  c                   @   s0   e Zd ZdZed Zed Zed Zed ZdS )FINGERPRINTINGz_dd.appsec.fp.zhttp.endpointzhttp.headerzhttp.networksessionN)r   r-   r.   PREFIXENDPOINTHEADERNETWORKSESSIONr   r   r   r   rM    s    rM  c                   @   s&   e Zd ZU dZdZdZed ed< dS )STACK_TRACEexploitvulnerabilityz	_dd.stackTAGN)r   r-   r.   RASPr   rW  r   r|   r   r   r   r   rT    s   
 rT  c                   @   s   e Zd ZU dZed ed< dZed ed< ed Zeed< ed Z	eed< ed Z
eed	< ed
 Zeed< ed Zeed< dZed ed< dZed ed< ed Zeed< ed Zeed< dS )AI_GUARDai_guardRESOURCE_TYPErW  z.action
ACTION_TAGz.reason
REASON_TAGz.target
TARGET_TAGz.blockedBLOCKED_TAGz
.tool_nameTOOL_NAME_TAGrB   METRIC_PREFIXz	.requestsREQUESTS_METRICz
.truncatedTRUNCATED_METRICN)r   r-   r.   r[  r   r|   rW  r\  r"   r]  r^  r_  r`  rB   ra  rb  rc  r   r   r   r   rY    s   
 rY  )4_ior   r   r#  rer   systypingr   r   r   r   ddtrace.internal.constantsr	   r
   r   r   r"   bytes	bytearrayr   r   version_infostring.templatelibr   TemplateTyper  r   r1   r   r   r   r   (IAST_TRUNCATION_MAX_VALUE_LENGTH_DEFAULTr   r   r   r   r   r   r   r   r   r   r   r  r  r!  r/  rM  rT  rY  r   r   r   r   <module>   sV   


S,E	