# Path: tenable_io/api/base.py
# class BaseApi(object):
# 
#     def __init__(self, client):
#         self._client = client
# 
# class BaseRequest(object):
# 
#     def as_payload(self, filter_=None):
#         return payload_filter(self.__dict__, filter_)
# 
# Path: tenable_io/api/models.py
# class AssetsAssetDetails(AssetsAsset):
# 
#     def __init__(
#             self,
#             has_agent=None,
#             last_scan_target=None,
#             tags=None,
#             acr_score=None,
#             acr_drivers=None,
#             exposure_score=None,
#             scan_frequency=None,
#             network_id=None,
#             agent_name=None,
#             azure_vm_id=None,
#             azure_resource_id=None,
#             gcp_project_id=None,
#             gcp_zone=None,
#             gcp_instance_id=None,
#             mcafee_epo_guid=None,
#             mcafee_epo_agent_guid=None,
#             qualys_asset_id=None,
#             qualys_host_id=None,
#             servicenow_sysid=None,
#             installed_software=None,
#             bigfix_asset_id=None,
#     ):
#         self._tags = None
#         self._acr_drivers = None
#         self._scan_frequency = None
# 
#         self.has_agent = has_agent
#         self.last_scan_target = last_scan_target
#         self.tags = tags
#         self.acr_score = acr_score
#         self.acr_drivers = acr_drivers
#         self.exposure_score = exposure_score
#         self.scan_frequency = scan_frequency
#         self.network_id = network_id
#         self.agent_name = agent_name
#         self.azure_vm_id = azure_vm_id
#         self.azure_resource_id = azure_resource_id
#         self.gcp_project_id = gcp_project_id
#         self.gcp_zone = gcp_zone
#         self.gcp_instance_id = gcp_instance_id
#         self.mcafee_epo_guid = mcafee_epo_guid
#         self.mcafee_epo_agent_guid = mcafee_epo_agent_guid
#         self.qualys_asset_id = qualys_asset_id
#         self.qualys_host_id = qualys_host_id
#         self.servicenow_sysid = servicenow_sysid
#         self.installed_software = installed_software
#         self.bigfix_asset_id = bigfix_asset_id
# 
#     @property
#     def tags(self):
#         return self._tags
# 
#     @tags.setter
#     @BaseModel._model_list(AssetTag)
#     def tags(self, tags):
#         self._tags = tags
# 
#     @property
#     def acr_drivers(self):
#         return self._acr_drivers
# 
#     @acr_drivers.setter
#     @BaseModel._model_list(ACRDrivers)
#     def acr_drivers(self, acr_drivers):
#         self._acr_drivers = acr_drivers
# 
#     @property
#     def scan_frequency(self):
#         return self._scan_frequency
# 
#     @scan_frequency.setter
#     @BaseModel._model_list(AssetScanFrequency)
#     def scan_frequency(self, scan_frequency):
#         self._scan_frequency = scan_frequency
# 
# class AssetsAssetList(BaseModel):
# 
#     def __init__(
#             self,
#             assets=None
#     ):
#         self._assets = None
# 
#         self.assets = assets
# 
#     @property
#     def assets(self):
#         return self._assets
# 
#     @assets.setter
#     @BaseModel._model_list(AssetsAsset)
#     def assets(self, assets):
#         self._assets = assets
# 
# class BulkAsset(BaseModel):
# 
#     def __init__(
#             self,
#             response=None,
#     ):
#         self.response = response


from tenable_io.api.base import BaseApi, BaseRequest
from tenable_io.api.models import AssetsAssetDetails, AssetsAssetList, BulkAsset
            targets=None
    ):
        """Request for AssetsApi.bulk_move

        :param source: The UUID of the network currently associated with the assets.
        :param destination: The UUID of the network to associate with the specified assets
        :param targets: The IPv4 addresses of the assets to move. The addresses can be a comma-separated list of values.
        """
        self.source = source
        self.destination = destination
        self.targets = targets
        assert all([self.source, self.destination, self.targets])


class BulkDeleteRequest(BaseRequest):

    def __init__(
            self,
            query=None,
    ):
        """Request for AssetsApi.bulk_delete

        :param query: An object containing the query condition(s) for selecting the assets to delete.
            Note: you can read more about the formatting of this query object in the developer documentation
                  https://developer.tenable.com/reference#assets-bulk-delete
        """
        self.query = query
        assert self.query



