4.4.6.1. Base

Warning

This API is deprecated.

Axonius API v2 is now available, we recommend you move to API v2.

New features will no longer be added to this API. Axonius will only provide bug fixes.

Read about API v2

Base callbacks.

axonius_api_client.api.asset_callbacks.base.crjoin(value)[source]

Pass.

class axonius_api_client.api.asset_callbacks.base.Base(apiobj, store, state=None, getargs=None)[source]

Bases: object

Callbacks for formatting asset data.

Examples

  • args_map() for callback generic arguments to format assets.

  • args_map_custom() for callback specific arguments to format and export data.

Parameters:
classmethod args_map()[source]

Get all the argument names and their defaults for this callbacks object. :rtype: dict

Examples

Create a client using axonius_api_client.connect.Connect and assume apiobj is either client.devices or client.users

>>> import axonius_api_client as axonapi
>>> connect_args: dict = axonapi.get_env_connect()
>>> client: axonapi.Connect = axonapi.Connect(**connect_args)
>>> apiobj: axonapi.api.assets.AssetMixin = client.devices
>>>       # or client.users or client.vulnerabilities

Flatten complex fields - Will take all sub-fields of complex fields and put them on the root level with their values index correlated to each other.

>>> assets = apiobj.get(fields=["network_interfaces"], field_flatten=True)

Explode a single field - will take that field and create new rows for list item.

>>> assets = apiobj.get(field_explode="hostname")

Exclude fields - Will remove fields from the final output.

>>> assets = apiobj.get(field_excludes=["internal_axon_id", "adapter_list_length"])

Use field titles - Will change internal field names to their titles.

>>> assets = apiobj.get(field_titles=True)

Join fields - Will join multi value fields with carriage returns.

>>> assets = apiobj.get(field_join=True)

Join fields with no trim and custom join value - Will join multi value fields with ;; and do not trim the joined value to excels maximum cell length.

>>> assets = apiobj.get(field_join=True, field_join_value=";;", field_join_trim=0)

Add fields as empty values for fields that did not return.

>>> assets = apiobj.get(field_null=True)

Add fields as empty values for fields that did not return with a custom null value.

>>> assets = apiobj.get(
...     field_null=True,
...     field_null_value="EMPTY",
...     field_null_value_complex="EMPTY LIST",
... )

Add and remove tags to all assets returned.

>>> assets = apiobj.get(tags_add=["tag1", "tag2"], tags_remove=["tag3", "tag4"])

Generate a report of adapters that are missing from each asset.

>>> assets = apiobj.get(report_adapters_missing=True)

Generate a report of installed software that does not match a list of regex for each asset.

>>> assets = apiobj.get(report_software_whitelist=["chrome", "^adobe.*acrobat"])

Echo to STDERR progress messages.

>>> assets = apiobj.get(do_echo=True)

Change the amount of assets that echo page progress when do_echo is true.

>>> assets = apiobj.get(do_echo=True, page_progress=100)

Supply a set of custom callbacks to process each row before all builtin callbacks are run. Custom callbacks receive two arguments: self (the current callback object) and rows (the current rows being processed). Custom callbacks must return a list of rows.

>>> def custom_cb1(self, rows):
...     for row in rows:
...         row["internal_axon_id"] = row["internal_axon_id"].upper()
...     return rows
...
>>> assets = apiobj.get(custom_cbs=[custom_cb1])

See also

Notes

These arguments can be supplied as extra kwargs passed to axonius_api_client.api.assets.users.Users.get() or axonius_api_client.api.assets.devices.Devices.get()

classmethod args_map_custom()[source]

Get the custom argument names and their defaults for this callbacks object. :rtype: dict

See also

args_map() for the arguments for all callback objects.

Notes

This callback object has no custom arguments.

classmethod args_map_base()[source]

Get the map of arguments that can be supplied to GETARGS.

Return type:

dict

get_arg_value(arg)[source]

Get an argument value.

Parameters:

arg (str) – key to get from GETARGS with a default value from args_map()

Return type:

typing.Any

