# AI Platform Training & Prediction API . projects . locations . studies . trials

## Instance Methods

Adds a measurement of the objective metrics to a trial. This measurement

Checks whether a trial should stop or not. Returns a

Marks a trial as complete.

Adds a user provided trial to a study.

Deletes a trial.

Gets a trial.

Lists the trials associated with a study.

Stops a trial.

Adds one or more trials to a study, with parameter values

### Method Details

`addMeasurement(name, body=None, x__xgafv=None)`

    Adds a measurement of the objective metrics to a trial. This measurement
    is assumed to have been taken before the trial is complete.

    Args:
      name: string, Required. The trial name. (required)
      body: object, The request body.
        The object takes the form of:

    { # The request message for the AddTrialMeasurement service method.
        "measurement": { # A message representing a measurement. # Required. The measurement to be added to a trial.
          "stepCount": "A String", # The number of steps a machine learning model has been trained for.
              # Must be non-negative.
          "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
              # this measurement.
          "metrics": [ # Provides a list of metrics that act as inputs into the objective
              # function.
            { # A message representing a metric in the measurement.
              "value": 3.14, # Required. The value for this metric.
              "metric": "A String", # Required. Metric name.
            },
          ],
        },
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A message representing a trial.
          "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
            "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                # Must be non-negative.
            "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                # this measurement.
            "metrics": [ # Provides a list of metrics that act as inputs into the objective
                # function.
              { # A message representing a metric in the measurement.
                "value": 3.14, # Required. The value for this metric.
                "metric": "A String", # Required. Metric name.
              },
            ],
          },
          "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
          "measurements": [ # A list of measurements that are strictly lexicographically
              # ordered by their induced tuples (steps, elapsed_time).
              # These are used for early stopping computations.
            { # A message representing a measurement.
              "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                  # Must be non-negative.
              "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                  # this measurement.
              "metrics": [ # Provides a list of metrics that act as inputs into the objective
                  # function.
                { # A message representing a metric in the measurement.
                  "value": 3.14, # Required. The value for this metric.
                  "metric": "A String", # Required. Metric name.
                },
              ],
            },
          ],
          "state": "A String", # The detailed state of a trial.
          "name": "A String", # Output only. Name of the trial assigned by the service.
          "parameters": [ # The parameters of the trial.
            { # A message representing a parameter to be tuned. Contains the name of
                # the parameter and the suggested value to use for this trial.
              "intValue": "A String", # Must be set if ParameterType is INTEGER
              "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
              "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
              "parameter": "A String", # The name of the parameter.
            },
          ],
          "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
              # infeasible. This should only be set if trial_infeasible is true.
          "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
          "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
          "startTime": "A String", # Output only. Time at which the trial was started.
        }

`checkEarlyStoppingState(name, body=None, x__xgafv=None)`

    Checks  whether a trial should stop or not. Returns a
    long-running operation. When the operation is successful,
    it will contain a
    CheckTrialEarlyStoppingStateResponse.

    Args:
      name: string, Required. The trial name. (required)
      body: object, The request body.
        The object takes the form of:

    { # The request message for the CheckTrialEarlyStoppingState service method.
      }

      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.
        "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}`.
        "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).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "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.
          "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.
            },
          ],
        },
        "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.
        },
        "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.
        },
      }

