class_docstr: Copy data from Cassandra to Google Cloud Storage in JSON format.
  
  Note: Arrays of arrays are not supported.
  
  :param cql: The CQL to execute on the Cassandra table.
  :param bucket: The bucket to upload to.
  :param filename: The filename to use as the object name when uploading
      to Google Cloud Storage. A {} should be specified in the filename
      to allow the operator to inject file numbers in cases where the
      file is split due to size.
  :param schema_filename: If set, the filename to use as the object name
      when uploading a .json file containing the BigQuery schema fields
      for the table that was dumped from MySQL.
  :param approx_max_file_size_bytes: This operator supports the ability
      to split large table dumps into multiple files (see notes in the
      filename param docs above). This param allows developers to specify the
      file size of the splits. Check https://cloud.google.com/storage/quotas
      to see the maximum allowed file size for a single object.
  :param cassandra_conn_id: Reference to a specific Cassandra hook.
  :param gzip: Option to compress file for upload
  :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud.
  :param impersonation_chain: Optional service account to impersonate using short-term
      credentials, or chained list of accounts required to get the access_token
      of the last account in the list, which will be impersonated in the request.
      If set as a string, the account must grant the originating account
      the Service Account Token Creator IAM role.
      If set as a sequence, the identities from the list must grant
      Service Account Token Creator IAM role to the directly preceding identity, with first
      account from the list granting this role to the originating account (templated).
  :param query_timeout: (Optional) The amount of time, in seconds, used to execute the Cassandra query.
      If not set, the timeout value will be set in Session.execute() by Cassandra driver.
      If set to None, there is no timeout.
  :param encode_uuid: (Optional) Option to encode UUID or not when upload from Cassandra to GCS.
      Default is to encode UUID.
class_docstr_tok: ["Copy","data","from","Cassandra","to","Google","Cloud","Storage","in","JSON","format",".","Note",":","Arrays","of","arrays","are","not","supported",".",":","param","cql",":","The","CQL","to","execute","on","the","Cassandra","table",".",":","param","bucket",":","The","bucket","to","upload","to",".",":","param","filename",":","The","filename","to","use","as","the","object","name","when","uploading","to","Google","Cloud","Storage",".","A","{","}","should","be","specified","in","the","filename","to","allow","the","operator","to","inject","file","numbers","in","cases","where","the","file","is","split","due","to","size",".",":","param","schema_filename",":","If","set",",","the","filename","to","use","as","the","object","name","when","uploading","a",".json","file","containing","the","BigQuery","schema","fields","for","the","table","that","was","dumped","from","MySQL",".",":","param","approx_max_file_size_bytes",":","This","operator","supports","the","ability","to","split","large","table","dumps","into","multiple","files","(","see","notes","in","the","filename","param","docs","above",")",".","This","param","allows","developers","to","specify","the","file","size","of","the","splits",".","Check","https",":","\/\/cloud.google.com\/storage\/quotas","to","see","the","maximum","allowed","file","size","for","a","single","object",".",":","param","cassandra_conn_id",":","Reference","to","a","specific","Cassandra","hook",".",":","param","gzip",":","Option","to","compress","file","for","upload",":","param","gcp_conn_id",":","(","Optional",")","The","connection","ID","used","to","connect","to","Google","Cloud",".",":","param","impersonation_chain",":","Optional","service","account","to","impersonate","using","short-term","credentials",",","or","chained","list","of","accounts","required","to","get","the","access_token","of","the","last","account","in","the","list",",","which","will","be","impersonated","in","the","request",".","If","set","as","a","string",",","the","account","must","grant","the","originating","account","the","Service","Account","Token","Creator","IAM","role",".","If","set","as","a","sequence",",","the","identities","from","the","list","must","grant","Service","Account","Token","Creator","IAM","role","to","the","directly","preceding","identity",",","with","first","account","from","the","list","granting","this","role","to","the","originating","account","(","templated",")",".",":","param","query_timeout",":","(","Optional",")","The","amount","of","time",",","in","seconds",",","used","to","execute","the","Cassandra","query",".","If","not","set",",","the","timeout","value","will","be","set","in","Session.execute","(",")","by","Cassandra","driver",".","If","set","to","None",",","there","is","no","timeout",".",":","param","encode_uuid",":","(","Optional",")","Option","to","encode","UUID","or","not","when","upload","from","Cassandra","to","GCS",".","Default","is","to","encode","UUID","."]
docstr: Converts a user type to RECORD that contains n fields, where n is the number of attributes.
  
  Each element in the user type class will be converted to its corresponding data type in BQ.
docstr_tok: ["Converts","a","user","type","to","RECORD","that","contains","n","fields",",","where","n","is","the","number","of","attributes",".","Each","element","in","the","user","type","class","will","be","converted","to","its","corresponding","data","type","in","BQ","."]
code: def convert_user_type(self, value: Any) -> dict[str, Any]:
      """
      Converts a user type to RECORD that contains n fields, where n is the number of attributes.
  
      Each element in the user type class will be converted to its corresponding data type in BQ.
      """
      names = value._fields
      values = [
          self.convert_value(getattr(value, name)) for name in names
      ]
      return self.generate_data_dict(names, values)
  
imports: from __future__ import annotations
  import json
  from base64 import b64encode
  from datetime import datetime
  from decimal import Decimal
  from tempfile import NamedTemporaryFile
  from typing import TYPE_CHECKING, Any, Iterable, NewType, Sequence
  from uuid import UUID
  from cassandra.util import Date, OrderedMapSerializedKey, SortedSet, Time
  from airflow.exceptions import AirflowException
  from airflow.models import BaseOperator
  from airflow.providers.apache.cassandra.hooks.cassandra import CassandraHook
  from airflow.providers.google.cloud.hooks.gcs import GCSHook
label_desc: Use image node_id 9 for calling the CassandraToGCSOperator obj's underlying member method code with example usage: obj.convert_user_type(value) and returns: self