def deployment_status_report(event: DeploymentChangeEvent, action_params: ReportParams):
    """
    Collect predefined grafana panels screenshots, after a deployment change.
    The report will be generated in intervals, as configured in the 'delays' parameter.
    When the report is ready, it will be sent to the configured sinks.

    Make sure to set 'grafanaRenderer.enableContainer' to 'true' in the values yaml to use this action.
    """
    if event.operation == K8sOperationType.DELETE:
        return

    if event.operation == K8sOperationType.UPDATE:
        if not has_matching_diff(event, action_params.fields_to_monitor):
            return

    logging.info(f"Scheduling rendering report. deployment: {event.obj.metadata.name} delays: {action_params.delays}")
    event.get_scheduler().schedule_action(
        action_func=report_rendering_task,
        task_id=f"deployment_status_report_{event.obj.metadata.name}_{event.obj.metadata.namespace}",
        scheduling_params=DynamicDelayRepeat(delay_periods=action_params.delays),
        named_sinks=event.named_sinks,
        action_params=action_params,
        replace_existing=True,
        standalone_task=True,
    )

    Collect predefined grafana panels screenshots, after a deployment change.
    The report will be generated in intervals, as configured in the 'delays' parameter.
    When the report is ready, it will be sent to the configured sinks.

    Make sure to set 'grafanaRenderer.enableContainer' to 'true' in the values yaml to use this action.
    
playbooks/robusta_playbooks/deployment_status_report.py