sig
  module UserDefinedFunctionResource :
    sig
      type t = { inlineCode : string; resourceUri : string; }
      val inlineCode :
        (GapiBigqueryV2Model.UserDefinedFunctionResource.t, string)
        GapiLens.t
      val resourceUri :
        (GapiBigqueryV2Model.UserDefinedFunctionResource.t, string)
        GapiLens.t
      val empty : GapiBigqueryV2Model.UserDefinedFunctionResource.t
      val render :
        GapiBigqueryV2Model.UserDefinedFunctionResource.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.UserDefinedFunctionResource.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.UserDefinedFunctionResource.t
      val to_data_model :
        GapiBigqueryV2Model.UserDefinedFunctionResource.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.UserDefinedFunctionResource.t
    end
  module CsvOptions :
    sig
      type t = {
        allowJaggedRows : bool;
        allowQuotedNewlines : bool;
        encoding : string;
        fieldDelimiter : string;
        quote : string;
        skipLeadingRows : int;
      }
      val allowJaggedRows :
        (GapiBigqueryV2Model.CsvOptions.t, bool) GapiLens.t
      val allowQuotedNewlines :
        (GapiBigqueryV2Model.CsvOptions.t, bool) GapiLens.t
      val encoding : (GapiBigqueryV2Model.CsvOptions.t, string) GapiLens.t
      val fieldDelimiter :
        (GapiBigqueryV2Model.CsvOptions.t, string) GapiLens.t
      val quote : (GapiBigqueryV2Model.CsvOptions.t, string) GapiLens.t
      val skipLeadingRows :
        (GapiBigqueryV2Model.CsvOptions.t, int) GapiLens.t
      val empty : GapiBigqueryV2Model.CsvOptions.t
      val render :
        GapiBigqueryV2Model.CsvOptions.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.CsvOptions.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.CsvOptions.t
      val to_data_model :
        GapiBigqueryV2Model.CsvOptions.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.CsvOptions.t
    end
  module TableFieldSchema :
    sig
      type t = {
        description : string;
        fields : GapiBigqueryV2Model.TableFieldSchema.t list;
        mode : string;
        name : string;
        _type : string;
      }
      val description :
        (GapiBigqueryV2Model.TableFieldSchema.t, string) GapiLens.t
      val fields :
        (GapiBigqueryV2Model.TableFieldSchema.t,
         GapiBigqueryV2Model.TableFieldSchema.t list)
        GapiLens.t
      val mode : (GapiBigqueryV2Model.TableFieldSchema.t, string) GapiLens.t
      val name : (GapiBigqueryV2Model.TableFieldSchema.t, string) GapiLens.t
      val _type : (GapiBigqueryV2Model.TableFieldSchema.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.TableFieldSchema.t
      val render :
        GapiBigqueryV2Model.TableFieldSchema.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableFieldSchema.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableFieldSchema.t
      val to_data_model :
        GapiBigqueryV2Model.TableFieldSchema.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableFieldSchema.t
    end
  module TableSchema :
    sig
      type t = { fields : GapiBigqueryV2Model.TableFieldSchema.t list; }
      val fields :
        (GapiBigqueryV2Model.TableSchema.t,
         GapiBigqueryV2Model.TableFieldSchema.t list)
        GapiLens.t
      val empty : GapiBigqueryV2Model.TableSchema.t
      val render :
        GapiBigqueryV2Model.TableSchema.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableSchema.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableSchema.t
      val to_data_model :
        GapiBigqueryV2Model.TableSchema.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableSchema.t
    end
  module ExternalDataConfiguration :
    sig
      type t = {
        compression : string;
        csvOptions : GapiBigqueryV2Model.CsvOptions.t;
        ignoreUnknownValues : bool;
        maxBadRecords : int;
        schema : GapiBigqueryV2Model.TableSchema.t;
        sourceFormat : string;
        sourceUris : string list;
      }
      val compression :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t, string) GapiLens.t
      val csvOptions :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t,
         GapiBigqueryV2Model.CsvOptions.t)
        GapiLens.t
      val ignoreUnknownValues :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t, bool) GapiLens.t
      val maxBadRecords :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t, int) GapiLens.t
      val schema :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t,
         GapiBigqueryV2Model.TableSchema.t)
        GapiLens.t
      val sourceFormat :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t, string) GapiLens.t
      val sourceUris :
        (GapiBigqueryV2Model.ExternalDataConfiguration.t, string list)
        GapiLens.t
      val empty : GapiBigqueryV2Model.ExternalDataConfiguration.t
      val render :
        GapiBigqueryV2Model.ExternalDataConfiguration.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ExternalDataConfiguration.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.ExternalDataConfiguration.t
      val to_data_model :
        GapiBigqueryV2Model.ExternalDataConfiguration.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.ExternalDataConfiguration.t
    end
  module DatasetReference :
    sig
      type t = { datasetId : string; projectId : string; }
      val datasetId :
        (GapiBigqueryV2Model.DatasetReference.t, string) GapiLens.t
      val projectId :
        (GapiBigqueryV2Model.DatasetReference.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.DatasetReference.t
      val render :
        GapiBigqueryV2Model.DatasetReference.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.DatasetReference.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.DatasetReference.t
      val to_data_model :
        GapiBigqueryV2Model.DatasetReference.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.DatasetReference.t
    end
  module TableReference :
    sig
      type t = { datasetId : string; projectId : string; tableId : string; }
      val datasetId :
        (GapiBigqueryV2Model.TableReference.t, string) GapiLens.t
      val projectId :
        (GapiBigqueryV2Model.TableReference.t, string) GapiLens.t
      val tableId : (GapiBigqueryV2Model.TableReference.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.TableReference.t
      val render :
        GapiBigqueryV2Model.TableReference.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableReference.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableReference.t
      val to_data_model :
        GapiBigqueryV2Model.TableReference.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableReference.t
    end
  module JobConfigurationQuery :
    sig
      type t = {
        allowLargeResults : bool;
        createDisposition : string;
        defaultDataset : GapiBigqueryV2Model.DatasetReference.t;
        destinationTable : GapiBigqueryV2Model.TableReference.t;
        flattenResults : bool;
        preserveNulls : bool;
        priority : string;
        query : string;
        tableDefinitions :
          (string * GapiBigqueryV2Model.ExternalDataConfiguration.t) list;
        useQueryCache : bool;
        userDefinedFunctionResources :
          GapiBigqueryV2Model.UserDefinedFunctionResource.t list;
        writeDisposition : string;
      }
      val allowLargeResults :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, bool) GapiLens.t
      val createDisposition :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, string) GapiLens.t
      val defaultDataset :
        (GapiBigqueryV2Model.JobConfigurationQuery.t,
         GapiBigqueryV2Model.DatasetReference.t)
        GapiLens.t
      val destinationTable :
        (GapiBigqueryV2Model.JobConfigurationQuery.t,
         GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val flattenResults :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, bool) GapiLens.t
      val preserveNulls :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, bool) GapiLens.t
      val priority :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, string) GapiLens.t
      val query :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, string) GapiLens.t
      val tableDefinitions :
        (GapiBigqueryV2Model.JobConfigurationQuery.t,
         (string * GapiBigqueryV2Model.ExternalDataConfiguration.t) list)
        GapiLens.t
      val useQueryCache :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, bool) GapiLens.t
      val userDefinedFunctionResources :
        (GapiBigqueryV2Model.JobConfigurationQuery.t,
         GapiBigqueryV2Model.UserDefinedFunctionResource.t list)
        GapiLens.t
      val writeDisposition :
        (GapiBigqueryV2Model.JobConfigurationQuery.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobConfigurationQuery.t
      val render :
        GapiBigqueryV2Model.JobConfigurationQuery.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobConfigurationQuery.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationQuery.t
      val to_data_model :
        GapiBigqueryV2Model.JobConfigurationQuery.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationQuery.t
    end
  module ErrorProto :
    sig
      type t = {
        debugInfo : string;
        location : string;
        message : string;
        reason : string;
      }
      val debugInfo : (GapiBigqueryV2Model.ErrorProto.t, string) GapiLens.t
      val location : (GapiBigqueryV2Model.ErrorProto.t, string) GapiLens.t
      val message : (GapiBigqueryV2Model.ErrorProto.t, string) GapiLens.t
      val reason : (GapiBigqueryV2Model.ErrorProto.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.ErrorProto.t
      val render :
        GapiBigqueryV2Model.ErrorProto.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ErrorProto.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.ErrorProto.t
      val to_data_model :
        GapiBigqueryV2Model.ErrorProto.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.ErrorProto.t
    end
  module JobStatus :
    sig
      type t = {
        errorResult : GapiBigqueryV2Model.ErrorProto.t;
        errors : GapiBigqueryV2Model.ErrorProto.t list;
        state : string;
      }
      val errorResult :
        (GapiBigqueryV2Model.JobStatus.t, GapiBigqueryV2Model.ErrorProto.t)
        GapiLens.t
      val errors :
        (GapiBigqueryV2Model.JobStatus.t,
         GapiBigqueryV2Model.ErrorProto.t list)
        GapiLens.t
      val state : (GapiBigqueryV2Model.JobStatus.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobStatus.t
      val render :
        GapiBigqueryV2Model.JobStatus.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobStatus.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatus.t
      val to_data_model :
        GapiBigqueryV2Model.JobStatus.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatus.t
    end
  module JobStatistics3 :
    sig
      type t = {
        inputFileBytes : int64;
        inputFiles : int64;
        outputBytes : int64;
        outputRows : int64;
      }
      val inputFileBytes :
        (GapiBigqueryV2Model.JobStatistics3.t, int64) GapiLens.t
      val inputFiles :
        (GapiBigqueryV2Model.JobStatistics3.t, int64) GapiLens.t
      val outputBytes :
        (GapiBigqueryV2Model.JobStatistics3.t, int64) GapiLens.t
      val outputRows :
        (GapiBigqueryV2Model.JobStatistics3.t, int64) GapiLens.t
      val empty : GapiBigqueryV2Model.JobStatistics3.t
      val render :
        GapiBigqueryV2Model.JobStatistics3.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobStatistics3.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics3.t
      val to_data_model :
        GapiBigqueryV2Model.JobStatistics3.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics3.t
    end
  module JobStatistics4 :
    sig
      type t = { destinationUriFileCounts : int64 list; }
      val destinationUriFileCounts :
        (GapiBigqueryV2Model.JobStatistics4.t, int64 list) GapiLens.t
      val empty : GapiBigqueryV2Model.JobStatistics4.t
      val render :
        GapiBigqueryV2Model.JobStatistics4.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobStatistics4.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics4.t
      val to_data_model :
        GapiBigqueryV2Model.JobStatistics4.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics4.t
    end
  module ExplainQueryStep :
    sig
      type t = { kind : string; substeps : string list; }
      val kind : (GapiBigqueryV2Model.ExplainQueryStep.t, string) GapiLens.t
      val substeps :
        (GapiBigqueryV2Model.ExplainQueryStep.t, string list) GapiLens.t
      val empty : GapiBigqueryV2Model.ExplainQueryStep.t
      val render :
        GapiBigqueryV2Model.ExplainQueryStep.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ExplainQueryStep.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.ExplainQueryStep.t
      val to_data_model :
        GapiBigqueryV2Model.ExplainQueryStep.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.ExplainQueryStep.t
    end
  module ExplainQueryStage :
    sig
      type t = {
        computeRatioAvg : float;
        computeRatioMax : float;
        id : int64;
        name : string;
        readRatioAvg : float;
        readRatioMax : float;
        recordsRead : int64;
        recordsWritten : int64;
        steps : GapiBigqueryV2Model.ExplainQueryStep.t list;
        waitRatioAvg : float;
        waitRatioMax : float;
        writeRatioAvg : float;
        writeRatioMax : float;
      }
      val computeRatioAvg :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val computeRatioMax :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val id : (GapiBigqueryV2Model.ExplainQueryStage.t, int64) GapiLens.t
      val name : (GapiBigqueryV2Model.ExplainQueryStage.t, string) GapiLens.t
      val readRatioAvg :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val readRatioMax :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val recordsRead :
        (GapiBigqueryV2Model.ExplainQueryStage.t, int64) GapiLens.t
      val recordsWritten :
        (GapiBigqueryV2Model.ExplainQueryStage.t, int64) GapiLens.t
      val steps :
        (GapiBigqueryV2Model.ExplainQueryStage.t,
         GapiBigqueryV2Model.ExplainQueryStep.t list)
        GapiLens.t
      val waitRatioAvg :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val waitRatioMax :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val writeRatioAvg :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val writeRatioMax :
        (GapiBigqueryV2Model.ExplainQueryStage.t, float) GapiLens.t
      val empty : GapiBigqueryV2Model.ExplainQueryStage.t
      val render :
        GapiBigqueryV2Model.ExplainQueryStage.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ExplainQueryStage.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.ExplainQueryStage.t
      val to_data_model :
        GapiBigqueryV2Model.ExplainQueryStage.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.ExplainQueryStage.t
    end
  module JobStatistics2 :
    sig
      type t = {
        billingTier : int;
        cacheHit : bool;
        queryPlan : GapiBigqueryV2Model.ExplainQueryStage.t list;
        totalBytesBilled : int64;
        totalBytesProcessed : int64;
      }
      val billingTier :
        (GapiBigqueryV2Model.JobStatistics2.t, int) GapiLens.t
      val cacheHit : (GapiBigqueryV2Model.JobStatistics2.t, bool) GapiLens.t
      val queryPlan :
        (GapiBigqueryV2Model.JobStatistics2.t,
         GapiBigqueryV2Model.ExplainQueryStage.t list)
        GapiLens.t
      val totalBytesBilled :
        (GapiBigqueryV2Model.JobStatistics2.t, int64) GapiLens.t
      val totalBytesProcessed :
        (GapiBigqueryV2Model.JobStatistics2.t, int64) GapiLens.t
      val empty : GapiBigqueryV2Model.JobStatistics2.t
      val render :
        GapiBigqueryV2Model.JobStatistics2.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobStatistics2.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics2.t
      val to_data_model :
        GapiBigqueryV2Model.JobStatistics2.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics2.t
    end
  module JobStatistics :
    sig
      type t = {
        creationTime : int64;
        endTime : int64;
        extract : GapiBigqueryV2Model.JobStatistics4.t;
        load : GapiBigqueryV2Model.JobStatistics3.t;
        query : GapiBigqueryV2Model.JobStatistics2.t;
        startTime : int64;
        totalBytesProcessed : int64;
      }
      val creationTime :
        (GapiBigqueryV2Model.JobStatistics.t, int64) GapiLens.t
      val endTime : (GapiBigqueryV2Model.JobStatistics.t, int64) GapiLens.t
      val extract :
        (GapiBigqueryV2Model.JobStatistics.t,
         GapiBigqueryV2Model.JobStatistics4.t)
        GapiLens.t
      val load :
        (GapiBigqueryV2Model.JobStatistics.t,
         GapiBigqueryV2Model.JobStatistics3.t)
        GapiLens.t
      val query :
        (GapiBigqueryV2Model.JobStatistics.t,
         GapiBigqueryV2Model.JobStatistics2.t)
        GapiLens.t
      val startTime : (GapiBigqueryV2Model.JobStatistics.t, int64) GapiLens.t
      val totalBytesProcessed :
        (GapiBigqueryV2Model.JobStatistics.t, int64) GapiLens.t
      val empty : GapiBigqueryV2Model.JobStatistics.t
      val render :
        GapiBigqueryV2Model.JobStatistics.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobStatistics.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics.t
      val to_data_model :
        GapiBigqueryV2Model.JobStatistics.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobStatistics.t
    end
  module ProjectReference :
    sig
      type t = { projectId : string; }
      val projectId :
        (GapiBigqueryV2Model.ProjectReference.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.ProjectReference.t
      val render :
        GapiBigqueryV2Model.ProjectReference.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ProjectReference.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.ProjectReference.t
      val to_data_model :
        GapiBigqueryV2Model.ProjectReference.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.ProjectReference.t
    end
  module JobConfigurationExtract :
    sig
      type t = {
        compression : string;
        destinationFormat : string;
        destinationUri : string;
        destinationUris : string list;
        fieldDelimiter : string;
        printHeader : bool;
        sourceTable : GapiBigqueryV2Model.TableReference.t;
      }
      val compression :
        (GapiBigqueryV2Model.JobConfigurationExtract.t, string) GapiLens.t
      val destinationFormat :
        (GapiBigqueryV2Model.JobConfigurationExtract.t, string) GapiLens.t
      val destinationUri :
        (GapiBigqueryV2Model.JobConfigurationExtract.t, string) GapiLens.t
      val destinationUris :
        (GapiBigqueryV2Model.JobConfigurationExtract.t, string list)
        GapiLens.t
      val fieldDelimiter :
        (GapiBigqueryV2Model.JobConfigurationExtract.t, string) GapiLens.t
      val printHeader :
        (GapiBigqueryV2Model.JobConfigurationExtract.t, bool) GapiLens.t
      val sourceTable :
        (GapiBigqueryV2Model.JobConfigurationExtract.t,
         GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val empty : GapiBigqueryV2Model.JobConfigurationExtract.t
      val render :
        GapiBigqueryV2Model.JobConfigurationExtract.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobConfigurationExtract.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationExtract.t
      val to_data_model :
        GapiBigqueryV2Model.JobConfigurationExtract.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationExtract.t
    end
  module TableCell :
    sig
      type t = { v : string; }
      val v : (GapiBigqueryV2Model.TableCell.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.TableCell.t
      val render :
        GapiBigqueryV2Model.TableCell.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableCell.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableCell.t
      val to_data_model :
        GapiBigqueryV2Model.TableCell.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableCell.t
    end
  module TableRow :
    sig
      type t = { f : GapiBigqueryV2Model.TableCell.t list; }
      val f :
        (GapiBigqueryV2Model.TableRow.t,
         GapiBigqueryV2Model.TableCell.t list)
        GapiLens.t
      val empty : GapiBigqueryV2Model.TableRow.t
      val render :
        GapiBigqueryV2Model.TableRow.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableRow.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableRow.t
      val to_data_model :
        GapiBigqueryV2Model.TableRow.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableRow.t
    end
  module TableDataList :
    sig
      type t = {
        etag : string;
        kind : string;
        pageToken : string;
        rows : GapiBigqueryV2Model.TableRow.t list;
        totalRows : int64;
      }
      val etag : (GapiBigqueryV2Model.TableDataList.t, string) GapiLens.t
      val kind : (GapiBigqueryV2Model.TableDataList.t, string) GapiLens.t
      val pageToken :
        (GapiBigqueryV2Model.TableDataList.t, string) GapiLens.t
      val rows :
        (GapiBigqueryV2Model.TableDataList.t,
         GapiBigqueryV2Model.TableRow.t list)
        GapiLens.t
      val totalRows : (GapiBigqueryV2Model.TableDataList.t, int64) GapiLens.t
      val empty : GapiBigqueryV2Model.TableDataList.t
      val render :
        GapiBigqueryV2Model.TableDataList.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableDataList.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableDataList.t
      val to_data_model :
        GapiBigqueryV2Model.TableDataList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableDataList.t
    end
  module JobReference :
    sig
      type t = { jobId : string; projectId : string; }
      val jobId : (GapiBigqueryV2Model.JobReference.t, string) GapiLens.t
      val projectId : (GapiBigqueryV2Model.JobReference.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobReference.t
      val render :
        GapiBigqueryV2Model.JobReference.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobReference.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobReference.t
      val to_data_model :
        GapiBigqueryV2Model.JobReference.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobReference.t
    end
  module QueryResponse :
    sig
      type t = {
        cacheHit : bool;
        errors : GapiBigqueryV2Model.ErrorProto.t list;
        jobComplete : bool;
        jobReference : GapiBigqueryV2Model.JobReference.t;
        kind : string;
        pageToken : string;
        rows : GapiBigqueryV2Model.TableRow.t list;
        schema : GapiBigqueryV2Model.TableSchema.t;
        totalBytesProcessed : int64;
        totalRows : string;
      }
      val cacheHit : (GapiBigqueryV2Model.QueryResponse.t, bool) GapiLens.t
      val errors :
        (GapiBigqueryV2Model.QueryResponse.t,
         GapiBigqueryV2Model.ErrorProto.t list)
        GapiLens.t
      val jobComplete :
        (GapiBigqueryV2Model.QueryResponse.t, bool) GapiLens.t
      val jobReference :
        (GapiBigqueryV2Model.QueryResponse.t,
         GapiBigqueryV2Model.JobReference.t)
        GapiLens.t
      val kind : (GapiBigqueryV2Model.QueryResponse.t, string) GapiLens.t
      val pageToken :
        (GapiBigqueryV2Model.QueryResponse.t, string) GapiLens.t
      val rows :
        (GapiBigqueryV2Model.QueryResponse.t,
         GapiBigqueryV2Model.TableRow.t list)
        GapiLens.t
      val schema :
        (GapiBigqueryV2Model.QueryResponse.t,
         GapiBigqueryV2Model.TableSchema.t)
        GapiLens.t
      val totalBytesProcessed :
        (GapiBigqueryV2Model.QueryResponse.t, int64) GapiLens.t
      val totalRows :
        (GapiBigqueryV2Model.QueryResponse.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.QueryResponse.t
      val render :
        GapiBigqueryV2Model.QueryResponse.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.QueryResponse.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.QueryResponse.t
      val to_data_model :
        GapiBigqueryV2Model.QueryResponse.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.QueryResponse.t
    end
  module TableList :
    sig
      module Tables :
        sig
          type t = {
            friendlyName : string;
            id : string;
            kind : string;
            tableReference : GapiBigqueryV2Model.TableReference.t;
            _type : string;
          }
          val friendlyName :
            (GapiBigqueryV2Model.TableList.Tables.t, string) GapiLens.t
          val id :
            (GapiBigqueryV2Model.TableList.Tables.t, string) GapiLens.t
          val kind :
            (GapiBigqueryV2Model.TableList.Tables.t, string) GapiLens.t
          val tableReference :
            (GapiBigqueryV2Model.TableList.Tables.t,
             GapiBigqueryV2Model.TableReference.t)
            GapiLens.t
          val _type :
            (GapiBigqueryV2Model.TableList.Tables.t, string) GapiLens.t
          val empty : GapiBigqueryV2Model.TableList.Tables.t
          val render :
            GapiBigqueryV2Model.TableList.Tables.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.TableList.Tables.t ->
            GapiJson.json_data_model ->
            GapiBigqueryV2Model.TableList.Tables.t
        end
      type t = {
        etag : string;
        kind : string;
        nextPageToken : string;
        tables : GapiBigqueryV2Model.TableList.Tables.t list;
        totalItems : int;
      }
      val etag : (GapiBigqueryV2Model.TableList.t, string) GapiLens.t
      val kind : (GapiBigqueryV2Model.TableList.t, string) GapiLens.t
      val nextPageToken :
        (GapiBigqueryV2Model.TableList.t, string) GapiLens.t
      val tables :
        (GapiBigqueryV2Model.TableList.t,
         GapiBigqueryV2Model.TableList.Tables.t list)
        GapiLens.t
      val totalItems : (GapiBigqueryV2Model.TableList.t, int) GapiLens.t
      val empty : GapiBigqueryV2Model.TableList.t
      val render :
        GapiBigqueryV2Model.TableList.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableList.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableList.t
      val to_data_model :
        GapiBigqueryV2Model.TableList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.TableList.t
    end
  module GetQueryResultsResponse :
    sig
      type t = {
        cacheHit : bool;
        errors : GapiBigqueryV2Model.ErrorProto.t list;
        etag : string;
        jobComplete : bool;
        jobReference : GapiBigqueryV2Model.JobReference.t;
        kind : string;
        pageToken : string;
        rows : GapiBigqueryV2Model.TableRow.t list;
        schema : GapiBigqueryV2Model.TableSchema.t;
        totalBytesProcessed : int64;
        totalRows : string;
      }
      val cacheHit :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, bool) GapiLens.t
      val errors :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t,
         GapiBigqueryV2Model.ErrorProto.t list)
        GapiLens.t
      val etag :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, string) GapiLens.t
      val jobComplete :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, bool) GapiLens.t
      val jobReference :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t,
         GapiBigqueryV2Model.JobReference.t)
        GapiLens.t
      val kind :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, string) GapiLens.t
      val pageToken :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, string) GapiLens.t
      val rows :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t,
         GapiBigqueryV2Model.TableRow.t list)
        GapiLens.t
      val schema :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t,
         GapiBigqueryV2Model.TableSchema.t)
        GapiLens.t
      val totalBytesProcessed :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, int64) GapiLens.t
      val totalRows :
        (GapiBigqueryV2Model.GetQueryResultsResponse.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.GetQueryResultsResponse.t
      val render :
        GapiBigqueryV2Model.GetQueryResultsResponse.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.GetQueryResultsResponse.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.GetQueryResultsResponse.t
      val to_data_model :
        GapiBigqueryV2Model.GetQueryResultsResponse.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.GetQueryResultsResponse.t
    end
  module JobConfigurationLink :
    sig
      type t = {
        createDisposition : string;
        destinationTable : GapiBigqueryV2Model.TableReference.t;
        sourceUri : string list;
        writeDisposition : string;
      }
      val createDisposition :
        (GapiBigqueryV2Model.JobConfigurationLink.t, string) GapiLens.t
      val destinationTable :
        (GapiBigqueryV2Model.JobConfigurationLink.t,
         GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val sourceUri :
        (GapiBigqueryV2Model.JobConfigurationLink.t, string list) GapiLens.t
      val writeDisposition :
        (GapiBigqueryV2Model.JobConfigurationLink.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobConfigurationLink.t
      val render :
        GapiBigqueryV2Model.JobConfigurationLink.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobConfigurationLink.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationLink.t
      val to_data_model :
        GapiBigqueryV2Model.JobConfigurationLink.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationLink.t
    end
  module JsonValue :
    sig
      external length : string -> int = "%string_length"
      external get : string -> int -> char = "%string_safe_get"
      external set : bytes -> int -> char -> unit = "%string_safe_set"
      external create : int -> bytes = "caml_create_string"
      val make : int -> char -> string
      val init : int -> (int -> char) -> string
      val copy : string -> string
      val sub : string -> int -> int -> string
      val fill : bytes -> int -> int -> char -> unit
      val blit : string -> int -> bytes -> int -> int -> unit
      val concat : string -> string list -> string
      val iter : (char -> unit) -> string -> unit
      val iteri : (int -> char -> unit) -> string -> unit
      val map : (char -> char) -> string -> string
      val mapi : (int -> char -> char) -> string -> string
      val trim : string -> string
      val escaped : string -> string
      val index : string -> char -> int
      val index_opt : string -> char -> int option
      val rindex : string -> char -> int
      val rindex_opt : string -> char -> int option
      val index_from : string -> int -> char -> int
      val index_from_opt : string -> int -> char -> int option
      val rindex_from : string -> int -> char -> int
      val rindex_from_opt : string -> int -> char -> int option
      val contains : string -> char -> bool
      val contains_from : string -> int -> char -> bool
      val rcontains_from : string -> int -> char -> bool
      val uppercase : string -> string
      val lowercase : string -> string
      val capitalize : string -> string
      val uncapitalize : string -> string
      val uppercase_ascii : string -> string
      val lowercase_ascii : string -> string
      val capitalize_ascii : string -> string
      val uncapitalize_ascii : string -> string
      type t = string
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val split_on_char : char -> string -> string list
      external unsafe_get : string -> int -> char = "%string_unsafe_get"
      external unsafe_set : bytes -> int -> char -> unit
        = "%string_unsafe_set"
      external unsafe_blit : string -> int -> bytes -> int -> int -> unit
        = "caml_blit_string" [@@noalloc]
      external unsafe_fill : bytes -> int -> int -> char -> unit
        = "caml_fill_string" [@@noalloc]
    end
  module JsonObject :
    sig
      type t = (string * string) list
      val empty : t
      val render : t -> GapiJson.json_data_model list
      val render_content : t -> GapiJson.json_data_model list list
      val parse : t -> GapiJson.json_data_model -> t
      val to_data_model : t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> t
    end
  module JobConfigurationLoad :
    sig
      type t = {
        allowJaggedRows : bool;
        allowQuotedNewlines : bool;
        createDisposition : string;
        destinationTable : GapiBigqueryV2Model.TableReference.t;
        encoding : string;
        fieldDelimiter : string;
        ignoreUnknownValues : bool;
        maxBadRecords : int;
        projectionFields : string list;
        quote : string;
        schema : GapiBigqueryV2Model.TableSchema.t;
        schemaInline : string;
        schemaInlineFormat : string;
        skipLeadingRows : int;
        sourceFormat : string;
        sourceUris : string list;
        writeDisposition : string;
      }
      val allowJaggedRows :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, bool) GapiLens.t
      val allowQuotedNewlines :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, bool) GapiLens.t
      val createDisposition :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val destinationTable :
        (GapiBigqueryV2Model.JobConfigurationLoad.t,
         GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val encoding :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val fieldDelimiter :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val ignoreUnknownValues :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, bool) GapiLens.t
      val maxBadRecords :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, int) GapiLens.t
      val projectionFields :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string list) GapiLens.t
      val quote :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val schema :
        (GapiBigqueryV2Model.JobConfigurationLoad.t,
         GapiBigqueryV2Model.TableSchema.t)
        GapiLens.t
      val schemaInline :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val schemaInlineFormat :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val skipLeadingRows :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, int) GapiLens.t
      val sourceFormat :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val sourceUris :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string list) GapiLens.t
      val writeDisposition :
        (GapiBigqueryV2Model.JobConfigurationLoad.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobConfigurationLoad.t
      val render :
        GapiBigqueryV2Model.JobConfigurationLoad.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobConfigurationLoad.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationLoad.t
      val to_data_model :
        GapiBigqueryV2Model.JobConfigurationLoad.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationLoad.t
    end
  module JobConfigurationTableCopy :
    sig
      type t = {
        createDisposition : string;
        destinationTable : GapiBigqueryV2Model.TableReference.t;
        sourceTable : GapiBigqueryV2Model.TableReference.t;
        sourceTables : GapiBigqueryV2Model.TableReference.t list;
        writeDisposition : string;
      }
      val createDisposition :
        (GapiBigqueryV2Model.JobConfigurationTableCopy.t, string) GapiLens.t
      val destinationTable :
        (GapiBigqueryV2Model.JobConfigurationTableCopy.t,
         GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val sourceTable :
        (GapiBigqueryV2Model.JobConfigurationTableCopy.t,
         GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val sourceTables :
        (GapiBigqueryV2Model.JobConfigurationTableCopy.t,
         GapiBigqueryV2Model.TableReference.t list)
        GapiLens.t
      val writeDisposition :
        (GapiBigqueryV2Model.JobConfigurationTableCopy.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobConfigurationTableCopy.t
      val render :
        GapiBigqueryV2Model.JobConfigurationTableCopy.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobConfigurationTableCopy.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationTableCopy.t
      val to_data_model :
        GapiBigqueryV2Model.JobConfigurationTableCopy.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.JobConfigurationTableCopy.t
    end
  module JobConfiguration :
    sig
      type t = {
        copy : GapiBigqueryV2Model.JobConfigurationTableCopy.t;
        dryRun : bool;
        extract : GapiBigqueryV2Model.JobConfigurationExtract.t;
        link : GapiBigqueryV2Model.JobConfigurationLink.t;
        load : GapiBigqueryV2Model.JobConfigurationLoad.t;
        query : GapiBigqueryV2Model.JobConfigurationQuery.t;
      }
      val copy :
        (GapiBigqueryV2Model.JobConfiguration.t,
         GapiBigqueryV2Model.JobConfigurationTableCopy.t)
        GapiLens.t
      val dryRun : (GapiBigqueryV2Model.JobConfiguration.t, bool) GapiLens.t
      val extract :
        (GapiBigqueryV2Model.JobConfiguration.t,
         GapiBigqueryV2Model.JobConfigurationExtract.t)
        GapiLens.t
      val link :
        (GapiBigqueryV2Model.JobConfiguration.t,
         GapiBigqueryV2Model.JobConfigurationLink.t)
        GapiLens.t
      val load :
        (GapiBigqueryV2Model.JobConfiguration.t,
         GapiBigqueryV2Model.JobConfigurationLoad.t)
        GapiLens.t
      val query :
        (GapiBigqueryV2Model.JobConfiguration.t,
         GapiBigqueryV2Model.JobConfigurationQuery.t)
        GapiLens.t
      val empty : GapiBigqueryV2Model.JobConfiguration.t
      val render :
        GapiBigqueryV2Model.JobConfiguration.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobConfiguration.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobConfiguration.t
      val to_data_model :
        GapiBigqueryV2Model.JobConfiguration.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobConfiguration.t
    end
  module JobList :
    sig
      module Jobs :
        sig
          type t = {
            configuration : GapiBigqueryV2Model.JobConfiguration.t;
            errorResult : GapiBigqueryV2Model.ErrorProto.t;
            id : string;
            jobReference : GapiBigqueryV2Model.JobReference.t;
            kind : string;
            state : string;
            statistics : GapiBigqueryV2Model.JobStatistics.t;
            status : GapiBigqueryV2Model.JobStatus.t;
            user_email : string;
          }
          val configuration :
            (GapiBigqueryV2Model.JobList.Jobs.t,
             GapiBigqueryV2Model.JobConfiguration.t)
            GapiLens.t
          val errorResult :
            (GapiBigqueryV2Model.JobList.Jobs.t,
             GapiBigqueryV2Model.ErrorProto.t)
            GapiLens.t
          val id : (GapiBigqueryV2Model.JobList.Jobs.t, string) GapiLens.t
          val jobReference :
            (GapiBigqueryV2Model.JobList.Jobs.t,
             GapiBigqueryV2Model.JobReference.t)
            GapiLens.t
          val kind : (GapiBigqueryV2Model.JobList.Jobs.t, string) GapiLens.t
          val state : (GapiBigqueryV2Model.JobList.Jobs.t, string) GapiLens.t
          val statistics :
            (GapiBigqueryV2Model.JobList.Jobs.t,
             GapiBigqueryV2Model.JobStatistics.t)
            GapiLens.t
          val status :
            (GapiBigqueryV2Model.JobList.Jobs.t,
             GapiBigqueryV2Model.JobStatus.t)
            GapiLens.t
          val user_email :
            (GapiBigqueryV2Model.JobList.Jobs.t, string) GapiLens.t
          val empty : GapiBigqueryV2Model.JobList.Jobs.t
          val render :
            GapiBigqueryV2Model.JobList.Jobs.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.JobList.Jobs.t ->
            GapiJson.json_data_model -> GapiBigqueryV2Model.JobList.Jobs.t
        end
      type t = {
        etag : string;
        jobs : GapiBigqueryV2Model.JobList.Jobs.t list;
        kind : string;
        nextPageToken : string;
      }
      val etag : (GapiBigqueryV2Model.JobList.t, string) GapiLens.t
      val jobs :
        (GapiBigqueryV2Model.JobList.t,
         GapiBigqueryV2Model.JobList.Jobs.t list)
        GapiLens.t
      val kind : (GapiBigqueryV2Model.JobList.t, string) GapiLens.t
      val nextPageToken : (GapiBigqueryV2Model.JobList.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobList.t
      val render :
        GapiBigqueryV2Model.JobList.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobList.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobList.t
      val to_data_model :
        GapiBigqueryV2Model.JobList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobList.t
    end
  module ProjectList :
    sig
      module Projects :
        sig
          type t = {
            friendlyName : string;
            id : string;
            kind : string;
            numericId : string;
            projectReference : GapiBigqueryV2Model.ProjectReference.t;
          }
          val friendlyName :
            (GapiBigqueryV2Model.ProjectList.Projects.t, string) GapiLens.t
          val id :
            (GapiBigqueryV2Model.ProjectList.Projects.t, string) GapiLens.t
          val kind :
            (GapiBigqueryV2Model.ProjectList.Projects.t, string) GapiLens.t
          val numericId :
            (GapiBigqueryV2Model.ProjectList.Projects.t, string) GapiLens.t
          val projectReference :
            (GapiBigqueryV2Model.ProjectList.Projects.t,
             GapiBigqueryV2Model.ProjectReference.t)
            GapiLens.t
          val empty : GapiBigqueryV2Model.ProjectList.Projects.t
          val render :
            GapiBigqueryV2Model.ProjectList.Projects.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.ProjectList.Projects.t ->
            GapiJson.json_data_model ->
            GapiBigqueryV2Model.ProjectList.Projects.t
        end
      type t = {
        etag : string;
        kind : string;
        nextPageToken : string;
        projects : GapiBigqueryV2Model.ProjectList.Projects.t list;
        totalItems : int;
      }
      val etag : (GapiBigqueryV2Model.ProjectList.t, string) GapiLens.t
      val kind : (GapiBigqueryV2Model.ProjectList.t, string) GapiLens.t
      val nextPageToken :
        (GapiBigqueryV2Model.ProjectList.t, string) GapiLens.t
      val projects :
        (GapiBigqueryV2Model.ProjectList.t,
         GapiBigqueryV2Model.ProjectList.Projects.t list)
        GapiLens.t
      val totalItems : (GapiBigqueryV2Model.ProjectList.t, int) GapiLens.t
      val empty : GapiBigqueryV2Model.ProjectList.t
      val render :
        GapiBigqueryV2Model.ProjectList.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ProjectList.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.ProjectList.t
      val to_data_model :
        GapiBigqueryV2Model.ProjectList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.ProjectList.t
    end
  module Dataset :
    sig
      module Access :
        sig
          type t = {
            domain : string;
            groupByEmail : string;
            role : string;
            specialGroup : string;
            userByEmail : string;
            view : GapiBigqueryV2Model.TableReference.t;
          }
          val domain :
            (GapiBigqueryV2Model.Dataset.Access.t, string) GapiLens.t
          val groupByEmail :
            (GapiBigqueryV2Model.Dataset.Access.t, string) GapiLens.t
          val role :
            (GapiBigqueryV2Model.Dataset.Access.t, string) GapiLens.t
          val specialGroup :
            (GapiBigqueryV2Model.Dataset.Access.t, string) GapiLens.t
          val userByEmail :
            (GapiBigqueryV2Model.Dataset.Access.t, string) GapiLens.t
          val view :
            (GapiBigqueryV2Model.Dataset.Access.t,
             GapiBigqueryV2Model.TableReference.t)
            GapiLens.t
          val empty : GapiBigqueryV2Model.Dataset.Access.t
          val render :
            GapiBigqueryV2Model.Dataset.Access.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.Dataset.Access.t ->
            GapiJson.json_data_model -> GapiBigqueryV2Model.Dataset.Access.t
        end
      type t = {
        access : GapiBigqueryV2Model.Dataset.Access.t list;
        creationTime : int64;
        datasetReference : GapiBigqueryV2Model.DatasetReference.t;
        defaultTableExpirationMs : int64;
        description : string;
        etag : string;
        friendlyName : string;
        id : string;
        kind : string;
        lastModifiedTime : int64;
        location : string;
        selfLink : string;
      }
      val access :
        (GapiBigqueryV2Model.Dataset.t,
         GapiBigqueryV2Model.Dataset.Access.t list)
        GapiLens.t
      val creationTime : (GapiBigqueryV2Model.Dataset.t, int64) GapiLens.t
      val datasetReference :
        (GapiBigqueryV2Model.Dataset.t,
         GapiBigqueryV2Model.DatasetReference.t)
        GapiLens.t
      val defaultTableExpirationMs :
        (GapiBigqueryV2Model.Dataset.t, int64) GapiLens.t
      val description : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val etag : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val friendlyName : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val id : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val kind : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val lastModifiedTime :
        (GapiBigqueryV2Model.Dataset.t, int64) GapiLens.t
      val location : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val selfLink : (GapiBigqueryV2Model.Dataset.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.Dataset.t
      val render :
        GapiBigqueryV2Model.Dataset.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.Dataset.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.Dataset.t
      val to_data_model :
        GapiBigqueryV2Model.Dataset.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.Dataset.t
    end
  module Streamingbuffer :
    sig
      type t = {
        estimatedBytes : string;
        estimatedRows : string;
        oldestEntryTime : string;
      }
      val estimatedBytes :
        (GapiBigqueryV2Model.Streamingbuffer.t, string) GapiLens.t
      val estimatedRows :
        (GapiBigqueryV2Model.Streamingbuffer.t, string) GapiLens.t
      val oldestEntryTime :
        (GapiBigqueryV2Model.Streamingbuffer.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.Streamingbuffer.t
      val render :
        GapiBigqueryV2Model.Streamingbuffer.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.Streamingbuffer.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.Streamingbuffer.t
      val to_data_model :
        GapiBigqueryV2Model.Streamingbuffer.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.Streamingbuffer.t
    end
  module ViewDefinition :
    sig
      type t = {
        query : string;
        userDefinedFunctionResources :
          GapiBigqueryV2Model.UserDefinedFunctionResource.t list;
      }
      val query : (GapiBigqueryV2Model.ViewDefinition.t, string) GapiLens.t
      val userDefinedFunctionResources :
        (GapiBigqueryV2Model.ViewDefinition.t,
         GapiBigqueryV2Model.UserDefinedFunctionResource.t list)
        GapiLens.t
      val empty : GapiBigqueryV2Model.ViewDefinition.t
      val render :
        GapiBigqueryV2Model.ViewDefinition.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.ViewDefinition.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.ViewDefinition.t
      val to_data_model :
        GapiBigqueryV2Model.ViewDefinition.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.ViewDefinition.t
    end
  module Table :
    sig
      type t = {
        creationTime : int64;
        description : string;
        etag : string;
        expirationTime : int64;
        externalDataConfiguration :
          GapiBigqueryV2Model.ExternalDataConfiguration.t;
        friendlyName : string;
        id : string;
        kind : string;
        lastModifiedTime : string;
        location : string;
        numBytes : int64;
        numRows : string;
        schema : GapiBigqueryV2Model.TableSchema.t;
        selfLink : string;
        streamingBuffer : GapiBigqueryV2Model.Streamingbuffer.t;
        tableReference : GapiBigqueryV2Model.TableReference.t;
        _type : string;
        view : GapiBigqueryV2Model.ViewDefinition.t;
      }
      val creationTime : (GapiBigqueryV2Model.Table.t, int64) GapiLens.t
      val description : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val etag : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val expirationTime : (GapiBigqueryV2Model.Table.t, int64) GapiLens.t
      val externalDataConfiguration :
        (GapiBigqueryV2Model.Table.t,
         GapiBigqueryV2Model.ExternalDataConfiguration.t)
        GapiLens.t
      val friendlyName : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val id : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val kind : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val lastModifiedTime : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val location : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val numBytes : (GapiBigqueryV2Model.Table.t, int64) GapiLens.t
      val numRows : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val schema :
        (GapiBigqueryV2Model.Table.t, GapiBigqueryV2Model.TableSchema.t)
        GapiLens.t
      val selfLink : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val streamingBuffer :
        (GapiBigqueryV2Model.Table.t, GapiBigqueryV2Model.Streamingbuffer.t)
        GapiLens.t
      val tableReference :
        (GapiBigqueryV2Model.Table.t, GapiBigqueryV2Model.TableReference.t)
        GapiLens.t
      val _type : (GapiBigqueryV2Model.Table.t, string) GapiLens.t
      val view :
        (GapiBigqueryV2Model.Table.t, GapiBigqueryV2Model.ViewDefinition.t)
        GapiLens.t
      val empty : GapiBigqueryV2Model.Table.t
      val render :
        GapiBigqueryV2Model.Table.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.Table.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.Table.t
      val to_data_model :
        GapiBigqueryV2Model.Table.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.Table.t
    end
  module TableDataInsertAllResponse :
    sig
      module InsertErrors :
        sig
          type t = {
            errors : GapiBigqueryV2Model.ErrorProto.t list;
            index : int;
          }
          val errors :
            (GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t,
             GapiBigqueryV2Model.ErrorProto.t list)
            GapiLens.t
          val index :
            (GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t,
             int)
            GapiLens.t
          val empty :
            GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t
          val render :
            GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t ->
            GapiJson.json_data_model ->
            GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t
        end
      type t = {
        insertErrors :
          GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t list;
        kind : string;
      }
      val insertErrors :
        (GapiBigqueryV2Model.TableDataInsertAllResponse.t,
         GapiBigqueryV2Model.TableDataInsertAllResponse.InsertErrors.t list)
        GapiLens.t
      val kind :
        (GapiBigqueryV2Model.TableDataInsertAllResponse.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.TableDataInsertAllResponse.t
      val render :
        GapiBigqueryV2Model.TableDataInsertAllResponse.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableDataInsertAllResponse.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.TableDataInsertAllResponse.t
      val to_data_model :
        GapiBigqueryV2Model.TableDataInsertAllResponse.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.TableDataInsertAllResponse.t
    end
  module Job :
    sig
      type t = {
        configuration : GapiBigqueryV2Model.JobConfiguration.t;
        etag : string;
        id : string;
        jobReference : GapiBigqueryV2Model.JobReference.t;
        kind : string;
        selfLink : string;
        statistics : GapiBigqueryV2Model.JobStatistics.t;
        status : GapiBigqueryV2Model.JobStatus.t;
        user_email : string;
      }
      val configuration :
        (GapiBigqueryV2Model.Job.t, GapiBigqueryV2Model.JobConfiguration.t)
        GapiLens.t
      val etag : (GapiBigqueryV2Model.Job.t, string) GapiLens.t
      val id : (GapiBigqueryV2Model.Job.t, string) GapiLens.t
      val jobReference :
        (GapiBigqueryV2Model.Job.t, GapiBigqueryV2Model.JobReference.t)
        GapiLens.t
      val kind : (GapiBigqueryV2Model.Job.t, string) GapiLens.t
      val selfLink : (GapiBigqueryV2Model.Job.t, string) GapiLens.t
      val statistics :
        (GapiBigqueryV2Model.Job.t, GapiBigqueryV2Model.JobStatistics.t)
        GapiLens.t
      val status :
        (GapiBigqueryV2Model.Job.t, GapiBigqueryV2Model.JobStatus.t)
        GapiLens.t
      val user_email : (GapiBigqueryV2Model.Job.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.Job.t
      val render : GapiBigqueryV2Model.Job.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.Job.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.Job.t
      val to_data_model :
        GapiBigqueryV2Model.Job.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.Job.t
    end
  module JobCancelResponse :
    sig
      type t = { job : GapiBigqueryV2Model.Job.t; kind : string; }
      val job :
        (GapiBigqueryV2Model.JobCancelResponse.t, GapiBigqueryV2Model.Job.t)
        GapiLens.t
      val kind : (GapiBigqueryV2Model.JobCancelResponse.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.JobCancelResponse.t
      val render :
        GapiBigqueryV2Model.JobCancelResponse.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.JobCancelResponse.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobCancelResponse.t
      val to_data_model :
        GapiBigqueryV2Model.JobCancelResponse.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.JobCancelResponse.t
    end
  module DatasetList :
    sig
      module Datasets :
        sig
          type t = {
            datasetReference : GapiBigqueryV2Model.DatasetReference.t;
            friendlyName : string;
            id : string;
            kind : string;
          }
          val datasetReference :
            (GapiBigqueryV2Model.DatasetList.Datasets.t,
             GapiBigqueryV2Model.DatasetReference.t)
            GapiLens.t
          val friendlyName :
            (GapiBigqueryV2Model.DatasetList.Datasets.t, string) GapiLens.t
          val id :
            (GapiBigqueryV2Model.DatasetList.Datasets.t, string) GapiLens.t
          val kind :
            (GapiBigqueryV2Model.DatasetList.Datasets.t, string) GapiLens.t
          val empty : GapiBigqueryV2Model.DatasetList.Datasets.t
          val render :
            GapiBigqueryV2Model.DatasetList.Datasets.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.DatasetList.Datasets.t ->
            GapiJson.json_data_model ->
            GapiBigqueryV2Model.DatasetList.Datasets.t
        end
      type t = {
        datasets : GapiBigqueryV2Model.DatasetList.Datasets.t list;
        etag : string;
        kind : string;
        nextPageToken : string;
      }
      val datasets :
        (GapiBigqueryV2Model.DatasetList.t,
         GapiBigqueryV2Model.DatasetList.Datasets.t list)
        GapiLens.t
      val etag : (GapiBigqueryV2Model.DatasetList.t, string) GapiLens.t
      val kind : (GapiBigqueryV2Model.DatasetList.t, string) GapiLens.t
      val nextPageToken :
        (GapiBigqueryV2Model.DatasetList.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.DatasetList.t
      val render :
        GapiBigqueryV2Model.DatasetList.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.DatasetList.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.DatasetList.t
      val to_data_model :
        GapiBigqueryV2Model.DatasetList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.DatasetList.t
    end
  module QueryRequest :
    sig
      type t = {
        defaultDataset : GapiBigqueryV2Model.DatasetReference.t;
        dryRun : bool;
        kind : string;
        maxResults : int;
        preserveNulls : bool;
        query : string;
        timeoutMs : int;
        useQueryCache : bool;
      }
      val defaultDataset :
        (GapiBigqueryV2Model.QueryRequest.t,
         GapiBigqueryV2Model.DatasetReference.t)
        GapiLens.t
      val dryRun : (GapiBigqueryV2Model.QueryRequest.t, bool) GapiLens.t
      val kind : (GapiBigqueryV2Model.QueryRequest.t, string) GapiLens.t
      val maxResults : (GapiBigqueryV2Model.QueryRequest.t, int) GapiLens.t
      val preserveNulls :
        (GapiBigqueryV2Model.QueryRequest.t, bool) GapiLens.t
      val query : (GapiBigqueryV2Model.QueryRequest.t, string) GapiLens.t
      val timeoutMs : (GapiBigqueryV2Model.QueryRequest.t, int) GapiLens.t
      val useQueryCache :
        (GapiBigqueryV2Model.QueryRequest.t, bool) GapiLens.t
      val empty : GapiBigqueryV2Model.QueryRequest.t
      val render :
        GapiBigqueryV2Model.QueryRequest.t -> GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.QueryRequest.t ->
        GapiJson.json_data_model -> GapiBigqueryV2Model.QueryRequest.t
      val to_data_model :
        GapiBigqueryV2Model.QueryRequest.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiBigqueryV2Model.QueryRequest.t
    end
  module TableDataInsertAllRequest :
    sig
      module Rows :
        sig
          type t = {
            insertId : string;
            json : GapiBigqueryV2Model.JsonObject.t;
          }
          val insertId :
            (GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t, string)
            GapiLens.t
          val json :
            (GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t,
             GapiBigqueryV2Model.JsonObject.t)
            GapiLens.t
          val empty : GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t
          val render :
            GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t ->
            GapiJson.json_data_model list
          val parse :
            GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t ->
            GapiJson.json_data_model ->
            GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t
        end
      type t = {
        ignoreUnknownValues : bool;
        kind : string;
        rows : GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t list;
        skipInvalidRows : bool;
        templateSuffix : string;
      }
      val ignoreUnknownValues :
        (GapiBigqueryV2Model.TableDataInsertAllRequest.t, bool) GapiLens.t
      val kind :
        (GapiBigqueryV2Model.TableDataInsertAllRequest.t, string) GapiLens.t
      val rows :
        (GapiBigqueryV2Model.TableDataInsertAllRequest.t,
         GapiBigqueryV2Model.TableDataInsertAllRequest.Rows.t list)
        GapiLens.t
      val skipInvalidRows :
        (GapiBigqueryV2Model.TableDataInsertAllRequest.t, bool) GapiLens.t
      val templateSuffix :
        (GapiBigqueryV2Model.TableDataInsertAllRequest.t, string) GapiLens.t
      val empty : GapiBigqueryV2Model.TableDataInsertAllRequest.t
      val render :
        GapiBigqueryV2Model.TableDataInsertAllRequest.t ->
        GapiJson.json_data_model list
      val parse :
        GapiBigqueryV2Model.TableDataInsertAllRequest.t ->
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.TableDataInsertAllRequest.t
      val to_data_model :
        GapiBigqueryV2Model.TableDataInsertAllRequest.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiBigqueryV2Model.TableDataInsertAllRequest.t
    end
end