def import_report( self, report: str, *, task_id: Optional[str] = None, in_assets: Optional[bool] = None, ) -> Any: """Import a Report from XML Arguments: report: Report XML as string to import. This XML must contain a :code:`<report>` root element. task_id: UUID of task to import report to in_asset: Whether to create or update assets using the report Returns: The response. See :py:meth:`send_command` for details. """ if not report: raise RequiredArgument(function=self.import_report.__name__, argument="report") cmd = XmlCommand("create_report") if task_id: cmd.add_element("task", attrs={"id": task_id}) else: raise RequiredArgument(function=self.import_report.__name__, argument="task_id") if in_assets is not None: cmd.add_element("in_assets", to_bool(in_assets)) try: cmd.append_xml_str(report) except XMLSyntaxError as e: raise InvalidArgument( f"Invalid xml passed as report to import_report {e}") from None return self._send_xml_command(cmd)
def import_scan_config(self, config: str) -> Any: """Import a scan config from XML Arguments: config: Scan Config XML as string to import. This XML must contain a :code:`<get_configs_response>` root element. Returns: The response. See :py:meth:`send_command` for details. """ if not config: raise RequiredArgument(function=self.import_scan_config.__name__, argument="config") cmd = XmlCommand("create_config") try: cmd.append_xml_str(config) except XMLSyntaxError as e: raise InvalidArgument(function=self.import_scan_config.__name__, argument="config") from e return self._send_xml_command(cmd)