code: def payload(self) -> str:
      blocks = [self.header]
  
      if self.ci_title:
          blocks.append(self.ci_title_section)
  
      if self.n_model_failures > 0 or self.n_additional_failures > 0:
          blocks.append(self.failures)
  
      if self.n_model_failures > 0:
          blocks.append(self.category_failures)
          for block in self.model_failures:
              if block["text"]["text"]:
                  blocks.append(block)
  
      if self.n_additional_failures > 0:
          blocks.append(self.additional_failures)
  
      if self.n_model_failures == 0 and self.n_additional_failures == 0:
          blocks.append(self.no_failures)
  
      if len(self.selected_warnings) > 0:
          blocks.append(self.warnings)
  
      new_failure_blocks = self.get_new_model_failure_blocks(
          with_header=False
      )
      if len(new_failure_blocks) > 0:
          blocks.extend(new_failure_blocks)
  
      return json.dumps(blocks)
  
imports: import ast
  import collections
  import functools
  import json
  import operator
  import os
  import re
  import sys
  import time
  from typing import Dict, List, Optional, Union
  import requests
  from get_ci_error_statistics import get_job_links
  from get_previous_daily_ci import get_last_daily_ci_reports
  from slack_sdk import WebClient
label_desc: Use image node_id 13 for calling the Message obj's underlying member method code with example usage: obj.payload() and returns: json