def cli( url: str, key: str, secret: str, tags: str, asset_type: str, export: bool, name_prefix: bool, export_path: Union[str, pathlib.Path], export_prefix: str, import_path: Union[str, pathlib.Path], single_file: bool, ): """Start data gathering.""" tags = tags or "" tags = [x.strip() for x in tags.strip().split(",") if x.strip()] ctx = axonapi.Connect( url=url, key=key, secret=secret, certwarn=False, log_console=True, log_level_console="error", ) ctx.start() api_obj = getattr(ctx, asset_type) if export: do_export( api_obj=api_obj, tags=tags, name_prefix=name_prefix, path=export_path, single_file=single_file, export_prefix=export_prefix, ) else: do_import(api_obj=api_obj, path=import_path)
AX_CLIENT_CERT_BOTH = os.environ.get("AX_CLIENT_CERT_BOTH", None) or None AX_CLIENT_CERT_CERT = os.environ.get("AX_CLIENT_CERT_CERT", None) or None AX_CLIENT_CERT_KEY = os.environ.get("AX_CLIENT_CERT_KEY", None) or None def jdump(obj, **kwargs): """JSON dump utility.""" print(axonapi.tools.json_reload(obj, **kwargs)) ctx = axonapi.Connect( url=AX_URL, key=AX_KEY, secret=AX_SECRET, certwarn=False, cert_client_both=AX_CLIENT_CERT_BOTH, cert_client_cert=AX_CLIENT_CERT_CERT, cert_client_key=AX_CLIENT_CERT_KEY, # log_file=True, # log_level_package="info", # log_level_console="info", # log_level_api="info", # log_level_http="info", # log_console=True, ) ctx.start() devices = ctx.devices now = datetime.utcnow() this_time = now.isoformat(sep=" ", timespec="seconds") last_time = (now - timedelta(days=1)).isoformat(sep=" ", timespec="seconds")
AX_URL = os.environ["AX_URL"] AX_KEY = os.environ["AX_KEY"] AX_SECRET = os.environ["AX_SECRET"] SQ_NAME = os.environ.get("AX_SQ_NAME", "Managed Devices") FORMAT = os.environ.get("AX_FORMAT", "json") def jdump(obj, **kwargs): """JSON dump utility.""" print(axonapi.tools.json_reload(obj, **kwargs)) ctx = axonapi.Connect( url=AX_URL, key=AX_KEY, secret=AX_SECRET, certwarn=False, log_level_console="debug", log_level_api="debug", log_console=True, ) ctx.start() devices = ctx.devices users = ctx.users adapters = ctx.adapters results = devices.get_by_saved_query(name=SQ_NAME) if FORMAT.lower() == "json": export_results = json.dumps(results, indent=4)
AX_CLIENT_CERT_CERT = os.environ.get("AX_CLIENT_CERT_CERT", None) or None AX_CLIENT_CERT_KEY = os.environ.get("AX_CLIENT_CERT_KEY", None) or None def jdump(obj, **kwargs): """JSON dump utility.""" print(axonapi.tools.json_reload(obj, **kwargs)) ctx = axonapi.Connect( url=AX_URL, key=AX_KEY, secret=AX_SECRET, certwarn=False, cert_client_both=AX_CLIENT_CERT_BOTH, cert_client_cert=AX_CLIENT_CERT_CERT, cert_client_key=AX_CLIENT_CERT_KEY, log_level_console="debug", log_level_api="debug", log_level_http="debug", # log_request_attrs=["url", "size", "method"], # log_response_attrs=["status", "size"], # log_request_body=True, # log_response_body=True, # log_console=True, ) ctx.start() devices = ctx.devices users = ctx.users adapters = ctx.adapters enforcements = ctx.enforcements system = ctx.system
# client_args.update(axonapi.get_env_connect(ax_env="/path/to/envfile", override=True)) # --- OR supply them here in the script # client_args["url"] = "10.20.0.94" # client_args["key"] = "" # client_args["secret"] = "" # --- Enable logging # client_args["log_console"] = True # enable logging to console # client_args["log_request_attrs"] = "all" # log all request attributes # client_args["log_request_body"] = True # log all request bodies # client_args["log_response_attrs"] = "all" # log all response attributes # client_args["log_response_body"] = True # log all response bodies # create a client using the url, key, and secret from OS env client = axonapi.Connect(**client_args) j = client.jdump # json dump helper client.start() # connect to axonius # client.activity_logs # get audit logs # client.adapters # get adapters and update adapter settings # client.adapters.cnx # CRUD for adapter connections # client.dashboard # get/start/stop discovery cycles # client.devices # get device assets # client.devices.fields # get field schemas for device assets # client.devices.labels # add/remove/get tags for device assets # client.devices.saved_queries # CRUD for saved queries for device assets # client.enforcements # CRUD for enforcements # client.instances # get instances and instance meta data # client.meta # get product meta data
#!/usr/bin/env python # -*- coding: utf-8 -*- """Base example for setting up the API client.""" import axonius_api_client as axonapi # get the URL, API key, API secret, & certwarn from the default ".env" file client_args = axonapi.get_env_connect() # OR override OS env vars with the values from a custom .env file # client_args = axonapi.get_env_connect(ax_env="/path/to/envfile", override=True) # create a client using the url, key, and secret from OS env client = axonapi.Connect(log_console=True, **client_args) j = client.jdump # json dump helper client.start() # connect to axonius devices = client.devices # work with device assets users = client.users # work with user assets adapters = client.adapters # work with adapters and adapter connections enforcements = client.enforcements # work with enforcements instances = client.instances # work with instances dashboard = client.dashboard # work with dashboards and discovery cycles system_users = client.system_users # work with system users system_roles = client.system_roles # work with system roles meta = client.meta # work with instance meta data settings_global = client.settings_global # work with core system settings settings_gui = client.settings_gui # work with gui system settings settings_lifecycle = client.settings_lifecycle # work with lifecycle system settings