# Path: tenable_io/api/base.py
# class BaseApi(object):
# 
#     def __init__(self, client):
#         self._client = client
# 
# class BaseRequest(object):
# 
#     def as_payload(self, filter_=None):
#         return payload_filter(self.__dict__, filter_)
# 
# Path: tenable_io/api/models.py
# class AssetsAssetDetails(AssetsAsset):
# 
#     def __init__(
#             self,
#             has_agent=None,
#             last_scan_target=None,
#             tags=None,
#             acr_score=None,
#             acr_drivers=None,
#             exposure_score=None,
#             scan_frequency=None,
#             network_id=None,
#             agent_name=None,
#             azure_vm_id=None,
#             azure_resource_id=None,
#             gcp_project_id=None,
#             gcp_zone=None,
#             gcp_instance_id=None,
#             mcafee_epo_guid=None,
#             mcafee_epo_agent_guid=None,
#             qualys_asset_id=None,
#             qualys_host_id=None,
#             servicenow_sysid=None,
#             installed_software=None,
#             bigfix_asset_id=None,
#     ):
#         self._tags = None
#         self._acr_drivers = None
#         self._scan_frequency = None
# 
#         self.has_agent = has_agent
#         self.last_scan_target = last_scan_target
#         self.tags = tags
#         self.acr_score = acr_score
#         self.acr_drivers = acr_drivers
#         self.exposure_score = exposure_score
#         self.scan_frequency = scan_frequency
#         self.network_id = network_id
#         self.agent_name = agent_name
#         self.azure_vm_id = azure_vm_id
#         self.azure_resource_id = azure_resource_id
#         self.gcp_project_id = gcp_project_id
#         self.gcp_zone = gcp_zone
#         self.gcp_instance_id = gcp_instance_id
#         self.mcafee_epo_guid = mcafee_epo_guid
#         self.mcafee_epo_agent_guid = mcafee_epo_agent_guid
#         self.qualys_asset_id = qualys_asset_id
#         self.qualys_host_id = qualys_host_id
#         self.servicenow_sysid = servicenow_sysid
#         self.installed_software = installed_software
#         self.bigfix_asset_id = bigfix_asset_id
# 
#     @property
#     def tags(self):
#         return self._tags
# 
#     @tags.setter
#     @BaseModel._model_list(AssetTag)
#     def tags(self, tags):
#         self._tags = tags
# 
#     @property
#     def acr_drivers(self):
#         return self._acr_drivers
# 
#     @acr_drivers.setter
#     @BaseModel._model_list(ACRDrivers)
#     def acr_drivers(self, acr_drivers):
#         self._acr_drivers = acr_drivers
# 
#     @property
#     def scan_frequency(self):
#         return self._scan_frequency
# 
#     @scan_frequency.setter
#     @BaseModel._model_list(AssetScanFrequency)
#     def scan_frequency(self, scan_frequency):
#         self._scan_frequency = scan_frequency
# 
# class AssetsAssetList(BaseModel):
# 
#     def __init__(
#             self,
#             assets=None
#     ):
#         self._assets = None
# 
#         self.assets = assets
# 
#     @property
#     def assets(self):
#         return self._assets
# 
#     @assets.setter
#     @BaseModel._model_list(AssetsAsset)
#     def assets(self, assets):
#         self._assets = assets
# 
# class BulkAsset(BaseModel):
# 
#     def __init__(
#             self,
#             response=None,
#     ):
#         self.response = response


# Path: tenable_io/api/assets.py
from tenable_io.api.base import BaseApi, BaseRequest
from tenable_io.api.models import AssetsAssetDetails, AssetsAssetList, BulkAsset

            targets=None
    ):
        """Request for AssetsApi.bulk_move

        :param source: The UUID of the network currently associated with the assets.
        :param destination: The UUID of the network to associate with the specified assets
        :param targets: The IPv4 addresses of the assets to move. The addresses can be a comma-separated list of values.
        """
        self.source = source
        self.destination = destination
        self.targets = targets
        assert all([self.source, self.destination, self.targets])


class BulkDeleteRequest(BaseRequest):

    def __init__(
            self,
            query=None,
    ):
        """Request for AssetsApi.bulk_delete

        :param query: An object containing the query condition(s) for selecting the assets to delete.
            Note: you can read more about the formatting of this query object in the developer documentation
                  https://developer.tenable.com/reference#assets-bulk-delete
        """
        self.query = query
        assert self.query



class BulkACRRequest(BaseRequest):