set_arg_value(arg, value)[source]

Set an argument value.

Parameters:
__init__(apiobj, store, state=None, getargs=None)[source]

Callbacks base class for assets.

Parameters:
LOG: logging.Logger

logger for this object.

_init()[source]

Post init setup.

start(**kwargs)[source]

Start this callbacks object.

echo_columns(**kwargs)[source]

Echo the columns of the fields selected.

stop(**kwargs)[source]

Stop this callbacks object.

echo_page_progress()[source]

Echo progress per N rows using an echo method.

do_pre_row(rows)[source]

Pre-processing callbacks for current row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

process_row(row)[source]

Process the callbacks for current row.

Parameters:

row (typing.Union[typing.List[dict], dict]) – row to process

Return type:

typing.List[dict]

property callbacks: list

Get order of callbacks to run.

do_row(rows)[source]

Execute the callbacks for current row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_custom_cbs(rows)[source]

Execute any custom callbacks for current row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_add_null_values(rows)[source]

Null out missing fields.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_do_add_null_values(row, schema, key='name_qual')[source]

Null out missing fields.

Parameters:
  • row (dict) – row being processed

  • schema (dict) – field schema to add null values for

  • key (str) – key of field schema to add null value for in row

do_excludes(rows)[source]

Asset callback to remove fields from row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_do_excludes(row)[source]

Asset callback to remove fields from row.

Parameters:

row (dict) – row being processed

do_join_values(rows)[source]

Join values.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_do_join_values(row)[source]

Join values.

Parameters:

row (dict) – row being processed

do_change_field_replace(rows)[source]

Asset callback to replace characters.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_field_replace(key)[source]

Parse fields into required format.

Parameters:

key (str) –

Return type:

str

property field_replacements: List[Tuple[str, str]]

Parse the supplied list of field name replacements.

do_change_field_compress(rows)[source]

Asset callback to shorten field names.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_field_compress(key)[source]

Parse fields into required format.

Parameters:

key (str) –

Return type:

str

do_change_field_titles(rows)[source]

Asset callback to change qual name to title.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_do_change_field_titles(row)[source]

Asset callback to change qual name to title.

Parameters:

row (dict) – row being processed

do_flatten_fields(rows)[source]

Asset callback to flatten complex fields.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_do_flatten_fields(row, schema)[source]

Asset callback to flatten complex fields.

Parameters:
  • row (dict) – row being processed

  • schema (dict) – schema to use when flattening

do_explode_entities(rows)[source]

Explode a row into a row for each asset entity.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows being processed

Return type:

typing.List[dict]

_do_explode_entities(row)[source]

Explode a row into multiple rows for each asset entity.

Parameters:

row (dict) – row being processed

Return type:

typing.List[dict]

do_explode_field(rows)[source]

Explode a field into multiple rows.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows being processed

Return type:

typing.List[dict]

_do_explode_field(row)[source]

Explode a field into multiple rows.

Parameters:

row (dict) – row being processed

Return type:

typing.List[dict]

do_tagging()[source]

Add or remove tags to assets.

do_tag_add()[source]

Add tags to assets.

do_tag_remove()[source]

Remove tags from assets.

process_tags_to_add(rows)[source]

Add assets to tracker for adding tags.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

process_tags_to_remove(rows)[source]

Add assets to tracker for removing tags.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

add_report_software_whitelist(rows)[source]

Process report: Software whitelist.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_add_report_software_whitelist(row)[source]

Process report: Software whitelist.

Parameters:

row (dict) – row being processed

add_include_dates(rows)[source]

Process report: Add dates (history and current)

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

add_report_adapters_missing(rows)[source]

Process report: Missing adapters.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

_add_report_adapters_missing(row)[source]

Process report: Missing adapters.

Parameters:

row (dict) – row being processed

is_excluded(schema)[source]

Check if a name supplied to field_excludes matches one of FIND_KEYS.

Parameters:

schema (dict) – field schema

Return type:

bool

property excluded_schemas: List[dict]

List of all schemas that should be excluded.