`complete(name, body=None, x__xgafv=None)`

    Marks a trial as complete.

    Args:
      name: string, Required. The trial name.metat (required)
      body: object, The request body.
        The object takes the form of:

    { # The request message for the CompleteTrial service method.
        "finalMeasurement": { # A message representing a measurement. # Optional. If provided, it will be used as the completed trial's
            # final_measurement; Otherwise, the service will auto-select a
            # previously reported measurement as the final-measurement
          "stepCount": "A String", # The number of steps a machine learning model has been trained for.
              # Must be non-negative.
          "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
              # this measurement.
          "metrics": [ # Provides a list of metrics that act as inputs into the objective
              # function.
            { # A message representing a metric in the measurement.
              "value": 3.14, # Required. The value for this metric.
              "metric": "A String", # Required. Metric name.
            },
          ],
        },
        "infeasibleReason": "A String", # Optional. A human readable reason why the trial was infeasible. This should
            # only be provided if `trial_infeasible` is true.
        "trialInfeasible": True or False, # Optional. True if the trial cannot be run with the given Parameter, and
            # final_measurement will be ignored.
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A message representing a trial.
          "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
            "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                # Must be non-negative.
            "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                # this measurement.
            "metrics": [ # Provides a list of metrics that act as inputs into the objective
                # function.
              { # A message representing a metric in the measurement.
                "value": 3.14, # Required. The value for this metric.
                "metric": "A String", # Required. Metric name.
              },
            ],
          },
          "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
          "measurements": [ # A list of measurements that are strictly lexicographically
              # ordered by their induced tuples (steps, elapsed_time).
              # These are used for early stopping computations.
            { # A message representing a measurement.
              "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                  # Must be non-negative.
              "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                  # this measurement.
              "metrics": [ # Provides a list of metrics that act as inputs into the objective
                  # function.
                { # A message representing a metric in the measurement.
                  "value": 3.14, # Required. The value for this metric.
                  "metric": "A String", # Required. Metric name.
                },
              ],
            },
          ],
          "state": "A String", # The detailed state of a trial.
          "name": "A String", # Output only. Name of the trial assigned by the service.
          "parameters": [ # The parameters of the trial.
            { # A message representing a parameter to be tuned. Contains the name of
                # the parameter and the suggested value to use for this trial.
              "intValue": "A String", # Must be set if ParameterType is INTEGER
              "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
              "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
              "parameter": "A String", # The name of the parameter.
            },
          ],
          "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
              # infeasible. This should only be set if trial_infeasible is true.
          "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
          "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
          "startTime": "A String", # Output only. Time at which the trial was started.
        }

`create(parent, body=None, x__xgafv=None)`

    Adds a user provided trial to a study.

    Args:
      parent: string, Required. The name of the study that the trial belongs to. (required)
      body: object, The request body.
        The object takes the form of:

    { # A message representing a trial.
        "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
          "stepCount": "A String", # The number of steps a machine learning model has been trained for.
              # Must be non-negative.
          "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
              # this measurement.
          "metrics": [ # Provides a list of metrics that act as inputs into the objective
              # function.
            { # A message representing a metric in the measurement.
              "value": 3.14, # Required. The value for this metric.
              "metric": "A String", # Required. Metric name.
            },
          ],
        },
        "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
        "measurements": [ # A list of measurements that are strictly lexicographically
            # ordered by their induced tuples (steps, elapsed_time).
            # These are used for early stopping computations.
          { # A message representing a measurement.
            "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                # Must be non-negative.
            "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                # this measurement.
            "metrics": [ # Provides a list of metrics that act as inputs into the objective
                # function.
              { # A message representing a metric in the measurement.
                "value": 3.14, # Required. The value for this metric.
                "metric": "A String", # Required. Metric name.
              },
            ],
          },
        ],
        "state": "A String", # The detailed state of a trial.
        "name": "A String", # Output only. Name of the trial assigned by the service.
        "parameters": [ # The parameters of the trial.
          { # A message representing a parameter to be tuned. Contains the name of
              # the parameter and the suggested value to use for this trial.
            "intValue": "A String", # Must be set if ParameterType is INTEGER
            "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
            "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
            "parameter": "A String", # The name of the parameter.
          },
        ],
        "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
            # infeasible. This should only be set if trial_infeasible is true.
        "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
        "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
        "startTime": "A String", # Output only. Time at which the trial was started.
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A message representing a trial.
          "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
            "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                # Must be non-negative.
            "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                # this measurement.
            "metrics": [ # Provides a list of metrics that act as inputs into the objective
                # function.
              { # A message representing a metric in the measurement.
                "value": 3.14, # Required. The value for this metric.
                "metric": "A String", # Required. Metric name.
              },
            ],
          },
          "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
          "measurements": [ # A list of measurements that are strictly lexicographically
              # ordered by their induced tuples (steps, elapsed_time).
              # These are used for early stopping computations.
            { # A message representing a measurement.
              "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                  # Must be non-negative.
              "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                  # this measurement.
              "metrics": [ # Provides a list of metrics that act as inputs into the objective
                  # function.
                { # A message representing a metric in the measurement.
                  "value": 3.14, # Required. The value for this metric.
                  "metric": "A String", # Required. Metric name.
                },
              ],
            },
          ],
          "state": "A String", # The detailed state of a trial.
          "name": "A String", # Output only. Name of the trial assigned by the service.
          "parameters": [ # The parameters of the trial.
            { # A message representing a parameter to be tuned. Contains the name of
                # the parameter and the suggested value to use for this trial.
              "intValue": "A String", # Must be set if ParameterType is INTEGER
              "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
              "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
              "parameter": "A String", # The name of the parameter.
            },
          ],
          "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
              # infeasible. This should only be set if trial_infeasible is true.
          "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
          "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
          "startTime": "A String", # Output only. Time at which the trial was started.
        }

