laceworksdk.api.v2.reports

Lacework Reports API wrapper.

 1# -*- coding: utf-8 -*-
 2"""
 3Lacework Reports API wrapper.
 4"""
 5
 6from laceworksdk.api.base_endpoint import BaseEndpoint
 7
 8
 9class ReportsAPI(BaseEndpoint):
10
11    def __init__(self, session):
12        """
13        Initializes the ReportsAPI object.
14
15        :param session: An instance of the HttpSession class
16
17        :return ReportsAPI object.
18        """
19
20        super().__init__(session, "Reports")
21
22    def get(self,
23            primary_query_id=None,
24            secondary_query_id=None,
25            format=None,
26            type=None,
27            report_name=None,
28            report_type=None,
29            template_name=None,
30            latest=None,
31            **request_params):
32        """
33        A method to get Reports objects.
34
35        :param primary_query_id: The primary ID that is used to fetch the report.
36            (AWS Account ID or Azure Tenant ID)
37        :param secondary_query_id: The secondary ID that is used to fetch the report.
38            (GCP Project ID or Azure Subscription ID)
39        :param format: The format of the report.
40            ("csv", "html", "json", "pdf")
41        :param type: The type of the report.
42        :param report_name: The name of the report definition to use when generating the report.
43        :param report_type: The type of the report definition to use when generating the report.
44        :param template_name: The name of the template to be used for the report.
45        :param latest: A boolean representing whether to retreive the latest report.
46        :param request_params: Additional request parameters.
47            (provides support for parameters that may be added in the future)
48
49        :return response json
50        """
51
52        params = self.build_dict_from_items(
53            primary_query_id=primary_query_id,
54            secondary_query_id=secondary_query_id,
55            format=format,
56            type=type,
57            report_name=report_name,
58            report_type=report_type,
59            template_name=template_name,
60            latest=latest,
61            **request_params
62        )
63
64        response = self._session.get(self.build_url(), params=params)
65
66        if format == "json":
67            return response.json()
68        else:
69            return response.content
class ReportsAPI(laceworksdk.api.base_endpoint.BaseEndpoint):
10class ReportsAPI(BaseEndpoint):
11
12    def __init__(self, session):
13        """
14        Initializes the ReportsAPI object.
15
16        :param session: An instance of the HttpSession class
17
18        :return ReportsAPI object.
19        """
20
21        super().__init__(session, "Reports")
22
23    def get(self,
24            primary_query_id=None,
25            secondary_query_id=None,
26            format=None,
27            type=None,
28            report_name=None,
29            report_type=None,
30            template_name=None,
31            latest=None,
32            **request_params):
33        """
34        A method to get Reports objects.
35
36        :param primary_query_id: The primary ID that is used to fetch the report.
37            (AWS Account ID or Azure Tenant ID)
38        :param secondary_query_id: The secondary ID that is used to fetch the report.
39            (GCP Project ID or Azure Subscription ID)
40        :param format: The format of the report.
41            ("csv", "html", "json", "pdf")
42        :param type: The type of the report.
43        :param report_name: The name of the report definition to use when generating the report.
44        :param report_type: The type of the report definition to use when generating the report.
45        :param template_name: The name of the template to be used for the report.
46        :param latest: A boolean representing whether to retreive the latest report.
47        :param request_params: Additional request parameters.
48            (provides support for parameters that may be added in the future)
49
50        :return response json
51        """
52
53        params = self.build_dict_from_items(
54            primary_query_id=primary_query_id,
55            secondary_query_id=secondary_query_id,
56            format=format,
57            type=type,
58            report_name=report_name,
59            report_type=report_type,
60            template_name=template_name,
61            latest=latest,
62            **request_params
63        )
64
65        response = self._session.get(self.build_url(), params=params)
66
67        if format == "json":
68            return response.json()
69        else:
70            return response.content

A class used to implement base functionality for Lacework API Endpoints

ReportsAPI(session)
12    def __init__(self, session):
13        """
14        Initializes the ReportsAPI object.
15
16        :param session: An instance of the HttpSession class
17
18        :return ReportsAPI object.
19        """
20
21        super().__init__(session, "Reports")

Initializes the ReportsAPI object.

Parameters
  • session: An instance of the HttpSession class

:return ReportsAPI object.

def get( self, primary_query_id=None, secondary_query_id=None, format=None, type=None, report_name=None, report_type=None, template_name=None, latest=None, **request_params):
23    def get(self,
24            primary_query_id=None,
25            secondary_query_id=None,
26            format=None,
27            type=None,
28            report_name=None,
29            report_type=None,
30            template_name=None,
31            latest=None,
32            **request_params):
33        """
34        A method to get Reports objects.
35
36        :param primary_query_id: The primary ID that is used to fetch the report.
37            (AWS Account ID or Azure Tenant ID)
38        :param secondary_query_id: The secondary ID that is used to fetch the report.
39            (GCP Project ID or Azure Subscription ID)
40        :param format: The format of the report.
41            ("csv", "html", "json", "pdf")
42        :param type: The type of the report.
43        :param report_name: The name of the report definition to use when generating the report.
44        :param report_type: The type of the report definition to use when generating the report.
45        :param template_name: The name of the template to be used for the report.
46        :param latest: A boolean representing whether to retreive the latest report.
47        :param request_params: Additional request parameters.
48            (provides support for parameters that may be added in the future)
49
50        :return response json
51        """
52
53        params = self.build_dict_from_items(
54            primary_query_id=primary_query_id,
55            secondary_query_id=secondary_query_id,
56            format=format,
57            type=type,
58            report_name=report_name,
59            report_type=report_type,
60            template_name=template_name,
61            latest=latest,
62            **request_params
63        )
64
65        response = self._session.get(self.build_url(), params=params)
66
67        if format == "json":
68            return response.json()
69        else:
70            return response.content

A method to get Reports objects.

Parameters
  • primary_query_id: The primary ID that is used to fetch the report. (AWS Account ID or Azure Tenant ID)
  • secondary_query_id: The secondary ID that is used to fetch the report. (GCP Project ID or Azure Subscription ID)
  • format: The format of the report. ("csv", "html", "json", "pdf")
  • type: The type of the report.
  • report_name: The name of the report definition to use when generating the report.
  • report_type: The type of the report definition to use when generating the report.
  • template_name: The name of the template to be used for the report.
  • latest: A boolean representing whether to retreive the latest report.
  • request_params: Additional request parameters. (provides support for parameters that may be added in the future)

:return response json