echo(msg, debug=False, error=False, warning=False, level='info', level_debug='debug', level_error='error', level_warning='warning', abort=True)[source]

Echo a message to console or log it.

Parameters:
  • msg (typing.Union[str, typing.List[str]]) – message to echo

  • error (typing.Union[bool, str, typing.Type[Exception]]) – message is an error

  • warning (bool) – message is a warning

  • level (str) – logging level for non error/non warning messages

  • level_debug (str) – logging level for debug messages

  • level_error (str) – logging level for error messages

  • level_warning (str) – logging level for warning messages

  • abort (bool) – sys.exit(1) if error is true

  • debug (bool) – message is a debug message

get_sub_schemas(schema)[source]

Get all the schemas of sub-fields for a complex field.

Parameters:

schema (dict) – schema of complex field

Return type:

typing.Generator[dict, None, None]

property custom_schemas: List[dict]

Get the custom schemas based on GETARGS.

property final_schemas: List[dict]

Get the schemas that will be returned.

property final_columns: List[str]

Get the columns that will be returned.

property fields_selected: List[str]

Get the names of the fields that were selected.

property schemas_selected: List[dict]

Get the schemas of the fields that were selected.

property schema_to_explode: dict

Get the schema of the field that should be exploded.

property adapter_map: dict

Build a map of adapters that have connections.

property args_strs: List[str]

Get a list of strings that describe each arg in args_map().

__str__()[source]

Show info for this object.

Return type:

str

__repr__()[source]

Show info for this object.

Return type:

str

CB_NAME: str = 'base'

name for this callback

FIND_KEYS: typing.List[str] = ['name', 'name_qual', 'column_title']

field schema keys to use when finding a fields schema

APIOBJ = None

assets object.

Type:

axonius_api_client.api.assets.asset_mixin.AssetMixin

ALL_SCHEMAS: dict = None

Map of adapter -> field schemas.

STATE: dict = None

state dict used by get assets method to track paging.

STORE: dict = None

store dict used by get assets method to track arguments.

CURRENT_ROWS: typing.Optional[typing.List[dict]] = None

current rows being processed

GETARGS: dict = None

original kwargs supplied to get assets method.

TAG_ROWS_ADD: typing.List[dict] = None

tracker of assets to add tags to in do_tagging().

TAG_ROWS_REMOVE: typing.List[dict] = None

tracker of assets to remove tags from in do_tagging().

CUSTOM_CB_EXC: typing.List[dict] = None

tracker of custom callbacks that have been executed by do_custom_cbs()

class axonius_api_client.api.asset_callbacks.base.ExportMixins(apiobj, store, state=None, getargs=None)[source]

Bases: Base

Export mixins for callbacks.

Parameters:
ALL_SCHEMAS: dict = None

Map of adapter -> field schemas.

APIOBJ = None

assets object.

Type:

axonius_api_client.api.assets.asset_mixin.AssetMixin

CB_NAME: str = 'base'

name for this callback

CURRENT_ROWS: typing.Optional[typing.List[dict]] = None

current rows being processed

CUSTOM_CB_EXC: typing.List[dict] = None

tracker of custom callbacks that have been executed by do_custom_cbs()

FIND_KEYS: typing.List[str] = ['name', 'name_qual', 'column_title']

field schema keys to use when finding a fields schema

GETARGS: dict = None

original kwargs supplied to get assets method.

STATE: dict = None

state dict used by get assets method to track paging.

STORE: dict = None

store dict used by get assets method to track arguments.

TAG_ROWS_ADD: typing.List[dict] = None

tracker of assets to add tags to in do_tagging().

TAG_ROWS_REMOVE: typing.List[dict] = None

tracker of assets to remove tags from in do_tagging().

__init__(apiobj, store, state=None, getargs=None)

Callbacks base class for assets.

Parameters:
__repr__()

Show info for this object.

Return type:

str

__str__()

Show info for this object.

Return type:

str

_add_report_adapters_missing(row)

Process report: Missing adapters.

Parameters:

row (dict) – row being processed

_add_report_software_whitelist(row)

