class_docstr: Record of the AxClient creation event. This can be used for telemetry in settings
  where many AxClients are being created either manually or programatically. In
  order to facilitate easy serialization only include simple types: numbers, strings,
  bools, and None.
class_docstr_tok: ["Record","of","the","AxClient","creation","event",".","This","can","be","used","for","telemetry","in","settings","where","many","AxClients","are","being","created","either","manually","or","programatically",".","In","order","to","facilitate","easy","serialization","only","include","simple","types",":","numbers",",","strings",",","bools",",","and","None","."]
docstr: Flatten into an appropriate format for logging to a tabular database.
docstr_tok: ["Flatten","into","an","appropriate","format","for","logging","to","a","tabular","database","."]
code: def flatten(self) -> Dict[str, Any]:
      """
      Flatten into an appropriate format for logging to a tabular database.
      """
  
      self_dict = asdict(self)
      experiment_created_record_dict = self_dict.pop(
          "experiment_created_record"
      )
      generation_strategy_created_record_dict = self_dict.pop(
          "generation_strategy_created_record"
      )
  
      return {
          **self_dict,
          **experiment_created_record_dict,
          **generation_strategy_created_record_dict,
      }
  
file_path: Ax/ax/telemetry/ax_client.py
imports: from __future__ import annotations
  from dataclasses import asdict, dataclass
  from typing import Any, Dict, Optional
  from ax.service.ax_client import AxClient
  from ax.telemetry.common import _get_max_transformed_dimensionality
  from ax.telemetry.experiment import ExperimentCompletedRecord, ExperimentCreatedRecord
  from ax.telemetry.generation_strategy import GenerationStrategyCreatedRecord
label_desc: Use image node_id 2 for calling the AxClientCreatedRecord obj's underlying member method code with example usage: obj.flatten() and returns: dict