laceworksdk.api.v1.events

Lacework Events API wrapper.

 1# -*- coding: utf-8 -*-
 2"""
 3Lacework Events API wrapper.
 4"""
 5
 6import logging
 7
 8logger = logging.getLogger(__name__)
 9
10
11class EventsAPIv1:
12    """
13    Lacework Events API.
14    """
15
16    def __init__(self, session):
17        """
18        Initializes the EventsAPI object.
19
20        :param session: An instance of the HttpSession class.
21
22        :return EventsAPI object
23        """
24
25        super().__init__()
26
27        self._session = session
28
29    def get(self,
30            id=None,
31            start_time=None,
32            end_time=None):
33        """
34        A method to get Event details
35
36        :param event_id: An integer representing the Event ID to retrieve.
37        :param start_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to begin from.
38        :param end_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to end at.
39
40        :return response json
41        """
42
43        logger.info("Getting Event information from Lacework...")
44
45        # Build the Event request URI
46        if id:
47            api_uri = f"/api/v1/external/events/GetEventDetails?EVENT_ID={id}"
48        elif start_time and end_time:
49            api_uri = f"/api/v1/external/events/GetEventsForDateRange?START_TIME={start_time}&END_TIME={end_time}"
50        else:
51            logger.error("Either an Event ID or start/end times need to be provided to run queries on the Lacework Events API.")
52            exit()
53
54        response = self._session.get(api_uri)
55
56        return response.json()
57
58    def get_details(self,
59                    event_id):
60        """
61        A method to get the Event Details for the specified Event ID.
62
63        :param event_id: An integer representing the Event ID to retrieve.
64
65        :return response json
66        """
67
68        logger.warning("The 'get_details' function may be deprecated shortly, please consider switching to 'get'.")
69
70        return self.get(id=event_id)
71
72    def get_for_date_range(self,
73                           start_time,
74                           end_time):
75        """
76        A method to get Events for the specified time range.
77
78        :param start_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to begin from.
79        :param end_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to end at.
80
81        :return response json
82        """
83
84        logger.warning("The 'get_for_date_range' function may be deprecated shortly, please consider switching to 'get'.")
85
86        return self.get(start_time=start_time, end_time=end_time)
class EventsAPIv1:
12class EventsAPIv1:
13    """
14    Lacework Events API.
15    """
16
17    def __init__(self, session):
18        """
19        Initializes the EventsAPI object.
20
21        :param session: An instance of the HttpSession class.
22
23        :return EventsAPI object
24        """
25
26        super().__init__()
27
28        self._session = session
29
30    def get(self,
31            id=None,
32            start_time=None,
33            end_time=None):
34        """
35        A method to get Event details
36
37        :param event_id: An integer representing the Event ID to retrieve.
38        :param start_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to begin from.
39        :param end_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to end at.
40
41        :return response json
42        """
43
44        logger.info("Getting Event information from Lacework...")
45
46        # Build the Event request URI
47        if id:
48            api_uri = f"/api/v1/external/events/GetEventDetails?EVENT_ID={id}"
49        elif start_time and end_time:
50            api_uri = f"/api/v1/external/events/GetEventsForDateRange?START_TIME={start_time}&END_TIME={end_time}"
51        else:
52            logger.error("Either an Event ID or start/end times need to be provided to run queries on the Lacework Events API.")
53            exit()
54
55        response = self._session.get(api_uri)
56
57        return response.json()
58
59    def get_details(self,
60                    event_id):
61        """
62        A method to get the Event Details for the specified Event ID.
63
64        :param event_id: An integer representing the Event ID to retrieve.
65
66        :return response json
67        """
68
69        logger.warning("The 'get_details' function may be deprecated shortly, please consider switching to 'get'.")
70
71        return self.get(id=event_id)
72
73    def get_for_date_range(self,
74                           start_time,
75                           end_time):
76        """
77        A method to get Events for the specified time range.
78
79        :param start_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to begin from.
80        :param end_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to end at.
81
82        :return response json
83        """
84
85        logger.warning("The 'get_for_date_range' function may be deprecated shortly, please consider switching to 'get'.")
86
87        return self.get(start_time=start_time, end_time=end_time)

Lacework Events API.

EventsAPIv1(session)
17    def __init__(self, session):
18        """
19        Initializes the EventsAPI object.
20
21        :param session: An instance of the HttpSession class.
22
23        :return EventsAPI object
24        """
25
26        super().__init__()
27
28        self._session = session

Initializes the EventsAPI object.

Parameters
  • session: An instance of the HttpSession class.

:return EventsAPI object

def get(self, id=None, start_time=None, end_time=None):
30    def get(self,
31            id=None,
32            start_time=None,
33            end_time=None):
34        """
35        A method to get Event details
36
37        :param event_id: An integer representing the Event ID to retrieve.
38        :param start_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to begin from.
39        :param end_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to end at.
40
41        :return response json
42        """
43
44        logger.info("Getting Event information from Lacework...")
45
46        # Build the Event request URI
47        if id:
48            api_uri = f"/api/v1/external/events/GetEventDetails?EVENT_ID={id}"
49        elif start_time and end_time:
50            api_uri = f"/api/v1/external/events/GetEventsForDateRange?START_TIME={start_time}&END_TIME={end_time}"
51        else:
52            logger.error("Either an Event ID or start/end times need to be provided to run queries on the Lacework Events API.")
53            exit()
54
55        response = self._session.get(api_uri)
56
57        return response.json()

A method to get Event details

Parameters
  • event_id: An integer representing the Event ID to retrieve.
  • start_time: A "%Y-%m-%dT%H:%M: %S%z" structured timestamp to begin from.
  • end_time: A "%Y-%m-%dT%H:%M: %S%z" structured timestamp to end at.

:return response json

def get_details(self, event_id):
59    def get_details(self,
60                    event_id):
61        """
62        A method to get the Event Details for the specified Event ID.
63
64        :param event_id: An integer representing the Event ID to retrieve.
65
66        :return response json
67        """
68
69        logger.warning("The 'get_details' function may be deprecated shortly, please consider switching to 'get'.")
70
71        return self.get(id=event_id)

A method to get the Event Details for the specified Event ID.

Parameters
  • event_id: An integer representing the Event ID to retrieve.

:return response json

def get_for_date_range(self, start_time, end_time):
73    def get_for_date_range(self,
74                           start_time,
75                           end_time):
76        """
77        A method to get Events for the specified time range.
78
79        :param start_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to begin from.
80        :param end_time: A "%Y-%m-%dT%H:%M:%S%z" structured timestamp to end at.
81
82        :return response json
83        """
84
85        logger.warning("The 'get_for_date_range' function may be deprecated shortly, please consider switching to 'get'.")
86
87        return self.get(start_time=start_time, end_time=end_time)

A method to get Events for the specified time range.

Parameters
  • start_time: A "%Y-%m-%dT%H:%M: %S%z" structured timestamp to begin from.
  • end_time: A "%Y-%m-%dT%H:%M: %S%z" structured timestamp to end at.

:return response json