Process report: Software whitelist.

Parameters:

row (dict) – row being processed

_do_add_null_values(row, schema, key='name_qual')

Null out missing fields.

Parameters:
  • row (dict) – row being processed

  • schema (dict) – field schema to add null values for

  • key (str) – key of field schema to add null value for in row

_do_change_field_titles(row)

Asset callback to change qual name to title.

Parameters:

row (dict) – row being processed

_do_excludes(row)

Asset callback to remove fields from row.

Parameters:

row (dict) – row being processed

_do_explode_entities(row)

Explode a row into multiple rows for each asset entity.

Parameters:

row (dict) – row being processed

Return type:

typing.List[dict]

_do_explode_field(row)

Explode a field into multiple rows.

Parameters:

row (dict) – row being processed

Return type:

typing.List[dict]

_do_flatten_fields(row, schema)

Asset callback to flatten complex fields.

Parameters:
  • row (dict) – row being processed

  • schema (dict) – schema to use when flattening

_do_join_values(row)

Join values.

Parameters:

row (dict) – row being processed

_field_compress(key)

Parse fields into required format.

Parameters:

key (str) –

Return type:

str

_field_replace(key)

Parse fields into required format.

Parameters:

key (str) –

Return type:

str

_init()

Post init setup.

property adapter_map: dict

Build a map of adapters that have connections.

add_include_dates(rows)

Process report: Add dates (history and current)

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

add_report_adapters_missing(rows)

Process report: Missing adapters.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

add_report_software_whitelist(rows)

Process report: Software whitelist.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

classmethod args_map()

Get all the argument names and their defaults for this callbacks object. :rtype: dict

Examples

Create a client using axonius_api_client.connect.Connect and assume apiobj is either client.devices or client.users

>>> import axonius_api_client as axonapi
>>> connect_args: dict = axonapi.get_env_connect()
>>> client: axonapi.Connect = axonapi.Connect(**connect_args)
>>> apiobj: axonapi.api.assets.AssetMixin = client.devices
>>>       # or client.users or client.vulnerabilities

Flatten complex fields - Will take all sub-fields of complex fields and put them on the root level with their values index correlated to each other.

>>> assets = apiobj.get(fields=["network_interfaces"], field_flatten=True)

Explode a single field - will take that field and create new rows for list item.

>>> assets = apiobj.get(field_explode="hostname")

Exclude fields - Will remove fields from the final output.

>>> assets = apiobj.get(field_excludes=["internal_axon_id", "adapter_list_length"])

Use field titles - Will change internal field names to their titles.

>>> assets = apiobj.get(field_titles=True)

Join fields - Will join multi value fields with carriage returns.

>>> assets = apiobj.get(field_join=True)

Join fields with no trim and custom join value - Will join multi value fields with ;; and do not trim the joined value to excels maximum cell length.

>>> assets = apiobj.get(field_join=True, field_join_value=";;", field_join_trim=0)

Add fields as empty values for fields that did not return.

>>> assets = apiobj.get(field_null=True)

Add fields as empty values for fields that did not return with a custom null value.

>>> assets = apiobj.get(
...     field_null=True,
...     field_null_value="EMPTY",
...     field_null_value_complex="EMPTY LIST",
... )

Add and remove tags to all assets returned.

>>> assets = apiobj.get(tags_add=["tag1", "tag2"], tags_remove=["tag3", "tag4"])

Generate a report of adapters that are missing from each asset.

>>> assets = apiobj.get(report_adapters_missing=True)

Generate a report of installed software that does not match a list of regex for each asset.

>>> assets = apiobj.get(report_software_whitelist=["chrome", "^adobe.*acrobat"])

Echo to STDERR progress messages.

>>> assets = apiobj.get(do_echo=True)

Change the amount of assets that echo page progress when do_echo is true.

>>> assets = apiobj.get(do_echo=True, page_progress=100)

Supply a set of custom callbacks to process each row before all builtin callbacks are run. Custom callbacks receive two arguments: self (the current callback object) and rows (the current rows being processed). Custom callbacks must return a list of rows.