`delete(name, x__xgafv=None)`

    Deletes a trial.

    Args:
      name: string, Required. The trial name. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated
          # empty messages in your APIs. A typical example is to use it as the request
          # or the response type of an API method. For instance:
          #
          #     service Foo {
          #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          #     }
          #
          # The JSON representation for `Empty` is empty JSON object `{}`.
      }

`get(name, x__xgafv=None)`

    Gets a trial.

    Args:
      name: string, Required. The trial name. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A message representing a trial.
          "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
            "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                # Must be non-negative.
            "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                # this measurement.
            "metrics": [ # Provides a list of metrics that act as inputs into the objective
                # function.
              { # A message representing a metric in the measurement.
                "value": 3.14, # Required. The value for this metric.
                "metric": "A String", # Required. Metric name.
              },
            ],
          },
          "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
          "measurements": [ # A list of measurements that are strictly lexicographically
              # ordered by their induced tuples (steps, elapsed_time).
              # These are used for early stopping computations.
            { # A message representing a measurement.
              "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                  # Must be non-negative.
              "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                  # this measurement.
              "metrics": [ # Provides a list of metrics that act as inputs into the objective
                  # function.
                { # A message representing a metric in the measurement.
                  "value": 3.14, # Required. The value for this metric.
                  "metric": "A String", # Required. Metric name.
                },
              ],
            },
          ],
          "state": "A String", # The detailed state of a trial.
          "name": "A String", # Output only. Name of the trial assigned by the service.
          "parameters": [ # The parameters of the trial.
            { # A message representing a parameter to be tuned. Contains the name of
                # the parameter and the suggested value to use for this trial.
              "intValue": "A String", # Must be set if ParameterType is INTEGER
              "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
              "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
              "parameter": "A String", # The name of the parameter.
            },
          ],
          "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
              # infeasible. This should only be set if trial_infeasible is true.
          "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
          "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
          "startTime": "A String", # Output only. Time at which the trial was started.
        }

`list(parent, x__xgafv=None)`

    Lists the trials associated with a study.

    Args:
      parent: string, Required. The name of the study that the trial belongs to. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # The response message for the ListTrials method.
        "trials": [ # The trials associated with the study.
          { # A message representing a trial.
              "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
                "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                    # Must be non-negative.
                "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                    # this measurement.
                "metrics": [ # Provides a list of metrics that act as inputs into the objective
                    # function.
                  { # A message representing a metric in the measurement.
                    "value": 3.14, # Required. The value for this metric.
                    "metric": "A String", # Required. Metric name.
                  },
                ],
              },
              "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
              "measurements": [ # A list of measurements that are strictly lexicographically
                  # ordered by their induced tuples (steps, elapsed_time).
                  # These are used for early stopping computations.
                { # A message representing a measurement.
                  "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                      # Must be non-negative.
                  "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                      # this measurement.
                  "metrics": [ # Provides a list of metrics that act as inputs into the objective
                      # function.
                    { # A message representing a metric in the measurement.
                      "value": 3.14, # Required. The value for this metric.
                      "metric": "A String", # Required. Metric name.
                    },
                  ],
                },
              ],
              "state": "A String", # The detailed state of a trial.
              "name": "A String", # Output only. Name of the trial assigned by the service.
              "parameters": [ # The parameters of the trial.
                { # A message representing a parameter to be tuned. Contains the name of
                    # the parameter and the suggested value to use for this trial.
                  "intValue": "A String", # Must be set if ParameterType is INTEGER
                  "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
                  "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
                  "parameter": "A String", # The name of the parameter.
                },
              ],
              "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
                  # infeasible. This should only be set if trial_infeasible is true.
              "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
              "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
              "startTime": "A String", # Output only. Time at which the trial was started.
            },
        ],
      }

