{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "ml.googleapis.com",
  "basePath": "/",
  "info": {
    "contact": {
      "name": "Google",
      "url": "https://google.com"
    },
    "description": "An API to enable creating and using machine learning models.",
    "title": "Google Cloud Machine Learning Engine",
    "version": "v1",
    "x-apiClientRegistration": {
      "url": "https://console.developers.google.com"
    },
    "x-apisguru-categories": [
      "machine_learning"
    ],
    "x-logo": {
      "url": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
    },
    "x-origin": [
      {
        "converter": {
          "url": "https://github.com/lucybot/api-spec-converter",
          "version": "2.6.0"
        },
        "format": "google",
        "url": "https://ml.googleapis.com/$discovery/rest?version=v1",
        "version": "v1"
      }
    ],
    "x-preferred": true,
    "x-providerName": "googleapis.com",
    "x-serviceName": "ml"
  },
  "externalDocs": {
    "url": "https://cloud.google.com/ml/"
  },
  "securityDefinitions": {
    "Oauth2": {
      "authorizationUrl": "https://accounts.google.com/o/oauth2/auth",
      "description": "Oauth 2.0 authentication",
      "flow": "implicit",
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": "View and manage your data across Google Cloud Platform services"
      },
      "type": "oauth2"
    }
  },
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "in": "query",
      "name": "$.xgafv",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "in": "query",
      "name": "access_token",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "in": "query",
      "name": "alt",
      "type": "string"
    },
    "bearer_token": {
      "description": "OAuth bearer token.",
      "in": "query",
      "name": "bearer_token",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "in": "query",
      "name": "callback",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "in": "query",
      "name": "fields",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "in": "query",
      "name": "key",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "in": "query",
      "name": "oauth_token",
      "type": "string"
    },
    "pp": {
      "default": true,
      "description": "Pretty-print response.",
      "in": "query",
      "name": "pp",
      "type": "boolean"
    },
    "prettyPrint": {
      "default": true,
      "description": "Returns response with indentations and line breaks.",
      "in": "query",
      "name": "prettyPrint",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "in": "query",
      "name": "quotaUser",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "in": "query",
      "name": "uploadType",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "in": "query",
      "name": "upload_protocol",
      "type": "string"
    }
  },
  "tags": [
    {
      "name": "projects"
    }
  ],
  "paths": {
    "/v1/{name}": {
      "delete": {
        "description": "Deletes a model version.\nEach model can have multiple versions deployed and in use at any given\ntime. Use this method to remove a single version.\nNote: You cannot delete the version that is set as the default version\nof the model unless it is the only remaining version.",
        "operationId": "ml.projects.models.versions.delete",
        "parameters": [
          {
            "description": "Required. The name of the version. You can get the names of all the\nversions of a model by calling\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list).",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleLongrunning__Operation"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "get": {
        "description": "Describes a job.",
        "operationId": "ml.projects.jobs.get",
        "parameters": [
          {
            "description": "Required. The name of the job to get the description of.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Job"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "patch": {
        "description": "Updates a specific job resource.\nCurrently the only supported fields to update are `labels`.",
        "operationId": "ml.projects.jobs.patch",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Job"
            }
          },
          {
            "description": "Required. The job name.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          },
          {
            "description": "Required. Specifies the path, relative to `Job`, of the field to update.\nTo adopt etag mechanism, include `etag` field in the mask, and include the\n`etag` value in your job resource.\nFor example, to change the labels of a job, the `update_mask` parameter\nwould be specified as `labels`, `etag`, and the\n`PATCH` request body would specify the new value, as follows:\n    {\n      \"labels\": {\n         \"owner\": \"Google\",\n         \"color\": \"Blue\"\n      }\n      \"etag\": \"33a64df551425fcc55e4d42a148795d9f25f89d4\"\n    }\nIf `etag` matches the one on the server, the labels of the job will be\nreplaced with the given ones, and the server end `etag` will be\nrecalculated.\nCurrently the only supported update masks are `labels` and `etag`.",
            "in": "query",
            "name": "updateMask",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Job"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{name}/operations": {
      "get": {
        "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
        "operationId": "ml.projects.operations.list",
        "parameters": [
          {
            "description": "The standard list filter.",
            "in": "query",
            "name": "filter",
            "type": "string"
          },
          {
            "description": "The name of the operation's parent resource.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          },
          {
            "description": "The standard list page size.",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "description": "The standard list page token.",
            "in": "query",
            "name": "pageToken",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleLongrunning__ListOperationsResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ]
    },
    "/v1/{name}:cancel": {
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Cancels a running job.",
        "operationId": "ml.projects.jobs.cancel",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__CancelJobRequest"
            }
          },
          {
            "description": "Required. The name of the job to cancel.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleProtobuf__Empty"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{name}:getConfig": {
      "get": {
        "description": "Get the service account information associated with your project. You need\nthis information in order to grant the service account persmissions for\nthe Google Cloud Storage location where you put your model training code\nfor training the model with Google Cloud Machine Learning.",
        "operationId": "ml.projects.getConfig",
        "parameters": [
          {
            "description": "Required. The project name.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__GetConfigResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ]
    },
    "/v1/{name}:predict": {
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Performs prediction on the data in the request.\nCloud ML Engine implements a custom `predict` verb on top of an HTTP POST\nmethod. For details of the format, see the **guide to the\n[predict request format](/ml-engine/docs/v1/predict-request)**.",
        "operationId": "ml.projects.predict",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__PredictRequest"
            }
          },
          {
            "description": "Required. The resource name of a model or a version.\nAuthorization: requires the `predict` permission on the specified resource.",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleApi__HttpBody"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{name}:setDefault": {
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Designates a version to be the default for the model.\nThe default version is used for prediction requests made against the model\nthat don't specify a version.\nThe first version to be created for a model is automatically set as the\ndefault. You must make any subsequent changes to the default version\nsetting manually using this method.",
        "operationId": "ml.projects.models.versions.setDefault",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__SetDefaultVersionRequest"
            }
          },
          {
            "description": "Required. The name of the version to make the default for the model. You\ncan get the names of all the versions of a model by calling\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list).",
            "in": "path",
            "name": "name",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Version"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{parent}/jobs": {
      "get": {
        "description": "Lists the jobs in the project.",
        "operationId": "ml.projects.jobs.list",
        "parameters": [
          {
            "description": "Optional. Specifies the subset of jobs to retrieve.",
            "in": "query",
            "name": "filter",
            "type": "string"
          },
          {
            "description": "Optional. The number of jobs to retrieve per \"page\" of results. If there\nare more remaining results than this number, the response message will\ncontain a valid value in the `next_page_token` field.\nThe default value is 20, and the maximum page size is 100.",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "description": "Optional. A page token to request the next page of results.\nYou get the token from the `next_page_token` field of the response from\nthe previous call.",
            "in": "query",
            "name": "pageToken",
            "type": "string"
          },
          {
            "description": "Required. The name of the project for which to list jobs.",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__ListJobsResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Creates a training or a batch prediction job.",
        "operationId": "ml.projects.jobs.create",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Job"
            }
          },
          {
            "description": "Required. The project name.",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Job"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{parent}/locations": {
      "get": {
        "description": "List all locations that provides at least one type of CMLE capability.",
        "operationId": "ml.projects.locations.list",
        "parameters": [
          {
            "description": "Optional. The number of locations to retrieve per \"page\" of results. If there\nare more remaining results than this number, the response message will\ncontain a valid value in the `next_page_token` field.\nThe default value is 20, and the maximum page size is 100.",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "description": "Optional. A page token to request the next page of results.\nYou get the token from the `next_page_token` field of the response from\nthe previous call.",
            "in": "query",
            "name": "pageToken",
            "type": "string"
          },
          {
            "description": "Required. The name of the project for which available locations are to be\nlisted (since some locations might be whitelisted for specific projects).",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__ListLocationsResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ]
    },
    "/v1/{parent}/models": {
      "get": {
        "description": "Lists the models in a project.\nEach project can contain multiple models, and each model can have multiple\nversions.",
        "operationId": "ml.projects.models.list",
        "parameters": [
          {
            "description": "Optional. Specifies the subset of models to retrieve.",
            "in": "query",
            "name": "filter",
            "type": "string"
          },
          {
            "description": "Optional. The number of models to retrieve per \"page\" of results. If there\nare more remaining results than this number, the response message will\ncontain a valid value in the `next_page_token` field.\nThe default value is 20, and the maximum page size is 100.",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "description": "Optional. A page token to request the next page of results.\nYou get the token from the `next_page_token` field of the response from\nthe previous call.",
            "in": "query",
            "name": "pageToken",
            "type": "string"
          },
          {
            "description": "Required. The name of the project whose models are to be listed.",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__ListModelsResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Creates a model which will later contain one or more versions.\nYou must add at least one version before you can request predictions from\nthe model. Add versions by calling\n[projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create).",
        "operationId": "ml.projects.models.create",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Model"
            }
          },
          {
            "description": "Required. The project name.",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Model"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{parent}/versions": {
      "get": {
        "description": "Gets basic information about all the versions of a model.\nIf you expect that a model has a lot of versions, or if you need to handle\nonly a limited number of results at a time, you can request that the list\nbe retrieved in batches (called pages):",
        "operationId": "ml.projects.models.versions.list",
        "parameters": [
          {
            "description": "Optional. Specifies the subset of versions to retrieve.",
            "in": "query",
            "name": "filter",
            "type": "string"
          },
          {
            "description": "Optional. The number of versions to retrieve per \"page\" of results. If\nthere are more remaining results than this number, the response message\nwill contain a valid value in the `next_page_token` field.\nThe default value is 20, and the maximum page size is 100.",
            "in": "query",
            "name": "pageSize",
            "type": "integer"
          },
          {
            "description": "Optional. A page token to request the next page of results.\nYou get the token from the `next_page_token` field of the response from\nthe previous call.",
            "in": "query",
            "name": "pageToken",
            "type": "string"
          },
          {
            "description": "Required. The name of the model for which to list the version.",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__ListVersionsResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Creates a new version of a model from a trained TensorFlow model.\nIf the version created in the cloud by this call is the first deployed\nversion of the specified model, it will be made the default version of the\nmodel. When you add a version to a model that already has one or more\nversions, the default version does not automatically change. If you want a\nnew version to be the default, you must call\n[projects.models.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).",
        "operationId": "ml.projects.models.versions.create",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleCloudMlV1__Version"
            }
          },
          {
            "description": "Required. The name of the model.",
            "in": "path",
            "name": "parent",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleLongrunning__Operation"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{resource}:getIamPolicy": {
      "get": {
        "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.",
        "operationId": "ml.projects.jobs.getIamPolicy",
        "parameters": [
          {
            "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
            "in": "path",
            "name": "resource",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleIamV1__Policy"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ]
    },
    "/v1/{resource}:setIamPolicy": {
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.",
        "operationId": "ml.projects.jobs.setIamPolicy",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleIamV1__SetIamPolicyRequest"
            }
          },
          {
            "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.",
            "in": "path",
            "name": "resource",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleIamV1__Policy"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/{resource}:testIamPermissions": {
      "parameters": [
        {
          "$ref": "#/parameters/$.xgafv"
        },
        {
          "$ref": "#/parameters/access_token"
        },
        {
          "$ref": "#/parameters/alt"
        },
        {
          "$ref": "#/parameters/bearer_token"
        },
        {
          "$ref": "#/parameters/callback"
        },
        {
          "$ref": "#/parameters/fields"
        },
        {
          "$ref": "#/parameters/key"
        },
        {
          "$ref": "#/parameters/oauth_token"
        },
        {
          "$ref": "#/parameters/pp"
        },
        {
          "$ref": "#/parameters/prettyPrint"
        },
        {
          "$ref": "#/parameters/quotaUser"
        },
        {
          "$ref": "#/parameters/uploadType"
        },
        {
          "$ref": "#/parameters/upload_protocol"
        }
      ],
      "post": {
        "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.",
        "operationId": "ml.projects.jobs.testIamPermissions",
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/GoogleIamV1__TestIamPermissionsRequest"
            }
          },
          {
            "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.",
            "in": "path",
            "name": "resource",
            "required": true,
            "type": "string",
            "x-reservedExpansion": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "$ref": "#/definitions/GoogleIamV1__TestIamPermissionsResponse"
            }
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      }
    }
  },
  "definitions": {
    "GoogleApi__HttpBody": {
      "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\nExample:\n    message GetResourceRequest {\n      // A unique request id.\n      string request_id = 1;\n      // The raw HTTP body is bound to this field.\n      google.api.HttpBody http_body = 2;\n    }\n    service ResourceService {\n      rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);\n      rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);\n    }\nExample with streaming methods:\n    service CaldavService {\n      rpc GetCalendar(stream google.api.HttpBody)\n        returns (stream google.api.HttpBody);\n      rpc UpdateCalendar(stream google.api.HttpBody)\n        returns (stream google.api.HttpBody);\n    }\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.",
      "properties": {
        "contentType": {
          "description": "The HTTP Content-Type string representing the content type of the body.",
          "type": "string"
        },
        "data": {
          "description": "HTTP body binary data.",
          "format": "byte",
          "type": "string"
        },
        "extensions": {
          "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric": {
      "description": "An observed value of a metric.",
      "properties": {
        "objectiveValue": {
          "description": "The objective value at this training step.",
          "format": "double",
          "type": "number"
        },
        "trainingStep": {
          "description": "The global training step for this metric.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__AutoScaling": {
      "description": "Options for automatically scaling a model.",
      "properties": {
        "minNodes": {
          "description": "Optional. The minimum number of nodes to allocate for this model. These\nnodes are always up, starting from the time the model is deployed, so the\ncost of operating this model will be at least\n`rate` * `min_nodes` * number of hours since last billing cycle,\nwhere `rate` is the cost per node-hour as documented in\n[pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),\neven if no predictions are performed. There is additional cost for each\nprediction performed.\nUnlike manual scaling, if the load gets too heavy for the nodes\nthat are up, the service will automatically add nodes to handle the\nincreased load as well as scale back as traffic drops, always maintaining\nat least `min_nodes`. You will be charged for the time in which additional\nnodes are used.\nIf not specified, `min_nodes` defaults to 0, in which case, when traffic\nto a model stops (and after a cool-down period), nodes will be shut down\nand no charges will be incurred until traffic to the model resumes.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__CancelJobRequest": {
      "description": "Request message for the CancelJob method.",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudMlV1__Capability": {
      "properties": {
        "availableAccelerators": {
          "description": "Available accelerators for the capability.",
          "items": {
            "enum": [
              "ACCELERATOR_TYPE_UNSPECIFIED",
              "NVIDIA_TESLA_K80",
              "NVIDIA_TESLA_P100"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "type": {
          "enum": [
            "TYPE_UNSPECIFIED",
            "TRAINING",
            "BATCH_PREDICTION",
            "ONLINE_PREDICTION"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__GetConfigResponse": {
      "description": "Returns service account information associated with a project.",
      "properties": {
        "serviceAccount": {
          "description": "The service account Cloud ML uses to access resources in the project.",
          "type": "string"
        },
        "serviceAccountProject": {
          "description": "The project number for `service_account`.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__HyperparameterOutput": {
      "description": "Represents the result of a single hyperparameter tuning trial from a\ntraining job. The TrainingOutput object that is returned on successful\ncompletion of a training job with hyperparameter tuning includes a list\nof HyperparameterOutput objects, one for each successful trial.",
      "properties": {
        "allMetrics": {
          "description": "All recorded object metrics for this trial. This field is not currently\npopulated.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric"
          },
          "type": "array"
        },
        "finalMetric": {
          "$ref": "#/definitions/GoogleCloudMlV1_HyperparameterOutput_HyperparameterMetric",
          "description": "The final objective metric seen for this trial."
        },
        "hyperparameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The hyperparameters given to this trial.",
          "type": "object"
        },
        "trialId": {
          "description": "The trial id for these results.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__HyperparameterSpec": {
      "description": "Represents a set of hyperparameters to optimize.",
      "properties": {
        "goal": {
          "description": "Required. The type of goal to use for tuning. Available types are\n`MAXIMIZE` and `MINIMIZE`.\nDefaults to `MAXIMIZE`.",
          "enum": [
            "GOAL_TYPE_UNSPECIFIED",
            "MAXIMIZE",
            "MINIMIZE"
          ],
          "type": "string"
        },
        "hyperparameterMetricTag": {
          "description": "Optional. The Tensorflow summary tag name to use for optimizing trials. For\ncurrent versions of Tensorflow, this tag name should exactly match what is\nshown in Tensorboard, including all scopes.  For versions of Tensorflow\nprior to 0.12, this should be only the tag passed to tf.Summary.\nBy default, \"training/hptuning/metric\" will be used.",
          "type": "string"
        },
        "maxParallelTrials": {
          "description": "Optional. The number of training trials to run concurrently.\nYou can reduce the time it takes to perform hyperparameter tuning by adding\ntrials in parallel. However, each trail only benefits from the information\ngained in completed trials. That means that a trial does not get access to\nthe results of trials running at the same time, which could reduce the\nquality of the overall optimization.\nEach trial will use the same scale tier and machine types.\nDefaults to one.",
          "format": "int32",
          "type": "integer"
        },
        "maxTrials": {
          "description": "Optional. How many training trials should be attempted to optimize\nthe specified hyperparameters.\nDefaults to one.",
          "format": "int32",
          "type": "integer"
        },
        "params": {
          "description": "Required. The set of parameters to tune.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__ParameterSpec"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__Job": {
      "description": "Represents a training or prediction job.",
      "properties": {
        "createTime": {
          "description": "Output only. When the job was created.",
          "format": "google-datetime",
          "type": "string"
        },
        "endTime": {
          "description": "Output only. When the job processing was completed.",
          "format": "google-datetime",
          "type": "string"
        },
        "errorMessage": {
          "description": "Output only. The details of a failure or a cancellation.",
          "type": "string"
        },
        "etag": {
          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a job from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform job updates in order to avoid race\nconditions: An `etag` is returned in the response to `GetJob`, and\nsystems are expected to put that etag in the request to `UpdateJob` to\nensure that their change will be applied to the same version of the job.",
          "format": "byte",
          "type": "string"
        },
        "jobId": {
          "description": "Required. The user-specified id of the job.",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. One or more labels that you can add, to organize your jobs.\nEach label is a key-value pair, where both the key and the value are\narbitrary strings that you supply.\nFor more information, see the documentation on\n<a href=\"/ml-engine/docs/how-tos/resource-labels\">using labels</a>.",
          "type": "object"
        },
        "predictionInput": {
          "$ref": "#/definitions/GoogleCloudMlV1__PredictionInput",
          "description": "Input parameters to create a prediction job."
        },
        "predictionOutput": {
          "$ref": "#/definitions/GoogleCloudMlV1__PredictionOutput",
          "description": "The current prediction job result."
        },
        "startTime": {
          "description": "Output only. When the job processing was started.",
          "format": "google-datetime",
          "type": "string"
        },
        "state": {
          "description": "Output only. The detailed state of a job.",
          "enum": [
            "STATE_UNSPECIFIED",
            "QUEUED",
            "PREPARING",
            "RUNNING",
            "SUCCEEDED",
            "FAILED",
            "CANCELLING",
            "CANCELLED"
          ],
          "type": "string"
        },
        "trainingInput": {
          "$ref": "#/definitions/GoogleCloudMlV1__TrainingInput",
          "description": "Input parameters to create a training job."
        },
        "trainingOutput": {
          "$ref": "#/definitions/GoogleCloudMlV1__TrainingOutput",
          "description": "The current training job result."
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__ListJobsResponse": {
      "description": "Response message for the ListJobs method.",
      "properties": {
        "jobs": {
          "description": "The list of jobs.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__Job"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__ListLocationsResponse": {
      "properties": {
        "locations": {
          "description": "Locations where at least one type of CMLE capability is available.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__Location"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__ListModelsResponse": {
      "description": "Response message for the ListModels method.",
      "properties": {
        "models": {
          "description": "The list of models.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__Model"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__ListVersionsResponse": {
      "description": "Response message for the ListVersions method.",
      "properties": {
        "nextPageToken": {
          "description": "Optional. Pass this token as the `page_token` field of the request for a\nsubsequent call.",
          "type": "string"
        },
        "versions": {
          "description": "The list of versions.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__Version"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__Location": {
      "properties": {
        "capabilities": {
          "description": "Capabilities available in the location.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__Capability"
          },
          "type": "array"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__ManualScaling": {
      "description": "Options for manually scaling a model.",
      "properties": {
        "nodes": {
          "description": "The number of nodes to allocate for this model. These nodes are always up,\nstarting from the time the model is deployed, so the cost of operating\nthis model will be proportional to `nodes` * number of hours since\nlast billing cycle plus the cost for each prediction performed.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__Model": {
      "description": "Represents a machine learning solution.\nA model can have multiple versions, each of which is a deployed, trained\nmodel ready to receive prediction requests. The model itself is just a\ncontainer.",
      "properties": {
        "defaultVersion": {
          "$ref": "#/definitions/GoogleCloudMlV1__Version",
          "description": "Output only. The default version of the model. This version will be used to\nhandle prediction requests that do not specify a version.\nYou can change the default version by calling\n[projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault)."
        },
        "description": {
          "description": "Optional. The description specified for the model when it was created.",
          "type": "string"
        },
        "etag": {
          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a model from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform model updates in order to avoid race\nconditions: An `etag` is returned in the response to `GetModel`, and\nsystems are expected to put that etag in the request to `UpdateModel` to\nensure that their change will be applied to the model as intended.",
          "format": "byte",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. One or more labels that you can add, to organize your models.\nEach label is a key-value pair, where both the key and the value are\narbitrary strings that you supply.\nFor more information, see the documentation on\n<a href=\"/ml-engine/docs/how-tos/resource-labels\">using labels</a>.",
          "type": "object"
        },
        "name": {
          "description": "Required. The name specified for the model when it was created.\nThe model name must be unique within the project it is created in.",
          "type": "string"
        },
        "onlinePredictionLogging": {
          "description": "Optional. If true, enables StackDriver Logging for online prediction.\nDefault is false.",
          "type": "boolean"
        },
        "regions": {
          "description": "Optional. The list of regions where the model is going to be deployed.\nCurrently only one region per model is supported.\nDefaults to 'us-central1' if nothing is set.\nNote:\n*   No matter where a model is deployed, it can always be accessed by\n    users from anywhere, both for online and batch prediction.\n*   The region for a batch prediction job is set by the region field when\n    submitting the batch prediction job and does not take its value from\n    this field.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__OperationMetadata": {
      "description": "Represents the metadata of the long-running operation.",
      "properties": {
        "createTime": {
          "description": "The time the operation was submitted.",
          "format": "google-datetime",
          "type": "string"
        },
        "endTime": {
          "description": "The time operation processing completed.",
          "format": "google-datetime",
          "type": "string"
        },
        "isCancellationRequested": {
          "description": "Indicates whether a request to cancel this operation has been made.",
          "type": "boolean"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user labels, inherited from the model or the model version being\noperated on.",
          "type": "object"
        },
        "modelName": {
          "description": "Contains the name of the model associated with the operation.",
          "type": "string"
        },
        "operationType": {
          "description": "The operation type.",
          "enum": [
            "OPERATION_TYPE_UNSPECIFIED",
            "CREATE_VERSION",
            "DELETE_VERSION",
            "DELETE_MODEL",
            "UPDATE_MODEL",
            "UPDATE_VERSION",
            "UPDATE_CONFIG"
          ],
          "type": "string"
        },
        "projectNumber": {
          "description": "Contains the project number associated with the operation.",
          "format": "int64",
          "type": "string"
        },
        "startTime": {
          "description": "The time operation processing started.",
          "format": "google-datetime",
          "type": "string"
        },
        "version": {
          "$ref": "#/definitions/GoogleCloudMlV1__Version",
          "description": "Contains the version associated with the operation."
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__ParameterSpec": {
      "description": "Represents a single hyperparameter to optimize.",
      "properties": {
        "categoricalValues": {
          "description": "Required if type is `CATEGORICAL`. The list of possible categories.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "discreteValues": {
          "description": "Required if type is `DISCRETE`.\nA list of feasible points.\nThe list should be in strictly increasing order. For instance, this\nparameter might have possible settings of 1.5, 2.5, and 4.0. This list\nshould not contain more than 1,000 values.",
          "items": {
            "format": "double",
            "type": "number"
          },
          "type": "array"
        },
        "maxValue": {
          "description": "Required if typeis `DOUBLE` or `INTEGER`. This field\nshould be unset if type is `CATEGORICAL`. This value should be integers if\ntype is `INTEGER`.",
          "format": "double",
          "type": "number"
        },
        "minValue": {
          "description": "Required if type is `DOUBLE` or `INTEGER`. This field\nshould be unset if type is `CATEGORICAL`. This value should be integers if\ntype is INTEGER.",
          "format": "double",
          "type": "number"
        },
        "parameterName": {
          "description": "Required. The parameter name must be unique amongst all ParameterConfigs in\na HyperparameterSpec message. E.g., \"learning_rate\".",
          "type": "string"
        },
        "scaleType": {
          "description": "Optional. How the parameter should be scaled to the hypercube.\nLeave unset for categorical parameters.\nSome kind of scaling is strongly recommended for real or integral\nparameters (e.g., `UNIT_LINEAR_SCALE`).",
          "enum": [
            "NONE",
            "UNIT_LINEAR_SCALE",
            "UNIT_LOG_SCALE",
            "UNIT_REVERSE_LOG_SCALE"
          ],
          "type": "string"
        },
        "type": {
          "description": "Required. The type of the parameter.",
          "enum": [
            "PARAMETER_TYPE_UNSPECIFIED",
            "DOUBLE",
            "INTEGER",
            "CATEGORICAL",
            "DISCRETE"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__PredictRequest": {
      "description": "Request for predictions to be issued against a trained model.",
      "properties": {
        "httpBody": {
          "$ref": "#/definitions/GoogleApi__HttpBody",
          "description": "Required. The prediction request body."
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__PredictionInput": {
      "description": "Represents input parameters for a prediction job.",
      "properties": {
        "batchSize": {
          "description": "Optional. Number of records per batch, defaults to 64.\nThe service will buffer batch_size number of records in memory before\ninvoking one Tensorflow prediction call internally. So take the record\nsize and memory available into consideration when setting this parameter.",
          "format": "int64",
          "type": "string"
        },
        "dataFormat": {
          "description": "Required. The format of the input data files.",
          "enum": [
            "DATA_FORMAT_UNSPECIFIED",
            "JSON",
            "TEXT",
            "TF_RECORD",
            "TF_RECORD_GZIP"
          ],
          "type": "string"
        },
        "inputPaths": {
          "description": "Required. The Google Cloud Storage location of the input data files.\nMay contain wildcards.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "maxWorkerCount": {
          "description": "Optional. The maximum number of workers to be used for parallel processing.\nDefaults to 10 if not specified.",
          "format": "int64",
          "type": "string"
        },
        "modelName": {
          "description": "Use this field if you want to use the default version for the specified\nmodel. The string must use the following format:\n`\"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>\"`",
          "type": "string"
        },
        "outputPath": {
          "description": "Required. The output Google Cloud Storage location.",
          "type": "string"
        },
        "region": {
          "description": "Required. The Google Compute Engine region to run the prediction job in.",
          "type": "string"
        },
        "runtimeVersion": {
          "description": "Optional. The Google Cloud ML runtime version to use for this batch\nprediction. If not set, Google Cloud ML will pick the runtime version used\nduring the CreateVersion request for this model version, or choose the\nlatest stable version when model version information is not available\nsuch as when the model is specified by uri.",
          "type": "string"
        },
        "signatureName": {
          "description": "Optional. The name of the signature defined in the SavedModel to use for\nthis job. Please refer to\n[SavedModel](https://tensorflow.github.io/serving/serving_basic.html)\nfor information about how to use signatures.\nDefaults to\n[DEFAULT_SERVING_SIGNATURE_DEF_KEY](https://www.tensorflow.org/api_docs/python/tf/saved_model/signature_constants)\n, which is \"serving_default\".",
          "type": "string"
        },
        "uri": {
          "description": "Use this field if you want to specify a Google Cloud Storage path for\nthe model to use.",
          "type": "string"
        },
        "versionName": {
          "description": "Use this field if you want to specify a version of the model to use. The\nstring is formatted the same way as `model_version`, with the addition\nof the version information:\n`\"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>\"`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__PredictionOutput": {
      "description": "Represents results of a prediction job.",
      "properties": {
        "errorCount": {
          "description": "The number of data instances which resulted in errors.",
          "format": "int64",
          "type": "string"
        },
        "nodeHours": {
          "description": "Node hours used by the batch prediction job.",
          "format": "double",
          "type": "number"
        },
        "outputPath": {
          "description": "The output Google Cloud Storage location provided at the job creation time.",
          "type": "string"
        },
        "predictionCount": {
          "description": "The number of generated predictions.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__SetDefaultVersionRequest": {
      "description": "Request message for the SetDefaultVersion request.",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudMlV1__TrainingInput": {
      "description": "Represents input parameters for a training job.",
      "properties": {
        "args": {
          "description": "Optional. Command line arguments to pass to the program.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "hyperparameters": {
          "$ref": "#/definitions/GoogleCloudMlV1__HyperparameterSpec",
          "description": "Optional. The set of Hyperparameters to tune."
        },
        "jobDir": {
          "description": "Optional. A Google Cloud Storage path in which to store training outputs\nand other data needed for training. This path is passed to your TensorFlow\nprogram as the 'job_dir' command-line argument. The benefit of specifying\nthis field is that Cloud ML validates the path for use in training.",
          "type": "string"
        },
        "masterType": {
          "description": "Optional. Specifies the type of virtual machine to use for your training\njob's master worker.\nThe following types are supported:\n<dl>\n  <dt>standard</dt>\n  <dd>\n  A basic machine configuration suitable for training simple models with\n  small to moderate datasets.\n  </dd>\n  <dt>large_model</dt>\n  <dd>\n  A machine with a lot of memory, specially suited for parameter servers\n  when your model is large (having many hidden layers or layers with very\n  large numbers of nodes).\n  </dd>\n  <dt>complex_model_s</dt>\n  <dd>\n  A machine suitable for the master and workers of the cluster when your\n  model requires more computation than the standard machine can handle\n  satisfactorily.\n  </dd>\n  <dt>complex_model_m</dt>\n  <dd>\n  A machine with roughly twice the number of cores and roughly double the\n  memory of <code suppresswarning=\"true\">complex_model_s</code>.\n  </dd>\n  <dt>complex_model_l</dt>\n  <dd>\n  A machine with roughly twice the number of cores and roughly double the\n  memory of <code suppresswarning=\"true\">complex_model_m</code>.\n  </dd>\n  <dt>standard_gpu</dt>\n  <dd>\n  A machine equivalent to <code suppresswarning=\"true\">standard</code> that\n  also includes a single NVIDIA Tesla K80 GPU. See more about\n  <a href=\"/ml-engine/docs/how-tos/using-gpus\">\n  using GPUs for training your model</a>.\n  </dd>\n  <dt>complex_model_m_gpu</dt>\n  <dd>\n  A machine equivalent to\n  <code suppresswarning=\"true\">complex_model_m</code> that also includes\n  four NVIDIA Tesla K80 GPUs.\n  </dd>\n  <dt>complex_model_l_gpu</dt>\n  <dd>\n  A machine equivalent to\n  <code suppresswarning=\"true\">complex_model_l</code> that also includes\n  eight NVIDIA Tesla K80 GPUs.\n  </dd>\n  <dt>standard_p100</dt>\n  <dd>\n  A machine equivalent to <code suppresswarning=\"true\">standard</code> that\n  also includes a single NVIDIA Tesla P100 GPU. The availability of these\n  GPUs is in the Alpha launch stage.\n  </dd>\n  <dt>complex_model_m_p100</dt>\n  <dd>\n  A machine equivalent to\n  <code suppresswarning=\"true\">complex_model_m</code> that also includes\n  four NVIDIA Tesla P100 GPUs. The availability of these GPUs is in\n  the Alpha launch stage.\n  </dd>\n</dl>\nYou must set this value when `scaleTier` is set to `CUSTOM`.",
          "type": "string"
        },
        "packageUris": {
          "description": "Required. The Google Cloud Storage location of the packages with\nthe training program and any additional dependencies.\nThe maximum number of package URIs is 100.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameterServerCount": {
          "description": "Optional. The number of parameter server replicas to use for the training\njob. Each replica in the cluster will be of the type specified in\n`parameter_server_type`.\nThis value can only be used when `scale_tier` is set to `CUSTOM`.If you\nset this value, you must also set `parameter_server_type`.",
          "format": "int64",
          "type": "string"
        },
        "parameterServerType": {
          "description": "Optional. Specifies the type of virtual machine to use for your training\njob's parameter server.\nThe supported values are the same as those described in the entry for\n`master_type`.\nThis value must be present when `scaleTier` is set to `CUSTOM` and\n`parameter_server_count` is greater than zero.",
          "type": "string"
        },
        "pythonModule": {
          "description": "Required. The Python module name to run after installing the packages.",
          "type": "string"
        },
        "pythonVersion": {
          "description": "Optional. The version of Python used in training. If not set, the default\nversion is '2.7'.",
          "type": "string"
        },
        "region": {
          "description": "Required. The Google Compute Engine region to run the training job in.",
          "type": "string"
        },
        "runtimeVersion": {
          "description": "Optional. The Google Cloud ML runtime version to use for training.  If not\nset, Google Cloud ML will choose the latest stable version.",
          "type": "string"
        },
        "scaleTier": {
          "description": "Required. Specifies the machine types, the number of replicas for workers\nand parameter servers.",
          "enum": [
            "BASIC",
            "STANDARD_1",
            "PREMIUM_1",
            "BASIC_GPU",
            "BASIC_TPU",
            "CUSTOM"
          ],
          "type": "string"
        },
        "workerCount": {
          "description": "Optional. The number of worker replicas to use for the training job. Each\nreplica in the cluster will be of the type specified in `worker_type`.\nThis value can only be used when `scale_tier` is set to `CUSTOM`. If you\nset this value, you must also set `worker_type`.",
          "format": "int64",
          "type": "string"
        },
        "workerType": {
          "description": "Optional. Specifies the type of virtual machine to use for your training\njob's worker nodes.\nThe supported values are the same as those described in the entry for\n`masterType`.\nThis value must be present when `scaleTier` is set to `CUSTOM` and\n`workerCount` is greater than zero.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__TrainingOutput": {
      "description": "Represents results of a training job. Output only.",
      "properties": {
        "completedTrialCount": {
          "description": "The number of hyperparameter tuning trials that completed successfully.\nOnly set for hyperparameter tuning jobs.",
          "format": "int64",
          "type": "string"
        },
        "consumedMLUnits": {
          "description": "The amount of ML units consumed by the job.",
          "format": "double",
          "type": "number"
        },
        "isHyperparameterTuningJob": {
          "description": "Whether this job is a hyperparameter tuning job.",
          "type": "boolean"
        },
        "trials": {
          "description": "Results for individual Hyperparameter trials.\nOnly set for hyperparameter tuning jobs.",
          "items": {
            "$ref": "#/definitions/GoogleCloudMlV1__HyperparameterOutput"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudMlV1__Version": {
      "description": "Represents a version of the model.\nEach version is a trained model deployed in the cloud, ready to handle\nprediction requests. A model can have multiple versions. You can get\ninformation about all of the versions of a given model by calling\n[projects.models.versions.list](/ml-engine/reference/rest/v1/projects.models.versions/list).\nLINT.IfChange",
      "properties": {
        "autoScaling": {
          "$ref": "#/definitions/GoogleCloudMlV1__AutoScaling",
          "description": "Automatically scale the number of nodes used to serve the model in\nresponse to increases and decreases in traffic. Care should be\ntaken to ramp up traffic according to the model's ability to scale\nor you will start seeing increases in latency and 429 response codes."
        },
        "createTime": {
          "description": "Output only. The time the version was created.",
          "format": "google-datetime",
          "type": "string"
        },
        "deploymentUri": {
          "description": "Required. The Google Cloud Storage location of the trained model used to\ncreate the version. See the\n[overview of model\ndeployment](/ml-engine/docs/concepts/deployment-overview) for more\ninformation.\nWhen passing Version to\n[projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)\nthe model service uses the specified location as the source of the model.\nOnce deployed, the model version is hosted by the prediction service, so\nthis location is useful only as a historical record.\nThe total number of model files can't exceed 1000.",
          "type": "string"
        },
        "description": {
          "description": "Optional. The description specified for the version when it was created.",
          "type": "string"
        },
        "errorMessage": {
          "description": "Output only. The details of a failure or a cancellation.",
          "type": "string"
        },
        "etag": {
          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a model from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform model updates in order to avoid race\nconditions: An `etag` is returned in the response to `GetVersion`, and\nsystems are expected to put that etag in the request to `UpdateVersion` to\nensure that their change will be applied to the model as intended.",
          "format": "byte",
          "type": "string"
        },
        "isDefault": {
          "description": "Output only. If true, this version will be used to handle prediction\nrequests that do not specify a version.\nYou can change the default version by calling\n[projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).",
          "type": "boolean"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. One or more labels that you can add, to organize your model\nversions. Each label is a key-value pair, where both the key and the value\nare arbitrary strings that you supply.\nFor more information, see the documentation on\n<a href=\"/ml-engine/docs/how-tos/resource-labels\">using labels</a>.",
          "type": "object"
        },
        "lastUseTime": {
          "description": "Output only. The time the version was last used for prediction.",
          "format": "google-datetime",
          "type": "string"
        },
        "manualScaling": {
          "$ref": "#/definitions/GoogleCloudMlV1__ManualScaling",
          "description": "Manually select the number of nodes to use for serving the\nmodel. You should generally use `auto_scaling` with an appropriate\n`min_nodes` instead, but this option is available if you want more\npredictable billing. Beware that latency and error rates will increase\nif the traffic exceeds that capability of the system to serve it based\non the selected number of nodes."
        },
        "name": {
          "description": "Required.The name specified for the version when it was created.\nThe version name must be unique within the model it is created in.",
          "type": "string"
        },
        "runtimeVersion": {
          "description": "Optional. The Google Cloud ML runtime version to use for this deployment.\nIf not set, Google Cloud ML will choose a version.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of a version.",
          "enum": [
            "UNKNOWN",
            "READY",
            "CREATING",
            "FAILED",
            "DELETING"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__AuditConfig": {
      "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditConfig are exempted.\nExample Policy with multiple AuditConfigs:\n    {\n      \"audit_configs\": [\n        {\n          \"service\": \"allServices\"\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n              \"exempted_members\": [\n                \"user:foo@gmail.com\"\n              ]\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n            },\n            {\n              \"log_type\": \"ADMIN_READ\",\n            }\n          ]\n        },\n        {\n          \"service\": \"fooservice.googleapis.com\"\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n              \"exempted_members\": [\n                \"user:bar@gmail.com\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\nFor fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@gmail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.",
      "properties": {
        "auditLogConfigs": {
          "description": "The configuration for logging of each type of permission.\nNext ID: 4",
          "items": {
            "$ref": "#/definitions/GoogleIamV1__AuditLogConfig"
          },
          "type": "array"
        },
        "exemptedMembers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "service": {
          "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__AuditLogConfig": {
      "description": "Provides the configuration for logging a type of permissions.\nExample:\n    {\n      \"audit_log_configs\": [\n        {\n          \"log_type\": \"DATA_READ\",\n          \"exempted_members\": [\n            \"user:foo@gmail.com\"\n          ]\n        },\n        {\n          \"log_type\": \"DATA_WRITE\",\n        }\n      ]\n    }\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.",
      "properties": {
        "exemptedMembers": {
          "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logType": {
          "description": "The log type that this config enables.",
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__Binding": {
      "description": "Associates `members` with a `role`.",
      "properties": {
        "condition": {
          "$ref": "#/definitions/GoogleType__Expr",
          "description": "The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.\nThis field is GOOGLE_INTERNAL."
        },
        "members": {
          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` or `joe@example.com`.\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n* `domain:{domain}`: A Google Apps domain name that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "role": {
          "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__Policy": {
      "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n**Example**\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles/owner\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n          ]\n        },\n        {\n          \"role\": \"roles/viewer\",\n          \"members\": [\"user:sean@example.com\"]\n        }\n      ]\n    }\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).",
      "properties": {
        "auditConfigs": {
          "description": "Specifies cloud audit logging configuration for this policy.",
          "items": {
            "$ref": "#/definitions/GoogleIamV1__AuditConfig"
          },
          "type": "array"
        },
        "bindings": {
          "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.",
          "items": {
            "$ref": "#/definitions/GoogleIamV1__Binding"
          },
          "type": "array"
        },
        "etag": {
          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.",
          "format": "byte",
          "type": "string"
        },
        "iamOwned": {
          "type": "boolean"
        },
        "version": {
          "description": "Version of the `Policy`. The default version is 0.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "properties": {
        "policy": {
          "$ref": "#/definitions/GoogleIamV1__Policy",
          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them."
        },
        "updateMask": {
          "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__TestIamPermissionsRequest": {
      "description": "Request message for `TestIamPermissions` method.",
      "properties": {
        "permissions": {
          "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleIamV1__TestIamPermissionsResponse": {
      "description": "Response message for `TestIamPermissions` method.",
      "properties": {
        "permissions": {
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleLongrunning__ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "#/definitions/GoogleLongrunning__Operation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleLongrunning__Operation": {
      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
      "properties": {
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
          "type": "boolean"
        },
        "error": {
          "$ref": "#/definitions/GoogleRpc__Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
          "type": "object"
        },
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.",
          "type": "string"
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "The normal response of the operation in case of success.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "GoogleProtobuf__Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\nThe JSON representation for `Empty` is empty JSON object `{}`.",
      "properties": {},
      "type": "object"
    },
    "GoogleRpc__Status": {
      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n# Overview\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n# Language mapping\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n# Other uses\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\nExample uses of this error model include:\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "type": "object"
          },
          "type": "array"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleType__Expr": {
      "description": "Represents an expression text. Example:\n    title: \"User account presence\"\n    description: \"Determines whether the request has a user account\"\n    expression: \"size(request.user) > 0\"",
      "properties": {
        "description": {
          "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.",
          "type": "string"
        },
        "expression": {
          "description": "Textual representation of an expression in\nCommon Expression Language syntax.\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.",
          "type": "string"
        },
        "location": {
          "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.",
          "type": "string"
        },
        "title": {
          "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.",
          "type": "string"
        }
      },
      "type": "object"
    }
  }
}