>>> def custom_cb1(self, rows):
...     for row in rows:
...         row["internal_axon_id"] = row["internal_axon_id"].upper()
...     return rows
...
>>> assets = apiobj.get(custom_cbs=[custom_cb1])

See also

Notes

These arguments can be supplied as extra kwargs passed to axonius_api_client.api.assets.users.Users.get() or axonius_api_client.api.assets.devices.Devices.get()

classmethod args_map_base()

Get the map of arguments that can be supplied to GETARGS.

Return type:

dict

classmethod args_map_custom()

Get the custom argument names and their defaults for this callbacks object. :rtype: dict

See also

args_map() for the arguments for all callback objects.

Notes

This callback object has no custom arguments.

property args_strs: List[str]

Get a list of strings that describe each arg in args_map().

property callbacks: list

Get order of callbacks to run.

property custom_schemas: List[dict]

Get the custom schemas based on GETARGS.

do_add_null_values(rows)

Null out missing fields.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_change_field_compress(rows)

Asset callback to shorten field names.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_change_field_replace(rows)

Asset callback to replace characters.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_change_field_titles(rows)

Asset callback to change qual name to title.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_custom_cbs(rows)

Execute any custom callbacks for current row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_excludes(rows)

Asset callback to remove fields from row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_explode_entities(rows)

Explode a row into a row for each asset entity.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows being processed

Return type:

typing.List[dict]

do_explode_field(rows)

Explode a field into multiple rows.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows being processed

Return type:

typing.List[dict]

do_flatten_fields(rows)

Asset callback to flatten complex fields.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_join_values(rows)

Join values.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_pre_row(rows)

Pre-processing callbacks for current row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_row(rows)

Execute the callbacks for current row.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

do_tag_add()

Add tags to assets.

do_tag_remove()

Remove tags from assets.

do_tagging()

Add or remove tags to assets.

echo(msg, debug=False, error=False, warning=False, level='info', level_debug='debug', level_error='error', level_warning='warning', abort=True)

Echo a message to console or log it.

Parameters:
  • msg (typing.Union[str, typing.List[str]]) – message to echo

  • error (typing.Union[bool, str, typing.Type[Exception]]) – message is an error

  • warning (bool) – message is a warning

  • level (str) – logging level for non error/non warning messages

  • level_debug (str) – logging level for debug messages

  • level_error (str) – logging level for error messages

  • level_warning (str) – logging level for warning messages

  • abort (bool) – sys.exit(1) if error is true

  • debug (bool) – message is a debug message

echo_columns(**kwargs)

Echo the columns of the fields selected.

echo_page_progress()

Echo progress per N rows using an echo method.

property excluded_schemas: List[dict]

List of all schemas that should be excluded.

property field_replacements: List[Tuple[str, str]]

Parse the supplied list of field name replacements.

property fields_selected: List[str]

Get the names of the fields that were selected.

property final_columns: List[str]

Get the columns that will be returned.

property final_schemas: List[dict]

Get the schemas that will be returned.

get_arg_value(arg)

Get an argument value.

Parameters:

arg (str) – key to get from GETARGS with a default value from args_map()

Return type:

typing.Any

get_sub_schemas(schema)

Get all the schemas of sub-fields for a complex field.

Parameters:

schema (dict) – schema of complex field

Return type:

typing.Generator[dict, None, None]

is_excluded(schema)

Check if a name supplied to field_excludes matches one of FIND_KEYS.

Parameters:

schema (dict) – field schema

Return type:

bool

process_row(row)

Process the callbacks for current row.

Parameters:

row (typing.Union[typing.List[dict], dict]) – row to process

Return type:

typing.List[dict]

process_tags_to_add(rows)

Add assets to tracker for adding tags.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

process_tags_to_remove(rows)

Add assets to tracker for removing tags.

Parameters:

rows (typing.Union[typing.List[dict], dict]) – rows to process

Return type:

typing.List[dict]

property schema_to_explode: dict

Get the schema of the field that should be exploded.

