-
Notifications
You must be signed in to change notification settings - Fork 39
feat: Implement Integration Management Functions #207
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Feature
Add support for all endpoints under projects.locations.instances.integrations:
| Endpoint | Function |
|---|---|
| integrations.create | chronicle.soar.integration.integrations.create_integration |
| integrations.delete | chronicle.soar.integration.integrations.delete_integration |
| integrations.download | chronicle.soar.integration.integrations.download_integration |
| integrations.downloadDependency | chronicle.soar.integration.integrations.download_integration_dependency |
| integrations.exportIntegrationItems | chronicle.soar.integration.integrations.export_integration_items |
| integrations.fetchAffectedItems | chronicle.soar.integration.integrations.get_integration_affected_items |
| integrations.fetchAgentIntegrations | chronicle.soar.integration.integrations.get_agent_integrations |
| integrations.fetchCommercialDiff | chronicle.soar.integration.integrations.get_integration_diff |
| integrations.fetchDependencies | chronicle.soar.integration.integrations.get_integration_dependencies |
| integrations.fetchRestrictedAgents | chronicle.soar.integration.integrations.get_integration_restricted_agents |
| integrations.get | chronicle.soar.integration.integrations.get_integration |
| integrations.getFetchProductionDiff | chronicle.soar.integration.integrations.get_integration_diff(diff_type=DiffType.PRODUCTION) |
| integrations.getFetchStagingDiff | chronicle.soar.integration.integrations.get_integration_diff(diff_type=DiffType.STAGING) |
| integrations.list | chronicle.soar.integration.integrations.list_integrations |
| integrations.pushToProduction | chronicle.soar.integration.integrations.transition_integration(target_mode=TargetMode.PRODUCTION) |
| integrations.pushToStaging | chronicle.soar.integration.integrations.transition_integration(target_mode=TargetMode.STAGING) |
| integrations.actions.create | chronicle.soar.integration.actions.create_integration_action |
| integrations.actions.delete | chronicle.soar.integration.actions.delete_integration_action |
| integrations.actions.executeTest | chronicle.soar.integration.actions.execute_integration_action_test |
| integrations.actions.fetchActionsByEnvironment | chronicle.soar.integration.actions.get_integration_actions_by_environment |
| integrations.actions.fetchTemplate | chronicle.soar.integration.actions.get_integration_action_template |
| integrations.actions.get | chronicle.soar.integration.actions.get_integration_action |
| integrations.actions.list | chronicle.soar.integration.actions.list_integration_actions |
| integrations.actions.patch | chronicle.soar.integration.actions.update_integration_action |
| integrations.actions.revisions.create | chronicle.soar.integration.action_revisions.create_integration_action_revision |
| integrations.actions.revisions.delete | chronicle.soar.integration.action_revisions.delete_integration_action_revision |
| integrations.actions.revisions.list | chronicle.soar.integration.action_revisions.list_integration_action_revisions |
| integrations.actions.revisions.rollback | chronicle.soar.integration.action_revisions.rollback_integration_action_revision |
| integrations.connectors.create | chronicle.soar.integration.connectors.create_integration_connector |
| integrations.connectors.delete | chronicle.soar.integration.connectors.delete_integration_connector |
| integrations.connectors.executeTest | chronicle.soar.integration.connectors.execute_integration_connector_test |
| integrations.connectors.fetchTemplate | chronicle.soar.integration.connectors.get_integration_connector_template |
| integrations.connectors.get | chronicle.soar.integration.connectors.get_integration_connector |
| integrations.connectors.list | chronicle.soar.integration.connectors.list_integration_connectors |
| integrations.connectors.patch | chronicle.soar.integration.connectors.update_integration_connector |
| integrations.connectors.revisions.create | chronicle.soar.integration.connector_revisions.create_integration_connector_revision |
| integrations.connectors.revisions.delete | chronicle.soar.integration.connector_revisions.delete_integration_connector_revision |
| integrations.connectors.revisions.list | chronicle.soar.integration.connector_revisions.list_integration_connector_revisions |
| integrations.connectors.revisions.rollback | chronicle.soar.integration.connector_revisions.rollback_integration_connector_revision |
| integrations.connectors.contextProperties.clearAll | chronicle.soar.integration.connector_context_properties.delete_all_connector_context_properties |
| integrations.connectors.contextProperties.create | chronicle.soar.integration.connector_context_properties.create_connector_context_property |
| integrations.connectors.contextProperties.delete | chronicle.soar.integration.connector_context_properties.delete_connector_context_property |
| integrations.connectors.contextProperties.get | chronicle.soar.integration.connector_context_properties.get_connector_context_property |
| integrations.connectors.contextProperties.list | chronicle.soar.integration.connector_context_properties.list_connector_context_properties |
| integrations.connectors.contextProperties.patch | chronicle.soar.integration.connector_context_properties.update_connector_context_property |
| integrations.connectors.connectorInstances.logs.get | chronicle.soar.integration.connector_instance_logs.get_connector_instance_log |
| integrations.connectors.connectorInstances.logs.list | chronicle.soar.integration.connector_instance_logs.list_connector_instance_logs |
| integrations.connectors.connectorInstances.create | chronicle.soar.integration.connector_instances.create_connector_instance |
| integrations.connectors.connectorInstances.delete | chronicle.soar.integration.connector_instances.delete_connector_instance |
| integrations.connectors.connectorInstances.fetchLatestDefinition | chronicle.soar.integration.connector_instances.get_connector_instance_latest_definition |
| integrations.connectors.connectorInstances.get | chronicle.soar.integration.connector_instances.get_connector_instance |
| integrations.connectors.connectorInstances.list | chronicle.soar.integration.connector_instances.list_connector_instances |
| integrations.connectors.connectorInstances.patch | chronicle.soar.integration.connector_instances.update_connector_instance |
| integrations.connectors.connectorInstances.runOnDemand | chronicle.soar.integration.connector_instances.run_connector_instance_on_demand |
| integrations.connectors.connectorInstances.setLogsCollection | chronicle.soar.integration.connector_instances.set_connector_instance_logs_collection |
| integrations.integrationInstances.create | chronicle.soar.integration.integration_instances.create_integration_instance |
| integrations.integrationInstances.delete | chronicle.soar.integration.integration_instances.delete_integration_instance |
| integrations.integrationInstances.executeTest | chronicle.soar.integration.integration_instances.execute_integration_instance_test |
| integrations.integrationInstances.fetchAffectedItems | chronicle.soar.integration.integration_instances.get_integration_instance_affected_items |
| integrations.integrationInstances.fetchDefaultInstance | chronicle.soar.integration.integration_instances.get_default_integration_instance |
| integrations.integrationInstances.get | chronicle.soar.integration.integration_instances.get_integration_instance |
| integrations.integrationInstances.list | chronicle.soar.integration.integration_instances.list_integration_instances |
| integrations.integrationInstances.patch | chronicle.soar.integration.integration_instances.update_integration_instance |
| integrations.jobs.create | chronicle.soar.integration.jobs.create_integration_job |
| integrations.jobs.delete | chronicle.soar.integration.jobs.delete_integration_job |
| integrations.jobs.executeTest | chronicle.soar.integration.jobs.execute_integration_job_test |
| integrations.jobs.fetchTemplate | chronicle.soar.integration.jobs.get_integration_job_template |
| integrations.jobs.get | chronicle.soar.integration.jobs.get_integration_job |
| integrations.jobs.list | chronicle.soar.integration.jobs.list_integration_jobs |
| integrations.jobs.patch | chronicle.soar.integration.jobs.update_integration_job |
| integrations.managers.create | chronicle.soar.integration.managers.create_integration_manager |
| integrations.managers.delete | chronicle.soar.integration.managers.delete_integration_manager |
| integrations.managers.fetchTemplate | chronicle.soar.integration.managers.get_integration_manager_template |
| integrations.managers.get | chronicle.soar.integration.managers.get_integration_manager |
| integrations.managers.list | chronicle.soar.integration.managers.list_integration_managers |
| integrations.managers.patch | chronicle.soar.integration.managers.update_integration_manager |
| integrations.managers.revisions.create | chronicle.soar.integration.manager_revisions.create_integration_manager_revision |
| integrations.managers.revisions.delete | chronicle.soar.integration.manager_revisions.delete_integration_manager_revision |
| integrations.managers.revisions.get | chronicle.soar.integration.manager_revisions.get_integration_manager_revision |
| integrations.managers.revisions.list | chronicle.soar.integration.manager_revisions.list_integration_manager_revisions |
| integrations.managers.revisions.rollback | chronicle.soar.integration.manager_revisions.rollback_integration_manager_revision |
| integrations.jobs.revisions.create | chronicle.soar.integration.job_revisions.create_integration_job_revision |
| integrations.jobs.revisions.delete | chronicle.soar.integration.job_revisions.delete_integration_job_revision |
| integrations.jobs.revisions.list | chronicle.soar.integration.job_revisions.list_integration_job_revisions |
| integrations.jobs.revisions.rollback | chronicle.soar.integration.job_revisions.rollback_integration_job_revision |
| integrations.jobs.jobInstances.create | chronicle.soar.integration.job_instances.create_integration_job_instance |
| integrations.jobs.jobInstances.delete | chronicle.soar.integration.job_instances.delete_integration_job_instance |
| integrations.jobs.jobInstances.get | chronicle.soar.integration.job_instances.get_integration_job_instance |
| integrations.jobs.jobInstances.list | chronicle.soar.integration.job_instances.list_integration_job_instances |
| integrations.jobs.jobInstances.patch | chronicle.soar.integration.job_instances.update_integration_job_instance |
| integrations.jobs.jobInstances.runOnDemand | chronicle.soar.integration.job_instances.run_integration_job_instance_on_demand |
| integrations.jobs.contextProperties.clearAll | chronicle.soar.integration.job_context_properties.delete_all_job_context_properties |
| integrations.jobs.contextProperties.create | chronicle.soar.integration.job_context_properties.create_job_context_property |
| integrations.jobs.contextProperties.delete | chronicle.soar.integration.job_context_properties.delete_job_context_property |
| integrations.jobs.contextProperties.get | chronicle.soar.integration.job_context_properties.get_job_context_property |
| integrations.jobs.contextProperties.list | chronicle.soar.integration.job_context_properties.list_job_context_properties |
| integrations.jobs.contextProperties.patch | chronicle.soar.integration.job_context_properties.update_job_context_property |
| integrations.jobs.jobInstances.logs.get | chronicle.soar.integration.job_instance_logs.get_job_instance_log |
| integrations.jobs.jobInstances.logs.list | chronicle.soar.integration.job_instance_logs.list_job_instance_logs |
| marketplaceIntegrations.get | chronicle.soar.marketplace_integrations.get_marketplace_integration |
| marketplaceIntegrations.getDiff | chronicle.soar.marketplace_integrations.get_marketplace_integration_diff |
| marketplaceIntegrations.install | chronicle.soar.marketplace_integrations.install_marketplace_integration |
| marketplaceIntegrations.list | chronicle.soar.marketplace_integrations.list_marketplace_integrations |
| marketplaceIntegrations.uninstall | chronicle.soar.marketplace_integrations.uninstall_marketplace_integration |
Architectural Changes
To support this change I am suggesting restructuring the SDK to have a SOARService, which is a namespace under ChronicleClient. The idea is that implementation of SOAR features would live under this namespace:
class SoarService:
"""Namespace for all SOAR-related operations in Google SecOps."""
def __init__(self, client: "ChronicleClient"):
self._client = client
def list_cases(
self,
page_size: Optional[int] = None,
page_token: Optional[str] = None,
**kwargs
) -> Dict[str, Any]:
"""List SOAR cases."""
# Delegate to the underlying implementation, passing the parent client
return _list_cases(self._client, page_size=page_size, page_token=page_token, **kwargs)from secops.chronicle.soar import SoarService
class ChronicleClient:
def __init__(self, project_id: str, customer_id: str, ...):
# ... existing auth and URL setup ...
self._session = session
self.base_url = ...
# Attach the SOAR namespace
self.soar = SoarService(self)And user can access soar method as : chronicle_client.soar.list_integration(args)
This will stop ChronicleClient from becoming sprawling, and will support logical separation of functions as the SDK implements more
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request