Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/bigquery_v2.models.html b/docs/dyn/bigquery_v2.models.html
new file mode 100644
index 0000000..029d8fd
--- /dev/null
+++ b/docs/dyn/bigquery_v2.models.html
@@ -0,0 +1,1182 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.models.html">models</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(projectId, datasetId, modelId)</a></code></p>
+<p class="firstline">Deletes the model specified by modelId from the dataset.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, datasetId, modelId)</a></code></p>
+<p class="firstline">Gets the specified model resource by model ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, datasetId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all models in the specified dataset. Requires the READER dataset</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(projectId, datasetId, modelId, body)</a></code></p>
+<p class="firstline">Patch specific fields in the specified model.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(projectId, datasetId, modelId)</code>
+  <pre>Deletes the model specified by modelId from the dataset.
+
+Args:
+  projectId: string, Project ID of the model to delete. (required)
+  datasetId: string, Dataset ID of the model to delete. (required)
+  modelId: string, Model ID of the model to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, datasetId, modelId)</code>
+  <pre>Gets the specified model resource by model ID.
+
+Args:
+  projectId: string, Project ID of the requested model. (required)
+  datasetId: string, Dataset ID of the requested model. (required)
+  modelId: string, Model ID of the requested model. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "labelColumns": [ # Output only. Label columns that were used to train this model.
+          # The output of the model will have a "predicted_" prefix to these columns.
+        { # A field or a column.
+          "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+              # specified (e.g., CREATE FUNCTION statement can omit the return type;
+              # in this case the output parameter does not have this "type" field).
+              # Examples:
+              # INT64: {type_kind="INT64"}
+              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+              # STRUCT<x STRING, y ARRAY<DATE>>:
+              #   {type_kind="STRUCT",
+              #    struct_type={fields=[
+              #      {name="x", type={type_kind="STRING"}},
+              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+              #    ]}}
+            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+              "fields": [
+                # Object with schema name: StandardSqlField
+              ],
+            },
+            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+            "typeKind": "A String", # Required. The top level type of this field.
+                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+          },
+          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+        },
+      ],
+      "description": "A String", # [Optional] A user-friendly description of this model.
+      "trainingRuns": [ # Output only. Information for all training runs in increasing order of
+          # start_time.
+        { # Information about a single training query run for the model.
+          "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
+              # end of training.
+              # data or just the eval data based on whether eval data was used during
+              # training. These are not present for imported models.
+            "clusteringMetrics": { # Evaluation metrics for clustering models. # [Beta] Populated for clustering models.
+              "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
+              "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
+            },
+            "regressionMetrics": { # Evaluation metrics for regression models. # Populated for regression models.
+              "meanSquaredLogError": 3.14, # Mean squared log error.
+              "meanAbsoluteError": 3.14, # Mean absolute error.
+              "meanSquaredError": 3.14, # Mean squared error.
+              "medianAbsoluteError": 3.14, # Median absolute error.
+              "rSquared": 3.14, # R^2 score.
+            },
+            "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
+              "negativeLabel": "A String", # Label representing the negative class.
+              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                  # models, the metrics are either macro-averaged or micro-averaged. When
+                  # macro-averaged, the metrics are calculated for each label and then an
+                  # unweighted average is taken of those values. When micro-averaged, the
+                  # metric is calculated globally by counting the total number of correctly
+                  # predicted rows.
+                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                    # positive prediction. For multiclass this is a macro-averaged metric.
+                "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                    # positive actual labels. For multiclass this is a macro-averaged
+                    # metric treating each class as a binary classifier.
+                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+                "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                    # classification models this is the positive class threshold.
+                    # For multi-class classfication models this is the confidence
+                    # threshold.
+                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                    # multiclass this is a micro-averaged metric.
+                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                    # this is a macro-averaged metric.
+                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                    # metric.
+              },
+              "positiveLabel": "A String", # Label representing the positive class.
+              "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
+                { # Confusion matrix for binary classification models.
+                  "truePositives": "A String", # Number of true samples predicted as true.
+                  "recall": 3.14, # Aggregate recall.
+                  "precision": 3.14, # Aggregate precision.
+                  "falseNegatives": "A String", # Number of false samples predicted as false.
+                  "trueNegatives": "A String", # Number of true samples predicted as false.
+                  "falsePositives": "A String", # Number of false samples predicted as true.
+                  "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
+                },
+              ],
+            },
+            "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
+              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                  # models, the metrics are either macro-averaged or micro-averaged. When
+                  # macro-averaged, the metrics are calculated for each label and then an
+                  # unweighted average is taken of those values. When micro-averaged, the
+                  # metric is calculated globally by counting the total number of correctly
+                  # predicted rows.
+                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                    # positive prediction. For multiclass this is a macro-averaged metric.
+                "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                    # positive actual labels. For multiclass this is a macro-averaged
+                    # metric treating each class as a binary classifier.
+                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+                "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                    # classification models this is the positive class threshold.
+                    # For multi-class classfication models this is the confidence
+                    # threshold.
+                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                    # multiclass this is a micro-averaged metric.
+                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                    # this is a macro-averaged metric.
+                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                    # metric.
+              },
+              "confusionMatrixList": [ # Confusion matrix at different thresholds.
+                { # Confusion matrix for multi-class classification models.
+                  "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
+                      # confusion matrix.
+                  "rows": [ # One row per actual label.
+                    { # A single row in the confusion matrix.
+                      "entries": [ # Info describing predicted label distribution.
+                        { # A single entry in the confusion matrix.
+                          "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
+                              # also add an entry indicating the number of items under the
+                              # confidence threshold.
+                          "itemCount": "A String", # Number of items being predicted as this label.
+                        },
+                      ],
+                      "actualLabel": "A String", # The original label of this row.
+                    },
+                  ],
+                },
+              ],
+            },
+          },
+          "results": [ # Output of each iteration run, results.size() <= max_iterations.
+            { # Information about a single iteration of the training run.
+              "index": 42, # Index of the iteration, 0 based.
+              "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
+              "durationMs": "A String", # Time taken to run the iteration in milliseconds.
+              "learnRate": 3.14, # Learn rate used for this iteration.
+              "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
+              "clusterInfos": [ # [Beta] Information about top clusters for clustering models.
+                { # Information about a single cluster for clustering model.
+                  "centroidId": "A String", # Centroid id.
+                  "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
+                  "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
+                      # to each point assigned to the cluster.
+                },
+              ],
+            },
+          ],
+          "startTime": "A String", # The start time of this training run.
+          "trainingOptions": { # Options that were used for this training run, includes
+              # user specified and default options that were used.
+            "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
+            "inputLabelColumns": [ # Name of input label columns in training data.
+              "A String",
+            ],
+            "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
+                # training algorithms.
+            "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
+                # any more (compared to min_relative_progress). Used only for iterative
+                # training algorithms.
+            "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
+                # strategy.
+            "dataSplitColumn": "A String", # The column to split data with. This column won't be used as a
+                # feature.
+                # 1. When data_split_method is CUSTOM, the corresponding column should
+                # be boolean. The rows with true value tag are eval data, and the false
+                # are training data.
+                # 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION
+                # rows (from smallest to largest) in the corresponding column are used
+                # as training data, and the rest are eval data. It respects the order
+                # in Orderable data types:
+                # https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
+            "numClusters": "A String", # [Beta] Number of clusters for clustering models.
+            "l1Regularization": 3.14, # L1 regularization coefficient.
+            "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
+            "distanceType": "A String", # [Beta] Distance type for clustering models.
+            "warmStart": True or False, # Whether to train a model from the last checkpoint.
+            "labelClassWeights": { # Weights associated with each label class, for rebalancing the
+                # training data. Only applicable for classification models.
+              "a_key": 3.14,
+            },
+            "lossType": "A String", # Type of loss function used during training run.
+            "dataSplitEvalFraction": 3.14, # The fraction of evaluation data over the whole input data. The rest
+                # of data will be used as training data. The format should be double.
+                # Accurate to two decimal places.
+                # Default value is 0.2.
+            "l2Regularization": 3.14, # L2 regularization coefficient.
+            "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
+                # applicable for imported models.
+            "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
+            "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
+                # less than 'min_relative_progress'. Used only for iterative training
+                # algorithms.
+            "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
+          },
+        },
+      ],
+      "featureColumns": [ # Output only. Input feature columns that were used to train this model.
+        { # A field or a column.
+          "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+              # specified (e.g., CREATE FUNCTION statement can omit the return type;
+              # in this case the output parameter does not have this "type" field).
+              # Examples:
+              # INT64: {type_kind="INT64"}
+              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+              # STRUCT<x STRING, y ARRAY<DATE>>:
+              #   {type_kind="STRUCT",
+              #    struct_type={fields=[
+              #      {name="x", type={type_kind="STRING"}},
+              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+              #    ]}}
+            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+              "fields": [
+                # Object with schema name: StandardSqlField
+              ],
+            },
+            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+            "typeKind": "A String", # Required. The top level type of this field.
+                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+          },
+          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+        },
+      ],
+      "labels": { # [Optional] The labels associated with this model. You can use these to
+          # organize and group your models. Label keys and values can be no longer
+          # than 63 characters, can only contain lowercase letters, numeric
+          # characters, underscores and dashes. International characters are allowed.
+          # Label values are optional. Label keys must start with a letter and each
+          # label in the list must have a different key.
+        "a_key": "A String",
+      },
+      "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the
+          # epoch.
+      "modelType": "A String", # Output only. Type of the model resource.
+      "modelReference": { # Id path of a model. # Required. Unique identifier for this model.
+        "projectId": "A String", # [Required] The ID of the project containing this model.
+        "datasetId": "A String", # [Required] The ID of the dataset containing this model.
+        "modelId": "A String", # [Required] The ID of the model. The ID must contain only
+            # letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
+            # length is 1,024 characters.
+      },
+      "etag": "A String", # Output only. A hash of this resource.
+      "location": "A String", # Output only. The geographic location where the model resides. This value
+          # is inherited from the dataset.
+      "friendlyName": "A String", # [Optional] A descriptive name for this model.
+      "expirationTime": "A String", # [Optional] The time when this model expires, in milliseconds since the
+          # epoch. If not present, the model will persist indefinitely. Expired models
+          # will be deleted and their storage reclaimed.  The defaultTableExpirationMs
+          # property of the encapsulating dataset can be used to set a default
+          # expirationTime on newly created models.
+      "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs
+          # since the epoch.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, datasetId, pageToken=None, maxResults=None)</code>
+  <pre>Lists all models in the specified dataset. Requires the READER dataset
+role.
+
+Args:
+  projectId: string, Project ID of the models to list. (required)
+  datasetId: string, Dataset ID of the models to list. (required)
+  pageToken: string, Page token, returned by a previous call to request the next page of
+results
+  maxResults: integer, The maximum number of results per page.
+
+Returns:
+  An object of the form:
+
+    {
+    "models": [ # Models in the requested dataset. Only the following fields are populated:
+        # model_reference, model_type, creation_time, last_modified_time and
+        # labels.
+      {
+          "labelColumns": [ # Output only. Label columns that were used to train this model.
+              # The output of the model will have a "predicted_" prefix to these columns.
+            { # A field or a column.
+              "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+                  # specified (e.g., CREATE FUNCTION statement can omit the return type;
+                  # in this case the output parameter does not have this "type" field).
+                  # Examples:
+                  # INT64: {type_kind="INT64"}
+                  # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+                  # STRUCT<x STRING, y ARRAY<DATE>>:
+                  #   {type_kind="STRUCT",
+                  #    struct_type={fields=[
+                  #      {name="x", type={type_kind="STRING"}},
+                  #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+                  #    ]}}
+                "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+                  "fields": [
+                    # Object with schema name: StandardSqlField
+                  ],
+                },
+                "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+                "typeKind": "A String", # Required. The top level type of this field.
+                    # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+              },
+              "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+            },
+          ],
+          "description": "A String", # [Optional] A user-friendly description of this model.
+          "trainingRuns": [ # Output only. Information for all training runs in increasing order of
+              # start_time.
+            { # Information about a single training query run for the model.
+              "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
+                  # end of training.
+                  # data or just the eval data based on whether eval data was used during
+                  # training. These are not present for imported models.
+                "clusteringMetrics": { # Evaluation metrics for clustering models. # [Beta] Populated for clustering models.
+                  "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
+                  "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
+                },
+                "regressionMetrics": { # Evaluation metrics for regression models. # Populated for regression models.
+                  "meanSquaredLogError": 3.14, # Mean squared log error.
+                  "meanAbsoluteError": 3.14, # Mean absolute error.
+                  "meanSquaredError": 3.14, # Mean squared error.
+                  "medianAbsoluteError": 3.14, # Median absolute error.
+                  "rSquared": 3.14, # R^2 score.
+                },
+                "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
+                  "negativeLabel": "A String", # Label representing the negative class.
+                  "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                      # models, the metrics are either macro-averaged or micro-averaged. When
+                      # macro-averaged, the metrics are calculated for each label and then an
+                      # unweighted average is taken of those values. When micro-averaged, the
+                      # metric is calculated globally by counting the total number of correctly
+                      # predicted rows.
+                    "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                        # positive prediction. For multiclass this is a macro-averaged metric.
+                    "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                        # positive actual labels. For multiclass this is a macro-averaged
+                        # metric treating each class as a binary classifier.
+                    "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+                    "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                        # classification models this is the positive class threshold.
+                        # For multi-class classfication models this is the confidence
+                        # threshold.
+                    "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                        # multiclass this is a micro-averaged metric.
+                    "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                        # this is a macro-averaged metric.
+                    "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                        # metric.
+                  },
+                  "positiveLabel": "A String", # Label representing the positive class.
+                  "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
+                    { # Confusion matrix for binary classification models.
+                      "truePositives": "A String", # Number of true samples predicted as true.
+                      "recall": 3.14, # Aggregate recall.
+                      "precision": 3.14, # Aggregate precision.
+                      "falseNegatives": "A String", # Number of false samples predicted as false.
+                      "trueNegatives": "A String", # Number of true samples predicted as false.
+                      "falsePositives": "A String", # Number of false samples predicted as true.
+                      "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
+                    },
+                  ],
+                },
+                "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
+                  "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                      # models, the metrics are either macro-averaged or micro-averaged. When
+                      # macro-averaged, the metrics are calculated for each label and then an
+                      # unweighted average is taken of those values. When micro-averaged, the
+                      # metric is calculated globally by counting the total number of correctly
+                      # predicted rows.
+                    "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                        # positive prediction. For multiclass this is a macro-averaged metric.
+                    "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                        # positive actual labels. For multiclass this is a macro-averaged
+                        # metric treating each class as a binary classifier.
+                    "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+                    "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                        # classification models this is the positive class threshold.
+                        # For multi-class classfication models this is the confidence
+                        # threshold.
+                    "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                        # multiclass this is a micro-averaged metric.
+                    "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                        # this is a macro-averaged metric.
+                    "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                        # metric.
+                  },
+                  "confusionMatrixList": [ # Confusion matrix at different thresholds.
+                    { # Confusion matrix for multi-class classification models.
+                      "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
+                          # confusion matrix.
+                      "rows": [ # One row per actual label.
+                        { # A single row in the confusion matrix.
+                          "entries": [ # Info describing predicted label distribution.
+                            { # A single entry in the confusion matrix.
+                              "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
+                                  # also add an entry indicating the number of items under the
+                                  # confidence threshold.
+                              "itemCount": "A String", # Number of items being predicted as this label.
+                            },
+                          ],
+                          "actualLabel": "A String", # The original label of this row.
+                        },
+                      ],
+                    },
+                  ],
+                },
+              },
+              "results": [ # Output of each iteration run, results.size() <= max_iterations.
+                { # Information about a single iteration of the training run.
+                  "index": 42, # Index of the iteration, 0 based.
+                  "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
+                  "durationMs": "A String", # Time taken to run the iteration in milliseconds.
+                  "learnRate": 3.14, # Learn rate used for this iteration.
+                  "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
+                  "clusterInfos": [ # [Beta] Information about top clusters for clustering models.
+                    { # Information about a single cluster for clustering model.
+                      "centroidId": "A String", # Centroid id.
+                      "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
+                      "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
+                          # to each point assigned to the cluster.
+                    },
+                  ],
+                },
+              ],
+              "startTime": "A String", # The start time of this training run.
+              "trainingOptions": { # Options that were used for this training run, includes
+                  # user specified and default options that were used.
+                "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
+                "inputLabelColumns": [ # Name of input label columns in training data.
+                  "A String",
+                ],
+                "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
+                    # training algorithms.
+                "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
+                    # any more (compared to min_relative_progress). Used only for iterative
+                    # training algorithms.
+                "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
+                    # strategy.
+                "dataSplitColumn": "A String", # The column to split data with. This column won't be used as a
+                    # feature.
+                    # 1. When data_split_method is CUSTOM, the corresponding column should
+                    # be boolean. The rows with true value tag are eval data, and the false
+                    # are training data.
+                    # 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION
+                    # rows (from smallest to largest) in the corresponding column are used
+                    # as training data, and the rest are eval data. It respects the order
+                    # in Orderable data types:
+                    # https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
+                "numClusters": "A String", # [Beta] Number of clusters for clustering models.
+                "l1Regularization": 3.14, # L1 regularization coefficient.
+                "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
+                "distanceType": "A String", # [Beta] Distance type for clustering models.
+                "warmStart": True or False, # Whether to train a model from the last checkpoint.
+                "labelClassWeights": { # Weights associated with each label class, for rebalancing the
+                    # training data. Only applicable for classification models.
+                  "a_key": 3.14,
+                },
+                "lossType": "A String", # Type of loss function used during training run.
+                "dataSplitEvalFraction": 3.14, # The fraction of evaluation data over the whole input data. The rest
+                    # of data will be used as training data. The format should be double.
+                    # Accurate to two decimal places.
+                    # Default value is 0.2.
+                "l2Regularization": 3.14, # L2 regularization coefficient.
+                "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
+                    # applicable for imported models.
+                "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
+                "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
+                    # less than 'min_relative_progress'. Used only for iterative training
+                    # algorithms.
+                "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
+              },
+            },
+          ],
+          "featureColumns": [ # Output only. Input feature columns that were used to train this model.
+            { # A field or a column.
+              "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+                  # specified (e.g., CREATE FUNCTION statement can omit the return type;
+                  # in this case the output parameter does not have this "type" field).
+                  # Examples:
+                  # INT64: {type_kind="INT64"}
+                  # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+                  # STRUCT<x STRING, y ARRAY<DATE>>:
+                  #   {type_kind="STRUCT",
+                  #    struct_type={fields=[
+                  #      {name="x", type={type_kind="STRING"}},
+                  #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+                  #    ]}}
+                "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+                  "fields": [
+                    # Object with schema name: StandardSqlField
+                  ],
+                },
+                "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+                "typeKind": "A String", # Required. The top level type of this field.
+                    # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+              },
+              "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+            },
+          ],
+          "labels": { # [Optional] The labels associated with this model. You can use these to
+              # organize and group your models. Label keys and values can be no longer
+              # than 63 characters, can only contain lowercase letters, numeric
+              # characters, underscores and dashes. International characters are allowed.
+              # Label values are optional. Label keys must start with a letter and each
+              # label in the list must have a different key.
+            "a_key": "A String",
+          },
+          "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the
+              # epoch.
+          "modelType": "A String", # Output only. Type of the model resource.
+          "modelReference": { # Id path of a model. # Required. Unique identifier for this model.
+            "projectId": "A String", # [Required] The ID of the project containing this model.
+            "datasetId": "A String", # [Required] The ID of the dataset containing this model.
+            "modelId": "A String", # [Required] The ID of the model. The ID must contain only
+                # letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
+                # length is 1,024 characters.
+          },
+          "etag": "A String", # Output only. A hash of this resource.
+          "location": "A String", # Output only. The geographic location where the model resides. This value
+              # is inherited from the dataset.
+          "friendlyName": "A String", # [Optional] A descriptive name for this model.
+          "expirationTime": "A String", # [Optional] The time when this model expires, in milliseconds since the
+              # epoch. If not present, the model will persist indefinitely. Expired models
+              # will be deleted and their storage reclaimed.  The defaultTableExpirationMs
+              # property of the encapsulating dataset can be used to set a default
+              # expirationTime on newly created models.
+          "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs
+              # since the epoch.
+        },
+    ],
+    "nextPageToken": "A String", # A token to request the next page of results.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(projectId, datasetId, modelId, body)</code>
+  <pre>Patch specific fields in the specified model.
+
+Args:
+  projectId: string, Project ID of the model to patch. (required)
+  datasetId: string, Dataset ID of the model to patch. (required)
+  modelId: string, Model ID of the model to patch. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelColumns": [ # Output only. Label columns that were used to train this model.
+        # The output of the model will have a "predicted_" prefix to these columns.
+      { # A field or a column.
+        "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+            # specified (e.g., CREATE FUNCTION statement can omit the return type;
+            # in this case the output parameter does not have this "type" field).
+            # Examples:
+            # INT64: {type_kind="INT64"}
+            # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+            # STRUCT<x STRING, y ARRAY<DATE>>:
+            #   {type_kind="STRUCT",
+            #    struct_type={fields=[
+            #      {name="x", type={type_kind="STRING"}},
+            #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+            #    ]}}
+          "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+            "fields": [
+              # Object with schema name: StandardSqlField
+            ],
+          },
+          "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+          "typeKind": "A String", # Required. The top level type of this field.
+              # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+        },
+        "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+      },
+    ],
+    "description": "A String", # [Optional] A user-friendly description of this model.
+    "trainingRuns": [ # Output only. Information for all training runs in increasing order of
+        # start_time.
+      { # Information about a single training query run for the model.
+        "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
+            # end of training.
+            # data or just the eval data based on whether eval data was used during
+            # training. These are not present for imported models.
+          "clusteringMetrics": { # Evaluation metrics for clustering models. # [Beta] Populated for clustering models.
+            "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
+            "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
+          },
+          "regressionMetrics": { # Evaluation metrics for regression models. # Populated for regression models.
+            "meanSquaredLogError": 3.14, # Mean squared log error.
+            "meanAbsoluteError": 3.14, # Mean absolute error.
+            "meanSquaredError": 3.14, # Mean squared error.
+            "medianAbsoluteError": 3.14, # Median absolute error.
+            "rSquared": 3.14, # R^2 score.
+          },
+          "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
+            "negativeLabel": "A String", # Label representing the negative class.
+            "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                # models, the metrics are either macro-averaged or micro-averaged. When
+                # macro-averaged, the metrics are calculated for each label and then an
+                # unweighted average is taken of those values. When micro-averaged, the
+                # metric is calculated globally by counting the total number of correctly
+                # predicted rows.
+              "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                  # positive prediction. For multiclass this is a macro-averaged metric.
+              "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                  # positive actual labels. For multiclass this is a macro-averaged
+                  # metric treating each class as a binary classifier.
+              "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+              "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                  # classification models this is the positive class threshold.
+                  # For multi-class classfication models this is the confidence
+                  # threshold.
+              "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                  # multiclass this is a micro-averaged metric.
+              "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                  # this is a macro-averaged metric.
+              "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                  # metric.
+            },
+            "positiveLabel": "A String", # Label representing the positive class.
+            "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
+              { # Confusion matrix for binary classification models.
+                "truePositives": "A String", # Number of true samples predicted as true.
+                "recall": 3.14, # Aggregate recall.
+                "precision": 3.14, # Aggregate precision.
+                "falseNegatives": "A String", # Number of false samples predicted as false.
+                "trueNegatives": "A String", # Number of true samples predicted as false.
+                "falsePositives": "A String", # Number of false samples predicted as true.
+                "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
+              },
+            ],
+          },
+          "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
+            "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                # models, the metrics are either macro-averaged or micro-averaged. When
+                # macro-averaged, the metrics are calculated for each label and then an
+                # unweighted average is taken of those values. When micro-averaged, the
+                # metric is calculated globally by counting the total number of correctly
+                # predicted rows.
+              "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                  # positive prediction. For multiclass this is a macro-averaged metric.
+              "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                  # positive actual labels. For multiclass this is a macro-averaged
+                  # metric treating each class as a binary classifier.
+              "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+              "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                  # classification models this is the positive class threshold.
+                  # For multi-class classfication models this is the confidence
+                  # threshold.
+              "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                  # multiclass this is a micro-averaged metric.
+              "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                  # this is a macro-averaged metric.
+              "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                  # metric.
+            },
+            "confusionMatrixList": [ # Confusion matrix at different thresholds.
+              { # Confusion matrix for multi-class classification models.
+                "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
+                    # confusion matrix.
+                "rows": [ # One row per actual label.
+                  { # A single row in the confusion matrix.
+                    "entries": [ # Info describing predicted label distribution.
+                      { # A single entry in the confusion matrix.
+                        "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
+                            # also add an entry indicating the number of items under the
+                            # confidence threshold.
+                        "itemCount": "A String", # Number of items being predicted as this label.
+                      },
+                    ],
+                    "actualLabel": "A String", # The original label of this row.
+                  },
+                ],
+              },
+            ],
+          },
+        },
+        "results": [ # Output of each iteration run, results.size() <= max_iterations.
+          { # Information about a single iteration of the training run.
+            "index": 42, # Index of the iteration, 0 based.
+            "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
+            "durationMs": "A String", # Time taken to run the iteration in milliseconds.
+            "learnRate": 3.14, # Learn rate used for this iteration.
+            "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
+            "clusterInfos": [ # [Beta] Information about top clusters for clustering models.
+              { # Information about a single cluster for clustering model.
+                "centroidId": "A String", # Centroid id.
+                "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
+                "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
+                    # to each point assigned to the cluster.
+              },
+            ],
+          },
+        ],
+        "startTime": "A String", # The start time of this training run.
+        "trainingOptions": { # Options that were used for this training run, includes
+            # user specified and default options that were used.
+          "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
+          "inputLabelColumns": [ # Name of input label columns in training data.
+            "A String",
+          ],
+          "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
+              # training algorithms.
+          "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
+              # any more (compared to min_relative_progress). Used only for iterative
+              # training algorithms.
+          "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
+              # strategy.
+          "dataSplitColumn": "A String", # The column to split data with. This column won't be used as a
+              # feature.
+              # 1. When data_split_method is CUSTOM, the corresponding column should
+              # be boolean. The rows with true value tag are eval data, and the false
+              # are training data.
+              # 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION
+              # rows (from smallest to largest) in the corresponding column are used
+              # as training data, and the rest are eval data. It respects the order
+              # in Orderable data types:
+              # https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
+          "numClusters": "A String", # [Beta] Number of clusters for clustering models.
+          "l1Regularization": 3.14, # L1 regularization coefficient.
+          "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
+          "distanceType": "A String", # [Beta] Distance type for clustering models.
+          "warmStart": True or False, # Whether to train a model from the last checkpoint.
+          "labelClassWeights": { # Weights associated with each label class, for rebalancing the
+              # training data. Only applicable for classification models.
+            "a_key": 3.14,
+          },
+          "lossType": "A String", # Type of loss function used during training run.
+          "dataSplitEvalFraction": 3.14, # The fraction of evaluation data over the whole input data. The rest
+              # of data will be used as training data. The format should be double.
+              # Accurate to two decimal places.
+              # Default value is 0.2.
+          "l2Regularization": 3.14, # L2 regularization coefficient.
+          "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
+              # applicable for imported models.
+          "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
+          "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
+              # less than 'min_relative_progress'. Used only for iterative training
+              # algorithms.
+          "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
+        },
+      },
+    ],
+    "featureColumns": [ # Output only. Input feature columns that were used to train this model.
+      { # A field or a column.
+        "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+            # specified (e.g., CREATE FUNCTION statement can omit the return type;
+            # in this case the output parameter does not have this "type" field).
+            # Examples:
+            # INT64: {type_kind="INT64"}
+            # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+            # STRUCT<x STRING, y ARRAY<DATE>>:
+            #   {type_kind="STRUCT",
+            #    struct_type={fields=[
+            #      {name="x", type={type_kind="STRING"}},
+            #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+            #    ]}}
+          "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+            "fields": [
+              # Object with schema name: StandardSqlField
+            ],
+          },
+          "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+          "typeKind": "A String", # Required. The top level type of this field.
+              # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+        },
+        "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+      },
+    ],
+    "labels": { # [Optional] The labels associated with this model. You can use these to
+        # organize and group your models. Label keys and values can be no longer
+        # than 63 characters, can only contain lowercase letters, numeric
+        # characters, underscores and dashes. International characters are allowed.
+        # Label values are optional. Label keys must start with a letter and each
+        # label in the list must have a different key.
+      "a_key": "A String",
+    },
+    "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the
+        # epoch.
+    "modelType": "A String", # Output only. Type of the model resource.
+    "modelReference": { # Id path of a model. # Required. Unique identifier for this model.
+      "projectId": "A String", # [Required] The ID of the project containing this model.
+      "datasetId": "A String", # [Required] The ID of the dataset containing this model.
+      "modelId": "A String", # [Required] The ID of the model. The ID must contain only
+          # letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
+          # length is 1,024 characters.
+    },
+    "etag": "A String", # Output only. A hash of this resource.
+    "location": "A String", # Output only. The geographic location where the model resides. This value
+        # is inherited from the dataset.
+    "friendlyName": "A String", # [Optional] A descriptive name for this model.
+    "expirationTime": "A String", # [Optional] The time when this model expires, in milliseconds since the
+        # epoch. If not present, the model will persist indefinitely. Expired models
+        # will be deleted and their storage reclaimed.  The defaultTableExpirationMs
+        # property of the encapsulating dataset can be used to set a default
+        # expirationTime on newly created models.
+    "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs
+        # since the epoch.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "labelColumns": [ # Output only. Label columns that were used to train this model.
+          # The output of the model will have a "predicted_" prefix to these columns.
+        { # A field or a column.
+          "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+              # specified (e.g., CREATE FUNCTION statement can omit the return type;
+              # in this case the output parameter does not have this "type" field).
+              # Examples:
+              # INT64: {type_kind="INT64"}
+              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+              # STRUCT<x STRING, y ARRAY<DATE>>:
+              #   {type_kind="STRUCT",
+              #    struct_type={fields=[
+              #      {name="x", type={type_kind="STRING"}},
+              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+              #    ]}}
+            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+              "fields": [
+                # Object with schema name: StandardSqlField
+              ],
+            },
+            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+            "typeKind": "A String", # Required. The top level type of this field.
+                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+          },
+          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+        },
+      ],
+      "description": "A String", # [Optional] A user-friendly description of this model.
+      "trainingRuns": [ # Output only. Information for all training runs in increasing order of
+          # start_time.
+        { # Information about a single training query run for the model.
+          "evaluationMetrics": { # Evaluation metrics of a model. These are either computed on all training # The evaluation metrics over training/eval data that were computed at the
+              # end of training.
+              # data or just the eval data based on whether eval data was used during
+              # training. These are not present for imported models.
+            "clusteringMetrics": { # Evaluation metrics for clustering models. # [Beta] Populated for clustering models.
+              "meanSquaredDistance": 3.14, # Mean of squared distances between each sample to its cluster centroid.
+              "daviesBouldinIndex": 3.14, # Davies-Bouldin index.
+            },
+            "regressionMetrics": { # Evaluation metrics for regression models. # Populated for regression models.
+              "meanSquaredLogError": 3.14, # Mean squared log error.
+              "meanAbsoluteError": 3.14, # Mean absolute error.
+              "meanSquaredError": 3.14, # Mean squared error.
+              "medianAbsoluteError": 3.14, # Median absolute error.
+              "rSquared": 3.14, # R^2 score.
+            },
+            "binaryClassificationMetrics": { # Evaluation metrics for binary classification/classifier models. # Populated for binary classification/classifier models.
+              "negativeLabel": "A String", # Label representing the negative class.
+              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                  # models, the metrics are either macro-averaged or micro-averaged. When
+                  # macro-averaged, the metrics are calculated for each label and then an
+                  # unweighted average is taken of those values. When micro-averaged, the
+                  # metric is calculated globally by counting the total number of correctly
+                  # predicted rows.
+                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                    # positive prediction. For multiclass this is a macro-averaged metric.
+                "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                    # positive actual labels. For multiclass this is a macro-averaged
+                    # metric treating each class as a binary classifier.
+                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+                "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                    # classification models this is the positive class threshold.
+                    # For multi-class classfication models this is the confidence
+                    # threshold.
+                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                    # multiclass this is a micro-averaged metric.
+                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                    # this is a macro-averaged metric.
+                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                    # metric.
+              },
+              "positiveLabel": "A String", # Label representing the positive class.
+              "binaryConfusionMatrixList": [ # Binary confusion matrix at multiple thresholds.
+                { # Confusion matrix for binary classification models.
+                  "truePositives": "A String", # Number of true samples predicted as true.
+                  "recall": 3.14, # Aggregate recall.
+                  "precision": 3.14, # Aggregate precision.
+                  "falseNegatives": "A String", # Number of false samples predicted as false.
+                  "trueNegatives": "A String", # Number of true samples predicted as false.
+                  "falsePositives": "A String", # Number of false samples predicted as true.
+                  "positiveClassThreshold": 3.14, # Threshold value used when computing each of the following metric.
+                },
+              ],
+            },
+            "multiClassClassificationMetrics": { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
+              "aggregateClassificationMetrics": { # Aggregate metrics for classification/classifier models. For multi-class # Aggregate classification metrics.
+                  # models, the metrics are either macro-averaged or micro-averaged. When
+                  # macro-averaged, the metrics are calculated for each label and then an
+                  # unweighted average is taken of those values. When micro-averaged, the
+                  # metric is calculated globally by counting the total number of correctly
+                  # predicted rows.
+                "recall": 3.14, # Recall is the fraction of actual positive labels that were given a
+                    # positive prediction. For multiclass this is a macro-averaged metric.
+                "precision": 3.14, # Precision is the fraction of actual positive predictions that had
+                    # positive actual labels. For multiclass this is a macro-averaged
+                    # metric treating each class as a binary classifier.
+                "logLoss": 3.14, # Logarithmic Loss. For multiclass this is a macro-averaged metric.
+                "threshold": 3.14, # Threshold at which the metrics are computed. For binary
+                    # classification models this is the positive class threshold.
+                    # For multi-class classfication models this is the confidence
+                    # threshold.
+                "accuracy": 3.14, # Accuracy is the fraction of predictions given the correct label. For
+                    # multiclass this is a micro-averaged metric.
+                "f1Score": 3.14, # The F1 score is an average of recall and precision. For multiclass
+                    # this is a macro-averaged metric.
+                "rocAuc": 3.14, # Area Under a ROC Curve. For multiclass this is a macro-averaged
+                    # metric.
+              },
+              "confusionMatrixList": [ # Confusion matrix at different thresholds.
+                { # Confusion matrix for multi-class classification models.
+                  "confidenceThreshold": 3.14, # Confidence threshold used when computing the entries of the
+                      # confusion matrix.
+                  "rows": [ # One row per actual label.
+                    { # A single row in the confusion matrix.
+                      "entries": [ # Info describing predicted label distribution.
+                        { # A single entry in the confusion matrix.
+                          "predictedLabel": "A String", # The predicted label. For confidence_threshold > 0, we will
+                              # also add an entry indicating the number of items under the
+                              # confidence threshold.
+                          "itemCount": "A String", # Number of items being predicted as this label.
+                        },
+                      ],
+                      "actualLabel": "A String", # The original label of this row.
+                    },
+                  ],
+                },
+              ],
+            },
+          },
+          "results": [ # Output of each iteration run, results.size() <= max_iterations.
+            { # Information about a single iteration of the training run.
+              "index": 42, # Index of the iteration, 0 based.
+              "evalLoss": 3.14, # Loss computed on the eval data at the end of iteration.
+              "durationMs": "A String", # Time taken to run the iteration in milliseconds.
+              "learnRate": 3.14, # Learn rate used for this iteration.
+              "trainingLoss": 3.14, # Loss computed on the training data at the end of iteration.
+              "clusterInfos": [ # [Beta] Information about top clusters for clustering models.
+                { # Information about a single cluster for clustering model.
+                  "centroidId": "A String", # Centroid id.
+                  "clusterSize": "A String", # Cluster size, the total number of points assigned to the cluster.
+                  "clusterRadius": 3.14, # Cluster radius, the average distance from centroid
+                      # to each point assigned to the cluster.
+                },
+              ],
+            },
+          ],
+          "startTime": "A String", # The start time of this training run.
+          "trainingOptions": { # Options that were used for this training run, includes
+              # user specified and default options that were used.
+            "optimizationStrategy": "A String", # Optimization strategy for training linear regression models.
+            "inputLabelColumns": [ # Name of input label columns in training data.
+              "A String",
+            ],
+            "maxIterations": "A String", # The maximum number of iterations in training. Used only for iterative
+                # training algorithms.
+            "earlyStop": True or False, # Whether to stop early when the loss doesn't improve significantly
+                # any more (compared to min_relative_progress). Used only for iterative
+                # training algorithms.
+            "initialLearnRate": 3.14, # Specifies the initial learning rate for the line search learn rate
+                # strategy.
+            "dataSplitColumn": "A String", # The column to split data with. This column won't be used as a
+                # feature.
+                # 1. When data_split_method is CUSTOM, the corresponding column should
+                # be boolean. The rows with true value tag are eval data, and the false
+                # are training data.
+                # 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION
+                # rows (from smallest to largest) in the corresponding column are used
+                # as training data, and the rest are eval data. It respects the order
+                # in Orderable data types:
+                # https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
+            "numClusters": "A String", # [Beta] Number of clusters for clustering models.
+            "l1Regularization": 3.14, # L1 regularization coefficient.
+            "dataSplitMethod": "A String", # The data split type for training and evaluation, e.g. RANDOM.
+            "distanceType": "A String", # [Beta] Distance type for clustering models.
+            "warmStart": True or False, # Whether to train a model from the last checkpoint.
+            "labelClassWeights": { # Weights associated with each label class, for rebalancing the
+                # training data. Only applicable for classification models.
+              "a_key": 3.14,
+            },
+            "lossType": "A String", # Type of loss function used during training run.
+            "dataSplitEvalFraction": 3.14, # The fraction of evaluation data over the whole input data. The rest
+                # of data will be used as training data. The format should be double.
+                # Accurate to two decimal places.
+                # Default value is 0.2.
+            "l2Regularization": 3.14, # L2 regularization coefficient.
+            "modelUri": "A String", # [Beta] Google Cloud Storage URI from which the model was imported. Only
+                # applicable for imported models.
+            "learnRateStrategy": "A String", # The strategy to determine learn rate for the current iteration.
+            "minRelativeProgress": 3.14, # When early_stop is true, stops training when accuracy improvement is
+                # less than 'min_relative_progress'. Used only for iterative training
+                # algorithms.
+            "learnRate": 3.14, # Learning rate in training. Used only for iterative training algorithms.
+          },
+        },
+      ],
+      "featureColumns": [ # Output only. Input feature columns that were used to train this model.
+        { # A field or a column.
+          "type": { # The type of a variable, e.g., a function argument. # Optional. The type of this parameter. Absent if not explicitly
+              # specified (e.g., CREATE FUNCTION statement can omit the return type;
+              # in this case the output parameter does not have this "type" field).
+              # Examples:
+              # INT64: {type_kind="INT64"}
+              # ARRAY<STRING>: {type_kind="ARRAY", array_element_type="STRING"}
+              # STRUCT<x STRING, y ARRAY<DATE>>:
+              #   {type_kind="STRUCT",
+              #    struct_type={fields=[
+              #      {name="x", type={type_kind="STRING"}},
+              #      {name="y", type={type_kind="ARRAY", array_element_type="DATE"}}
+              #    ]}}
+            "structType": { # The fields of this struct, in order, if type_kind = "STRUCT".
+              "fields": [
+                # Object with schema name: StandardSqlField
+              ],
+            },
+            "arrayElementType": # Object with schema name: StandardSqlDataType # The type of the array's elements, if type_kind = "ARRAY".
+            "typeKind": "A String", # Required. The top level type of this field.
+                # Can be any standard SQL data type (e.g., "INT64", "DATE", "ARRAY").
+          },
+          "name": "A String", # Optional. The name of this field. Can be absent for struct fields.
+        },
+      ],
+      "labels": { # [Optional] The labels associated with this model. You can use these to
+          # organize and group your models. Label keys and values can be no longer
+          # than 63 characters, can only contain lowercase letters, numeric
+          # characters, underscores and dashes. International characters are allowed.
+          # Label values are optional. Label keys must start with a letter and each
+          # label in the list must have a different key.
+        "a_key": "A String",
+      },
+      "creationTime": "A String", # Output only. The time when this model was created, in millisecs since the
+          # epoch.
+      "modelType": "A String", # Output only. Type of the model resource.
+      "modelReference": { # Id path of a model. # Required. Unique identifier for this model.
+        "projectId": "A String", # [Required] The ID of the project containing this model.
+        "datasetId": "A String", # [Required] The ID of the dataset containing this model.
+        "modelId": "A String", # [Required] The ID of the model. The ID must contain only
+            # letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum
+            # length is 1,024 characters.
+      },
+      "etag": "A String", # Output only. A hash of this resource.
+      "location": "A String", # Output only. The geographic location where the model resides. This value
+          # is inherited from the dataset.
+      "friendlyName": "A String", # [Optional] A descriptive name for this model.
+      "expirationTime": "A String", # [Optional] The time when this model expires, in milliseconds since the
+          # epoch. If not present, the model will persist indefinitely. Expired models
+          # will be deleted and their storage reclaimed.  The defaultTableExpirationMs
+          # property of the encapsulating dataset can be used to set a default
+          # expirationTime on newly created models.
+      "lastModifiedTime": "A String", # Output only. The time when this model was last modified, in millisecs
+          # since the epoch.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file