| <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="ml_v1.html">AI Platform Training & Prediction API</a> . <a href="ml_v1.projects.html">projects</a> . <a href="ml_v1.projects.models.html">models</a> . <a href="ml_v1.projects.models.versions.html">versions</a></h1> | 
 | <h2>Instance Methods</h2> | 
 | <p class="toc_element"> | 
 |   <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p> | 
 | <p class="firstline">Creates a new version of a model from a trained TensorFlow model.</p> | 
 | <p class="toc_element"> | 
 |   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p> | 
 | <p class="firstline">Deletes a model version.</p> | 
 | <p class="toc_element"> | 
 |   <code><a href="#get">get(name, x__xgafv=None)</a></code></p> | 
 | <p class="firstline">Gets information about a model version.</p> | 
 | <p class="toc_element"> | 
 |   <code><a href="#list">list(parent, filter=None, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p> | 
 | <p class="firstline">Gets basic information about all the versions of a model.</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(name, body=None, updateMask=None, x__xgafv=None)</a></code></p> | 
 | <p class="firstline">Updates the specified Version resource.</p> | 
 | <p class="toc_element"> | 
 |   <code><a href="#setDefault">setDefault(name, body=None, x__xgafv=None)</a></code></p> | 
 | <p class="firstline">Designates a version to be the default for the model.</p> | 
 | <h3>Method Details</h3> | 
 | <div class="method"> | 
 |     <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code> | 
 |   <pre>Creates a new version of a model from a trained TensorFlow model. | 
 |  | 
 | If the version created in the cloud by this call is the first deployed | 
 | version of the specified model, it will be made the default version of the | 
 | model. When you add a version to a model that already has one or more | 
 | versions, the default version does not automatically change. If you want a | 
 | new version to be the default, you must call | 
 | projects.models.versions.setDefault. | 
 |  | 
 | Args: | 
 |   parent: string, Required. The name of the model. (required) | 
 |   body: object, The request body. | 
 |     The object takes the form of: | 
 |  | 
 | { # Represents a version of the model. | 
 |     #  | 
 |     # Each version is a trained model deployed in the cloud, ready to handle | 
 |     # prediction requests. A model can have multiple versions. You can get | 
 |     # information about all of the versions of a given model by calling | 
 |     # projects.models.versions.list. | 
 |   "labels": { # Optional. One or more labels that you can add, to organize your model | 
 |       # versions. Each label is a key-value pair, where both the key and the value | 
 |       # are arbitrary strings that you supply. | 
 |       # For more information, see the documentation on | 
 |       # <a href="/ml-engine/docs/tensorflow/resource-labels">using labels</a>. | 
 |     "a_key": "A String", | 
 |   }, | 
 |   "machineType": "A String", # Optional. The type of machine on which to serve the model. Currently only | 
 |       # applies to online prediction service. If this field is not specified, it | 
 |       # defaults to `mls1-c1-m2`. | 
 |       #  | 
 |       # Online prediction supports the following machine types: | 
 |       #  | 
 |       # * `mls1-c1-m2` | 
 |       # * `mls1-c4-m2` | 
 |       # * `n1-standard-2` | 
 |       # * `n1-standard-4` | 
 |       # * `n1-standard-8` | 
 |       # * `n1-standard-16` | 
 |       # * `n1-standard-32` | 
 |       # * `n1-highmem-2` | 
 |       # * `n1-highmem-4` | 
 |       # * `n1-highmem-8` | 
 |       # * `n1-highmem-16` | 
 |       # * `n1-highmem-32` | 
 |       # * `n1-highcpu-2` | 
 |       # * `n1-highcpu-4` | 
 |       # * `n1-highcpu-8` | 
 |       # * `n1-highcpu-16` | 
 |       # * `n1-highcpu-32` | 
 |       #  | 
 |       # `mls1-c1-m2` is generally available. All other machine types are available | 
 |       # in beta. Learn more about the [differences between machine | 
 |       # types](/ml-engine/docs/machine-types-online-prediction). | 
 |   "packageUris": [ # Optional. Cloud Storage paths (`gs://…`) of packages for [custom | 
 |       # prediction routines](/ml-engine/docs/tensorflow/custom-prediction-routines) | 
 |       # or [scikit-learn pipelines with custom | 
 |       # code](/ml-engine/docs/scikit/exporting-for-prediction#custom-pipeline-code). | 
 |       #  | 
 |       # For a custom prediction routine, one of these packages must contain your | 
 |       # Predictor class (see | 
 |       # [`predictionClass`](#Version.FIELDS.prediction_class)). Additionally, | 
 |       # include any dependencies used by your Predictor or scikit-learn pipeline | 
 |       # uses that are not already included in your selected [runtime | 
 |       # version](/ml-engine/docs/tensorflow/runtime-version-list). | 
 |       #  | 
 |       # If you specify this field, you must also set | 
 |       # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater. | 
 |     "A String", | 
 |   ], | 
 |   "acceleratorConfig": { # Represents a hardware accelerator request config. # Optional. Accelerator config for using GPUs for online prediction (beta). | 
 |       # Only specify this field if you have specified a Compute Engine (N1) machine | 
 |       # type in the `machineType` field. Learn more about [using GPUs for online | 
 |       # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |       # Note that the AcceleratorConfig can be used in both Jobs and Versions. | 
 |       # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and | 
 |       # [accelerators for online | 
 |       # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |     "type": "A String", # The type of accelerator to use. | 
 |     "count": "A String", # The number of accelerators to attach to each machine running the job. | 
 |   }, | 
 |   "state": "A String", # Output only. The state of a version. | 
 |   "name": "A String", # Required. The name specified for the version when it was created. | 
 |       #  | 
 |       # The version name must be unique within the model it is created in. | 
 |   "autoScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in | 
 |       # response to increases and decreases in traffic. Care should be | 
 |       # taken to ramp up traffic according to the model's ability to scale | 
 |       # or you will start seeing increases in latency and 429 response codes. | 
 |       #  | 
 |       # Note that you cannot use AutoScaling if your version uses | 
 |       # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use specify | 
 |       # `manual_scaling`. | 
 |     "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These | 
 |         # nodes are always up, starting from the time the model is deployed. | 
 |         # Therefore, the cost of operating this model will be at least | 
 |         # `rate` * `min_nodes` * number of hours since last billing cycle, | 
 |         # where `rate` is the cost per node-hour as documented in the | 
 |         # [pricing guide](/ml-engine/docs/pricing), | 
 |         # even if no predictions are performed. There is additional cost for each | 
 |         # prediction performed. | 
 |         # | 
 |         # Unlike manual scaling, if the load gets too heavy for the nodes | 
 |         # that are up, the service will automatically add nodes to handle the | 
 |         # increased load as well as scale back as traffic drops, always maintaining | 
 |         # at least `min_nodes`. You will be charged for the time in which additional | 
 |         # nodes are used. | 
 |         # | 
 |         # If `min_nodes` is not specified and AutoScaling is used with a [legacy | 
 |         # (MLS1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |         # `min_nodes` defaults to 0, in which case, when traffic to a model stops | 
 |         # (and after a cool-down period), nodes will be shut down and no charges will | 
 |         # be incurred until traffic to the model resumes. | 
 |         # | 
 |         # If `min_nodes` is not specified and AutoScaling is used with a [Compute | 
 |         # Engine (N1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |         # `min_nodes` defaults to 1. `min_nodes` must be at least 1 for use with a | 
 |         # Compute Engine machine type. | 
 |         # | 
 |         # Note that you cannot use AutoScaling if your version uses | 
 |         # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use | 
 |         # ManualScaling. | 
 |         # | 
 |         # You can set `min_nodes` when creating the model version, and you can also | 
 |         # update `min_nodes` for an existing version: | 
 |         # <pre> | 
 |         # update_body.json: | 
 |         # { | 
 |         #   'autoScaling': { | 
 |         #     'minNodes': 5 | 
 |         #   } | 
 |         # } | 
 |         # </pre> | 
 |         # HTTP request: | 
 |         # <pre style="max-width: 626px;"> | 
 |         # PATCH | 
 |         # https://ml.googleapis.com/v1/{name=projects/*/models/*/versions/*}?update_mask=autoScaling.minNodes | 
 |         # -d @./update_body.json | 
 |         # </pre> | 
 |   }, | 
 |   "explanationConfig": { # Message holding configuration options for explaining model predictions. # Optional. Configures explainability features on the model's version. | 
 |       # Some explanation features require additional metadata to be loaded | 
 |       # as part of the model payload. | 
 |       # There are two feature attribution methods supported for TensorFlow models: | 
 |       # integrated gradients and sampled Shapley. | 
 |       # [Learn more about feature | 
 |       # attributions.](/ai-platform/prediction/docs/ai-explanations/overview) | 
 |     "integratedGradientsAttribution": { # Attributes credit by computing the Aumann-Shapley value taking advantage # Attributes credit by computing the Aumann-Shapley value taking advantage | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: http://proceedings.mlr.press/v70/sundararajan17a.html | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: https://arxiv.org/abs/1703.01365 | 
 |       "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |           # A good value to start is 50 and gradually increase until the | 
 |           # sum to diff property is met within the desired error range. | 
 |     }, | 
 |     "xraiAttribution": { # Attributes credit by computing the XRAI taking advantage # Attributes credit by computing the XRAI taking advantage | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: https://arxiv.org/abs/1906.02825 | 
 |         # Currently only implemented for models with natural image inputs. | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: https://arxiv.org/abs/1906.02825 | 
 |         # Currently only implemented for models with natural image inputs. | 
 |       "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |           # A good value to start is 50 and gradually increase until the | 
 |           # sum to diff property is met within the desired error range. | 
 |     }, | 
 |     "sampledShapleyAttribution": { # An attribution method that approximates Shapley values for features that # An attribution method that approximates Shapley values for features that | 
 |         # contribute to the label being predicted. A sampling strategy is used to | 
 |         # approximate the value rather than considering all subsets of features. | 
 |         # contribute to the label being predicted. A sampling strategy is used to | 
 |         # approximate the value rather than considering all subsets of features. | 
 |       "numPaths": 42, # The number of feature permutations to consider when approximating the | 
 |           # Shapley values. | 
 |     }, | 
 |   }, | 
 |   "pythonVersion": "A String", # Required. The version of Python used in prediction. | 
 |       #  | 
 |       # The following Python versions are available: | 
 |       #  | 
 |       # * Python '3.7' is available when `runtime_version` is set to '1.15' or | 
 |       #   later. | 
 |       # * Python '3.5' is available when `runtime_version` is set to a version | 
 |       #   from '1.4' to '1.14'. | 
 |       # * Python '2.7' is available when `runtime_version` is set to '1.15' or | 
 |       #   earlier. | 
 |       #  | 
 |       # Read more about the Python versions available for [each runtime | 
 |       # version](/ml-engine/docs/runtime-version-list). | 
 |   "requestLoggingConfig": { # Configuration for logging request-response pairs to a BigQuery table. # Optional. *Only* specify this field in a | 
 |       # projects.models.versions.patch | 
 |       # request. Specifying it in a | 
 |       # projects.models.versions.create | 
 |       # request has no effect. | 
 |       #  | 
 |       # Configures the request-response pair logging on predictions from this | 
 |       # Version. | 
 |       # Online prediction requests to a model version and the responses to these | 
 |       # requests are converted to raw strings and saved to the specified BigQuery | 
 |       # table. Logging is constrained by [BigQuery quotas and | 
 |       # limits](/bigquery/quotas). If your project exceeds BigQuery quotas or limits, | 
 |       # AI Platform Prediction does not log request-response pairs, but it continues | 
 |       # to serve predictions. | 
 |       # | 
 |       # If you are using [continuous | 
 |       # evaluation](/ml-engine/docs/continuous-evaluation/), you do not need to | 
 |       # specify this configuration manually. Setting up continuous evaluation | 
 |       # automatically enables logging of request-response pairs. | 
 |     "samplingPercentage": 3.14, # Percentage of requests to be logged, expressed as a fraction from 0 to 1. | 
 |         # For example, if you want to log 10% of requests, enter `0.1`. The sampling | 
 |         # window is the lifetime of the model version. Defaults to 0. | 
 |     "bigqueryTableName": "A String", # Required. Fully qualified BigQuery table name in the following format: | 
 |         # "<var>project_id</var>.<var>dataset_name</var>.<var>table_name</var>" | 
 |         # | 
 |         # The specified table must already exist, and the "Cloud ML Service Agent" | 
 |         # for your project must have permission to write to it. The table must have | 
 |         # the following [schema](/bigquery/docs/schemas): | 
 |         # | 
 |         # <table> | 
 |         #   <tr><th>Field name</th><th style="display: table-cell">Type</th> | 
 |         #     <th style="display: table-cell">Mode</th></tr> | 
 |         #   <tr><td>model</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>model_version</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>time</td><td>TIMESTAMP</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>raw_data</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>raw_prediction</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |         #   <tr><td>groundtruth</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |         # </table> | 
 |   }, | 
 |   "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the | 
 |       # model. You should generally use `auto_scaling` with an appropriate | 
 |       # `min_nodes` instead, but this option is available if you want more | 
 |       # predictable billing. Beware that latency and error rates will increase | 
 |       # if the traffic exceeds that capability of the system to serve it based | 
 |       # on the selected number of nodes. | 
 |     "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up, | 
 |         # starting from the time the model is deployed, so the cost of operating | 
 |         # this model will be proportional to `nodes` * number of hours since | 
 |         # last billing cycle plus the cost for each prediction performed. | 
 |   }, | 
 |   "createTime": "A String", # Output only. The time the version was created. | 
 |   "lastUseTime": "A String", # Output only. The time the version was last used for prediction. | 
 |   "framework": "A String", # Optional. The machine learning framework AI Platform uses to train | 
 |       # this version of the model. Valid values are `TENSORFLOW`, `SCIKIT_LEARN`, | 
 |       # `XGBOOST`. If you do not specify a framework, AI Platform | 
 |       # will analyze files in the deployment_uri to determine a framework. If you | 
 |       # choose `SCIKIT_LEARN` or `XGBOOST`, you must also set the runtime version | 
 |       # of the model to 1.4 or greater. | 
 |       #  | 
 |       # Do **not** specify a framework if you're deploying a [custom | 
 |       # prediction routine](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |       #  | 
 |       # If you specify a [Compute Engine (N1) machine | 
 |       # type](/ml-engine/docs/machine-types-online-prediction) in the | 
 |       # `machineType` field, you must specify `TENSORFLOW` | 
 |       # for the framework. | 
 |   "predictionClass": "A String", # Optional. The fully qualified name | 
 |       # (<var>module_name</var>.<var>class_name</var>) of a class that implements | 
 |       # the Predictor interface described in this reference field. The module | 
 |       # containing this class should be included in a package provided to the | 
 |       # [`packageUris` field](#Version.FIELDS.package_uris). | 
 |       #  | 
 |       # Specify this field if and only if you are deploying a [custom prediction | 
 |       # routine (beta)](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |       # If you specify this field, you must set | 
 |       # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater and | 
 |       # you must set `machineType` to a [legacy (MLS1) | 
 |       # machine type](/ml-engine/docs/machine-types-online-prediction). | 
 |       #  | 
 |       # The following code sample provides the Predictor interface: | 
 |       #  | 
 |       # <pre style="max-width: 626px;"> | 
 |       # class Predictor(object): | 
 |       # """Interface for constructing custom predictors.""" | 
 |       #  | 
 |       # def predict(self, instances, **kwargs): | 
 |       #     """Performs custom prediction. | 
 |       #  | 
 |       #     Instances are the decoded values from the request. They have already | 
 |       #     been deserialized from JSON. | 
 |       #  | 
 |       #     Args: | 
 |       #         instances: A list of prediction input instances. | 
 |       #         **kwargs: A dictionary of keyword args provided as additional | 
 |       #             fields on the predict request body. | 
 |       #  | 
 |       #     Returns: | 
 |       #         A list of outputs containing the prediction results. This list must | 
 |       #         be JSON serializable. | 
 |       #     """ | 
 |       #     raise NotImplementedError() | 
 |       #  | 
 |       # @classmethod | 
 |       # def from_path(cls, model_dir): | 
 |       #     """Creates an instance of Predictor using the given path. | 
 |       #  | 
 |       #     Loading of the predictor should be done in this method. | 
 |       #  | 
 |       #     Args: | 
 |       #         model_dir: The local directory that contains the exported model | 
 |       #             file along with any additional files uploaded when creating the | 
 |       #             version resource. | 
 |       #  | 
 |       #     Returns: | 
 |       #         An instance implementing this Predictor class. | 
 |       #     """ | 
 |       #     raise NotImplementedError() | 
 |       # </pre> | 
 |       #  | 
 |       # Learn more about [the Predictor interface and custom prediction | 
 |       # routines](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |   "isDefault": True or False, # Output only. If true, this version will be used to handle prediction | 
 |       # requests that do not specify a version. | 
 |       #  | 
 |       # You can change the default version by calling | 
 |       # projects.methods.versions.setDefault. | 
 |   "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
 |       # prevent simultaneous updates of a model from overwriting each other. | 
 |       # It is strongly suggested that systems make use of the `etag` in the | 
 |       # read-modify-write cycle to perform model updates in order to avoid race | 
 |       # conditions: An `etag` is returned in the response to `GetVersion`, and | 
 |       # systems are expected to put that etag in the request to `UpdateVersion` to | 
 |       # ensure that their change will be applied to the model as intended. | 
 |   "serviceAccount": "A String", # Optional. Specifies the service account for resource access control. | 
 |   "errorMessage": "A String", # Output only. The details of a failure or a cancellation. | 
 |   "deploymentUri": "A String", # Required. The Cloud Storage location of the trained model used to | 
 |       # create the version. See the | 
 |       # [guide to model | 
 |       # deployment](/ml-engine/docs/tensorflow/deploying-models) for more | 
 |       # information. | 
 |       #  | 
 |       # When passing Version to | 
 |       # projects.models.versions.create | 
 |       # the model service uses the specified location as the source of the model. | 
 |       # Once deployed, the model version is hosted by the prediction service, so | 
 |       # this location is useful only as a historical record. | 
 |       # The total number of model files can't exceed 1000. | 
 |   "runtimeVersion": "A String", # Required. The AI Platform runtime version to use for this deployment. | 
 |       #  | 
 |       # For more information, see the | 
 |       # [runtime version list](/ml-engine/docs/runtime-version-list) and | 
 |       # [how to manage runtime versions](/ml-engine/docs/versioning). | 
 |   "description": "A String", # Optional. The description specified for the version when it was created. | 
 | } | 
 |  | 
 |   x__xgafv: string, V1 error format. | 
 |     Allowed values | 
 |       1 - v1 error format | 
 |       2 - v2 error format | 
 |  | 
 | Returns: | 
 |   An object of the form: | 
 |  | 
 |     { # This resource represents a long-running operation that is the result of a | 
 |       # network API call. | 
 |     "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation. | 
 |         # different programming environments, including REST APIs and RPC APIs. It is | 
 |         # used by [gRPC](https://github.com/grpc). Each `Status` message contains | 
 |         # three pieces of data: error code, error message, and error details. | 
 |         # | 
 |         # You can find out more about this error model and how to work with it in the | 
 |         # [API Design Guide](https://cloud.google.com/apis/design/errors). | 
 |       "details": [ # A list of messages that carry the error details.  There is a common set of | 
 |           # message types for APIs to use. | 
 |         { | 
 |           "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |         }, | 
 |       ], | 
 |       "message": "A String", # A developer-facing error message, which should be in English. Any | 
 |           # user-facing error message should be localized and sent in the | 
 |           # google.rpc.Status.details field, or localized by the client. | 
 |       "code": 42, # The status code, which should be an enum value of google.rpc.Code. | 
 |     }, | 
 |     "done": True or False, # If the value is `false`, it means the operation is still in progress. | 
 |         # If `true`, the operation is completed, and either `error` or `response` is | 
 |         # available. | 
 |     "response": { # The normal response of the operation in case of success.  If the original | 
 |         # method returns no data on success, such as `Delete`, the response is | 
 |         # `google.protobuf.Empty`.  If the original method is standard | 
 |         # `Get`/`Create`/`Update`, the response should be the resource.  For other | 
 |         # methods, the response should have the type `XxxResponse`, where `Xxx` | 
 |         # is the original method name.  For example, if the original method name | 
 |         # is `TakeSnapshot()`, the inferred response type is | 
 |         # `TakeSnapshotResponse`. | 
 |       "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |     }, | 
 |     "metadata": { # Service-specific metadata associated with the operation.  It typically | 
 |         # contains progress information and common metadata such as create time. | 
 |         # Some services might not provide such metadata.  Any method that returns a | 
 |         # long-running operation should document the metadata type, if any. | 
 |       "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |     }, | 
 |     "name": "A String", # The server-assigned name, which is only unique within the same service that | 
 |         # originally returns it. If you use the default HTTP mapping, the | 
 |         # `name` should be a resource name ending with `operations/{unique_id}`. | 
 |   }</pre> | 
 | </div> | 
 |  | 
 | <div class="method"> | 
 |     <code class="details" id="delete">delete(name, x__xgafv=None)</code> | 
 |   <pre>Deletes a model version. | 
 |  | 
 | Each model can have multiple versions deployed and in use at any given | 
 | time. Use this method to remove a single version. | 
 |  | 
 | Note: You cannot delete the version that is set as the default version | 
 | of the model unless it is the only remaining version. | 
 |  | 
 | Args: | 
 |   name: string, Required. The name of the version. You can get the names of all the | 
 | versions of a model by calling | 
 | projects.models.versions.list. (required) | 
 |   x__xgafv: string, V1 error format. | 
 |     Allowed values | 
 |       1 - v1 error format | 
 |       2 - v2 error format | 
 |  | 
 | Returns: | 
 |   An object of the form: | 
 |  | 
 |     { # This resource represents a long-running operation that is the result of a | 
 |       # network API call. | 
 |     "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation. | 
 |         # different programming environments, including REST APIs and RPC APIs. It is | 
 |         # used by [gRPC](https://github.com/grpc). Each `Status` message contains | 
 |         # three pieces of data: error code, error message, and error details. | 
 |         # | 
 |         # You can find out more about this error model and how to work with it in the | 
 |         # [API Design Guide](https://cloud.google.com/apis/design/errors). | 
 |       "details": [ # A list of messages that carry the error details.  There is a common set of | 
 |           # message types for APIs to use. | 
 |         { | 
 |           "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |         }, | 
 |       ], | 
 |       "message": "A String", # A developer-facing error message, which should be in English. Any | 
 |           # user-facing error message should be localized and sent in the | 
 |           # google.rpc.Status.details field, or localized by the client. | 
 |       "code": 42, # The status code, which should be an enum value of google.rpc.Code. | 
 |     }, | 
 |     "done": True or False, # If the value is `false`, it means the operation is still in progress. | 
 |         # If `true`, the operation is completed, and either `error` or `response` is | 
 |         # available. | 
 |     "response": { # The normal response of the operation in case of success.  If the original | 
 |         # method returns no data on success, such as `Delete`, the response is | 
 |         # `google.protobuf.Empty`.  If the original method is standard | 
 |         # `Get`/`Create`/`Update`, the response should be the resource.  For other | 
 |         # methods, the response should have the type `XxxResponse`, where `Xxx` | 
 |         # is the original method name.  For example, if the original method name | 
 |         # is `TakeSnapshot()`, the inferred response type is | 
 |         # `TakeSnapshotResponse`. | 
 |       "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |     }, | 
 |     "metadata": { # Service-specific metadata associated with the operation.  It typically | 
 |         # contains progress information and common metadata such as create time. | 
 |         # Some services might not provide such metadata.  Any method that returns a | 
 |         # long-running operation should document the metadata type, if any. | 
 |       "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |     }, | 
 |     "name": "A String", # The server-assigned name, which is only unique within the same service that | 
 |         # originally returns it. If you use the default HTTP mapping, the | 
 |         # `name` should be a resource name ending with `operations/{unique_id}`. | 
 |   }</pre> | 
 | </div> | 
 |  | 
 | <div class="method"> | 
 |     <code class="details" id="get">get(name, x__xgafv=None)</code> | 
 |   <pre>Gets information about a model version. | 
 |  | 
 | Models can have multiple versions. You can call | 
 | projects.models.versions.list | 
 | to get the same information that this method returns for all of the | 
 | versions of a model. | 
 |  | 
 | Args: | 
 |   name: string, Required. The name of the version. (required) | 
 |   x__xgafv: string, V1 error format. | 
 |     Allowed values | 
 |       1 - v1 error format | 
 |       2 - v2 error format | 
 |  | 
 | Returns: | 
 |   An object of the form: | 
 |  | 
 |     { # Represents a version of the model. | 
 |       # | 
 |       # Each version is a trained model deployed in the cloud, ready to handle | 
 |       # prediction requests. A model can have multiple versions. You can get | 
 |       # information about all of the versions of a given model by calling | 
 |       # projects.models.versions.list. | 
 |     "labels": { # Optional. One or more labels that you can add, to organize your model | 
 |         # versions. Each label is a key-value pair, where both the key and the value | 
 |         # are arbitrary strings that you supply. | 
 |         # For more information, see the documentation on | 
 |         # <a href="/ml-engine/docs/tensorflow/resource-labels">using labels</a>. | 
 |       "a_key": "A String", | 
 |     }, | 
 |     "machineType": "A String", # Optional. The type of machine on which to serve the model. Currently only | 
 |         # applies to online prediction service. If this field is not specified, it | 
 |         # defaults to `mls1-c1-m2`. | 
 |         # | 
 |         # Online prediction supports the following machine types: | 
 |         # | 
 |         # * `mls1-c1-m2` | 
 |         # * `mls1-c4-m2` | 
 |         # * `n1-standard-2` | 
 |         # * `n1-standard-4` | 
 |         # * `n1-standard-8` | 
 |         # * `n1-standard-16` | 
 |         # * `n1-standard-32` | 
 |         # * `n1-highmem-2` | 
 |         # * `n1-highmem-4` | 
 |         # * `n1-highmem-8` | 
 |         # * `n1-highmem-16` | 
 |         # * `n1-highmem-32` | 
 |         # * `n1-highcpu-2` | 
 |         # * `n1-highcpu-4` | 
 |         # * `n1-highcpu-8` | 
 |         # * `n1-highcpu-16` | 
 |         # * `n1-highcpu-32` | 
 |         # | 
 |         # `mls1-c1-m2` is generally available. All other machine types are available | 
 |         # in beta. Learn more about the [differences between machine | 
 |         # types](/ml-engine/docs/machine-types-online-prediction). | 
 |     "packageUris": [ # Optional. Cloud Storage paths (`gs://…`) of packages for [custom | 
 |         # prediction routines](/ml-engine/docs/tensorflow/custom-prediction-routines) | 
 |         # or [scikit-learn pipelines with custom | 
 |         # code](/ml-engine/docs/scikit/exporting-for-prediction#custom-pipeline-code). | 
 |         # | 
 |         # For a custom prediction routine, one of these packages must contain your | 
 |         # Predictor class (see | 
 |         # [`predictionClass`](#Version.FIELDS.prediction_class)). Additionally, | 
 |         # include any dependencies used by your Predictor or scikit-learn pipeline | 
 |         # uses that are not already included in your selected [runtime | 
 |         # version](/ml-engine/docs/tensorflow/runtime-version-list). | 
 |         # | 
 |         # If you specify this field, you must also set | 
 |         # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater. | 
 |       "A String", | 
 |     ], | 
 |     "acceleratorConfig": { # Represents a hardware accelerator request config. # Optional. Accelerator config for using GPUs for online prediction (beta). | 
 |         # Only specify this field if you have specified a Compute Engine (N1) machine | 
 |         # type in the `machineType` field. Learn more about [using GPUs for online | 
 |         # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |         # Note that the AcceleratorConfig can be used in both Jobs and Versions. | 
 |         # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and | 
 |         # [accelerators for online | 
 |         # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |       "type": "A String", # The type of accelerator to use. | 
 |       "count": "A String", # The number of accelerators to attach to each machine running the job. | 
 |     }, | 
 |     "state": "A String", # Output only. The state of a version. | 
 |     "name": "A String", # Required. The name specified for the version when it was created. | 
 |         # | 
 |         # The version name must be unique within the model it is created in. | 
 |     "autoScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in | 
 |         # response to increases and decreases in traffic. Care should be | 
 |         # taken to ramp up traffic according to the model's ability to scale | 
 |         # or you will start seeing increases in latency and 429 response codes. | 
 |         # | 
 |         # Note that you cannot use AutoScaling if your version uses | 
 |         # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use specify | 
 |         # `manual_scaling`. | 
 |       "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These | 
 |           # nodes are always up, starting from the time the model is deployed. | 
 |           # Therefore, the cost of operating this model will be at least | 
 |           # `rate` * `min_nodes` * number of hours since last billing cycle, | 
 |           # where `rate` is the cost per node-hour as documented in the | 
 |           # [pricing guide](/ml-engine/docs/pricing), | 
 |           # even if no predictions are performed. There is additional cost for each | 
 |           # prediction performed. | 
 |           # | 
 |           # Unlike manual scaling, if the load gets too heavy for the nodes | 
 |           # that are up, the service will automatically add nodes to handle the | 
 |           # increased load as well as scale back as traffic drops, always maintaining | 
 |           # at least `min_nodes`. You will be charged for the time in which additional | 
 |           # nodes are used. | 
 |           # | 
 |           # If `min_nodes` is not specified and AutoScaling is used with a [legacy | 
 |           # (MLS1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |           # `min_nodes` defaults to 0, in which case, when traffic to a model stops | 
 |           # (and after a cool-down period), nodes will be shut down and no charges will | 
 |           # be incurred until traffic to the model resumes. | 
 |           # | 
 |           # If `min_nodes` is not specified and AutoScaling is used with a [Compute | 
 |           # Engine (N1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |           # `min_nodes` defaults to 1. `min_nodes` must be at least 1 for use with a | 
 |           # Compute Engine machine type. | 
 |           # | 
 |           # Note that you cannot use AutoScaling if your version uses | 
 |           # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use | 
 |           # ManualScaling. | 
 |           # | 
 |           # You can set `min_nodes` when creating the model version, and you can also | 
 |           # update `min_nodes` for an existing version: | 
 |           # <pre> | 
 |           # update_body.json: | 
 |           # { | 
 |           #   'autoScaling': { | 
 |           #     'minNodes': 5 | 
 |           #   } | 
 |           # } | 
 |           # </pre> | 
 |           # HTTP request: | 
 |           # <pre style="max-width: 626px;"> | 
 |           # PATCH | 
 |           # https://ml.googleapis.com/v1/{name=projects/*/models/*/versions/*}?update_mask=autoScaling.minNodes | 
 |           # -d @./update_body.json | 
 |           # </pre> | 
 |     }, | 
 |     "explanationConfig": { # Message holding configuration options for explaining model predictions. # Optional. Configures explainability features on the model's version. | 
 |         # Some explanation features require additional metadata to be loaded | 
 |         # as part of the model payload. | 
 |         # There are two feature attribution methods supported for TensorFlow models: | 
 |         # integrated gradients and sampled Shapley. | 
 |         # [Learn more about feature | 
 |         # attributions.](/ai-platform/prediction/docs/ai-explanations/overview) | 
 |       "integratedGradientsAttribution": { # Attributes credit by computing the Aumann-Shapley value taking advantage # Attributes credit by computing the Aumann-Shapley value taking advantage | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: http://proceedings.mlr.press/v70/sundararajan17a.html | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: https://arxiv.org/abs/1703.01365 | 
 |         "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |             # A good value to start is 50 and gradually increase until the | 
 |             # sum to diff property is met within the desired error range. | 
 |       }, | 
 |       "xraiAttribution": { # Attributes credit by computing the XRAI taking advantage # Attributes credit by computing the XRAI taking advantage | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: https://arxiv.org/abs/1906.02825 | 
 |           # Currently only implemented for models with natural image inputs. | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: https://arxiv.org/abs/1906.02825 | 
 |           # Currently only implemented for models with natural image inputs. | 
 |         "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |             # A good value to start is 50 and gradually increase until the | 
 |             # sum to diff property is met within the desired error range. | 
 |       }, | 
 |       "sampledShapleyAttribution": { # An attribution method that approximates Shapley values for features that # An attribution method that approximates Shapley values for features that | 
 |           # contribute to the label being predicted. A sampling strategy is used to | 
 |           # approximate the value rather than considering all subsets of features. | 
 |           # contribute to the label being predicted. A sampling strategy is used to | 
 |           # approximate the value rather than considering all subsets of features. | 
 |         "numPaths": 42, # The number of feature permutations to consider when approximating the | 
 |             # Shapley values. | 
 |       }, | 
 |     }, | 
 |     "pythonVersion": "A String", # Required. The version of Python used in prediction. | 
 |         # | 
 |         # The following Python versions are available: | 
 |         # | 
 |         # * Python '3.7' is available when `runtime_version` is set to '1.15' or | 
 |         #   later. | 
 |         # * Python '3.5' is available when `runtime_version` is set to a version | 
 |         #   from '1.4' to '1.14'. | 
 |         # * Python '2.7' is available when `runtime_version` is set to '1.15' or | 
 |         #   earlier. | 
 |         # | 
 |         # Read more about the Python versions available for [each runtime | 
 |         # version](/ml-engine/docs/runtime-version-list). | 
 |     "requestLoggingConfig": { # Configuration for logging request-response pairs to a BigQuery table. # Optional. *Only* specify this field in a | 
 |         # projects.models.versions.patch | 
 |         # request. Specifying it in a | 
 |         # projects.models.versions.create | 
 |         # request has no effect. | 
 |         # | 
 |         # Configures the request-response pair logging on predictions from this | 
 |         # Version. | 
 |         # Online prediction requests to a model version and the responses to these | 
 |         # requests are converted to raw strings and saved to the specified BigQuery | 
 |         # table. Logging is constrained by [BigQuery quotas and | 
 |         # limits](/bigquery/quotas). If your project exceeds BigQuery quotas or limits, | 
 |         # AI Platform Prediction does not log request-response pairs, but it continues | 
 |         # to serve predictions. | 
 |         # | 
 |         # If you are using [continuous | 
 |         # evaluation](/ml-engine/docs/continuous-evaluation/), you do not need to | 
 |         # specify this configuration manually. Setting up continuous evaluation | 
 |         # automatically enables logging of request-response pairs. | 
 |       "samplingPercentage": 3.14, # Percentage of requests to be logged, expressed as a fraction from 0 to 1. | 
 |           # For example, if you want to log 10% of requests, enter `0.1`. The sampling | 
 |           # window is the lifetime of the model version. Defaults to 0. | 
 |       "bigqueryTableName": "A String", # Required. Fully qualified BigQuery table name in the following format: | 
 |           # "<var>project_id</var>.<var>dataset_name</var>.<var>table_name</var>" | 
 |           # | 
 |           # The specified table must already exist, and the "Cloud ML Service Agent" | 
 |           # for your project must have permission to write to it. The table must have | 
 |           # the following [schema](/bigquery/docs/schemas): | 
 |           # | 
 |           # <table> | 
 |           #   <tr><th>Field name</th><th style="display: table-cell">Type</th> | 
 |           #     <th style="display: table-cell">Mode</th></tr> | 
 |           #   <tr><td>model</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>model_version</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>time</td><td>TIMESTAMP</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>raw_data</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>raw_prediction</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |           #   <tr><td>groundtruth</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |           # </table> | 
 |     }, | 
 |     "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the | 
 |         # model. You should generally use `auto_scaling` with an appropriate | 
 |         # `min_nodes` instead, but this option is available if you want more | 
 |         # predictable billing. Beware that latency and error rates will increase | 
 |         # if the traffic exceeds that capability of the system to serve it based | 
 |         # on the selected number of nodes. | 
 |       "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up, | 
 |           # starting from the time the model is deployed, so the cost of operating | 
 |           # this model will be proportional to `nodes` * number of hours since | 
 |           # last billing cycle plus the cost for each prediction performed. | 
 |     }, | 
 |     "createTime": "A String", # Output only. The time the version was created. | 
 |     "lastUseTime": "A String", # Output only. The time the version was last used for prediction. | 
 |     "framework": "A String", # Optional. The machine learning framework AI Platform uses to train | 
 |         # this version of the model. Valid values are `TENSORFLOW`, `SCIKIT_LEARN`, | 
 |         # `XGBOOST`. If you do not specify a framework, AI Platform | 
 |         # will analyze files in the deployment_uri to determine a framework. If you | 
 |         # choose `SCIKIT_LEARN` or `XGBOOST`, you must also set the runtime version | 
 |         # of the model to 1.4 or greater. | 
 |         # | 
 |         # Do **not** specify a framework if you're deploying a [custom | 
 |         # prediction routine](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |         # | 
 |         # If you specify a [Compute Engine (N1) machine | 
 |         # type](/ml-engine/docs/machine-types-online-prediction) in the | 
 |         # `machineType` field, you must specify `TENSORFLOW` | 
 |         # for the framework. | 
 |     "predictionClass": "A String", # Optional. The fully qualified name | 
 |         # (<var>module_name</var>.<var>class_name</var>) of a class that implements | 
 |         # the Predictor interface described in this reference field. The module | 
 |         # containing this class should be included in a package provided to the | 
 |         # [`packageUris` field](#Version.FIELDS.package_uris). | 
 |         # | 
 |         # Specify this field if and only if you are deploying a [custom prediction | 
 |         # routine (beta)](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |         # If you specify this field, you must set | 
 |         # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater and | 
 |         # you must set `machineType` to a [legacy (MLS1) | 
 |         # machine type](/ml-engine/docs/machine-types-online-prediction). | 
 |         # | 
 |         # The following code sample provides the Predictor interface: | 
 |         # | 
 |         # <pre style="max-width: 626px;"> | 
 |         # class Predictor(object): | 
 |         # """Interface for constructing custom predictors.""" | 
 |         # | 
 |         # def predict(self, instances, **kwargs): | 
 |         #     """Performs custom prediction. | 
 |         # | 
 |         #     Instances are the decoded values from the request. They have already | 
 |         #     been deserialized from JSON. | 
 |         # | 
 |         #     Args: | 
 |         #         instances: A list of prediction input instances. | 
 |         #         **kwargs: A dictionary of keyword args provided as additional | 
 |         #             fields on the predict request body. | 
 |         # | 
 |         #     Returns: | 
 |         #         A list of outputs containing the prediction results. This list must | 
 |         #         be JSON serializable. | 
 |         #     """ | 
 |         #     raise NotImplementedError() | 
 |         # | 
 |         # @classmethod | 
 |         # def from_path(cls, model_dir): | 
 |         #     """Creates an instance of Predictor using the given path. | 
 |         # | 
 |         #     Loading of the predictor should be done in this method. | 
 |         # | 
 |         #     Args: | 
 |         #         model_dir: The local directory that contains the exported model | 
 |         #             file along with any additional files uploaded when creating the | 
 |         #             version resource. | 
 |         # | 
 |         #     Returns: | 
 |         #         An instance implementing this Predictor class. | 
 |         #     """ | 
 |         #     raise NotImplementedError() | 
 |         # </pre> | 
 |         # | 
 |         # Learn more about [the Predictor interface and custom prediction | 
 |         # routines](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |     "isDefault": True or False, # Output only. If true, this version will be used to handle prediction | 
 |         # requests that do not specify a version. | 
 |         # | 
 |         # You can change the default version by calling | 
 |         # projects.methods.versions.setDefault. | 
 |     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
 |         # prevent simultaneous updates of a model from overwriting each other. | 
 |         # It is strongly suggested that systems make use of the `etag` in the | 
 |         # read-modify-write cycle to perform model updates in order to avoid race | 
 |         # conditions: An `etag` is returned in the response to `GetVersion`, and | 
 |         # systems are expected to put that etag in the request to `UpdateVersion` to | 
 |         # ensure that their change will be applied to the model as intended. | 
 |     "serviceAccount": "A String", # Optional. Specifies the service account for resource access control. | 
 |     "errorMessage": "A String", # Output only. The details of a failure or a cancellation. | 
 |     "deploymentUri": "A String", # Required. The Cloud Storage location of the trained model used to | 
 |         # create the version. See the | 
 |         # [guide to model | 
 |         # deployment](/ml-engine/docs/tensorflow/deploying-models) for more | 
 |         # information. | 
 |         # | 
 |         # When passing Version to | 
 |         # projects.models.versions.create | 
 |         # the model service uses the specified location as the source of the model. | 
 |         # Once deployed, the model version is hosted by the prediction service, so | 
 |         # this location is useful only as a historical record. | 
 |         # The total number of model files can't exceed 1000. | 
 |     "runtimeVersion": "A String", # Required. The AI Platform runtime version to use for this deployment. | 
 |         # | 
 |         # For more information, see the | 
 |         # [runtime version list](/ml-engine/docs/runtime-version-list) and | 
 |         # [how to manage runtime versions](/ml-engine/docs/versioning). | 
 |     "description": "A String", # Optional. The description specified for the version when it was created. | 
 |   }</pre> | 
 | </div> | 
 |  | 
 | <div class="method"> | 
 |     <code class="details" id="list">list(parent, filter=None, pageToken=None, pageSize=None, x__xgafv=None)</code> | 
 |   <pre>Gets basic information about all the versions of a model. | 
 |  | 
 | If you expect that a model has many versions, or if you need to handle | 
 | only a limited number of results at a time, you can request that the list | 
 | be retrieved in batches (called pages). | 
 |  | 
 | If there are no versions that match the request parameters, the list | 
 | request returns an empty response body: {}. | 
 |  | 
 | Args: | 
 |   parent: string, Required. The name of the model for which to list the version. (required) | 
 |   filter: string, Optional. Specifies the subset of versions to retrieve. | 
 |   pageToken: string, Optional. A page token to request the next page of results. | 
 |  | 
 | You get the token from the `next_page_token` field of the response from | 
 | the previous call. | 
 |   pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If | 
 | there are more remaining results than this number, the response message | 
 | will contain a valid value in the `next_page_token` field. | 
 |  | 
 | The default value is 20, and the maximum page size is 100. | 
 |   x__xgafv: string, V1 error format. | 
 |     Allowed values | 
 |       1 - v1 error format | 
 |       2 - v2 error format | 
 |  | 
 | Returns: | 
 |   An object of the form: | 
 |  | 
 |     { # Response message for the ListVersions method. | 
 |     "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a | 
 |         # subsequent call. | 
 |     "versions": [ # The list of versions. | 
 |       { # Represents a version of the model. | 
 |           # | 
 |           # Each version is a trained model deployed in the cloud, ready to handle | 
 |           # prediction requests. A model can have multiple versions. You can get | 
 |           # information about all of the versions of a given model by calling | 
 |           # projects.models.versions.list. | 
 |         "labels": { # Optional. One or more labels that you can add, to organize your model | 
 |             # versions. Each label is a key-value pair, where both the key and the value | 
 |             # are arbitrary strings that you supply. | 
 |             # For more information, see the documentation on | 
 |             # <a href="/ml-engine/docs/tensorflow/resource-labels">using labels</a>. | 
 |           "a_key": "A String", | 
 |         }, | 
 |         "machineType": "A String", # Optional. The type of machine on which to serve the model. Currently only | 
 |             # applies to online prediction service. If this field is not specified, it | 
 |             # defaults to `mls1-c1-m2`. | 
 |             # | 
 |             # Online prediction supports the following machine types: | 
 |             # | 
 |             # * `mls1-c1-m2` | 
 |             # * `mls1-c4-m2` | 
 |             # * `n1-standard-2` | 
 |             # * `n1-standard-4` | 
 |             # * `n1-standard-8` | 
 |             # * `n1-standard-16` | 
 |             # * `n1-standard-32` | 
 |             # * `n1-highmem-2` | 
 |             # * `n1-highmem-4` | 
 |             # * `n1-highmem-8` | 
 |             # * `n1-highmem-16` | 
 |             # * `n1-highmem-32` | 
 |             # * `n1-highcpu-2` | 
 |             # * `n1-highcpu-4` | 
 |             # * `n1-highcpu-8` | 
 |             # * `n1-highcpu-16` | 
 |             # * `n1-highcpu-32` | 
 |             # | 
 |             # `mls1-c1-m2` is generally available. All other machine types are available | 
 |             # in beta. Learn more about the [differences between machine | 
 |             # types](/ml-engine/docs/machine-types-online-prediction). | 
 |         "packageUris": [ # Optional. Cloud Storage paths (`gs://…`) of packages for [custom | 
 |             # prediction routines](/ml-engine/docs/tensorflow/custom-prediction-routines) | 
 |             # or [scikit-learn pipelines with custom | 
 |             # code](/ml-engine/docs/scikit/exporting-for-prediction#custom-pipeline-code). | 
 |             # | 
 |             # For a custom prediction routine, one of these packages must contain your | 
 |             # Predictor class (see | 
 |             # [`predictionClass`](#Version.FIELDS.prediction_class)). Additionally, | 
 |             # include any dependencies used by your Predictor or scikit-learn pipeline | 
 |             # uses that are not already included in your selected [runtime | 
 |             # version](/ml-engine/docs/tensorflow/runtime-version-list). | 
 |             # | 
 |             # If you specify this field, you must also set | 
 |             # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater. | 
 |           "A String", | 
 |         ], | 
 |         "acceleratorConfig": { # Represents a hardware accelerator request config. # Optional. Accelerator config for using GPUs for online prediction (beta). | 
 |             # Only specify this field if you have specified a Compute Engine (N1) machine | 
 |             # type in the `machineType` field. Learn more about [using GPUs for online | 
 |             # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |             # Note that the AcceleratorConfig can be used in both Jobs and Versions. | 
 |             # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and | 
 |             # [accelerators for online | 
 |             # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |           "type": "A String", # The type of accelerator to use. | 
 |           "count": "A String", # The number of accelerators to attach to each machine running the job. | 
 |         }, | 
 |         "state": "A String", # Output only. The state of a version. | 
 |         "name": "A String", # Required. The name specified for the version when it was created. | 
 |             # | 
 |             # The version name must be unique within the model it is created in. | 
 |         "autoScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in | 
 |             # response to increases and decreases in traffic. Care should be | 
 |             # taken to ramp up traffic according to the model's ability to scale | 
 |             # or you will start seeing increases in latency and 429 response codes. | 
 |             # | 
 |             # Note that you cannot use AutoScaling if your version uses | 
 |             # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use specify | 
 |             # `manual_scaling`. | 
 |           "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These | 
 |               # nodes are always up, starting from the time the model is deployed. | 
 |               # Therefore, the cost of operating this model will be at least | 
 |               # `rate` * `min_nodes` * number of hours since last billing cycle, | 
 |               # where `rate` is the cost per node-hour as documented in the | 
 |               # [pricing guide](/ml-engine/docs/pricing), | 
 |               # even if no predictions are performed. There is additional cost for each | 
 |               # prediction performed. | 
 |               # | 
 |               # Unlike manual scaling, if the load gets too heavy for the nodes | 
 |               # that are up, the service will automatically add nodes to handle the | 
 |               # increased load as well as scale back as traffic drops, always maintaining | 
 |               # at least `min_nodes`. You will be charged for the time in which additional | 
 |               # nodes are used. | 
 |               # | 
 |               # If `min_nodes` is not specified and AutoScaling is used with a [legacy | 
 |               # (MLS1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |               # `min_nodes` defaults to 0, in which case, when traffic to a model stops | 
 |               # (and after a cool-down period), nodes will be shut down and no charges will | 
 |               # be incurred until traffic to the model resumes. | 
 |               # | 
 |               # If `min_nodes` is not specified and AutoScaling is used with a [Compute | 
 |               # Engine (N1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |               # `min_nodes` defaults to 1. `min_nodes` must be at least 1 for use with a | 
 |               # Compute Engine machine type. | 
 |               # | 
 |               # Note that you cannot use AutoScaling if your version uses | 
 |               # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use | 
 |               # ManualScaling. | 
 |               # | 
 |               # You can set `min_nodes` when creating the model version, and you can also | 
 |               # update `min_nodes` for an existing version: | 
 |               # <pre> | 
 |               # update_body.json: | 
 |               # { | 
 |               #   'autoScaling': { | 
 |               #     'minNodes': 5 | 
 |               #   } | 
 |               # } | 
 |               # </pre> | 
 |               # HTTP request: | 
 |               # <pre style="max-width: 626px;"> | 
 |               # PATCH | 
 |               # https://ml.googleapis.com/v1/{name=projects/*/models/*/versions/*}?update_mask=autoScaling.minNodes | 
 |               # -d @./update_body.json | 
 |               # </pre> | 
 |         }, | 
 |         "explanationConfig": { # Message holding configuration options for explaining model predictions. # Optional. Configures explainability features on the model's version. | 
 |             # Some explanation features require additional metadata to be loaded | 
 |             # as part of the model payload. | 
 |             # There are two feature attribution methods supported for TensorFlow models: | 
 |             # integrated gradients and sampled Shapley. | 
 |             # [Learn more about feature | 
 |             # attributions.](/ai-platform/prediction/docs/ai-explanations/overview) | 
 |           "integratedGradientsAttribution": { # Attributes credit by computing the Aumann-Shapley value taking advantage # Attributes credit by computing the Aumann-Shapley value taking advantage | 
 |               # of the model's fully differentiable structure. Refer to this paper for | 
 |               # more details: http://proceedings.mlr.press/v70/sundararajan17a.html | 
 |               # of the model's fully differentiable structure. Refer to this paper for | 
 |               # more details: https://arxiv.org/abs/1703.01365 | 
 |             "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |                 # A good value to start is 50 and gradually increase until the | 
 |                 # sum to diff property is met within the desired error range. | 
 |           }, | 
 |           "xraiAttribution": { # Attributes credit by computing the XRAI taking advantage # Attributes credit by computing the XRAI taking advantage | 
 |               # of the model's fully differentiable structure. Refer to this paper for | 
 |               # more details: https://arxiv.org/abs/1906.02825 | 
 |               # Currently only implemented for models with natural image inputs. | 
 |               # of the model's fully differentiable structure. Refer to this paper for | 
 |               # more details: https://arxiv.org/abs/1906.02825 | 
 |               # Currently only implemented for models with natural image inputs. | 
 |             "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |                 # A good value to start is 50 and gradually increase until the | 
 |                 # sum to diff property is met within the desired error range. | 
 |           }, | 
 |           "sampledShapleyAttribution": { # An attribution method that approximates Shapley values for features that # An attribution method that approximates Shapley values for features that | 
 |               # contribute to the label being predicted. A sampling strategy is used to | 
 |               # approximate the value rather than considering all subsets of features. | 
 |               # contribute to the label being predicted. A sampling strategy is used to | 
 |               # approximate the value rather than considering all subsets of features. | 
 |             "numPaths": 42, # The number of feature permutations to consider when approximating the | 
 |                 # Shapley values. | 
 |           }, | 
 |         }, | 
 |         "pythonVersion": "A String", # Required. The version of Python used in prediction. | 
 |             # | 
 |             # The following Python versions are available: | 
 |             # | 
 |             # * Python '3.7' is available when `runtime_version` is set to '1.15' or | 
 |             #   later. | 
 |             # * Python '3.5' is available when `runtime_version` is set to a version | 
 |             #   from '1.4' to '1.14'. | 
 |             # * Python '2.7' is available when `runtime_version` is set to '1.15' or | 
 |             #   earlier. | 
 |             # | 
 |             # Read more about the Python versions available for [each runtime | 
 |             # version](/ml-engine/docs/runtime-version-list). | 
 |         "requestLoggingConfig": { # Configuration for logging request-response pairs to a BigQuery table. # Optional. *Only* specify this field in a | 
 |             # projects.models.versions.patch | 
 |             # request. Specifying it in a | 
 |             # projects.models.versions.create | 
 |             # request has no effect. | 
 |             # | 
 |             # Configures the request-response pair logging on predictions from this | 
 |             # Version. | 
 |             # Online prediction requests to a model version and the responses to these | 
 |             # requests are converted to raw strings and saved to the specified BigQuery | 
 |             # table. Logging is constrained by [BigQuery quotas and | 
 |             # limits](/bigquery/quotas). If your project exceeds BigQuery quotas or limits, | 
 |             # AI Platform Prediction does not log request-response pairs, but it continues | 
 |             # to serve predictions. | 
 |             # | 
 |             # If you are using [continuous | 
 |             # evaluation](/ml-engine/docs/continuous-evaluation/), you do not need to | 
 |             # specify this configuration manually. Setting up continuous evaluation | 
 |             # automatically enables logging of request-response pairs. | 
 |           "samplingPercentage": 3.14, # Percentage of requests to be logged, expressed as a fraction from 0 to 1. | 
 |               # For example, if you want to log 10% of requests, enter `0.1`. The sampling | 
 |               # window is the lifetime of the model version. Defaults to 0. | 
 |           "bigqueryTableName": "A String", # Required. Fully qualified BigQuery table name in the following format: | 
 |               # "<var>project_id</var>.<var>dataset_name</var>.<var>table_name</var>" | 
 |               # | 
 |               # The specified table must already exist, and the "Cloud ML Service Agent" | 
 |               # for your project must have permission to write to it. The table must have | 
 |               # the following [schema](/bigquery/docs/schemas): | 
 |               # | 
 |               # <table> | 
 |               #   <tr><th>Field name</th><th style="display: table-cell">Type</th> | 
 |               #     <th style="display: table-cell">Mode</th></tr> | 
 |               #   <tr><td>model</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |               #   <tr><td>model_version</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |               #   <tr><td>time</td><td>TIMESTAMP</td><td>REQUIRED</td></tr> | 
 |               #   <tr><td>raw_data</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |               #   <tr><td>raw_prediction</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |               #   <tr><td>groundtruth</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |               # </table> | 
 |         }, | 
 |         "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the | 
 |             # model. You should generally use `auto_scaling` with an appropriate | 
 |             # `min_nodes` instead, but this option is available if you want more | 
 |             # predictable billing. Beware that latency and error rates will increase | 
 |             # if the traffic exceeds that capability of the system to serve it based | 
 |             # on the selected number of nodes. | 
 |           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up, | 
 |               # starting from the time the model is deployed, so the cost of operating | 
 |               # this model will be proportional to `nodes` * number of hours since | 
 |               # last billing cycle plus the cost for each prediction performed. | 
 |         }, | 
 |         "createTime": "A String", # Output only. The time the version was created. | 
 |         "lastUseTime": "A String", # Output only. The time the version was last used for prediction. | 
 |         "framework": "A String", # Optional. The machine learning framework AI Platform uses to train | 
 |             # this version of the model. Valid values are `TENSORFLOW`, `SCIKIT_LEARN`, | 
 |             # `XGBOOST`. If you do not specify a framework, AI Platform | 
 |             # will analyze files in the deployment_uri to determine a framework. If you | 
 |             # choose `SCIKIT_LEARN` or `XGBOOST`, you must also set the runtime version | 
 |             # of the model to 1.4 or greater. | 
 |             # | 
 |             # Do **not** specify a framework if you're deploying a [custom | 
 |             # prediction routine](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |             # | 
 |             # If you specify a [Compute Engine (N1) machine | 
 |             # type](/ml-engine/docs/machine-types-online-prediction) in the | 
 |             # `machineType` field, you must specify `TENSORFLOW` | 
 |             # for the framework. | 
 |         "predictionClass": "A String", # Optional. The fully qualified name | 
 |             # (<var>module_name</var>.<var>class_name</var>) of a class that implements | 
 |             # the Predictor interface described in this reference field. The module | 
 |             # containing this class should be included in a package provided to the | 
 |             # [`packageUris` field](#Version.FIELDS.package_uris). | 
 |             # | 
 |             # Specify this field if and only if you are deploying a [custom prediction | 
 |             # routine (beta)](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |             # If you specify this field, you must set | 
 |             # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater and | 
 |             # you must set `machineType` to a [legacy (MLS1) | 
 |             # machine type](/ml-engine/docs/machine-types-online-prediction). | 
 |             # | 
 |             # The following code sample provides the Predictor interface: | 
 |             # | 
 |             # <pre style="max-width: 626px;"> | 
 |             # class Predictor(object): | 
 |             # """Interface for constructing custom predictors.""" | 
 |             # | 
 |             # def predict(self, instances, **kwargs): | 
 |             #     """Performs custom prediction. | 
 |             # | 
 |             #     Instances are the decoded values from the request. They have already | 
 |             #     been deserialized from JSON. | 
 |             # | 
 |             #     Args: | 
 |             #         instances: A list of prediction input instances. | 
 |             #         **kwargs: A dictionary of keyword args provided as additional | 
 |             #             fields on the predict request body. | 
 |             # | 
 |             #     Returns: | 
 |             #         A list of outputs containing the prediction results. This list must | 
 |             #         be JSON serializable. | 
 |             #     """ | 
 |             #     raise NotImplementedError() | 
 |             # | 
 |             # @classmethod | 
 |             # def from_path(cls, model_dir): | 
 |             #     """Creates an instance of Predictor using the given path. | 
 |             # | 
 |             #     Loading of the predictor should be done in this method. | 
 |             # | 
 |             #     Args: | 
 |             #         model_dir: The local directory that contains the exported model | 
 |             #             file along with any additional files uploaded when creating the | 
 |             #             version resource. | 
 |             # | 
 |             #     Returns: | 
 |             #         An instance implementing this Predictor class. | 
 |             #     """ | 
 |             #     raise NotImplementedError() | 
 |             # </pre> | 
 |             # | 
 |             # Learn more about [the Predictor interface and custom prediction | 
 |             # routines](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction | 
 |             # requests that do not specify a version. | 
 |             # | 
 |             # You can change the default version by calling | 
 |             # projects.methods.versions.setDefault. | 
 |         "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
 |             # prevent simultaneous updates of a model from overwriting each other. | 
 |             # It is strongly suggested that systems make use of the `etag` in the | 
 |             # read-modify-write cycle to perform model updates in order to avoid race | 
 |             # conditions: An `etag` is returned in the response to `GetVersion`, and | 
 |             # systems are expected to put that etag in the request to `UpdateVersion` to | 
 |             # ensure that their change will be applied to the model as intended. | 
 |         "serviceAccount": "A String", # Optional. Specifies the service account for resource access control. | 
 |         "errorMessage": "A String", # Output only. The details of a failure or a cancellation. | 
 |         "deploymentUri": "A String", # Required. The Cloud Storage location of the trained model used to | 
 |             # create the version. See the | 
 |             # [guide to model | 
 |             # deployment](/ml-engine/docs/tensorflow/deploying-models) for more | 
 |             # information. | 
 |             # | 
 |             # When passing Version to | 
 |             # projects.models.versions.create | 
 |             # the model service uses the specified location as the source of the model. | 
 |             # Once deployed, the model version is hosted by the prediction service, so | 
 |             # this location is useful only as a historical record. | 
 |             # The total number of model files can't exceed 1000. | 
 |         "runtimeVersion": "A String", # Required. The AI Platform runtime version to use for this deployment. | 
 |             # | 
 |             # For more information, see the | 
 |             # [runtime version list](/ml-engine/docs/runtime-version-list) and | 
 |             # [how to manage runtime versions](/ml-engine/docs/versioning). | 
 |         "description": "A String", # Optional. The description specified for the version when it was created. | 
 |       }, | 
 |     ], | 
 |   }</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(name, body=None, updateMask=None, x__xgafv=None)</code> | 
 |   <pre>Updates the specified Version resource. | 
 |  | 
 | Currently the only update-able fields are `description`, | 
 | `requestLoggingConfig`, `autoScaling.minNodes`, and `manualScaling.nodes`. | 
 |  | 
 | Args: | 
 |   name: string, Required. The name of the model. (required) | 
 |   body: object, The request body. | 
 |     The object takes the form of: | 
 |  | 
 | { # Represents a version of the model. | 
 |     #  | 
 |     # Each version is a trained model deployed in the cloud, ready to handle | 
 |     # prediction requests. A model can have multiple versions. You can get | 
 |     # information about all of the versions of a given model by calling | 
 |     # projects.models.versions.list. | 
 |   "labels": { # Optional. One or more labels that you can add, to organize your model | 
 |       # versions. Each label is a key-value pair, where both the key and the value | 
 |       # are arbitrary strings that you supply. | 
 |       # For more information, see the documentation on | 
 |       # <a href="/ml-engine/docs/tensorflow/resource-labels">using labels</a>. | 
 |     "a_key": "A String", | 
 |   }, | 
 |   "machineType": "A String", # Optional. The type of machine on which to serve the model. Currently only | 
 |       # applies to online prediction service. If this field is not specified, it | 
 |       # defaults to `mls1-c1-m2`. | 
 |       #  | 
 |       # Online prediction supports the following machine types: | 
 |       #  | 
 |       # * `mls1-c1-m2` | 
 |       # * `mls1-c4-m2` | 
 |       # * `n1-standard-2` | 
 |       # * `n1-standard-4` | 
 |       # * `n1-standard-8` | 
 |       # * `n1-standard-16` | 
 |       # * `n1-standard-32` | 
 |       # * `n1-highmem-2` | 
 |       # * `n1-highmem-4` | 
 |       # * `n1-highmem-8` | 
 |       # * `n1-highmem-16` | 
 |       # * `n1-highmem-32` | 
 |       # * `n1-highcpu-2` | 
 |       # * `n1-highcpu-4` | 
 |       # * `n1-highcpu-8` | 
 |       # * `n1-highcpu-16` | 
 |       # * `n1-highcpu-32` | 
 |       #  | 
 |       # `mls1-c1-m2` is generally available. All other machine types are available | 
 |       # in beta. Learn more about the [differences between machine | 
 |       # types](/ml-engine/docs/machine-types-online-prediction). | 
 |   "packageUris": [ # Optional. Cloud Storage paths (`gs://…`) of packages for [custom | 
 |       # prediction routines](/ml-engine/docs/tensorflow/custom-prediction-routines) | 
 |       # or [scikit-learn pipelines with custom | 
 |       # code](/ml-engine/docs/scikit/exporting-for-prediction#custom-pipeline-code). | 
 |       #  | 
 |       # For a custom prediction routine, one of these packages must contain your | 
 |       # Predictor class (see | 
 |       # [`predictionClass`](#Version.FIELDS.prediction_class)). Additionally, | 
 |       # include any dependencies used by your Predictor or scikit-learn pipeline | 
 |       # uses that are not already included in your selected [runtime | 
 |       # version](/ml-engine/docs/tensorflow/runtime-version-list). | 
 |       #  | 
 |       # If you specify this field, you must also set | 
 |       # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater. | 
 |     "A String", | 
 |   ], | 
 |   "acceleratorConfig": { # Represents a hardware accelerator request config. # Optional. Accelerator config for using GPUs for online prediction (beta). | 
 |       # Only specify this field if you have specified a Compute Engine (N1) machine | 
 |       # type in the `machineType` field. Learn more about [using GPUs for online | 
 |       # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |       # Note that the AcceleratorConfig can be used in both Jobs and Versions. | 
 |       # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and | 
 |       # [accelerators for online | 
 |       # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |     "type": "A String", # The type of accelerator to use. | 
 |     "count": "A String", # The number of accelerators to attach to each machine running the job. | 
 |   }, | 
 |   "state": "A String", # Output only. The state of a version. | 
 |   "name": "A String", # Required. The name specified for the version when it was created. | 
 |       #  | 
 |       # The version name must be unique within the model it is created in. | 
 |   "autoScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in | 
 |       # response to increases and decreases in traffic. Care should be | 
 |       # taken to ramp up traffic according to the model's ability to scale | 
 |       # or you will start seeing increases in latency and 429 response codes. | 
 |       #  | 
 |       # Note that you cannot use AutoScaling if your version uses | 
 |       # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use specify | 
 |       # `manual_scaling`. | 
 |     "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These | 
 |         # nodes are always up, starting from the time the model is deployed. | 
 |         # Therefore, the cost of operating this model will be at least | 
 |         # `rate` * `min_nodes` * number of hours since last billing cycle, | 
 |         # where `rate` is the cost per node-hour as documented in the | 
 |         # [pricing guide](/ml-engine/docs/pricing), | 
 |         # even if no predictions are performed. There is additional cost for each | 
 |         # prediction performed. | 
 |         # | 
 |         # Unlike manual scaling, if the load gets too heavy for the nodes | 
 |         # that are up, the service will automatically add nodes to handle the | 
 |         # increased load as well as scale back as traffic drops, always maintaining | 
 |         # at least `min_nodes`. You will be charged for the time in which additional | 
 |         # nodes are used. | 
 |         # | 
 |         # If `min_nodes` is not specified and AutoScaling is used with a [legacy | 
 |         # (MLS1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |         # `min_nodes` defaults to 0, in which case, when traffic to a model stops | 
 |         # (and after a cool-down period), nodes will be shut down and no charges will | 
 |         # be incurred until traffic to the model resumes. | 
 |         # | 
 |         # If `min_nodes` is not specified and AutoScaling is used with a [Compute | 
 |         # Engine (N1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |         # `min_nodes` defaults to 1. `min_nodes` must be at least 1 for use with a | 
 |         # Compute Engine machine type. | 
 |         # | 
 |         # Note that you cannot use AutoScaling if your version uses | 
 |         # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use | 
 |         # ManualScaling. | 
 |         # | 
 |         # You can set `min_nodes` when creating the model version, and you can also | 
 |         # update `min_nodes` for an existing version: | 
 |         # <pre> | 
 |         # update_body.json: | 
 |         # { | 
 |         #   'autoScaling': { | 
 |         #     'minNodes': 5 | 
 |         #   } | 
 |         # } | 
 |         # </pre> | 
 |         # HTTP request: | 
 |         # <pre style="max-width: 626px;"> | 
 |         # PATCH | 
 |         # https://ml.googleapis.com/v1/{name=projects/*/models/*/versions/*}?update_mask=autoScaling.minNodes | 
 |         # -d @./update_body.json | 
 |         # </pre> | 
 |   }, | 
 |   "explanationConfig": { # Message holding configuration options for explaining model predictions. # Optional. Configures explainability features on the model's version. | 
 |       # Some explanation features require additional metadata to be loaded | 
 |       # as part of the model payload. | 
 |       # There are two feature attribution methods supported for TensorFlow models: | 
 |       # integrated gradients and sampled Shapley. | 
 |       # [Learn more about feature | 
 |       # attributions.](/ai-platform/prediction/docs/ai-explanations/overview) | 
 |     "integratedGradientsAttribution": { # Attributes credit by computing the Aumann-Shapley value taking advantage # Attributes credit by computing the Aumann-Shapley value taking advantage | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: http://proceedings.mlr.press/v70/sundararajan17a.html | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: https://arxiv.org/abs/1703.01365 | 
 |       "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |           # A good value to start is 50 and gradually increase until the | 
 |           # sum to diff property is met within the desired error range. | 
 |     }, | 
 |     "xraiAttribution": { # Attributes credit by computing the XRAI taking advantage # Attributes credit by computing the XRAI taking advantage | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: https://arxiv.org/abs/1906.02825 | 
 |         # Currently only implemented for models with natural image inputs. | 
 |         # of the model's fully differentiable structure. Refer to this paper for | 
 |         # more details: https://arxiv.org/abs/1906.02825 | 
 |         # Currently only implemented for models with natural image inputs. | 
 |       "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |           # A good value to start is 50 and gradually increase until the | 
 |           # sum to diff property is met within the desired error range. | 
 |     }, | 
 |     "sampledShapleyAttribution": { # An attribution method that approximates Shapley values for features that # An attribution method that approximates Shapley values for features that | 
 |         # contribute to the label being predicted. A sampling strategy is used to | 
 |         # approximate the value rather than considering all subsets of features. | 
 |         # contribute to the label being predicted. A sampling strategy is used to | 
 |         # approximate the value rather than considering all subsets of features. | 
 |       "numPaths": 42, # The number of feature permutations to consider when approximating the | 
 |           # Shapley values. | 
 |     }, | 
 |   }, | 
 |   "pythonVersion": "A String", # Required. The version of Python used in prediction. | 
 |       #  | 
 |       # The following Python versions are available: | 
 |       #  | 
 |       # * Python '3.7' is available when `runtime_version` is set to '1.15' or | 
 |       #   later. | 
 |       # * Python '3.5' is available when `runtime_version` is set to a version | 
 |       #   from '1.4' to '1.14'. | 
 |       # * Python '2.7' is available when `runtime_version` is set to '1.15' or | 
 |       #   earlier. | 
 |       #  | 
 |       # Read more about the Python versions available for [each runtime | 
 |       # version](/ml-engine/docs/runtime-version-list). | 
 |   "requestLoggingConfig": { # Configuration for logging request-response pairs to a BigQuery table. # Optional. *Only* specify this field in a | 
 |       # projects.models.versions.patch | 
 |       # request. Specifying it in a | 
 |       # projects.models.versions.create | 
 |       # request has no effect. | 
 |       #  | 
 |       # Configures the request-response pair logging on predictions from this | 
 |       # Version. | 
 |       # Online prediction requests to a model version and the responses to these | 
 |       # requests are converted to raw strings and saved to the specified BigQuery | 
 |       # table. Logging is constrained by [BigQuery quotas and | 
 |       # limits](/bigquery/quotas). If your project exceeds BigQuery quotas or limits, | 
 |       # AI Platform Prediction does not log request-response pairs, but it continues | 
 |       # to serve predictions. | 
 |       # | 
 |       # If you are using [continuous | 
 |       # evaluation](/ml-engine/docs/continuous-evaluation/), you do not need to | 
 |       # specify this configuration manually. Setting up continuous evaluation | 
 |       # automatically enables logging of request-response pairs. | 
 |     "samplingPercentage": 3.14, # Percentage of requests to be logged, expressed as a fraction from 0 to 1. | 
 |         # For example, if you want to log 10% of requests, enter `0.1`. The sampling | 
 |         # window is the lifetime of the model version. Defaults to 0. | 
 |     "bigqueryTableName": "A String", # Required. Fully qualified BigQuery table name in the following format: | 
 |         # "<var>project_id</var>.<var>dataset_name</var>.<var>table_name</var>" | 
 |         # | 
 |         # The specified table must already exist, and the "Cloud ML Service Agent" | 
 |         # for your project must have permission to write to it. The table must have | 
 |         # the following [schema](/bigquery/docs/schemas): | 
 |         # | 
 |         # <table> | 
 |         #   <tr><th>Field name</th><th style="display: table-cell">Type</th> | 
 |         #     <th style="display: table-cell">Mode</th></tr> | 
 |         #   <tr><td>model</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>model_version</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>time</td><td>TIMESTAMP</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>raw_data</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |         #   <tr><td>raw_prediction</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |         #   <tr><td>groundtruth</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |         # </table> | 
 |   }, | 
 |   "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the | 
 |       # model. You should generally use `auto_scaling` with an appropriate | 
 |       # `min_nodes` instead, but this option is available if you want more | 
 |       # predictable billing. Beware that latency and error rates will increase | 
 |       # if the traffic exceeds that capability of the system to serve it based | 
 |       # on the selected number of nodes. | 
 |     "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up, | 
 |         # starting from the time the model is deployed, so the cost of operating | 
 |         # this model will be proportional to `nodes` * number of hours since | 
 |         # last billing cycle plus the cost for each prediction performed. | 
 |   }, | 
 |   "createTime": "A String", # Output only. The time the version was created. | 
 |   "lastUseTime": "A String", # Output only. The time the version was last used for prediction. | 
 |   "framework": "A String", # Optional. The machine learning framework AI Platform uses to train | 
 |       # this version of the model. Valid values are `TENSORFLOW`, `SCIKIT_LEARN`, | 
 |       # `XGBOOST`. If you do not specify a framework, AI Platform | 
 |       # will analyze files in the deployment_uri to determine a framework. If you | 
 |       # choose `SCIKIT_LEARN` or `XGBOOST`, you must also set the runtime version | 
 |       # of the model to 1.4 or greater. | 
 |       #  | 
 |       # Do **not** specify a framework if you're deploying a [custom | 
 |       # prediction routine](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |       #  | 
 |       # If you specify a [Compute Engine (N1) machine | 
 |       # type](/ml-engine/docs/machine-types-online-prediction) in the | 
 |       # `machineType` field, you must specify `TENSORFLOW` | 
 |       # for the framework. | 
 |   "predictionClass": "A String", # Optional. The fully qualified name | 
 |       # (<var>module_name</var>.<var>class_name</var>) of a class that implements | 
 |       # the Predictor interface described in this reference field. The module | 
 |       # containing this class should be included in a package provided to the | 
 |       # [`packageUris` field](#Version.FIELDS.package_uris). | 
 |       #  | 
 |       # Specify this field if and only if you are deploying a [custom prediction | 
 |       # routine (beta)](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |       # If you specify this field, you must set | 
 |       # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater and | 
 |       # you must set `machineType` to a [legacy (MLS1) | 
 |       # machine type](/ml-engine/docs/machine-types-online-prediction). | 
 |       #  | 
 |       # The following code sample provides the Predictor interface: | 
 |       #  | 
 |       # <pre style="max-width: 626px;"> | 
 |       # class Predictor(object): | 
 |       # """Interface for constructing custom predictors.""" | 
 |       #  | 
 |       # def predict(self, instances, **kwargs): | 
 |       #     """Performs custom prediction. | 
 |       #  | 
 |       #     Instances are the decoded values from the request. They have already | 
 |       #     been deserialized from JSON. | 
 |       #  | 
 |       #     Args: | 
 |       #         instances: A list of prediction input instances. | 
 |       #         **kwargs: A dictionary of keyword args provided as additional | 
 |       #             fields on the predict request body. | 
 |       #  | 
 |       #     Returns: | 
 |       #         A list of outputs containing the prediction results. This list must | 
 |       #         be JSON serializable. | 
 |       #     """ | 
 |       #     raise NotImplementedError() | 
 |       #  | 
 |       # @classmethod | 
 |       # def from_path(cls, model_dir): | 
 |       #     """Creates an instance of Predictor using the given path. | 
 |       #  | 
 |       #     Loading of the predictor should be done in this method. | 
 |       #  | 
 |       #     Args: | 
 |       #         model_dir: The local directory that contains the exported model | 
 |       #             file along with any additional files uploaded when creating the | 
 |       #             version resource. | 
 |       #  | 
 |       #     Returns: | 
 |       #         An instance implementing this Predictor class. | 
 |       #     """ | 
 |       #     raise NotImplementedError() | 
 |       # </pre> | 
 |       #  | 
 |       # Learn more about [the Predictor interface and custom prediction | 
 |       # routines](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |   "isDefault": True or False, # Output only. If true, this version will be used to handle prediction | 
 |       # requests that do not specify a version. | 
 |       #  | 
 |       # You can change the default version by calling | 
 |       # projects.methods.versions.setDefault. | 
 |   "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
 |       # prevent simultaneous updates of a model from overwriting each other. | 
 |       # It is strongly suggested that systems make use of the `etag` in the | 
 |       # read-modify-write cycle to perform model updates in order to avoid race | 
 |       # conditions: An `etag` is returned in the response to `GetVersion`, and | 
 |       # systems are expected to put that etag in the request to `UpdateVersion` to | 
 |       # ensure that their change will be applied to the model as intended. | 
 |   "serviceAccount": "A String", # Optional. Specifies the service account for resource access control. | 
 |   "errorMessage": "A String", # Output only. The details of a failure or a cancellation. | 
 |   "deploymentUri": "A String", # Required. The Cloud Storage location of the trained model used to | 
 |       # create the version. See the | 
 |       # [guide to model | 
 |       # deployment](/ml-engine/docs/tensorflow/deploying-models) for more | 
 |       # information. | 
 |       #  | 
 |       # When passing Version to | 
 |       # projects.models.versions.create | 
 |       # the model service uses the specified location as the source of the model. | 
 |       # Once deployed, the model version is hosted by the prediction service, so | 
 |       # this location is useful only as a historical record. | 
 |       # The total number of model files can't exceed 1000. | 
 |   "runtimeVersion": "A String", # Required. The AI Platform runtime version to use for this deployment. | 
 |       #  | 
 |       # For more information, see the | 
 |       # [runtime version list](/ml-engine/docs/runtime-version-list) and | 
 |       # [how to manage runtime versions](/ml-engine/docs/versioning). | 
 |   "description": "A String", # Optional. The description specified for the version when it was created. | 
 | } | 
 |  | 
 |   updateMask: string, Required. Specifies the path, relative to `Version`, of the field to | 
 | update. Must be present and non-empty. | 
 |  | 
 | For example, to change the description of a version to "foo", the | 
 | `update_mask` parameter would be specified as `description`, and the | 
 | `PATCH` request body would specify the new value, as follows: | 
 |  | 
 | ``` | 
 | { | 
 |   "description": "foo" | 
 | } | 
 | ``` | 
 |  | 
 | Currently the only supported update mask fields are `description`, | 
 | `requestLoggingConfig`, `autoScaling.minNodes`, and `manualScaling.nodes`. | 
 | However, you can only update `manualScaling.nodes` if the version uses a | 
 | [Compute Engine (N1) | 
 | machine type](/ml-engine/docs/machine-types-online-prediction). | 
 |   x__xgafv: string, V1 error format. | 
 |     Allowed values | 
 |       1 - v1 error format | 
 |       2 - v2 error format | 
 |  | 
 | Returns: | 
 |   An object of the form: | 
 |  | 
 |     { # This resource represents a long-running operation that is the result of a | 
 |       # network API call. | 
 |     "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation. | 
 |         # different programming environments, including REST APIs and RPC APIs. It is | 
 |         # used by [gRPC](https://github.com/grpc). Each `Status` message contains | 
 |         # three pieces of data: error code, error message, and error details. | 
 |         # | 
 |         # You can find out more about this error model and how to work with it in the | 
 |         # [API Design Guide](https://cloud.google.com/apis/design/errors). | 
 |       "details": [ # A list of messages that carry the error details.  There is a common set of | 
 |           # message types for APIs to use. | 
 |         { | 
 |           "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |         }, | 
 |       ], | 
 |       "message": "A String", # A developer-facing error message, which should be in English. Any | 
 |           # user-facing error message should be localized and sent in the | 
 |           # google.rpc.Status.details field, or localized by the client. | 
 |       "code": 42, # The status code, which should be an enum value of google.rpc.Code. | 
 |     }, | 
 |     "done": True or False, # If the value is `false`, it means the operation is still in progress. | 
 |         # If `true`, the operation is completed, and either `error` or `response` is | 
 |         # available. | 
 |     "response": { # The normal response of the operation in case of success.  If the original | 
 |         # method returns no data on success, such as `Delete`, the response is | 
 |         # `google.protobuf.Empty`.  If the original method is standard | 
 |         # `Get`/`Create`/`Update`, the response should be the resource.  For other | 
 |         # methods, the response should have the type `XxxResponse`, where `Xxx` | 
 |         # is the original method name.  For example, if the original method name | 
 |         # is `TakeSnapshot()`, the inferred response type is | 
 |         # `TakeSnapshotResponse`. | 
 |       "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |     }, | 
 |     "metadata": { # Service-specific metadata associated with the operation.  It typically | 
 |         # contains progress information and common metadata such as create time. | 
 |         # Some services might not provide such metadata.  Any method that returns a | 
 |         # long-running operation should document the metadata type, if any. | 
 |       "a_key": "", # Properties of the object. Contains field @type with type URL. | 
 |     }, | 
 |     "name": "A String", # The server-assigned name, which is only unique within the same service that | 
 |         # originally returns it. If you use the default HTTP mapping, the | 
 |         # `name` should be a resource name ending with `operations/{unique_id}`. | 
 |   }</pre> | 
 | </div> | 
 |  | 
 | <div class="method"> | 
 |     <code class="details" id="setDefault">setDefault(name, body=None, x__xgafv=None)</code> | 
 |   <pre>Designates a version to be the default for the model. | 
 |  | 
 | The default version is used for prediction requests made against the model | 
 | that don't specify a version. | 
 |  | 
 | The first version to be created for a model is automatically set as the | 
 | default. You must make any subsequent changes to the default version | 
 | setting manually using this method. | 
 |  | 
 | Args: | 
 |   name: string, Required. The name of the version to make the default for the model. You | 
 | can get the names of all the versions of a model by calling | 
 | projects.models.versions.list. (required) | 
 |   body: object, The request body. | 
 |     The object takes the form of: | 
 |  | 
 | { # Request message for the SetDefaultVersion request. | 
 |   } | 
 |  | 
 |   x__xgafv: string, V1 error format. | 
 |     Allowed values | 
 |       1 - v1 error format | 
 |       2 - v2 error format | 
 |  | 
 | Returns: | 
 |   An object of the form: | 
 |  | 
 |     { # Represents a version of the model. | 
 |       # | 
 |       # Each version is a trained model deployed in the cloud, ready to handle | 
 |       # prediction requests. A model can have multiple versions. You can get | 
 |       # information about all of the versions of a given model by calling | 
 |       # projects.models.versions.list. | 
 |     "labels": { # Optional. One or more labels that you can add, to organize your model | 
 |         # versions. Each label is a key-value pair, where both the key and the value | 
 |         # are arbitrary strings that you supply. | 
 |         # For more information, see the documentation on | 
 |         # <a href="/ml-engine/docs/tensorflow/resource-labels">using labels</a>. | 
 |       "a_key": "A String", | 
 |     }, | 
 |     "machineType": "A String", # Optional. The type of machine on which to serve the model. Currently only | 
 |         # applies to online prediction service. If this field is not specified, it | 
 |         # defaults to `mls1-c1-m2`. | 
 |         # | 
 |         # Online prediction supports the following machine types: | 
 |         # | 
 |         # * `mls1-c1-m2` | 
 |         # * `mls1-c4-m2` | 
 |         # * `n1-standard-2` | 
 |         # * `n1-standard-4` | 
 |         # * `n1-standard-8` | 
 |         # * `n1-standard-16` | 
 |         # * `n1-standard-32` | 
 |         # * `n1-highmem-2` | 
 |         # * `n1-highmem-4` | 
 |         # * `n1-highmem-8` | 
 |         # * `n1-highmem-16` | 
 |         # * `n1-highmem-32` | 
 |         # * `n1-highcpu-2` | 
 |         # * `n1-highcpu-4` | 
 |         # * `n1-highcpu-8` | 
 |         # * `n1-highcpu-16` | 
 |         # * `n1-highcpu-32` | 
 |         # | 
 |         # `mls1-c1-m2` is generally available. All other machine types are available | 
 |         # in beta. Learn more about the [differences between machine | 
 |         # types](/ml-engine/docs/machine-types-online-prediction). | 
 |     "packageUris": [ # Optional. Cloud Storage paths (`gs://…`) of packages for [custom | 
 |         # prediction routines](/ml-engine/docs/tensorflow/custom-prediction-routines) | 
 |         # or [scikit-learn pipelines with custom | 
 |         # code](/ml-engine/docs/scikit/exporting-for-prediction#custom-pipeline-code). | 
 |         # | 
 |         # For a custom prediction routine, one of these packages must contain your | 
 |         # Predictor class (see | 
 |         # [`predictionClass`](#Version.FIELDS.prediction_class)). Additionally, | 
 |         # include any dependencies used by your Predictor or scikit-learn pipeline | 
 |         # uses that are not already included in your selected [runtime | 
 |         # version](/ml-engine/docs/tensorflow/runtime-version-list). | 
 |         # | 
 |         # If you specify this field, you must also set | 
 |         # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater. | 
 |       "A String", | 
 |     ], | 
 |     "acceleratorConfig": { # Represents a hardware accelerator request config. # Optional. Accelerator config for using GPUs for online prediction (beta). | 
 |         # Only specify this field if you have specified a Compute Engine (N1) machine | 
 |         # type in the `machineType` field. Learn more about [using GPUs for online | 
 |         # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |         # Note that the AcceleratorConfig can be used in both Jobs and Versions. | 
 |         # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and | 
 |         # [accelerators for online | 
 |         # prediction](/ml-engine/docs/machine-types-online-prediction#gpus). | 
 |       "type": "A String", # The type of accelerator to use. | 
 |       "count": "A String", # The number of accelerators to attach to each machine running the job. | 
 |     }, | 
 |     "state": "A String", # Output only. The state of a version. | 
 |     "name": "A String", # Required. The name specified for the version when it was created. | 
 |         # | 
 |         # The version name must be unique within the model it is created in. | 
 |     "autoScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in | 
 |         # response to increases and decreases in traffic. Care should be | 
 |         # taken to ramp up traffic according to the model's ability to scale | 
 |         # or you will start seeing increases in latency and 429 response codes. | 
 |         # | 
 |         # Note that you cannot use AutoScaling if your version uses | 
 |         # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use specify | 
 |         # `manual_scaling`. | 
 |       "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These | 
 |           # nodes are always up, starting from the time the model is deployed. | 
 |           # Therefore, the cost of operating this model will be at least | 
 |           # `rate` * `min_nodes` * number of hours since last billing cycle, | 
 |           # where `rate` is the cost per node-hour as documented in the | 
 |           # [pricing guide](/ml-engine/docs/pricing), | 
 |           # even if no predictions are performed. There is additional cost for each | 
 |           # prediction performed. | 
 |           # | 
 |           # Unlike manual scaling, if the load gets too heavy for the nodes | 
 |           # that are up, the service will automatically add nodes to handle the | 
 |           # increased load as well as scale back as traffic drops, always maintaining | 
 |           # at least `min_nodes`. You will be charged for the time in which additional | 
 |           # nodes are used. | 
 |           # | 
 |           # If `min_nodes` is not specified and AutoScaling is used with a [legacy | 
 |           # (MLS1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |           # `min_nodes` defaults to 0, in which case, when traffic to a model stops | 
 |           # (and after a cool-down period), nodes will be shut down and no charges will | 
 |           # be incurred until traffic to the model resumes. | 
 |           # | 
 |           # If `min_nodes` is not specified and AutoScaling is used with a [Compute | 
 |           # Engine (N1) machine type](/ml-engine/docs/machine-types-online-prediction), | 
 |           # `min_nodes` defaults to 1. `min_nodes` must be at least 1 for use with a | 
 |           # Compute Engine machine type. | 
 |           # | 
 |           # Note that you cannot use AutoScaling if your version uses | 
 |           # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use | 
 |           # ManualScaling. | 
 |           # | 
 |           # You can set `min_nodes` when creating the model version, and you can also | 
 |           # update `min_nodes` for an existing version: | 
 |           # <pre> | 
 |           # update_body.json: | 
 |           # { | 
 |           #   'autoScaling': { | 
 |           #     'minNodes': 5 | 
 |           #   } | 
 |           # } | 
 |           # </pre> | 
 |           # HTTP request: | 
 |           # <pre style="max-width: 626px;"> | 
 |           # PATCH | 
 |           # https://ml.googleapis.com/v1/{name=projects/*/models/*/versions/*}?update_mask=autoScaling.minNodes | 
 |           # -d @./update_body.json | 
 |           # </pre> | 
 |     }, | 
 |     "explanationConfig": { # Message holding configuration options for explaining model predictions. # Optional. Configures explainability features on the model's version. | 
 |         # Some explanation features require additional metadata to be loaded | 
 |         # as part of the model payload. | 
 |         # There are two feature attribution methods supported for TensorFlow models: | 
 |         # integrated gradients and sampled Shapley. | 
 |         # [Learn more about feature | 
 |         # attributions.](/ai-platform/prediction/docs/ai-explanations/overview) | 
 |       "integratedGradientsAttribution": { # Attributes credit by computing the Aumann-Shapley value taking advantage # Attributes credit by computing the Aumann-Shapley value taking advantage | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: http://proceedings.mlr.press/v70/sundararajan17a.html | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: https://arxiv.org/abs/1703.01365 | 
 |         "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |             # A good value to start is 50 and gradually increase until the | 
 |             # sum to diff property is met within the desired error range. | 
 |       }, | 
 |       "xraiAttribution": { # Attributes credit by computing the XRAI taking advantage # Attributes credit by computing the XRAI taking advantage | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: https://arxiv.org/abs/1906.02825 | 
 |           # Currently only implemented for models with natural image inputs. | 
 |           # of the model's fully differentiable structure. Refer to this paper for | 
 |           # more details: https://arxiv.org/abs/1906.02825 | 
 |           # Currently only implemented for models with natural image inputs. | 
 |         "numIntegralSteps": 42, # Number of steps for approximating the path integral. | 
 |             # A good value to start is 50 and gradually increase until the | 
 |             # sum to diff property is met within the desired error range. | 
 |       }, | 
 |       "sampledShapleyAttribution": { # An attribution method that approximates Shapley values for features that # An attribution method that approximates Shapley values for features that | 
 |           # contribute to the label being predicted. A sampling strategy is used to | 
 |           # approximate the value rather than considering all subsets of features. | 
 |           # contribute to the label being predicted. A sampling strategy is used to | 
 |           # approximate the value rather than considering all subsets of features. | 
 |         "numPaths": 42, # The number of feature permutations to consider when approximating the | 
 |             # Shapley values. | 
 |       }, | 
 |     }, | 
 |     "pythonVersion": "A String", # Required. The version of Python used in prediction. | 
 |         # | 
 |         # The following Python versions are available: | 
 |         # | 
 |         # * Python '3.7' is available when `runtime_version` is set to '1.15' or | 
 |         #   later. | 
 |         # * Python '3.5' is available when `runtime_version` is set to a version | 
 |         #   from '1.4' to '1.14'. | 
 |         # * Python '2.7' is available when `runtime_version` is set to '1.15' or | 
 |         #   earlier. | 
 |         # | 
 |         # Read more about the Python versions available for [each runtime | 
 |         # version](/ml-engine/docs/runtime-version-list). | 
 |     "requestLoggingConfig": { # Configuration for logging request-response pairs to a BigQuery table. # Optional. *Only* specify this field in a | 
 |         # projects.models.versions.patch | 
 |         # request. Specifying it in a | 
 |         # projects.models.versions.create | 
 |         # request has no effect. | 
 |         # | 
 |         # Configures the request-response pair logging on predictions from this | 
 |         # Version. | 
 |         # Online prediction requests to a model version and the responses to these | 
 |         # requests are converted to raw strings and saved to the specified BigQuery | 
 |         # table. Logging is constrained by [BigQuery quotas and | 
 |         # limits](/bigquery/quotas). If your project exceeds BigQuery quotas or limits, | 
 |         # AI Platform Prediction does not log request-response pairs, but it continues | 
 |         # to serve predictions. | 
 |         # | 
 |         # If you are using [continuous | 
 |         # evaluation](/ml-engine/docs/continuous-evaluation/), you do not need to | 
 |         # specify this configuration manually. Setting up continuous evaluation | 
 |         # automatically enables logging of request-response pairs. | 
 |       "samplingPercentage": 3.14, # Percentage of requests to be logged, expressed as a fraction from 0 to 1. | 
 |           # For example, if you want to log 10% of requests, enter `0.1`. The sampling | 
 |           # window is the lifetime of the model version. Defaults to 0. | 
 |       "bigqueryTableName": "A String", # Required. Fully qualified BigQuery table name in the following format: | 
 |           # "<var>project_id</var>.<var>dataset_name</var>.<var>table_name</var>" | 
 |           # | 
 |           # The specified table must already exist, and the "Cloud ML Service Agent" | 
 |           # for your project must have permission to write to it. The table must have | 
 |           # the following [schema](/bigquery/docs/schemas): | 
 |           # | 
 |           # <table> | 
 |           #   <tr><th>Field name</th><th style="display: table-cell">Type</th> | 
 |           #     <th style="display: table-cell">Mode</th></tr> | 
 |           #   <tr><td>model</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>model_version</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>time</td><td>TIMESTAMP</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>raw_data</td><td>STRING</td><td>REQUIRED</td></tr> | 
 |           #   <tr><td>raw_prediction</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |           #   <tr><td>groundtruth</td><td>STRING</td><td>NULLABLE</td></tr> | 
 |           # </table> | 
 |     }, | 
 |     "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the | 
 |         # model. You should generally use `auto_scaling` with an appropriate | 
 |         # `min_nodes` instead, but this option is available if you want more | 
 |         # predictable billing. Beware that latency and error rates will increase | 
 |         # if the traffic exceeds that capability of the system to serve it based | 
 |         # on the selected number of nodes. | 
 |       "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up, | 
 |           # starting from the time the model is deployed, so the cost of operating | 
 |           # this model will be proportional to `nodes` * number of hours since | 
 |           # last billing cycle plus the cost for each prediction performed. | 
 |     }, | 
 |     "createTime": "A String", # Output only. The time the version was created. | 
 |     "lastUseTime": "A String", # Output only. The time the version was last used for prediction. | 
 |     "framework": "A String", # Optional. The machine learning framework AI Platform uses to train | 
 |         # this version of the model. Valid values are `TENSORFLOW`, `SCIKIT_LEARN`, | 
 |         # `XGBOOST`. If you do not specify a framework, AI Platform | 
 |         # will analyze files in the deployment_uri to determine a framework. If you | 
 |         # choose `SCIKIT_LEARN` or `XGBOOST`, you must also set the runtime version | 
 |         # of the model to 1.4 or greater. | 
 |         # | 
 |         # Do **not** specify a framework if you're deploying a [custom | 
 |         # prediction routine](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |         # | 
 |         # If you specify a [Compute Engine (N1) machine | 
 |         # type](/ml-engine/docs/machine-types-online-prediction) in the | 
 |         # `machineType` field, you must specify `TENSORFLOW` | 
 |         # for the framework. | 
 |     "predictionClass": "A String", # Optional. The fully qualified name | 
 |         # (<var>module_name</var>.<var>class_name</var>) of a class that implements | 
 |         # the Predictor interface described in this reference field. The module | 
 |         # containing this class should be included in a package provided to the | 
 |         # [`packageUris` field](#Version.FIELDS.package_uris). | 
 |         # | 
 |         # Specify this field if and only if you are deploying a [custom prediction | 
 |         # routine (beta)](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |         # If you specify this field, you must set | 
 |         # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater and | 
 |         # you must set `machineType` to a [legacy (MLS1) | 
 |         # machine type](/ml-engine/docs/machine-types-online-prediction). | 
 |         # | 
 |         # The following code sample provides the Predictor interface: | 
 |         # | 
 |         # <pre style="max-width: 626px;"> | 
 |         # class Predictor(object): | 
 |         # """Interface for constructing custom predictors.""" | 
 |         # | 
 |         # def predict(self, instances, **kwargs): | 
 |         #     """Performs custom prediction. | 
 |         # | 
 |         #     Instances are the decoded values from the request. They have already | 
 |         #     been deserialized from JSON. | 
 |         # | 
 |         #     Args: | 
 |         #         instances: A list of prediction input instances. | 
 |         #         **kwargs: A dictionary of keyword args provided as additional | 
 |         #             fields on the predict request body. | 
 |         # | 
 |         #     Returns: | 
 |         #         A list of outputs containing the prediction results. This list must | 
 |         #         be JSON serializable. | 
 |         #     """ | 
 |         #     raise NotImplementedError() | 
 |         # | 
 |         # @classmethod | 
 |         # def from_path(cls, model_dir): | 
 |         #     """Creates an instance of Predictor using the given path. | 
 |         # | 
 |         #     Loading of the predictor should be done in this method. | 
 |         # | 
 |         #     Args: | 
 |         #         model_dir: The local directory that contains the exported model | 
 |         #             file along with any additional files uploaded when creating the | 
 |         #             version resource. | 
 |         # | 
 |         #     Returns: | 
 |         #         An instance implementing this Predictor class. | 
 |         #     """ | 
 |         #     raise NotImplementedError() | 
 |         # </pre> | 
 |         # | 
 |         # Learn more about [the Predictor interface and custom prediction | 
 |         # routines](/ml-engine/docs/tensorflow/custom-prediction-routines). | 
 |     "isDefault": True or False, # Output only. If true, this version will be used to handle prediction | 
 |         # requests that do not specify a version. | 
 |         # | 
 |         # You can change the default version by calling | 
 |         # projects.methods.versions.setDefault. | 
 |     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
 |         # prevent simultaneous updates of a model from overwriting each other. | 
 |         # It is strongly suggested that systems make use of the `etag` in the | 
 |         # read-modify-write cycle to perform model updates in order to avoid race | 
 |         # conditions: An `etag` is returned in the response to `GetVersion`, and | 
 |         # systems are expected to put that etag in the request to `UpdateVersion` to | 
 |         # ensure that their change will be applied to the model as intended. | 
 |     "serviceAccount": "A String", # Optional. Specifies the service account for resource access control. | 
 |     "errorMessage": "A String", # Output only. The details of a failure or a cancellation. | 
 |     "deploymentUri": "A String", # Required. The Cloud Storage location of the trained model used to | 
 |         # create the version. See the | 
 |         # [guide to model | 
 |         # deployment](/ml-engine/docs/tensorflow/deploying-models) for more | 
 |         # information. | 
 |         # | 
 |         # When passing Version to | 
 |         # projects.models.versions.create | 
 |         # the model service uses the specified location as the source of the model. | 
 |         # Once deployed, the model version is hosted by the prediction service, so | 
 |         # this location is useful only as a historical record. | 
 |         # The total number of model files can't exceed 1000. | 
 |     "runtimeVersion": "A String", # Required. The AI Platform runtime version to use for this deployment. | 
 |         # | 
 |         # For more information, see the | 
 |         # [runtime version list](/ml-engine/docs/runtime-version-list) and | 
 |         # [how to manage runtime versions](/ml-engine/docs/versioning). | 
 |     "description": "A String", # Optional. The description specified for the version when it was created. | 
 |   }</pre> | 
 | </div> | 
 |  | 
 | </body></html> |