@requires_swimlane_version('<STR_LIT>')<EOL><INDENT>def bulk_delete(self, *filters_or_records):<DEDENT>
_type = validate_filters_or_records(filters_or_records)<EOL>data_dict = {}<EOL>if _type is Record:<EOL><INDENT>record_ids = []<EOL>for record in filters_or_records:<EOL><INDENT>record_ids.append(record.id)<EOL><DEDENT>data_dict['<STR_LIT>'] = record_ids<EOL><DEDENT>else:<EOL><INDENT>filters = []<EOL>record_stub = record_factory(self._app)<EOL>for filter_tuples in filters_or_records:<EOL><INDENT>field = record_stub.get_field(filter_tuples[<NUM_LIT:0>])<EOL>filters.append({<EOL>"<STR_LIT>": field.id,<EOL>"<STR_LIT>": filter_tuples[<NUM_LIT:1>],<EOL>"<STR_LIT:value>": field.get_report(filter_tuples[<NUM_LIT:2>])<EOL>})<EOL><DEDENT>data_dict['<STR_LIT>'] = filters<EOL><DEDENT>return self._swimlane.request('<STR_LIT>', "<STR_LIT>".format(self._app.id), json=data_dict).text<EOL>
Shortcut to bulk delete records

        .. versionadded:: 2.17.0

        Args:
            *filters_or_records (tuple) or (Record): Either a list of Records, or a list of filters.

        Notes:
            Requires Swimlane 2.17+

        Examples:

            ::

                # Bulk delete records by filter
                app.records.bulk_delete(
                    ('Field_1', 'equals', value1),
                    ('Field_2', 'equals', value2)
                )

                # Bulk delete by record instances
                record1 = app.records.get(tracking_id='APP-1')
                record2 = app.records.get(tracking_id='APP-2')
                record3 = app.records.get(tracking_id='APP-3')
                app.records.bulk_delete(record1, record2, record3)

        Returns:
            :class:`string`: Bulk Modify Job ID