property schemas_selected: List[dict]

Get the schemas of the fields that were selected.

set_arg_value(arg, value)

Set an argument value.

Parameters:
start(**kwargs)

Start this callbacks object.

stop(**kwargs)

Stop this callbacks object.

LOG: logging.Logger

logger for this object.

classmethod args_map_export()[source]

Get the export argument names and their defaults for this callbacks object. :rtype: dict

See also

args_map_custom() for the arguments specific to this callback object.

args_map() for the arguments for all callback objects.

open_fd()[source]

Open a file descriptor.

Return type:

typing.IO

open_fd_arg()[source]

Open a file descriptor supplied in GETARGS.

Return type:

typing.IO

property export_full_path: Path

Pass.

open_fd_path()[source]

Open a file descriptor for a path.

Return type:

typing.IO

open_fd_stdout()[source]

Open a file descriptor to STDOUT.

Return type:

typing.IO

close_fd()[source]

Close a file descriptor.

property export_templates: dict

Pass.

property arg_export_fd: Optional[IO]

Pass.

property arg_export_file: Optional[PathLike]

Pass.

property arg_export_path: Path

Pass.

property arg_export_backup: bool

Pass.

property arg_export_overwrite: bool

Pass.

property arg_export_fd_close: bool

Pass.

axonius_api_client.api.asset_callbacks.base.ARG_DESCRIPTIONS: dict = {'csv_dialect': 'For CSV Export: CSV Dialect to use', 'csv_field_flatten': 'For CSV/XLSX Export: Enable flattening of complex fields', 'csv_field_join': 'For CSV/XLSX Export: Enable joining of list fields', 'csv_field_null': 'For CSV/XLSX Export: Enable null values for missing fields', 'csv_key_extras': 'For CSV Export: What to do with extra CSV columns', 'csv_key_miss': 'For CSV Export: Value to use when keys are missing', 'csv_quoting': 'For CSV Export: CSV quoting style', 'custom_cbs': 'Custom callbacks to perform on assets', 'debug_timing': 'Enable logging of time taken for each callback', 'do_echo': 'Echo messages to console', 'expirable_tags': 'Expiration dates for tags', 'explode_entities': 'Split rows into one row for each asset entity', 'export_backup': 'If export_file exists, rename it with the datetime', 'export_fd': 'Export to a file descriptor', 'export_fd_close': 'Close the file descriptor when done', 'export_file': 'File to export data to', 'export_overwrite': 'Overwrite export_file if it exists', 'export_path': 'Directory to export data to', 'export_schema': 'Export schema of fields', 'field_compress': "Shorten field names in output to 'adapter:field'", 'field_excludes': 'Fields to exclude from output', 'field_explode': 'Field to explode', 'field_flatten': 'Flatten complex fields', 'field_join': 'Join list field values', 'field_join_trim': 'Join list field character limit (0 = None)', 'field_join_value': 'Join list field values using', 'field_null': 'Add null values for missing fields', 'field_null_value': 'Null value to use for missing simple fields', 'field_null_value_complex': 'Null value to use for missing complex fields', 'field_replace': 'Field name character replacements', 'field_titles': 'Rename fields to titles', 'include_dates': 'Include history date and current date as a columns in the output', 'json_flat': 'For JSON Export: Use JSONL format', 'page_progress': 'Echo page progress every N assets', 'report_adapters_missing': 'Add Missing Adapters calculation', 'report_software_whitelist': 'Missing Software to calculate', 'table_api_fields': 'For Table export: Include API fields in output', 'table_format': 'For Table export: Table format to use', 'table_max_rows': 'For Table export: Maximum rows to output', 'tags_add': 'Tags to add to assets', 'tags_add_invert_selection': 'Invert selection for tags to add', 'tags_remove': 'Tags to remove from assets', 'tags_remove_invert_selection': 'Invert selection for tags to remove', 'xlsx_cell_format': 'For XLSX Export: Formatting to apply to every cell', 'xlsx_column_length': 'For XLSX export: Length to use for every column'}

Descriptions of all arguments for all callbacks