o
    Á¿i0
  ã                   @   s6   d Z ddlmZmZmZmZ G dd„ deeeeƒZdS )z"
Security Monitoring Signals API.
é    )ÚGetableAPIResourceÚListableAPIResourceÚSearchableAPIResourceÚActionAPIResourcec                       sH   e Zd ZdZdZdZe‡ fdd„ƒZe‡ fdd„ƒZedd	„ ƒZ	‡  Z
S )
ÚSecurityMonitoringSignalz:
    A wrapper around Security Monitoring Signal API.
    zsecurity_monitoring/signalsÚv2c                    s   t t| ƒj|fi |¤ŽS )zÇ
        Get a security signal's details.

        :param signal_id: ID of the security signal
        :type signal_id: str

        :returns: Dictionary representing the API's JSON response
        )Úsuperr   Úget)ÚclsÚ	signal_idÚparams©Ú	__class__© ú[/home/ubuntu/.local/lib/python3.10/site-packages/datadog/api/security_monitoring_signals.pyr	      s   
zSecurityMonitoringSignal.getc                    s   t t| ƒjdi |¤ŽS )a‹  
        Get all security signals.

        :param params: additional parameters to filter security signals
            Valid options are:
            - filter[query]: search query to filter security signals
            - filter[from]: minimum timestamp for returned security signals
            - filter[to]: maximum timestamp for returned security signals
            - sort: sort order, can be 'timestamp', '-timestamp', etc.
            - page[size]: number of signals to return per page
            - page[cursor]: cursor to use for pagination
        :type params: dict

        :returns: Dictionary representing the API's JSON response
        Nr   )r   r   Úget_all)r
   r   r   r   r   r   )   s   z SecurityMonitoringSignal.get_allc                 K   s(   dd|i|ddœi}| j dd|i|¤ŽS )	az  
        Change the triage state of security signals.

        :param signal_id: signal ID to update
        :type signal_id: str
        :param state: new triage state ('open', 'archived', 'under_review')
        :type state: str
        :param params: additional parameters
        :type params: dict

        :returns: Dictionary representing the API's JSON response
        ÚdataÚstateÚsignal_metadata)Ú
attributesÚidÚtypeÚPATCHr   N)r   r   )Ú_trigger_class_action)r
   r   r   r   Úbodyr   r   r   Úchange_triage_state<   s   ÿûÿ
z,SecurityMonitoringSignal.change_triage_state)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_resource_nameÚ_api_versionÚclassmethodr	   r   r   Ú__classcell__r   r   r   r   r      s    r   N)r   Údatadog.api.resourcesr   r   r   r   r   r   r   r   r   Ú<module>   s   
ü