4.3.1. Adapters¶
API for working with adapters.
- class axonius_api_client.api.adapters.adapters.Adapters(auth, log_level='debug', **kwargs)[source]¶
Bases:
ModelMixins
API model for working with adapters.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
Get metadata of all adapters:
get()
Get an adapter by name:
get_by_name()
Get the advanced settings for an adapter:
config_get()
Update the advanced settings for an adapter:
config_update()
Upload a file to an adapter:
file_upload()
Work with adapter connections
axonius_api_client.api.adapters.cnx.Cnx
Notes
All methods use the Core instance by default, but you can work with another instance by passing the name of the instance to
node
.Supplying unknown keys/values for configurations will throw an error showing the valid keys/values.
- Parameters:
auth (
axonius_api_client.auth.model.AuthModel
) –log_level (
typing.Union
[int
,str
]) –
- get(get_clients=False)[source]¶
Get all adapters on all nodes.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
.Get all adapters
>>> adapters = client.adapters.get()
Get details of each adapter
>>> for adapter in adapters: ... print(adapter["name"]) # name of adapter ... print(adapter["node_name"]) # name of node adapter is running on
- get_by_name(name, node=None, get_clients=False)[source]¶
Get an adapter by name on a single node.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
.Get an adapter by name
>>> adapter = client.adapters.get_by_name(name="aws")
Get details of adapter
>>> adapter['status'] # overall adapter status 'success' >>> adapter['cnx_count_total'] # total connection count 1 >>> adapter['cnx_count_broken'] # broken connection count 0 >>> adapter['cnx_count_working'] # working connection count 1
Get details of each connection of the adapter
>>> for cnx in adapter["cnx"]: ... print(cnx["working"]) # bool if connection is working or not ... print(cnx["error"]) # error from last fetch attempt ... print(cnx["config"]) # configuration of connection ... print(cnx["id"]) # ID of connection ... print(cnx["uuid"]) # UUID of connection
- Parameters:
- Raises:
NotFoundError – when no node found or when no adapter found on node
- Returns:
adapter metadata
- Return type:
- get_basic_cached()[source]¶
Get basic adapter data cached.
- Return type:
axonius_api_client.api.json_api.adapters.adapters_list_response.AdaptersList
- get_basic()[source]¶
Get basic adapter data.
- Return type:
axonius_api_client.api.json_api.adapters.adapters_list_response.AdaptersList
- get_fetch_history_filters()[source]¶
Get filter values for use in adapters history.
- Return type:
axonius_api_client.api.json_api.adapters.fetch_history_filters_response.AdapterFetchHistoryFilters
- get_fetch_history(generator=False, **kwargs)[source]¶
Get adapter fetch history.
- Parameters:
generator (bool, optional) – Return a generator or a list
**kwargs – passed to
get_fetch_history_generator()
- Returns:
t.Generator or list of history event models
- Return type:
t.Union[HIST_GEN, HIST_LIST]
- get_fetch_history_generator(adapters=None, connection_labels=None, clients=None, instances=None, statuses=None, discoveries=None, exclude_realtime=False, relative_unit_type='day', relative_unit_count=None, absolute_date_start=None, absolute_date_end=None, sort_attribute=None, sort_descending=False, search=None, filter=None, page_sleep=0, page_size=2000, row_start=0, row_stop=None, log_level='debug', history_filters=None, request_obj=None)[source]¶
Get adapter fetch history.
Notes
Use ~ prefix for regex in adapters, connection_labels, clients, instances, statuses
- Parameters:
adapters (t.Optional[PatternLikeListy], optional) – Filter for records with matching adapters
connection_labels (t.Optional[PatternLikeListy], optional) – Filter for records with connection labels
clients (t.Optional[PatternLikeListy], optional) – Filter for records with matching client ids
instances (t.Optional[PatternLikeListy], optional) – Filter for records with matching instances
statuses (t.Optional[PatternLikeListy], optional) – Filter for records with matching statuses
discoveries (t.Optional[PatternLikeListy], optional) – Filter for records with matching discovery IDs
exclude_realtime (bool, optional) – Exclude records for realtime adapters
relative_unit_type (UnitTypes, optional) – Type of unit to use when supplying relative_unit_count
relative_unit_count (Optional[int], optional) – Filter records for the past N units of relative_unit_type
absolute_date_start (Optional[datetime.datetime], optional) – Filter records that are after this date. (overrides relative values)
absolute_date_end (Optional[datetime.datetime], optional) – Filter records that are before this date. (defaults to now if start but no end)
sort_attribute (Optional[str], optional) – Sort records based on this attribute
sort_descending (bool, optional) – Sort sort_attribute descending or ascending
page_sleep (int, optional) – Sleep N seconds between pages
page_size (int, optional) – Get N records per page
row_start (int, optional) – Start at row N
row_stop (Optional[int], optional) – Stop at row N
log_level (t.Union[int, str], optional) – log level to use for paging
history_filters (Optional[AdapterFetchHistoryFilters], optional) – response from
get_fetch_history_filters()
(will be fetched if not supplied)request_obj (Optional[AdapterFetchHistoryRequest], optional) – Request object to use for options
search (
typing.Optional
[str
]) –filter (
typing.Optional
[str
]) –
- Return type:
typing.Generator
[axonius_api_client.api.json_api.adapters.fetch_history_response.AdapterFetchHistory
,None
,None
]
- config_get(name, node=None, config_type='generic')[source]¶
Get the advanced settings for an adapter.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
.Get the generic advanced settings for an adapter
>>> config = client.adapters.config_get(name="aws")
Get the adapter specific advanced settings for an adapter
>>> config = client.adapters.config_get(name="aws", config_type="specific")
Get the discovery advanced settings for an adapter
>>> config = client.adapters.config_get(name="aws", config_type="discovery")
See the current values of a configuration
>>> import pprint >>> pprint.pprint(config['config']) {'connect_client_timeout': 300, 'fetching_timeout': 43200, 'last_fetched_threshold_hours': 48, 'last_seen_prioritized': False, 'last_seen_threshold_hours': 24, 'minimum_time_until_next_fetch': None, 'realtime_adapter': False, 'user_last_fetched_threshold_hours': 48, 'user_last_seen_threshold_hours': None}
Investigate the schema and current values of a configuration
>>> for setting, info in config['schema'].items(): ... current_value = config['config'][setting] ... title = info['title'] ... description = info.get('description') ... print(f"name of setting: {setting}") ... print(f" title of setting in GUI: {title}") ... print(f" description of setting: {description}") ... print(f" current value of setting: {current_value}")
- config_update(name, node=None, config_type='generic', **kwargs)[source]¶
Update the advanced settings for an adapter.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
.Update the generic advanced settings for the adapter
>>> updated_config = client.adapters.config_update( ... name="aws", last_seen_threshold_hours=24 ... )
Update the adapter specific advanced settings
>>> updated_config = client.adapters.config_update( ... name="aws", config_type="specific", fetch_s3=True ... )
- Parameters:
- Returns:
updated configuration for
config_type
- Return type:
- file_upload(name, field_name, file_name, file_content, file_content_type=None, node=None)[source]¶
Upload a file to a specific adapter on a specific node.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
.Upload content as a file for use in a connection later
>>> content = "content of file to upload" >>> file_uuid = client.adapters.file_upload( ... name="aws", ... file_name="name_of_file", ... file_content=content, ... field_name="name_of_field", ... ) >>> file_uuid {'uuid': '5f78b7dee33f0a113700a6fc', 'filename': 'name_of_file'}
- Parameters:
name (
str
) – name of adapter to upload file tonode (
typing.Optional
[str
]) – name of node to upload file tofield_name (
str
) – name of field (should match configuration schema key name)file_name (
str
) – name of file to uploadfile_content (
typing.Union
[str
,bytes
]) – content of file to uploadfile_content_type (
typing.Optional
[str
]) – mime type of file to upload
- Returns:
with keys ‘filename’ and ‘uuid’
- Return type:
- file_upload_path(path, **kwargs)[source]¶
Upload the contents of a file to a specific adapter on a specific node.
Examples
Create a
client
usingaxonius_api_client.connect.Connect
.Upload a file for use in a connection later
>>> file_uuid = client.adapters.file_upload_path(name="aws", path="test.csv") >>> file_uuid {'uuid': '5f78b674e33f0a113700a6fa', 'filename': 'test.csv'}
- Parameters:
path (t.Union[str, pathlib.Path]) – path to file containing contents to upload
**kwargs – passed to
file_upload()
- Returns:
with keys ‘filename’ and ‘uuid’
- Return type:
- _config_update(adapter_name, config_name, config)[source]¶
Private API method to set advanced settings for an adapter.
- Parameters:
adapter_name (str) – raw name of the adapter i.e.
aws_adapter
config_name (str) –
name of advanced settings to set
AdapterBase
for generic advanced settingsAwsSettings
for adapter specific advanced settings (name changes per adapter)DiscoverySchema
for discovery advanced settings
config (dict) – the advanced configuration key value pairs to set
- Returns:
dataclass model containing response
- Return type:
SystemSettings
- _get_basic()[source]¶
Get the basic metadata for all adapters.
- Returns:
dataclass model containing response
- Return type:
AdaptersList
- _config_get(adapter_name)[source]¶
Private API method to set advanced settings for an adapter.
- Parameters:
adapter_name (str) – raw name of the adapter, i.e. ‘aws_adapter’
- Returns:
dataclass model containing response
- Return type:
AdapterSettings
- _file_upload(adapter_name, node_id, field_name, file_name, file_content, file_content_type=None, file_headers=None)[source]¶
Private API method to upload a file to a specific adapter on a specifc node.
- Parameters:
adapter_name (str) – raw name of the adapter i.e.
aws_adapter
node_id (str) – ID of node running adapter
field_name (str) – name of field (should match configuration schema key name)
file_name (str) – name of file to upload
file_content (t.Union[bytes, str]) – content of file to upload
file_content_type (Optional[str], optional) – mime type of file to upload
file_headers (Optional[dict], optional) – headers to use for file
- Returns:
containing filename and uuid keys
- Return type:
- _get_labels()[source]¶
Get labels metadata for all connections.
- Returns:
dataclass model containing response
- Return type:
CnxLabels
- _get_fetch_history_filters()[source]¶
Get filter values for use in adapters history.
- Return type:
axonius_api_client.api.json_api.adapters.fetch_history_filters_response.AdapterFetchHistoryFilters
- _get_fetch_history(request_obj=None)[source]¶
Get adapter fetch history.
- Parameters:
request_obj (
typing.Optional
[axonius_api_client.api.json_api.adapters.fetch_history_request.AdapterFetchHistoryRequest
]) –- Return type:
typing.List
[axonius_api_client.api.json_api.adapters.fetch_history_response.AdapterFetchHistory
]
-
LOG:
logging.Logger
= None¶ Logger for this object.
- __init__(auth, log_level='debug', **kwargs)¶
Mixins for API Models.
- Parameters:
auth (
axonius_api_client.auth.model.AuthModel
) – object to use for auth and sending API requestslog_level (
typing.Union
[int
,str
]) – logging level to use for this objects logger**kwargs – passed to
_init()
- _init_auth(**kwargs)¶
Post init method for subclasses to use for overriding auth setup.
-
auth:
axonius_api_client.auth.model.AuthModel
= None¶ Authentication model with bound Http object to use for requests.
-
http:
axonius_api_client.http.Http
= None¶ Http object to use for requests.