`stop(name, body=None, x__xgafv=None)`

    Stops a trial.

    Args:
      name: string, Required. The trial name. (required)
      body: object, The request body.
        The object takes the form of:

    {
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A message representing a trial.
          "finalMeasurement": { # A message representing a measurement. # The final measurement containing the objective value.
            "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                # Must be non-negative.
            "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                # this measurement.
            "metrics": [ # Provides a list of metrics that act as inputs into the objective
                # function.
              { # A message representing a metric in the measurement.
                "value": 3.14, # Required. The value for this metric.
                "metric": "A String", # Required. Metric name.
              },
            ],
          },
          "trialInfeasible": True or False, # Output only. If true, the parameters in this trial are not attempted again.
          "measurements": [ # A list of measurements that are strictly lexicographically
              # ordered by their induced tuples (steps, elapsed_time).
              # These are used for early stopping computations.
            { # A message representing a measurement.
              "stepCount": "A String", # The number of steps a machine learning model has been trained for.
                  # Must be non-negative.
              "elapsedTime": "A String", # Output only. Time that the trial has been running at the point of
                  # this measurement.
              "metrics": [ # Provides a list of metrics that act as inputs into the objective
                  # function.
                { # A message representing a metric in the measurement.
                  "value": 3.14, # Required. The value for this metric.
                  "metric": "A String", # Required. Metric name.
                },
              ],
            },
          ],
          "state": "A String", # The detailed state of a trial.
          "name": "A String", # Output only. Name of the trial assigned by the service.
          "parameters": [ # The parameters of the trial.
            { # A message representing a parameter to be tuned. Contains the name of
                # the parameter and the suggested value to use for this trial.
              "intValue": "A String", # Must be set if ParameterType is INTEGER
              "floatValue": 3.14, # Must be set if ParameterType is DOUBLE or DISCRETE.
              "stringValue": "A String", # Must be set if ParameterTypeis CATEGORICAL
              "parameter": "A String", # The name of the parameter.
            },
          ],
          "infeasibleReason": "A String", # Output only. A human readable string describing why the trial is
              # infeasible. This should only be set if trial_infeasible is true.
          "clientId": "A String", # Output only. The identifier of the client that originally requested this trial.
          "endTime": "A String", # Output only. Time at which the trial's status changed to COMPLETED.
          "startTime": "A String", # Output only. Time at which the trial was started.
        }

`suggest(parent, body=None, x__xgafv=None)`

    Adds one or more trials to a study, with parameter values
    suggested by AI Platform Optimizer. Returns a long-running
    operation associated with the generation of trial suggestions.
    When this long-running operation succeeds, it will contain
    a SuggestTrialsResponse.

    Args:
      parent: string, Required. The name of the study that the trial belongs to. (required)
      body: object, The request body.
        The object takes the form of:

    { # The request message for the SuggestTrial service method.
        "clientId": "A String", # Required. The identifier of the client that is requesting the suggestion.
            #
            # If multiple SuggestTrialsRequests have the same `client_id`,
            # the service will return the identical suggested trial if the trial is
            # pending, and provide a new trial if the last suggested trial was completed.
        "suggestionCount": 42, # Required. The number of suggestions requested.
      }

      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.
        "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}`.
        "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).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "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.
          "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.
            },
          ],
        },
        "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.
        },
        "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.
        },
      }