{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        },
        "https://www.googleapis.com/auth/spanner.admin": {
          "description": "Administer your Spanner databases"
        },
        "https://www.googleapis.com/auth/spanner.data": {
          "description": "View and manage the contents of your Spanner databases"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://spanner.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Spanner",
  "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/spanner/",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "spanner:v1",
  "kind": "discovery#restDescription",
  "name": "spanner",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "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.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "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.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "projects": {
      "resources": {
        "instanceConfigs": {
          "methods": {
            "get": {
              "description": "Gets information about a particular instance configuration.",
              "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}",
              "httpMethod": "GET",
              "id": "spanner.projects.instanceConfigs.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The name of the requested instance configuration. Values are of\nthe form `projects/\u003cproject\u003e/instanceConfigs/\u003cconfig\u003e`.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instanceConfigs/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "response": {
                "$ref": "InstanceConfig"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "list": {
              "description": "Lists the supported instance configurations for a given project.",
              "flatPath": "v1/projects/{projectsId}/instanceConfigs",
              "httpMethod": "GET",
              "id": "spanner.projects.instanceConfigs.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "description": "Number of instance configurations to be returned in the response. If 0 or\nless, defaults to the server's maximum allowed page size.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "If non-empty, `page_token` should contain a\nnext_page_token\nfrom a previous ListInstanceConfigsResponse.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. The name of the project for which a list of supported instance\nconfigurations is requested. Values are of the form\n`projects/\u003cproject\u003e`.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/instanceConfigs",
              "response": {
                "$ref": "ListInstanceConfigsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            }
          }
        },
        "instances": {
          "methods": {
            "create": {
              "description": "Creates an instance and begins preparing it to begin serving. The\nreturned long-running operation\ncan be used to track the progress of preparing the new\ninstance. The instance name is assigned by the caller. If the\nnamed instance already exists, `CreateInstance` returns\n`ALREADY_EXISTS`.\n\nImmediately upon completion of this request:\n\n  * The instance is readable via the API, with all requested attributes\n    but no allocated resources. Its state is `CREATING`.\n\nUntil completion of the returned operation:\n\n  * Cancelling the operation renders the instance immediately unreadable\n    via the API.\n  * The instance can be deleted.\n  * All other attempts to modify the instance are rejected.\n\nUpon completion of the returned operation:\n\n  * Billing for all successfully-allocated resources begins (some types\n    may have lower than the requested levels).\n  * Databases can be created in the instance.\n  * The instance's allocated resource levels are readable via the API.\n  * The instance's state becomes `READY`.\n\nThe returned long-running operation will\nhave a name of the format `\u003cinstance_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track creation of the instance.  The\nmetadata field type is\nCreateInstanceMetadata.\nThe response field type is\nInstance, if successful.",
              "flatPath": "v1/projects/{projectsId}/instances",
              "httpMethod": "POST",
              "id": "spanner.projects.instances.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "Required. The name of the project in which to create the instance. Values\nare of the form `projects/\u003cproject\u003e`.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/instances",
              "request": {
                "$ref": "CreateInstanceRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "delete": {
              "description": "Deletes an instance.\n\nImmediately upon completion of the request:\n\n  * Billing ceases for all of the instance's reserved resources.\n\nSoon afterward:\n\n  * The instance and *all of its databases* immediately and\n    irrevocably disappear from the API. All data in the databases\n    is permanently deleted.",
              "flatPath": "v1/projects/{projectsId}/instances/{instancesId}",
              "httpMethod": "DELETE",
              "id": "spanner.projects.instances.delete",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The name of the instance to be deleted. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e`",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instances/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "get": {
              "description": "Gets information about a particular instance.",
              "flatPath": "v1/projects/{projectsId}/instances/{instancesId}",
              "httpMethod": "GET",
              "id": "spanner.projects.instances.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The name of the requested instance. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instances/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "response": {
                "$ref": "Instance"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "getIamPolicy": {
              "description": "Gets the access control policy for an instance resource. Returns an empty\npolicy if an instance exists but does not have a policy set.\n\nAuthorization requires `spanner.instances.getIamPolicy` on\nresource.",
              "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:getIamPolicy",
              "httpMethod": "POST",
              "id": "spanner.projects.instances.getIamPolicy",
              "parameterOrder": [
                "resource"
              ],
              "parameters": {
                "resource": {
                  "description": "REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instances/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+resource}:getIamPolicy",
              "request": {
                "$ref": "GetIamPolicyRequest"
              },
              "response": {
                "$ref": "Policy"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "list": {
              "description": "Lists all instances in the given project.",
              "flatPath": "v1/projects/{projectsId}/instances",
              "httpMethod": "GET",
              "id": "spanner.projects.instances.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "filter": {
                  "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n  * `name`\n  * `display_name`\n  * `labels.key` where key is the name of a label\n\nSome examples of using filters are:\n\n  * `name:*` --\u003e The instance has a name.\n  * `name:Howl` --\u003e The instance's name contains the string \"howl\".\n  * `name:HOWL` --\u003e Equivalent to above.\n  * `NAME:howl` --\u003e Equivalent to above.\n  * `labels.env:*` --\u003e The instance has the label \"env\".\n  * `labels.env:dev` --\u003e The instance has the label \"env\" and the value of\n                       the label contains the string \"dev\".\n  * `name:howl labels.env:dev` --\u003e The instance's name contains \"howl\" and\n                                 it has the label \"env\" with its value\n                                 containing \"dev\".",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Number of instances to be returned in the response. If 0 or less, defaults\nto the server's maximum allowed page size.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "If non-empty, `page_token` should contain a\nnext_page_token from a\nprevious ListInstancesResponse.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. The name of the project for which a list of instances is\nrequested. Values are of the form `projects/\u003cproject\u003e`.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/instances",
              "response": {
                "$ref": "ListInstancesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "patch": {
              "description": "Updates an instance, and begins allocating or releasing resources\nas requested. The returned long-running\noperation can be used to track the\nprogress of updating the instance. If the named instance does not\nexist, returns `NOT_FOUND`.\n\nImmediately upon completion of this request:\n\n  * For resource types for which a decrease in the instance's allocation\n    has been requested, billing is based on the newly-requested level.\n\nUntil completion of the returned operation:\n\n  * Cancelling the operation sets its metadata's\n    cancel_time, and begins\n    restoring resources to their pre-request values. The operation\n    is guaranteed to succeed at undoing all resource changes,\n    after which point it terminates with a `CANCELLED` status.\n  * All other attempts to modify the instance are rejected.\n  * Reading the instance via the API continues to give the pre-request\n    resource levels.\n\nUpon completion of the returned operation:\n\n  * Billing begins for all successfully-allocated resources (some types\n    may have lower than the requested levels).\n  * All newly-reserved resources are available for serving the instance's\n    tables.\n  * The instance's new resource levels are readable via the API.\n\nThe returned long-running operation will\nhave a name of the format `\u003cinstance_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track the instance modification.  The\nmetadata field type is\nUpdateInstanceMetadata.\nThe response field type is\nInstance, if successful.\n\nAuthorization requires `spanner.instances.update` permission on\nresource name.",
              "flatPath": "v1/projects/{projectsId}/instances/{instancesId}",
              "httpMethod": "PATCH",
              "id": "spanner.projects.instances.patch",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. A unique identifier for the instance, which cannot be changed\nafter the instance is created. Values are of the form\n`projects/\u003cproject\u003e/instances/a-z*[a-z0-9]`. The final\nsegment of the name must be between 6 and 30 characters in length.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instances/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "request": {
                "$ref": "UpdateInstanceRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "setIamPolicy": {
              "description": "Sets the access control policy on an instance resource. Replaces any\nexisting policy.\n\nAuthorization requires `spanner.instances.setIamPolicy` on\nresource.",
              "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:setIamPolicy",
              "httpMethod": "POST",
              "id": "spanner.projects.instances.setIamPolicy",
              "parameterOrder": [
                "resource"
              ],
              "parameters": {
                "resource": {
                  "description": "REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for databases resources.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instances/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+resource}:setIamPolicy",
              "request": {
                "$ref": "SetIamPolicyRequest"
              },
              "response": {
                "$ref": "Policy"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            },
            "testIamPermissions": {
              "description": "Returns permissions that the caller has on the specified instance resource.\n\nAttempting this RPC on a non-existent Cloud Spanner instance resource will\nresult in a NOT_FOUND error if the user has `spanner.instances.list`\npermission on the containing Google Cloud Project. Otherwise returns an\nempty set of permissions.",
              "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:testIamPermissions",
              "httpMethod": "POST",
              "id": "spanner.projects.instances.testIamPermissions",
              "parameterOrder": [
                "resource"
              ],
              "parameters": {
                "resource": {
                  "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/instances/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+resource}:testIamPermissions",
              "request": {
                "$ref": "TestIamPermissionsRequest"
              },
              "response": {
                "$ref": "TestIamPermissionsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/spanner.admin"
              ]
            }
          },
          "resources": {
            "databases": {
              "methods": {
                "create": {
                  "description": "Creates a new Cloud Spanner database and starts to prepare it for serving.\nThe returned long-running operation will\nhave a name of the format `\u003cdatabase_name\u003e/operations/\u003coperation_id\u003e` and\ncan be used to track preparation of the database. The\nmetadata field type is\nCreateDatabaseMetadata. The\nresponse field type is\nDatabase, if successful.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases",
                  "httpMethod": "POST",
                  "id": "spanner.projects.instances.databases.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. The name of the instance that will serve the new database.\nValues are of the form `projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+parent}/databases",
                  "request": {
                    "$ref": "CreateDatabaseRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "dropDatabase": {
                  "description": "Drops (aka deletes) a Cloud Spanner database.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}",
                  "httpMethod": "DELETE",
                  "id": "spanner.projects.instances.databases.dropDatabase",
                  "parameterOrder": [
                    "database"
                  ],
                  "parameters": {
                    "database": {
                      "description": "Required. The database to be dropped.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+database}",
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "get": {
                  "description": "Gets the state of a Cloud Spanner database.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}",
                  "httpMethod": "GET",
                  "id": "spanner.projects.instances.databases.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the requested database. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e/databases/\u003cdatabase\u003e`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Database"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "getDdl": {
                  "description": "Returns the schema of a Cloud Spanner database as a list of formatted\nDDL statements. This method does not show pending schema updates, those may\nbe queried using the Operations API.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/ddl",
                  "httpMethod": "GET",
                  "id": "spanner.projects.instances.databases.getDdl",
                  "parameterOrder": [
                    "database"
                  ],
                  "parameters": {
                    "database": {
                      "description": "Required. The database whose schema we wish to get.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+database}/ddl",
                  "response": {
                    "$ref": "GetDatabaseDdlResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "getIamPolicy": {
                  "description": "Gets the access control policy for a database resource.\nReturns an empty policy if a database exists but does\nnot have a policy set.\n\nAuthorization requires `spanner.databases.getIamPolicy` permission on\nresource.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:getIamPolicy",
                  "httpMethod": "POST",
                  "id": "spanner.projects.instances.databases.getIamPolicy",
                  "parameterOrder": [
                    "resource"
                  ],
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+resource}:getIamPolicy",
                  "request": {
                    "$ref": "GetIamPolicyRequest"
                  },
                  "response": {
                    "$ref": "Policy"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "list": {
                  "description": "Lists Cloud Spanner databases.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases",
                  "httpMethod": "GET",
                  "id": "spanner.projects.instances.databases.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "pageSize": {
                      "description": "Number of databases to be returned in the response. If 0 or less,\ndefaults to the server's maximum allowed page size.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "If non-empty, `page_token` should contain a\nnext_page_token from a\nprevious ListDatabasesResponse.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. The instance whose databases should be listed.\nValues are of the form `projects/\u003cproject\u003e/instances/\u003cinstance\u003e`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+parent}/databases",
                  "response": {
                    "$ref": "ListDatabasesResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "setIamPolicy": {
                  "description": "Sets the access control policy on a database resource.\nReplaces any existing policy.\n\nAuthorization requires `spanner.databases.setIamPolicy`\npermission on resource.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:setIamPolicy",
                  "httpMethod": "POST",
                  "id": "spanner.projects.instances.databases.setIamPolicy",
                  "parameterOrder": [
                    "resource"
                  ],
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for databases resources.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+resource}:setIamPolicy",
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "response": {
                    "$ref": "Policy"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "testIamPermissions": {
                  "description": "Returns permissions that the caller has on the specified database resource.\n\nAttempting this RPC on a non-existent Cloud Spanner database will\nresult in a NOT_FOUND error if the user has\n`spanner.databases.list` permission on the containing Cloud\nSpanner instance. Otherwise returns an empty set of permissions.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}:testIamPermissions",
                  "httpMethod": "POST",
                  "id": "spanner.projects.instances.databases.testIamPermissions",
                  "parameterOrder": [
                    "resource"
                  ],
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e` for instance resources and `projects/\u003cproject ID\u003e/instances/\u003cinstance ID\u003e/databases/\u003cdatabase ID\u003e` for database resources.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+resource}:testIamPermissions",
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  },
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "updateDdl": {
                  "description": "Updates the schema of a Cloud Spanner database by\ncreating/altering/dropping tables, columns, indexes, etc. The returned\nlong-running operation will have a name of\nthe format `\u003cdatabase_name\u003e/operations/\u003coperation_id\u003e` and can be used to\ntrack execution of the schema change(s). The\nmetadata field type is\nUpdateDatabaseDdlMetadata.  The operation has no response.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/ddl",
                  "httpMethod": "PATCH",
                  "id": "spanner.projects.instances.databases.updateDdl",
                  "parameterOrder": [
                    "database"
                  ],
                  "parameters": {
                    "database": {
                      "description": "Required. The database to update.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+database}/ddl",
                  "request": {
                    "$ref": "UpdateDatabaseDdlRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                }
              },
              "resources": {
                "operations": {
                  "methods": {
                    "cancel": {
                      "description": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}:cancel",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.operations.cancel",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "The name of the operation resource to be cancelled.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}:cancel",
                      "response": {
                        "$ref": "Empty"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.admin"
                      ]
                    },
                    "delete": {
                      "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}",
                      "httpMethod": "DELETE",
                      "id": "spanner.projects.instances.databases.operations.delete",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "The name of the operation resource to be deleted.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Empty"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.admin"
                      ]
                    },
                    "get": {
                      "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations/{operationsId}",
                      "httpMethod": "GET",
                      "id": "spanner.projects.instances.databases.operations.get",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "The name of the operation resource.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.admin"
                      ]
                    },
                    "list": {
                      "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\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.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/operations",
                      "httpMethod": "GET",
                      "id": "spanner.projects.instances.databases.operations.list",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "filter": {
                          "description": "The standard list filter.",
                          "location": "query",
                          "type": "string"
                        },
                        "name": {
                          "description": "The name of the operation's parent resource.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations$",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "The standard list page size.",
                          "format": "int32",
                          "location": "query",
                          "type": "integer"
                        },
                        "pageToken": {
                          "description": "The standard list page token.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "ListOperationsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.admin"
                      ]
                    }
                  }
                },
                "sessions": {
                  "methods": {
                    "beginTransaction": {
                      "description": "Begins a new transaction. This step can often be skipped:\nRead, ExecuteSql and\nCommit can begin a new transaction as a\nside-effect.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:beginTransaction",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.beginTransaction",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the transaction runs.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:beginTransaction",
                      "request": {
                        "$ref": "BeginTransactionRequest"
                      },
                      "response": {
                        "$ref": "Transaction"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "commit": {
                      "description": "Commits a transaction. The request includes the mutations to be\napplied to rows in the database.\n\n`Commit` might return an `ABORTED` error. This can occur at any time;\ncommonly, the cause is conflicts with concurrent\ntransactions. However, it can also happen for a variety of other\nreasons. If `Commit` returns `ABORTED`, the caller should re-attempt\nthe transaction from the beginning, re-using the same session.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:commit",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.commit",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the transaction to be committed is running.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:commit",
                      "request": {
                        "$ref": "CommitRequest"
                      },
                      "response": {
                        "$ref": "CommitResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "create": {
                      "description": "Creates a new session. A session can be used to perform\ntransactions that read and/or modify data in a Cloud Spanner database.\nSessions are meant to be reused for many consecutive\ntransactions.\n\nSessions can only execute one transaction at a time. To execute\nmultiple concurrent read-write/write-only transactions, create\nmultiple sessions. Note that standalone reads and queries use a\ntransaction internally, and count toward the one transaction\nlimit.\n\nCloud Spanner limits the number of sessions that can exist at any given\ntime; thus, it is a good idea to delete idle and/or unneeded sessions.\nAside from explicit deletes, Cloud Spanner can delete sessions for which no\noperations are sent for more than an hour. If a session is deleted,\nrequests to it return `NOT_FOUND`.\n\nIdle sessions can be kept alive by sending a trivial SQL query\nperiodically, e.g., `\"SELECT 1\"`.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.create",
                      "parameterOrder": [
                        "database"
                      ],
                      "parameters": {
                        "database": {
                          "description": "Required. The database in which the new session is created.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+database}/sessions",
                      "request": {
                        "$ref": "CreateSessionRequest"
                      },
                      "response": {
                        "$ref": "Session"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "delete": {
                      "description": "Ends a session, releasing server resources associated with it.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}",
                      "httpMethod": "DELETE",
                      "id": "spanner.projects.instances.databases.sessions.delete",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the session to delete.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Empty"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "executeSql": {
                      "description": "Executes an SQL statement, returning all results in a single reply. This\nmethod cannot be used to return a result set larger than 10 MiB;\nif the query yields more data than that, the query fails with\na `FAILED_PRECONDITION` error.\n\nOperations inside read-write transactions might return `ABORTED`. If\nthis occurs, the application should restart the transaction from\nthe beginning. See Transaction for more details.\n\nLarger result sets can be fetched in streaming fashion by calling\nExecuteStreamingSql instead.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeSql",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.executeSql",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the SQL query should be performed.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:executeSql",
                      "request": {
                        "$ref": "ExecuteSqlRequest"
                      },
                      "response": {
                        "$ref": "ResultSet"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "executeStreamingSql": {
                      "description": "Like ExecuteSql, except returns the result\nset as a stream. Unlike ExecuteSql, there\nis no limit on the size of the returned result set. However, no\nindividual row in the result set can exceed 100 MiB, and no\ncolumn value can exceed 10 MiB.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeStreamingSql",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.executeStreamingSql",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the SQL query should be performed.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:executeStreamingSql",
                      "request": {
                        "$ref": "ExecuteSqlRequest"
                      },
                      "response": {
                        "$ref": "PartialResultSet"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "get": {
                      "description": "Gets a session. Returns `NOT_FOUND` if the session does not exist.\nThis is mainly useful for determining whether a session is still\nalive.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}",
                      "httpMethod": "GET",
                      "id": "spanner.projects.instances.databases.sessions.get",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the session to retrieve.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Session"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "list": {
                      "description": "Lists all sessions in a given database.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions",
                      "httpMethod": "GET",
                      "id": "spanner.projects.instances.databases.sessions.list",
                      "parameterOrder": [
                        "database"
                      ],
                      "parameters": {
                        "database": {
                          "description": "Required. The database in which to list sessions.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$",
                          "required": true,
                          "type": "string"
                        },
                        "filter": {
                          "description": "An expression for filtering the results of the request. Filter rules are\ncase insensitive. The fields eligible for filtering are:\n\n  * `labels.key` where key is the name of a label\n\nSome examples of using filters are:\n\n  * `labels.env:*` --\u003e The session has the label \"env\".\n  * `labels.env:dev` --\u003e The session has the label \"env\" and the value of\n                       the label contains the string \"dev\".",
                          "location": "query",
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Number of sessions to be returned in the response. If 0 or less, defaults\nto the server's maximum allowed page size.",
                          "format": "int32",
                          "location": "query",
                          "type": "integer"
                        },
                        "pageToken": {
                          "description": "If non-empty, `page_token` should contain a\nnext_page_token from a previous\nListSessionsResponse.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "path": "v1/{+database}/sessions",
                      "response": {
                        "$ref": "ListSessionsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "partitionQuery": {
                      "description": "Creates a set of partition tokens that can be used to execute a query\noperation in parallel.  Each of the returned partition tokens can be used\nby ExecuteStreamingSql to specify a subset\nof the query result to read.  The same session and read-only transaction\nmust be used by the PartitionQueryRequest used to create the\npartition tokens and the ExecuteSqlRequests that use the partition tokens.\n\nPartition tokens become invalid when the session used to create them\nis deleted, is idle for too long, begins a new transaction, or becomes too\nold.  When any of these happen, it is not possible to resume the query, and\nthe whole operation must be restarted from the beginning.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:partitionQuery",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.partitionQuery",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session used to create the partitions.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:partitionQuery",
                      "request": {
                        "$ref": "PartitionQueryRequest"
                      },
                      "response": {
                        "$ref": "PartitionResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "partitionRead": {
                      "description": "Creates a set of partition tokens that can be used to execute a read\noperation in parallel.  Each of the returned partition tokens can be used\nby StreamingRead to specify a subset of the read\nresult to read.  The same session and read-only transaction must be used by\nthe PartitionReadRequest used to create the partition tokens and the\nReadRequests that use the partition tokens.  There are no ordering\nguarantees on rows returned among the returned partition tokens, or even\nwithin each individual StreamingRead call issued with a partition_token.\n\nPartition tokens become invalid when the session used to create them\nis deleted, is idle for too long, begins a new transaction, or becomes too\nold.  When any of these happen, it is not possible to resume the read, and\nthe whole operation must be restarted from the beginning.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:partitionRead",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.partitionRead",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session used to create the partitions.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:partitionRead",
                      "request": {
                        "$ref": "PartitionReadRequest"
                      },
                      "response": {
                        "$ref": "PartitionResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "read": {
                      "description": "Reads rows from the database using key lookups and scans, as a\nsimple key/value style alternative to\nExecuteSql.  This method cannot be used to\nreturn a result set larger than 10 MiB; if the read matches more\ndata than that, the read fails with a `FAILED_PRECONDITION`\nerror.\n\nReads inside read-write transactions might return `ABORTED`. If\nthis occurs, the application should restart the transaction from\nthe beginning. See Transaction for more details.\n\nLarger result sets can be yielded in streaming fashion by calling\nStreamingRead instead.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:read",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.read",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the read should be performed.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:read",
                      "request": {
                        "$ref": "ReadRequest"
                      },
                      "response": {
                        "$ref": "ResultSet"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "rollback": {
                      "description": "Rolls back a transaction, releasing any locks it holds. It is a good\nidea to call this for any transaction that includes one or more\nRead or ExecuteSql requests and\nultimately decides not to commit.\n\n`Rollback` returns `OK` if it successfully aborts the transaction, the\ntransaction was already aborted, or the transaction is not\nfound. `Rollback` never returns `ABORTED`.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:rollback",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.rollback",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the transaction to roll back is running.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:rollback",
                      "request": {
                        "$ref": "RollbackRequest"
                      },
                      "response": {
                        "$ref": "Empty"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    },
                    "streamingRead": {
                      "description": "Like Read, except returns the result set as a\nstream. Unlike Read, there is no limit on the\nsize of the returned result set. However, no individual row in\nthe result set can exceed 100 MiB, and no column value can exceed\n10 MiB.",
                      "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:streamingRead",
                      "httpMethod": "POST",
                      "id": "spanner.projects.instances.databases.sessions.streamingRead",
                      "parameterOrder": [
                        "session"
                      ],
                      "parameters": {
                        "session": {
                          "description": "Required. The session in which the read should be performed.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1/{+session}:streamingRead",
                      "request": {
                        "$ref": "ReadRequest"
                      },
                      "response": {
                        "$ref": "PartialResultSet"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/spanner.data"
                      ]
                    }
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "cancel": {
                  "description": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST",
                  "id": "spanner.projects.instances.operations.cancel",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be cancelled.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}:cancel",
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "delete": {
                  "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}",
                  "httpMethod": "DELETE",
                  "id": "spanner.projects.instances.operations.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be deleted.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "get": {
                  "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "id": "spanner.projects.instances.operations.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                },
                "list": {
                  "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\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.",
                  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/operations",
                  "httpMethod": "GET",
                  "id": "spanner.projects.instances.operations.list",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/instances/[^/]+/operations$",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/spanner.admin"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "revision": "20180920",
  "rootUrl": "https://spanner.googleapis.com/",
  "schemas": {
    "BeginTransactionRequest": {
      "description": "The request for BeginTransaction.",
      "id": "BeginTransactionRequest",
      "properties": {
        "options": {
          "$ref": "TransactionOptions",
          "description": "Required. Options for the new transaction."
        }
      },
      "type": "object"
    },
    "Binding": {
      "description": "Associates `members` with a `role`.",
      "id": "Binding",
      "properties": {
        "condition": {
          "$ref": "Expr",
          "description": "Unimplemented. 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."
        },
        "members": {
          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\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\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "role": {
          "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ChildLink": {
      "description": "Metadata associated with a parent-child relationship appearing in a\nPlanNode.",
      "id": "ChildLink",
      "properties": {
        "childIndex": {
          "description": "The node to which the link points.",
          "format": "int32",
          "type": "integer"
        },
        "type": {
          "description": "The type of the link. For example, in Hash Joins this could be used to\ndistinguish between the build child and the probe child, or in the case\nof the child being an output variable, to represent the tag associated\nwith the output variable.",
          "type": "string"
        },
        "variable": {
          "description": "Only present if the child node is SCALAR and corresponds\nto an output variable of the parent node. The field carries the name of\nthe output variable.\nFor example, a `TableScan` operator that reads rows from a table will\nhave child links to the `SCALAR` nodes representing the output variables\ncreated for each column that is read by the operator. The corresponding\n`variable` fields will be set to the variable names assigned to the\ncolumns.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CommitRequest": {
      "description": "The request for Commit.",
      "id": "CommitRequest",
      "properties": {
        "mutations": {
          "description": "The mutations to be executed when this transaction commits. All\nmutations are applied atomically, in the order they appear in\nthis list.",
          "items": {
            "$ref": "Mutation"
          },
          "type": "array"
        },
        "singleUseTransaction": {
          "$ref": "TransactionOptions",
          "description": "Execute mutations in a temporary transaction. Note that unlike\ncommit of a previously-started transaction, commit with a\ntemporary transaction is non-idempotent. That is, if the\n`CommitRequest` is sent to Cloud Spanner more than once (for\ninstance, due to retries in the application, or in the\ntransport library), it is possible that the mutations are\nexecuted more than once. If this is undesirable, use\nBeginTransaction and\nCommit instead."
        },
        "transactionId": {
          "description": "Commit a previously-started transaction.",
          "format": "byte",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CommitResponse": {
      "description": "The response for Commit.",
      "id": "CommitResponse",
      "properties": {
        "commitTimestamp": {
          "description": "The Cloud Spanner timestamp at which the transaction committed.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CreateDatabaseMetadata": {
      "description": "Metadata type for the operation returned by\nCreateDatabase.",
      "id": "CreateDatabaseMetadata",
      "properties": {
        "database": {
          "description": "The database being created.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CreateDatabaseRequest": {
      "description": "The request for CreateDatabase.",
      "id": "CreateDatabaseRequest",
      "properties": {
        "createStatement": {
          "description": "Required. A `CREATE DATABASE` statement, which specifies the ID of the\nnew database.  The database ID must conform to the regular expression\n`a-z*[a-z0-9]` and be between 2 and 30 characters in length.\nIf the database ID is a reserved word or if it contains a hyphen, the\ndatabase ID must be enclosed in backticks (`` ` ``).",
          "type": "string"
        },
        "extraStatements": {
          "description": "An optional list of DDL statements to run inside the newly created\ndatabase. Statements can create tables, indexes, etc. These\nstatements execute atomically with the creation of the database:\nif there is an error in any statement, the database is not created.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "CreateInstanceMetadata": {
      "description": "Metadata type for the operation returned by\nCreateInstance.",
      "id": "CreateInstanceMetadata",
      "properties": {
        "cancelTime": {
          "description": "The time at which this operation was cancelled. If set, this operation is\nin the process of undoing itself (which is guaranteed to succeed) and\ncannot be cancelled again.",
          "format": "google-datetime",
          "type": "string"
        },
        "endTime": {
          "description": "The time at which this operation failed or was completed successfully.",
          "format": "google-datetime",
          "type": "string"
        },
        "instance": {
          "$ref": "Instance",
          "description": "The instance being created."
        },
        "startTime": {
          "description": "The time at which the\nCreateInstance request was\nreceived.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CreateInstanceRequest": {
      "description": "The request for CreateInstance.",
      "id": "CreateInstanceRequest",
      "properties": {
        "instance": {
          "$ref": "Instance",
          "description": "Required. The instance to create.  The name may be omitted, but if\nspecified must be `\u003cparent\u003e/instances/\u003cinstance_id\u003e`."
        },
        "instanceId": {
          "description": "Required. The ID of the instance to create.  Valid identifiers are of the\nform `a-z*[a-z0-9]` and must be between 6 and 30 characters in\nlength.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CreateSessionRequest": {
      "description": "The request for CreateSession.",
      "id": "CreateSessionRequest",
      "properties": {
        "session": {
          "$ref": "Session",
          "description": "The session to create."
        }
      },
      "type": "object"
    },
    "Database": {
      "description": "A Cloud Spanner database.",
      "id": "Database",
      "properties": {
        "name": {
          "description": "Required. The name of the database. Values are of the form\n`projects/\u003cproject\u003e/instances/\u003cinstance\u003e/databases/\u003cdatabase\u003e`,\nwhere `\u003cdatabase\u003e` is as specified in the `CREATE DATABASE`\nstatement. This name can be passed to other API methods to\nidentify the database.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The current database state.",
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "READY"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The database is still being created. Operations on the database may fail\nwith `FAILED_PRECONDITION` in this state.",
            "The database is fully created and ready for use."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "Delete": {
      "description": "Arguments to delete operations.",
      "id": "Delete",
      "properties": {
        "keySet": {
          "$ref": "KeySet",
          "description": "Required. The primary keys of the rows within table to delete.\nDelete is idempotent. The transaction will succeed even if some or all\nrows do not exist."
        },
        "table": {
          "description": "Required. The table whose rows will be deleted.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "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\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "Empty",
      "properties": {},
      "type": "object"
    },
    "ExecuteSqlRequest": {
      "description": "The request for ExecuteSql and\nExecuteStreamingSql.",
      "id": "ExecuteSqlRequest",
      "properties": {
        "paramTypes": {
          "additionalProperties": {
            "$ref": "Type"
          },
          "description": "It is not always possible for Cloud Spanner to infer the right SQL type\nfrom a JSON value.  For example, values of type `BYTES` and values\nof type `STRING` both appear in params as JSON strings.\n\nIn these cases, `param_types` can be used to specify the exact\nSQL type for some or all of the SQL statement parameters. See the\ndefinition of Type for more information\nabout SQL types.",
          "type": "object"
        },
        "params": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "The SQL string can contain parameter placeholders. A parameter\nplaceholder consists of `'@'` followed by the parameter\nname. Parameter names consist of any combination of letters,\nnumbers, and underscores.\n\nParameters can appear anywhere that a literal value is expected.  The same\nparameter name can be used more than once, for example:\n  `\"WHERE id \u003e @msg_id AND id \u003c @msg_id + 100\"`\n\nIt is an error to execute an SQL statement with unbound parameters.\n\nParameter values are specified using `params`, which is a JSON\nobject whose keys are parameter names, and whose values are the\ncorresponding parameter values.",
          "type": "object"
        },
        "partitionToken": {
          "description": "If present, results will be restricted to the specified partition\npreviously created using PartitionQuery().  There must be an exact\nmatch for the values of fields common to this message and the\nPartitionQueryRequest message used to create this partition_token.",
          "format": "byte",
          "type": "string"
        },
        "queryMode": {
          "description": "Used to control the amount of debugging information returned in\nResultSetStats. If partition_token is set, query_mode can only\nbe set to QueryMode.NORMAL.",
          "enum": [
            "NORMAL",
            "PLAN",
            "PROFILE"
          ],
          "enumDescriptions": [
            "The default mode. Only the statement results are returned.",
            "This mode returns only the query plan, without any results or\nexecution statistics information.",
            "This mode returns both the query plan and the execution statistics along\nwith the results."
          ],
          "type": "string"
        },
        "resumeToken": {
          "description": "If this request is resuming a previously interrupted SQL statement\nexecution, `resume_token` should be copied from the last\nPartialResultSet yielded before the interruption. Doing this\nenables the new SQL statement execution to resume where the last one left\noff. The rest of the request parameters must exactly match the\nrequest that yielded this token.",
          "format": "byte",
          "type": "string"
        },
        "seqno": {
          "description": "A per-transaction sequence number used to identify this request. This\nmakes each request idempotent such that if the request is received multiple\ntimes, at most one will succeed.\n\nThe sequence number must be monotonically increasing within the\ntransaction. If a request arrives for the first time with an out-of-order\nsequence number, the transaction may be aborted. Replays of previously\nhandled requests will yield the same response as the first execution.\n\nRequired for DML statements. Ignored for queries.",
          "format": "int64",
          "type": "string"
        },
        "sql": {
          "description": "Required. The SQL string.",
          "type": "string"
        },
        "transaction": {
          "$ref": "TransactionSelector",
          "description": "The transaction to use. If none is provided, the default is a\ntemporary read-only transaction with strong concurrency.\n\nThe transaction to use.\n\nFor queries, if none is provided, the default is a temporary read-only\ntransaction with strong concurrency.\n\nStandard DML statements require a ReadWrite transaction. Single-use\ntransactions are not supported (to avoid replay).  The caller must\neither supply an existing transaction ID or begin a new transaction.\n\nPartitioned DML requires an existing PartitionedDml transaction ID."
        }
      },
      "type": "object"
    },
    "Expr": {
      "description": "Represents an expression text. Example:\n\n    title: \"User account presence\"\n    description: \"Determines whether the request has a user account\"\n    expression: \"size(request.user) \u003e 0\"",
      "id": "Expr",
      "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.\n\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"
    },
    "Field": {
      "description": "Message representing a single field of a struct.",
      "id": "Field",
      "properties": {
        "name": {
          "description": "The name of the field. For reads, this is the column name. For\nSQL queries, it is the column alias (e.g., `\"Word\"` in the\nquery `\"SELECT 'hello' AS Word\"`), or the column name (e.g.,\n`\"ColName\"` in the query `\"SELECT ColName FROM Table\"`). Some\ncolumns might have an empty name (e.g., !\"SELECT\nUPPER(ColName)\"`). Note that a query result can contain\nmultiple fields with the same name.",
          "type": "string"
        },
        "type": {
          "$ref": "Type",
          "description": "The type of the field."
        }
      },
      "type": "object"
    },
    "GetDatabaseDdlResponse": {
      "description": "The response for GetDatabaseDdl.",
      "id": "GetDatabaseDdlResponse",
      "properties": {
        "statements": {
          "description": "A list of formatted DDL statements defining the schema of the database\nspecified in the request.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GetIamPolicyRequest": {
      "description": "Request message for `GetIamPolicy` method.",
      "id": "GetIamPolicyRequest",
      "properties": {},
      "type": "object"
    },
    "Instance": {
      "description": "An isolated set of Cloud Spanner resources on which databases can be hosted.",
      "id": "Instance",
      "properties": {
        "config": {
          "description": "Required. The name of the instance's configuration. Values are of the form\n`projects/\u003cproject\u003e/instanceConfigs/\u003cconfiguration\u003e`. See\nalso InstanceConfig and\nListInstanceConfigs.",
          "type": "string"
        },
        "displayName": {
          "description": "Required. The descriptive name for this instance as it appears in UIs.\nMust be unique per project and between 4 and 30 characters in length.",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cloud Labels are a flexible and lightweight mechanism for organizing cloud\nresources into groups that reflect a customer's organizational needs and\ndeployment strategies. Cloud Labels can be used to filter collections of\nresources. They can be used to control how resource metrics are aggregated.\nAnd they can be used as arguments to policy management rules (e.g. route,\nfirewall, load balancing, etc.).\n\n * Label keys must be between 1 and 63 characters long and must conform to\n   the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.\n * Label values must be between 0 and 63 characters long and must conform\n   to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.\n * No more than 64 labels can be associated with a given resource.\n\nSee https://goo.gl/xmQnxf for more information on and examples of labels.\n\nIf you plan to use labels in your own code, please note that additional\ncharacters may be allowed in the future. And so you are advised to use an\ninternal label representation, such as JSON, which doesn't rely upon\nspecific characters being disallowed.  For example, representing labels\nas the string:  name + \"_\" + value  would prove problematic if we were to\nallow \"_\" in a future release.",
          "type": "object"
        },
        "name": {
          "description": "Required. A unique identifier for the instance, which cannot be changed\nafter the instance is created. Values are of the form\n`projects/\u003cproject\u003e/instances/a-z*[a-z0-9]`. The final\nsegment of the name must be between 6 and 30 characters in length.",
          "type": "string"
        },
        "nodeCount": {
          "description": "Required. The number of nodes allocated to this instance. This may be zero\nin API responses for instances that are not yet in state `READY`.\n\nSee [the documentation](https://cloud.google.com/spanner/docs/instances#node_count)\nfor more information about nodes.",
          "format": "int32",
          "type": "integer"
        },
        "state": {
          "description": "Output only. The current instance state. For\nCreateInstance, the state must be\neither omitted or set to `CREATING`. For\nUpdateInstance, the state must be\neither omitted or set to `READY`.",
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "READY"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The instance is still being created. Resources may not be\navailable yet, and operations such as database creation may not\nwork.",
            "The instance is fully created and ready to do work such as\ncreating databases."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "InstanceConfig": {
      "description": "A possible configuration for a Cloud Spanner instance. Configurations\ndefine the geographic placement of nodes and their replication.",
      "id": "InstanceConfig",
      "properties": {
        "displayName": {
          "description": "The name of this instance configuration as it appears in UIs.",
          "type": "string"
        },
        "name": {
          "description": "A unique identifier for the instance configuration.  Values\nare of the form\n`projects/\u003cproject\u003e/instanceConfigs/a-z*`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "KeyRange": {
      "description": "KeyRange represents a range of rows in a table or index.\n\nA range has a start key and an end key. These keys can be open or\nclosed, indicating if the range includes rows with that key.\n\nKeys are represented by lists, where the ith value in the list\ncorresponds to the ith component of the table or index primary key.\nIndividual values are encoded as described here.\n\nFor example, consider the following table definition:\n\n    CREATE TABLE UserEvents (\n      UserName STRING(MAX),\n      EventDate STRING(10)\n    ) PRIMARY KEY(UserName, EventDate);\n\nThe following keys name rows in this table:\n\n    \"Bob\", \"2014-09-23\"\n\nSince the `UserEvents` table's `PRIMARY KEY` clause names two\ncolumns, each `UserEvents` key has two elements; the first is the\n`UserName`, and the second is the `EventDate`.\n\nKey ranges with multiple components are interpreted\nlexicographically by component using the table or index key's declared\nsort order. For example, the following range returns all events for\nuser `\"Bob\"` that occurred in the year 2015:\n\n    \"start_closed\": [\"Bob\", \"2015-01-01\"]\n    \"end_closed\": [\"Bob\", \"2015-12-31\"]\n\nStart and end keys can omit trailing key components. This affects the\ninclusion and exclusion of rows that exactly match the provided key\ncomponents: if the key is closed, then rows that exactly match the\nprovided components are included; if the key is open, then rows\nthat exactly match are not included.\n\nFor example, the following range includes all events for `\"Bob\"` that\noccurred during and after the year 2000:\n\n    \"start_closed\": [\"Bob\", \"2000-01-01\"]\n    \"end_closed\": [\"Bob\"]\n\nThe next example retrieves all events for `\"Bob\"`:\n\n    \"start_closed\": [\"Bob\"]\n    \"end_closed\": [\"Bob\"]\n\nTo retrieve events before the year 2000:\n\n    \"start_closed\": [\"Bob\"]\n    \"end_open\": [\"Bob\", \"2000-01-01\"]\n\nThe following range includes all rows in the table:\n\n    \"start_closed\": []\n    \"end_closed\": []\n\nThis range returns all users whose `UserName` begins with any\ncharacter from A to C:\n\n    \"start_closed\": [\"A\"]\n    \"end_open\": [\"D\"]\n\nThis range returns all users whose `UserName` begins with B:\n\n    \"start_closed\": [\"B\"]\n    \"end_open\": [\"C\"]\n\nKey ranges honor column sort order. For example, suppose a table is\ndefined as follows:\n\n    CREATE TABLE DescendingSortedTable {\n      Key INT64,\n      ...\n    ) PRIMARY KEY(Key DESC);\n\nThe following range retrieves all rows with key values between 1\nand 100 inclusive:\n\n    \"start_closed\": [\"100\"]\n    \"end_closed\": [\"1\"]\n\nNote that 100 is passed as the start, and 1 is passed as the end,\nbecause `Key` is a descending column in the schema.",
      "id": "KeyRange",
      "properties": {
        "endClosed": {
          "description": "If the end is closed, then the range includes all rows whose\nfirst `len(end_closed)` key columns exactly match `end_closed`.",
          "items": {
            "type": "any"
          },
          "type": "array"
        },
        "endOpen": {
          "description": "If the end is open, then the range excludes rows whose first\n`len(end_open)` key columns exactly match `end_open`.",
          "items": {
            "type": "any"
          },
          "type": "array"
        },
        "startClosed": {
          "description": "If the start is closed, then the range includes all rows whose\nfirst `len(start_closed)` key columns exactly match `start_closed`.",
          "items": {
            "type": "any"
          },
          "type": "array"
        },
        "startOpen": {
          "description": "If the start is open, then the range excludes rows whose first\n`len(start_open)` key columns exactly match `start_open`.",
          "items": {
            "type": "any"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "KeySet": {
      "description": "`KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All\nthe keys are expected to be in the same table or index. The keys need\nnot be sorted in any particular way.\n\nIf the same key is specified multiple times in the set (for example\nif two ranges, two keys, or a key and a range overlap), Cloud Spanner\nbehaves as if the key were only specified once.",
      "id": "KeySet",
      "properties": {
        "all": {
          "description": "For convenience `all` can be set to `true` to indicate that this\n`KeySet` matches all keys in the table or index. Note that any keys\nspecified in `keys` or `ranges` are only yielded once.",
          "type": "boolean"
        },
        "keys": {
          "description": "A list of specific keys. Entries in `keys` should have exactly as\nmany elements as there are columns in the primary or index key\nwith which this `KeySet` is used.  Individual key values are\nencoded as described here.",
          "items": {
            "items": {
              "type": "any"
            },
            "type": "array"
          },
          "type": "array"
        },
        "ranges": {
          "description": "A list of key ranges. See KeyRange for more information about\nkey range specifications.",
          "items": {
            "$ref": "KeyRange"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListDatabasesResponse": {
      "description": "The response for ListDatabases.",
      "id": "ListDatabasesResponse",
      "properties": {
        "databases": {
          "description": "Databases that matched the request.",
          "items": {
            "$ref": "Database"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "`next_page_token` can be sent in a subsequent\nListDatabases call to fetch more\nof the matching databases.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListInstanceConfigsResponse": {
      "description": "The response for ListInstanceConfigs.",
      "id": "ListInstanceConfigsResponse",
      "properties": {
        "instanceConfigs": {
          "description": "The list of requested instance configurations.",
          "items": {
            "$ref": "InstanceConfig"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "`next_page_token` can be sent in a subsequent\nListInstanceConfigs call to\nfetch more of the matching instance configurations.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListInstancesResponse": {
      "description": "The response for ListInstances.",
      "id": "ListInstancesResponse",
      "properties": {
        "instances": {
          "description": "The list of requested instances.",
          "items": {
            "$ref": "Instance"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "`next_page_token` can be sent in a subsequent\nListInstances call to fetch more\nof the matching instances.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse",
      "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": "Operation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListSessionsResponse": {
      "description": "The response for ListSessions.",
      "id": "ListSessionsResponse",
      "properties": {
        "nextPageToken": {
          "description": "`next_page_token` can be sent in a subsequent\nListSessions call to fetch more of the matching\nsessions.",
          "type": "string"
        },
        "sessions": {
          "description": "The list of requested sessions.",
          "items": {
            "$ref": "Session"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Mutation": {
      "description": "A modification to one or more Cloud Spanner rows.  Mutations can be\napplied to a Cloud Spanner database by sending them in a\nCommit call.",
      "id": "Mutation",
      "properties": {
        "delete": {
          "$ref": "Delete",
          "description": "Delete rows from a table. Succeeds whether or not the named\nrows were present."
        },
        "insert": {
          "$ref": "Write",
          "description": "Insert new rows in a table. If any of the rows already exist,\nthe write or transaction fails with error `ALREADY_EXISTS`."
        },
        "insertOrUpdate": {
          "$ref": "Write",
          "description": "Like insert, except that if the row already exists, then\nits column values are overwritten with the ones provided. Any\ncolumn values not explicitly written are preserved."
        },
        "replace": {
          "$ref": "Write",
          "description": "Like insert, except that if the row already exists, it is\ndeleted, and the column values provided are inserted\ninstead. Unlike insert_or_update, this means any values not\nexplicitly written become `NULL`."
        },
        "update": {
          "$ref": "Write",
          "description": "Update existing rows in a table. If any of the rows does not\nalready exist, the transaction fails with error `NOT_FOUND`."
        }
      },
      "type": "object"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
      "id": "Operation",
      "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": "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.",
            "type": "any"
          },
          "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.",
            "type": "any"
          },
          "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"
    },
    "PartialResultSet": {
      "description": "Partial results from a streaming read or SQL query. Streaming reads and\nSQL queries better tolerate large result sets, large rows, and large\nvalues, but are a little trickier to consume.",
      "id": "PartialResultSet",
      "properties": {
        "chunkedValue": {
          "description": "If true, then the final value in values is chunked, and must\nbe combined with more values from subsequent `PartialResultSet`s\nto obtain a complete field value.",
          "type": "boolean"
        },
        "metadata": {
          "$ref": "ResultSetMetadata",
          "description": "Metadata about the result set, such as row type information.\nOnly present in the first response."
        },
        "resumeToken": {
          "description": "Streaming calls might be interrupted for a variety of reasons, such\nas TCP connection loss. If this occurs, the stream of results can\nbe resumed by re-sending the original request and including\n`resume_token`. Note that executing any other transaction in the\nsame session invalidates the token.",
          "format": "byte",
          "type": "string"
        },
        "stats": {
          "$ref": "ResultSetStats",
          "description": "Query plan and execution statistics for the statement that produced this\nstreaming result set. These can be requested by setting\nExecuteSqlRequest.query_mode and are sent\nonly once with the last response in the stream.\nThis field will also be present in the last response for DML\nstatements."
        },
        "values": {
          "description": "A streamed result set consists of a stream of values, which might\nbe split into many `PartialResultSet` messages to accommodate\nlarge rows and/or large values. Every N complete values defines a\nrow, where N is equal to the number of entries in\nmetadata.row_type.fields.\n\nMost values are encoded based on type as described\nhere.\n\nIt is possible that the last value in values is \"chunked\",\nmeaning that the rest of the value is sent in subsequent\n`PartialResultSet`(s). This is denoted by the chunked_value\nfield. Two or more chunked values can be merged to form a\ncomplete value as follows:\n\n  * `bool/number/null`: cannot be chunked\n  * `string`: concatenate the strings\n  * `list`: concatenate the lists. If the last element in a list is a\n    `string`, `list`, or `object`, merge it with the first element in\n    the next list by applying these rules recursively.\n  * `object`: concatenate the (field name, field value) pairs. If a\n    field name is duplicated, then apply these rules recursively\n    to merge the field values.\n\nSome examples of merging:\n\n    # Strings are concatenated.\n    \"foo\", \"bar\" =\u003e \"foobar\"\n\n    # Lists of non-strings are concatenated.\n    [2, 3], [4] =\u003e [2, 3, 4]\n\n    # Lists are concatenated, but the last and first elements are merged\n    # because they are strings.\n    [\"a\", \"b\"], [\"c\", \"d\"] =\u003e [\"a\", \"bc\", \"d\"]\n\n    # Lists are concatenated, but the last and first elements are merged\n    # because they are lists. Recursively, the last and first elements\n    # of the inner lists are merged because they are strings.\n    [\"a\", [\"b\", \"c\"]], [[\"d\"], \"e\"] =\u003e [\"a\", [\"b\", \"cd\"], \"e\"]\n\n    # Non-overlapping object fields are combined.\n    {\"a\": \"1\"}, {\"b\": \"2\"} =\u003e {\"a\": \"1\", \"b\": 2\"}\n\n    # Overlapping object fields are merged.\n    {\"a\": \"1\"}, {\"a\": \"2\"} =\u003e {\"a\": \"12\"}\n\n    # Examples of merging objects containing lists of strings.\n    {\"a\": [\"1\"]}, {\"a\": [\"2\"]} =\u003e {\"a\": [\"12\"]}\n\nFor a more complete example, suppose a streaming SQL query is\nyielding a result set whose rows contain a single string\nfield. The following `PartialResultSet`s might be yielded:\n\n    {\n      \"metadata\": { ... }\n      \"values\": [\"Hello\", \"W\"]\n      \"chunked_value\": true\n      \"resume_token\": \"Af65...\"\n    }\n    {\n      \"values\": [\"orl\"]\n      \"chunked_value\": true\n      \"resume_token\": \"Bqp2...\"\n    }\n    {\n      \"values\": [\"d\"]\n      \"resume_token\": \"Zx1B...\"\n    }\n\nThis sequence of `PartialResultSet`s encodes two rows, one\ncontaining the field value `\"Hello\"`, and a second containing the\nfield value `\"World\" = \"W\" + \"orl\" + \"d\"`.",
          "items": {
            "type": "any"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Partition": {
      "description": "Information returned for each partition returned in a\nPartitionResponse.",
      "id": "Partition",
      "properties": {
        "partitionToken": {
          "description": "This token can be passed to Read, StreamingRead, ExecuteSql, or\nExecuteStreamingSql requests to restrict the results to those identified by\nthis partition token.",
          "format": "byte",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PartitionOptions": {
      "description": "Options for a PartitionQueryRequest and\nPartitionReadRequest.",
      "id": "PartitionOptions",
      "properties": {
        "maxPartitions": {
          "description": "**Note:** This hint is currently ignored by PartitionQuery and\nPartitionRead requests.\n\nThe desired maximum number of partitions to return.  For example, this may\nbe set to the number of workers available.  The default for this option\nis currently 10,000. The maximum value is currently 200,000.  This is only\na hint.  The actual number of partitions returned may be smaller or larger\nthan this maximum count request.",
          "format": "int64",
          "type": "string"
        },
        "partitionSizeBytes": {
          "description": "**Note:** This hint is currently ignored by PartitionQuery and\nPartitionRead requests.\n\nThe desired data size for each partition generated.  The default for this\noption is currently 1 GiB.  This is only a hint. The actual size of each\npartition may be smaller or larger than this size request.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PartitionQueryRequest": {
      "description": "The request for PartitionQuery",
      "id": "PartitionQueryRequest",
      "properties": {
        "paramTypes": {
          "additionalProperties": {
            "$ref": "Type"
          },
          "description": "It is not always possible for Cloud Spanner to infer the right SQL type\nfrom a JSON value.  For example, values of type `BYTES` and values\nof type `STRING` both appear in params as JSON strings.\n\nIn these cases, `param_types` can be used to specify the exact\nSQL type for some or all of the SQL query parameters. See the\ndefinition of Type for more information\nabout SQL types.",
          "type": "object"
        },
        "params": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "The SQL query string can contain parameter placeholders. A parameter\nplaceholder consists of `'@'` followed by the parameter\nname. Parameter names consist of any combination of letters,\nnumbers, and underscores.\n\nParameters can appear anywhere that a literal value is expected.  The same\nparameter name can be used more than once, for example:\n  `\"WHERE id \u003e @msg_id AND id \u003c @msg_id + 100\"`\n\nIt is an error to execute an SQL query with unbound parameters.\n\nParameter values are specified using `params`, which is a JSON\nobject whose keys are parameter names, and whose values are the\ncorresponding parameter values.",
          "type": "object"
        },
        "partitionOptions": {
          "$ref": "PartitionOptions",
          "description": "Additional options that affect how many partitions are created."
        },
        "sql": {
          "description": "The query request to generate partitions for. The request will fail if\nthe query is not root partitionable. The query plan of a root\npartitionable query has a single distributed union operator. A distributed\nunion operator conceptually divides one or more tables into multiple\nsplits, remotely evaluates a subquery independently on each split, and\nthen unions all results.\n\nThis must not contain DML commands, such as INSERT, UPDATE, or\nDELETE. Use ExecuteStreamingSql with a\nPartitionedDml transaction for large, partition-friendly DML operations.",
          "type": "string"
        },
        "transaction": {
          "$ref": "TransactionSelector",
          "description": "Read only snapshot transactions are supported, read/write and single use\ntransactions are not."
        }
      },
      "type": "object"
    },
    "PartitionReadRequest": {
      "description": "The request for PartitionRead",
      "id": "PartitionReadRequest",
      "properties": {
        "columns": {
          "description": "The columns of table to be returned for each row matching\nthis request.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "index": {
          "description": "If non-empty, the name of an index on table. This index is\nused instead of the table primary key when interpreting key_set\nand sorting result rows. See key_set for further information.",
          "type": "string"
        },
        "keySet": {
          "$ref": "KeySet",
          "description": "Required. `key_set` identifies the rows to be yielded. `key_set` names the\nprimary keys of the rows in table to be yielded, unless index\nis present. If index is present, then key_set instead names\nindex keys in index.\n\nIt is not an error for the `key_set` to name rows that do not\nexist in the database. Read yields nothing for nonexistent rows."
        },
        "partitionOptions": {
          "$ref": "PartitionOptions",
          "description": "Additional options that affect how many partitions are created."
        },
        "table": {
          "description": "Required. The name of the table in the database to be read.",
          "type": "string"
        },
        "transaction": {
          "$ref": "TransactionSelector",
          "description": "Read only snapshot transactions are supported, read/write and single use\ntransactions are not."
        }
      },
      "type": "object"
    },
    "PartitionResponse": {
      "description": "The response for PartitionQuery\nor PartitionRead",
      "id": "PartitionResponse",
      "properties": {
        "partitions": {
          "description": "Partitions created by this request.",
          "items": {
            "$ref": "Partition"
          },
          "type": "array"
        },
        "transaction": {
          "$ref": "Transaction",
          "description": "Transaction created by this request."
        }
      },
      "type": "object"
    },
    "PartitionedDml": {
      "description": "Message type to initiate a Partitioned DML transaction.",
      "id": "PartitionedDml",
      "properties": {},
      "type": "object"
    },
    "PlanNode": {
      "description": "Node information for nodes appearing in a QueryPlan.plan_nodes.",
      "id": "PlanNode",
      "properties": {
        "childLinks": {
          "description": "List of child node `index`es and their relationship to this parent.",
          "items": {
            "$ref": "ChildLink"
          },
          "type": "array"
        },
        "displayName": {
          "description": "The display name for the node.",
          "type": "string"
        },
        "executionStats": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "The execution statistics associated with the node, contained in a group of\nkey-value pairs. Only present if the plan was returned as a result of a\nprofile query. For example, number of executions, number of rows/time per\nexecution etc.",
          "type": "object"
        },
        "index": {
          "description": "The `PlanNode`'s index in node list.",
          "format": "int32",
          "type": "integer"
        },
        "kind": {
          "description": "Used to determine the type of node. May be needed for visualizing\ndifferent kinds of nodes differently. For example, If the node is a\nSCALAR node, it will have a condensed representation\nwhich can be used to directly embed a description of the node in its\nparent.",
          "enum": [
            "KIND_UNSPECIFIED",
            "RELATIONAL",
            "SCALAR"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Denotes a Relational operator node in the expression tree. Relational\noperators represent iterative processing of rows during query execution.\nFor example, a `TableScan` operation that reads rows from a table.",
            "Denotes a Scalar node in the expression tree. Scalar nodes represent\nnon-iterable entities in the query plan. For example, constants or\narithmetic operators appearing inside predicate expressions or references\nto column names."
          ],
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Attributes relevant to the node contained in a group of key-value pairs.\nFor example, a Parameter Reference node could have the following\ninformation in its metadata:\n\n    {\n      \"parameter_reference\": \"param1\",\n      \"parameter_type\": \"array\"\n    }",
          "type": "object"
        },
        "shortRepresentation": {
          "$ref": "ShortRepresentation",
          "description": "Condensed representation for SCALAR nodes."
        }
      },
      "type": "object"
    },
    "Policy": {
      "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\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\n**JSON Example**\n\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    }\n\n**YAML Example**\n\n    bindings:\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      role: roles/owner\n    - members:\n      - user:sean@example.com\n      role: roles/viewer\n\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam/docs).",
      "id": "Policy",
      "properties": {
        "bindings": {
          "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.",
          "items": {
            "$ref": "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.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.",
          "format": "byte",
          "type": "string"
        },
        "version": {
          "description": "Deprecated.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "QueryPlan": {
      "description": "Contains an ordered list of nodes appearing in the query plan.",
      "id": "QueryPlan",
      "properties": {
        "planNodes": {
          "description": "The nodes in the query plan. Plan nodes are returned in pre-order starting\nwith the plan root. Each PlanNode's `id` corresponds to its index in\n`plan_nodes`.",
          "items": {
            "$ref": "PlanNode"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ReadOnly": {
      "description": "Message type to initiate a read-only transaction.",
      "id": "ReadOnly",
      "properties": {
        "exactStaleness": {
          "description": "Executes all reads at a timestamp that is `exact_staleness`\nold. The timestamp is chosen soon after the read is started.\n\nGuarantees that all writes that have committed more than the\nspecified number of seconds ago are visible. Because Cloud Spanner\nchooses the exact timestamp, this mode works even if the client's\nlocal clock is substantially skewed from Cloud Spanner commit\ntimestamps.\n\nUseful for reading at nearby replicas without the distributed\ntimestamp negotiation overhead of `max_staleness`.",
          "format": "google-duration",
          "type": "string"
        },
        "maxStaleness": {
          "description": "Read data at a timestamp \u003e= `NOW - max_staleness`\nseconds. Guarantees that all writes that have committed more\nthan the specified number of seconds ago are visible. Because\nCloud Spanner chooses the exact timestamp, this mode works even if\nthe client's local clock is substantially skewed from Cloud Spanner\ncommit timestamps.\n\nUseful for reading the freshest data available at a nearby\nreplica, while bounding the possible staleness if the local\nreplica has fallen behind.\n\nNote that this option can only be used in single-use\ntransactions.",
          "format": "google-duration",
          "type": "string"
        },
        "minReadTimestamp": {
          "description": "Executes all reads at a timestamp \u003e= `min_read_timestamp`.\n\nThis is useful for requesting fresher data than some previous\nread, or data that is fresh enough to observe the effects of some\npreviously committed transaction whose timestamp is known.\n\nNote that this option can only be used in single-use transactions.\n\nA timestamp in RFC3339 UTC \\\"Zulu\\\" format, accurate to nanoseconds.\nExample: `\"2014-10-02T15:01:23.045123456Z\"`.",
          "format": "google-datetime",
          "type": "string"
        },
        "readTimestamp": {
          "description": "Executes all reads at the given timestamp. Unlike other modes,\nreads at a specific timestamp are repeatable; the same read at\nthe same timestamp always returns the same data. If the\ntimestamp is in the future, the read will block until the\nspecified timestamp, modulo the read's deadline.\n\nUseful for large scale consistent reads such as mapreduces, or\nfor coordinating many reads against a consistent snapshot of the\ndata.\n\nA timestamp in RFC3339 UTC \\\"Zulu\\\" format, accurate to nanoseconds.\nExample: `\"2014-10-02T15:01:23.045123456Z\"`.",
          "format": "google-datetime",
          "type": "string"
        },
        "returnReadTimestamp": {
          "description": "If true, the Cloud Spanner-selected read timestamp is included in\nthe Transaction message that describes the transaction.",
          "type": "boolean"
        },
        "strong": {
          "description": "Read at a timestamp where all previously committed transactions\nare visible.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "ReadRequest": {
      "description": "The request for Read and\nStreamingRead.",
      "id": "ReadRequest",
      "properties": {
        "columns": {
          "description": "The columns of table to be returned for each row matching\nthis request.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "index": {
          "description": "If non-empty, the name of an index on table. This index is\nused instead of the table primary key when interpreting key_set\nand sorting result rows. See key_set for further information.",
          "type": "string"
        },
        "keySet": {
          "$ref": "KeySet",
          "description": "Required. `key_set` identifies the rows to be yielded. `key_set` names the\nprimary keys of the rows in table to be yielded, unless index\nis present. If index is present, then key_set instead names\nindex keys in index.\n\nIf the partition_token field is empty, rows are yielded\nin table primary key order (if index is empty) or index key order\n(if index is non-empty).  If the partition_token field is not\nempty, rows will be yielded in an unspecified order.\n\nIt is not an error for the `key_set` to name rows that do not\nexist in the database. Read yields nothing for nonexistent rows."
        },
        "limit": {
          "description": "If greater than zero, only the first `limit` rows are yielded. If `limit`\nis zero, the default is no limit. A limit cannot be specified if\n`partition_token` is set.",
          "format": "int64",
          "type": "string"
        },
        "partitionToken": {
          "description": "If present, results will be restricted to the specified partition\npreviously created using PartitionRead().    There must be an exact\nmatch for the values of fields common to this message and the\nPartitionReadRequest message used to create this partition_token.",
          "format": "byte",
          "type": "string"
        },
        "resumeToken": {
          "description": "If this request is resuming a previously interrupted read,\n`resume_token` should be copied from the last\nPartialResultSet yielded before the interruption. Doing this\nenables the new read to resume where the last read left off. The\nrest of the request parameters must exactly match the request\nthat yielded this token.",
          "format": "byte",
          "type": "string"
        },
        "table": {
          "description": "Required. The name of the table in the database to be read.",
          "type": "string"
        },
        "transaction": {
          "$ref": "TransactionSelector",
          "description": "The transaction to use. If none is provided, the default is a\ntemporary read-only transaction with strong concurrency."
        }
      },
      "type": "object"
    },
    "ReadWrite": {
      "description": "Message type to initiate a read-write transaction. Currently this\ntransaction type has no options.",
      "id": "ReadWrite",
      "properties": {},
      "type": "object"
    },
    "ResultSet": {
      "description": "Results from Read or\nExecuteSql.",
      "id": "ResultSet",
      "properties": {
        "metadata": {
          "$ref": "ResultSetMetadata",
          "description": "Metadata about the result set, such as row type information."
        },
        "rows": {
          "description": "Each element in `rows` is a row whose format is defined by\nmetadata.row_type. The ith element\nin each row matches the ith field in\nmetadata.row_type. Elements are\nencoded based on type as described\nhere.",
          "items": {
            "items": {
              "type": "any"
            },
            "type": "array"
          },
          "type": "array"
        },
        "stats": {
          "$ref": "ResultSetStats",
          "description": "Query plan and execution statistics for the SQL statement that\nproduced this result set. These can be requested by setting\nExecuteSqlRequest.query_mode.\nDML statements always produce stats containing the number of rows\nmodified, unless executed using the\nExecuteSqlRequest.QueryMode.PLAN ExecuteSqlRequest.query_mode.\nOther fields may or may not be populated, based on the\nExecuteSqlRequest.query_mode."
        }
      },
      "type": "object"
    },
    "ResultSetMetadata": {
      "description": "Metadata about a ResultSet or PartialResultSet.",
      "id": "ResultSetMetadata",
      "properties": {
        "rowType": {
          "$ref": "StructType",
          "description": "Indicates the field names and types for the rows in the result\nset.  For example, a SQL query like `\"SELECT UserId, UserName FROM\nUsers\"` could return a `row_type` value like:\n\n    \"fields\": [\n      { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n      { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n    ]"
        },
        "transaction": {
          "$ref": "Transaction",
          "description": "If the read or SQL query began a transaction as a side-effect, the\ninformation about the new transaction is yielded here."
        }
      },
      "type": "object"
    },
    "ResultSetStats": {
      "description": "Additional statistics about a ResultSet or PartialResultSet.",
      "id": "ResultSetStats",
      "properties": {
        "queryPlan": {
          "$ref": "QueryPlan",
          "description": "QueryPlan for the query associated with this result."
        },
        "queryStats": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Aggregated statistics from the execution of the query. Only present when\nthe query is profiled. For example, a query could return the statistics as\nfollows:\n\n    {\n      \"rows_returned\": \"3\",\n      \"elapsed_time\": \"1.22 secs\",\n      \"cpu_time\": \"1.19 secs\"\n    }",
          "type": "object"
        },
        "rowCountExact": {
          "description": "Standard DML returns an exact count of rows that were modified.",
          "format": "int64",
          "type": "string"
        },
        "rowCountLowerBound": {
          "description": "Partitioned DML does not offer exactly-once semantics, so it\nreturns a lower bound of the rows modified.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RollbackRequest": {
      "description": "The request for Rollback.",
      "id": "RollbackRequest",
      "properties": {
        "transactionId": {
          "description": "Required. The transaction to roll back.",
          "format": "byte",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Session": {
      "description": "A session in the Cloud Spanner API.",
      "id": "Session",
      "properties": {
        "approximateLastUseTime": {
          "description": "Output only. The approximate timestamp when the session is last used. It is\ntypically earlier than the actual last use time.",
          "format": "google-datetime",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The timestamp when the session is created.",
          "format": "google-datetime",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The labels for the session.\n\n * Label keys must be between 1 and 63 characters long and must conform to\n   the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.\n * Label values must be between 0 and 63 characters long and must conform\n   to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.\n * No more than 64 labels can be associated with a given session.\n\nSee https://goo.gl/xmQnxf for more information on and examples of labels.",
          "type": "object"
        },
        "name": {
          "description": "The name of the session. This is always system-assigned; values provided\nwhen creating a session are ignored.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "id": "SetIamPolicyRequest",
      "properties": {
        "policy": {
          "$ref": "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."
        }
      },
      "type": "object"
    },
    "ShortRepresentation": {
      "description": "Condensed representation of a node and its subtree. Only present for\n`SCALAR` PlanNode(s).",
      "id": "ShortRepresentation",
      "properties": {
        "description": {
          "description": "A string representation of the expression subtree rooted at this node.",
          "type": "string"
        },
        "subqueries": {
          "additionalProperties": {
            "format": "int32",
            "type": "integer"
          },
          "description": "A mapping of (subquery variable name) -\u003e (subquery node id) for cases\nwhere the `description` string of this node references a `SCALAR`\nsubquery contained in the expression subtree rooted at this node. The\nreferenced `SCALAR` subquery may not necessarily be a direct child of\nthis node.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "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\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\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\n# Language mapping\n\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\n# Other uses\n\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.\n\nExample uses of this error model include:\n\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\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\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\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\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.",
      "id": "Status",
      "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": "any"
            },
            "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"
    },
    "StructType": {
      "description": "`StructType` defines the fields of a STRUCT type.",
      "id": "StructType",
      "properties": {
        "fields": {
          "description": "The list of fields that make up this struct. Order is\nsignificant, because values of this struct type are represented as\nlists, where the order of field values matches the order of\nfields in the StructType. In turn, the order of fields\nmatches the order of columns in a read request, or the order of\nfields in the `SELECT` clause of a query.",
          "items": {
            "$ref": "Field"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TestIamPermissionsRequest": {
      "description": "Request message for `TestIamPermissions` method.",
      "id": "TestIamPermissionsRequest",
      "properties": {
        "permissions": {
          "description": "REQUIRED: The set of permissions to check for 'resource'.\nPermissions with wildcards (such as '*', 'spanner.*', 'spanner.instances.*') are not allowed.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TestIamPermissionsResponse": {
      "description": "Response message for `TestIamPermissions` method.",
      "id": "TestIamPermissionsResponse",
      "properties": {
        "permissions": {
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Transaction": {
      "description": "A transaction.",
      "id": "Transaction",
      "properties": {
        "id": {
          "description": "`id` may be used to identify the transaction in subsequent\nRead,\nExecuteSql,\nCommit, or\nRollback calls.\n\nSingle-use read-only transactions do not have IDs, because\nsingle-use transactions do not support multiple requests.",
          "format": "byte",
          "type": "string"
        },
        "readTimestamp": {
          "description": "For snapshot read-only transactions, the read timestamp chosen\nfor the transaction. Not returned by default: see\nTransactionOptions.ReadOnly.return_read_timestamp.\n\nA timestamp in RFC3339 UTC \\\"Zulu\\\" format, accurate to nanoseconds.\nExample: `\"2014-10-02T15:01:23.045123456Z\"`.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TransactionOptions": {
      "description": "# Transactions\n\n\nEach session can have at most one active transaction at a time. After the\nactive transaction is completed, the session can immediately be\nre-used for the next transaction. It is not necessary to create a\nnew session for each transaction.\n\n# Transaction Modes\n\nCloud Spanner supports three transaction modes:\n\n  1. Locking read-write. This type of transaction is the only way\n     to write data into Cloud Spanner. These transactions rely on\n     pessimistic locking and, if necessary, two-phase commit.\n     Locking read-write transactions may abort, requiring the\n     application to retry.\n\n  2. Snapshot read-only. This transaction type provides guaranteed\n     consistency across several reads, but does not allow\n     writes. Snapshot read-only transactions can be configured to\n     read at timestamps in the past. Snapshot read-only\n     transactions do not need to be committed.\n\n  3. Partitioned DML. This type of transaction is used to execute\n     a single Partitioned DML statement. Partitioned DML partitions\n     the key space and runs the DML statement over each partition\n     in parallel using separate, internal transactions that commit\n     independently. Partitioned DML transactions do not need to be\n     committed.\n\nFor transactions that only read, snapshot read-only transactions\nprovide simpler semantics and are almost always faster. In\nparticular, read-only transactions do not take locks, so they do\nnot conflict with read-write transactions. As a consequence of not\ntaking locks, they also do not abort, so retry loops are not needed.\n\nTransactions may only read/write data in a single database. They\nmay, however, read/write data in different tables within that\ndatabase.\n\n## Locking Read-Write Transactions\n\nLocking transactions may be used to atomically read-modify-write\ndata anywhere in a database. This type of transaction is externally\nconsistent.\n\nClients should attempt to minimize the amount of time a transaction\nis active. Faster transactions commit with higher probability\nand cause less contention. Cloud Spanner attempts to keep read locks\nactive as long as the transaction continues to do reads, and the\ntransaction has not been terminated by\nCommit or\nRollback.  Long periods of\ninactivity at the client may cause Cloud Spanner to release a\ntransaction's locks and abort it.\n\nConceptually, a read-write transaction consists of zero or more\nreads or SQL statements followed by\nCommit. At any time before\nCommit, the client can send a\nRollback request to abort the\ntransaction.\n\n### Semantics\n\nCloud Spanner can commit the transaction if all read locks it acquired\nare still valid at commit time, and it is able to acquire write\nlocks for all writes. Cloud Spanner can abort the transaction for any\nreason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees\nthat the transaction has not modified any user data in Cloud Spanner.\n\nUnless the transaction commits, Cloud Spanner makes no guarantees about\nhow long the transaction's locks were held for. It is an error to\nuse Cloud Spanner locks for any sort of mutual exclusion other than\nbetween Cloud Spanner transactions themselves.\n\n### Retrying Aborted Transactions\n\nWhen a transaction aborts, the application can choose to retry the\nwhole transaction again. To maximize the chances of successfully\ncommitting the retry, the client should execute the retry in the\nsame session as the original attempt. The original session's lock\npriority increases with each consecutive abort, meaning that each\nattempt has a slightly better chance of success than the previous.\n\nUnder some circumstances (e.g., many transactions attempting to\nmodify the same row(s)), a transaction can abort many times in a\nshort period before successfully committing. Thus, it is not a good\nidea to cap the number of retries a transaction can attempt;\ninstead, it is better to limit the total amount of wall time spent\nretrying.\n\n### Idle Transactions\n\nA transaction is considered idle if it has no outstanding reads or\nSQL queries and has not started a read or SQL query within the last 10\nseconds. Idle transactions can be aborted by Cloud Spanner so that they\ndon't hold on to locks indefinitely. In that case, the commit will\nfail with error `ABORTED`.\n\nIf this behavior is undesirable, periodically executing a simple\nSQL query in the transaction (e.g., `SELECT 1`) prevents the\ntransaction from becoming idle.\n\n## Snapshot Read-Only Transactions\n\nSnapshot read-only transactions provides a simpler method than\nlocking read-write transactions for doing several consistent\nreads. However, this type of transaction does not support writes.\n\nSnapshot transactions do not take locks. Instead, they work by\nchoosing a Cloud Spanner timestamp, then executing all reads at that\ntimestamp. Since they do not acquire locks, they do not block\nconcurrent read-write transactions.\n\nUnlike locking read-write transactions, snapshot read-only\ntransactions never abort. They can fail if the chosen read\ntimestamp is garbage collected; however, the default garbage\ncollection policy is generous enough that most applications do not\nneed to worry about this in practice.\n\nSnapshot read-only transactions do not need to call\nCommit or\nRollback (and in fact are not\npermitted to do so).\n\nTo execute a snapshot transaction, the client specifies a timestamp\nbound, which tells Cloud Spanner how to choose a read timestamp.\n\nThe types of timestamp bound are:\n\n  - Strong (the default).\n  - Bounded staleness.\n  - Exact staleness.\n\nIf the Cloud Spanner database to be read is geographically distributed,\nstale read-only transactions can execute more quickly than strong\nor read-write transaction, because they are able to execute far\nfrom the leader replica.\n\nEach type of timestamp bound is discussed in detail below.\n\n### Strong\n\nStrong reads are guaranteed to see the effects of all transactions\nthat have committed before the start of the read. Furthermore, all\nrows yielded by a single read are consistent with each other -- if\nany part of the read observes a transaction, all parts of the read\nsee the transaction.\n\nStrong reads are not repeatable: two consecutive strong read-only\ntransactions might return inconsistent results if there are\nconcurrent writes. If consistency across reads is required, the\nreads should be executed within a transaction or at an exact read\ntimestamp.\n\nSee TransactionOptions.ReadOnly.strong.\n\n### Exact Staleness\n\nThese timestamp bounds execute reads at a user-specified\ntimestamp. Reads at a timestamp are guaranteed to see a consistent\nprefix of the global transaction history: they observe\nmodifications done by all transactions with a commit timestamp \u003c=\nthe read timestamp, and observe none of the modifications done by\ntransactions with a larger commit timestamp. They will block until\nall conflicting transactions that may be assigned commit timestamps\n\u003c= the read timestamp have finished.\n\nThe timestamp can either be expressed as an absolute Cloud Spanner commit\ntimestamp or a staleness relative to the current time.\n\nThese modes do not require a \"negotiation phase\" to pick a\ntimestamp. As a result, they execute slightly faster than the\nequivalent boundedly stale concurrency modes. On the other hand,\nboundedly stale reads usually return fresher results.\n\nSee TransactionOptions.ReadOnly.read_timestamp and\nTransactionOptions.ReadOnly.exact_staleness.\n\n### Bounded Staleness\n\nBounded staleness modes allow Cloud Spanner to pick the read timestamp,\nsubject to a user-provided staleness bound. Cloud Spanner chooses the\nnewest timestamp within the staleness bound that allows execution\nof the reads at the closest available replica without blocking.\n\nAll rows yielded are consistent with each other -- if any part of\nthe read observes a transaction, all parts of the read see the\ntransaction. Boundedly stale reads are not repeatable: two stale\nreads, even if they use the same staleness bound, can execute at\ndifferent timestamps and thus return inconsistent results.\n\nBoundedly stale reads execute in two phases: the first phase\nnegotiates a timestamp among all replicas needed to serve the\nread. In the second phase, reads are executed at the negotiated\ntimestamp.\n\nAs a result of the two phase execution, bounded staleness reads are\nusually a little slower than comparable exact staleness\nreads. However, they are typically able to return fresher\nresults, and are more likely to execute at the closest replica.\n\nBecause the timestamp negotiation requires up-front knowledge of\nwhich rows will be read, it can only be used with single-use\nread-only transactions.\n\nSee TransactionOptions.ReadOnly.max_staleness and\nTransactionOptions.ReadOnly.min_read_timestamp.\n\n### Old Read Timestamps and Garbage Collection\n\nCloud Spanner continuously garbage collects deleted and overwritten data\nin the background to reclaim storage space. This process is known\nas \"version GC\". By default, version GC reclaims versions after they\nare one hour old. Because of this, Cloud Spanner cannot perform reads\nat read timestamps more than one hour in the past. This\nrestriction also applies to in-progress reads and/or SQL queries whose\ntimestamp become too old while executing. Reads and SQL queries with\ntoo-old read timestamps fail with the error `FAILED_PRECONDITION`.\n\n## Partitioned DML Transactions\n\nPartitioned DML transactions are used to execute DML statements with a\ndifferent execution strategy that provides different, and often better,\nscalability properties for large, table-wide operations than DML in a\nReadWrite transaction. Smaller scoped statements, such as an OLTP workload,\nshould prefer using ReadWrite transactions.\n\nPartitioned DML partitions the keyspace and runs the DML statement on each\npartition in separate, internal transactions. These transactions commit\nautomatically when complete, and run independently from one another.\n\nTo reduce lock contention, this execution strategy only acquires read locks\non rows that match the WHERE clause of the statement. Additionally, the\nsmaller per-partition transactions hold locks for less time.\n\nThat said, Partitioned DML is not a drop-in replacement for standard DML used\nin ReadWrite transactions.\n\n - The DML statement must be fully-partitionable. Specifically, the statement\n   must be expressible as the union of many statements which each access only\n   a single row of the table.\n\n - The statement is not applied atomically to all rows of the table. Rather,\n   the statement is applied atomically to partitions of the table, in\n   independent transactions. Secondary index rows are updated atomically\n   with the base table rows.\n\n - Partitioned DML does not guarantee exactly-once execution semantics\n   against a partition. The statement will be applied at least once to each\n   partition. It is strongly recommended that the DML statement should be\n   idempotent to avoid unexpected results. For instance, it is potentially\n   dangerous to run a statement such as\n   `UPDATE table SET column = column + 1` as it could be run multiple times\n   against some rows.\n\n - The partitions are committed automatically - there is no support for\n   Commit or Rollback. If the call returns an error, or if the client issuing\n   the ExecuteSql call dies, it is possible that some rows had the statement\n   executed on them successfully. It is also possible that statement was\n   never executed against other rows.\n\n - Partitioned DML transactions may only contain the execution of a single\n   DML statement via ExecuteSql or ExecuteStreamingSql.\n\n - If any error is encountered during the execution of the partitioned DML\n   operation (for instance, a UNIQUE INDEX violation, division by zero, or a\n   value that cannot be stored due to schema constraints), then the\n   operation is stopped at that point and an error is returned. It is\n   possible that at this point, some partitions have been committed (or even\n   committed multiple times), and other partitions have not been run at all.\n\nGiven the above, Partitioned DML is good fit for large, database-wide,\noperations that are idempotent, such as deleting old rows from a very large\ntable.",
      "id": "TransactionOptions",
      "properties": {
        "partitionedDml": {
          "$ref": "PartitionedDml",
          "description": "Partitioned DML transaction.\n\nAuthorization to begin a Partitioned DML transaction requires\n`spanner.databases.beginPartitionedDmlTransaction` permission\non the `session` resource."
        },
        "readOnly": {
          "$ref": "ReadOnly",
          "description": "Transaction will not write.\n\nAuthorization to begin a read-only transaction requires\n`spanner.databases.beginReadOnlyTransaction` permission\non the `session` resource."
        },
        "readWrite": {
          "$ref": "ReadWrite",
          "description": "Transaction may write.\n\nAuthorization to begin a read-write transaction requires\n`spanner.databases.beginOrRollbackReadWriteTransaction` permission\non the `session` resource."
        }
      },
      "type": "object"
    },
    "TransactionSelector": {
      "description": "This message is used to select the transaction in which a\nRead or\nExecuteSql call runs.\n\nSee TransactionOptions for more information about transactions.",
      "id": "TransactionSelector",
      "properties": {
        "begin": {
          "$ref": "TransactionOptions",
          "description": "Begin a new transaction and execute this read or SQL query in\nit. The transaction ID of the new transaction is returned in\nResultSetMetadata.transaction, which is a Transaction."
        },
        "id": {
          "description": "Execute the read or SQL query in a previously-started transaction.",
          "format": "byte",
          "type": "string"
        },
        "singleUse": {
          "$ref": "TransactionOptions",
          "description": "Execute the read or SQL query in a temporary transaction.\nThis is the most efficient way to execute a transaction that\nconsists of a single SQL query."
        }
      },
      "type": "object"
    },
    "Type": {
      "description": "`Type` indicates the type of a Cloud Spanner value, as might be stored in a\ntable cell or returned from an SQL query.",
      "id": "Type",
      "properties": {
        "arrayElementType": {
          "$ref": "Type",
          "description": "If code == ARRAY, then `array_element_type`\nis the type of the array elements."
        },
        "code": {
          "description": "Required. The TypeCode for this type.",
          "enum": [
            "TYPE_CODE_UNSPECIFIED",
            "BOOL",
            "INT64",
            "FLOAT64",
            "TIMESTAMP",
            "DATE",
            "STRING",
            "BYTES",
            "ARRAY",
            "STRUCT"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Encoded as JSON `true` or `false`.",
            "Encoded as `string`, in decimal format.",
            "Encoded as `number`, or the strings `\"NaN\"`, `\"Infinity\"`, or\n`\"-Infinity\"`.",
            "Encoded as `string` in RFC 3339 timestamp format. The time zone\nmust be present, and must be `\"Z\"`.\n\nIf the schema has the column option\n`allow_commit_timestamp=true`, the placeholder string\n`\"spanner.commit_timestamp()\"` can be used to instruct the system\nto insert the commit timestamp associated with the transaction\ncommit.",
            "Encoded as `string` in RFC 3339 date format.",
            "Encoded as `string`.",
            "Encoded as a base64-encoded `string`, as described in RFC 4648,\nsection 4.",
            "Encoded as `list`, where the list elements are represented\naccording to array_element_type.",
            "Encoded as `list`, where list element `i` is represented according\nto [struct_type.fields[i]][google.spanner.v1.StructType.fields]."
          ],
          "type": "string"
        },
        "structType": {
          "$ref": "StructType",
          "description": "If code == STRUCT, then `struct_type`\nprovides type information for the struct's fields."
        }
      },
      "type": "object"
    },
    "UpdateDatabaseDdlMetadata": {
      "description": "Metadata type for the operation returned by\nUpdateDatabaseDdl.",
      "id": "UpdateDatabaseDdlMetadata",
      "properties": {
        "commitTimestamps": {
          "description": "Reports the commit timestamps of all statements that have\nsucceeded so far, where `commit_timestamps[i]` is the commit\ntimestamp for the statement `statements[i]`.",
          "items": {
            "format": "google-datetime",
            "type": "string"
          },
          "type": "array"
        },
        "database": {
          "description": "The database being modified.",
          "type": "string"
        },
        "statements": {
          "description": "For an update this list contains all the statements. For an\nindividual statement, this list contains only that statement.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "UpdateDatabaseDdlRequest": {
      "description": "Enqueues the given DDL statements to be applied, in order but not\nnecessarily all at once, to the database schema at some point (or\npoints) in the future. The server checks that the statements\nare executable (syntactically valid, name tables that exist, etc.)\nbefore enqueueing them, but they may still fail upon\nlater execution (e.g., if a statement from another batch of\nstatements is applied first and it conflicts in some way, or if\nthere is some data-related problem like a `NULL` value in a column to\nwhich `NOT NULL` would be added). If a statement fails, all\nsubsequent statements in the batch are automatically cancelled.\n\nEach batch of statements is assigned a name which can be used with\nthe Operations API to monitor\nprogress. See the\noperation_id field for more\ndetails.",
      "id": "UpdateDatabaseDdlRequest",
      "properties": {
        "operationId": {
          "description": "If empty, the new update request is assigned an\nautomatically-generated operation ID. Otherwise, `operation_id`\nis used to construct the name of the resulting\nOperation.\n\nSpecifying an explicit operation ID simplifies determining\nwhether the statements were executed in the event that the\nUpdateDatabaseDdl call is replayed,\nor the return value is otherwise lost: the database and\n`operation_id` fields can be combined to form the\nname of the resulting\nlongrunning.Operation: `\u003cdatabase\u003e/operations/\u003coperation_id\u003e`.\n\n`operation_id` should be unique within the database, and must be\na valid identifier: `a-z*`. Note that\nautomatically-generated operation IDs always begin with an\nunderscore. If the named operation already exists,\nUpdateDatabaseDdl returns\n`ALREADY_EXISTS`.",
          "type": "string"
        },
        "statements": {
          "description": "DDL statements to be applied to the database.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "UpdateInstanceMetadata": {
      "description": "Metadata type for the operation returned by\nUpdateInstance.",
      "id": "UpdateInstanceMetadata",
      "properties": {
        "cancelTime": {
          "description": "The time at which this operation was cancelled. If set, this operation is\nin the process of undoing itself (which is guaranteed to succeed) and\ncannot be cancelled again.",
          "format": "google-datetime",
          "type": "string"
        },
        "endTime": {
          "description": "The time at which this operation failed or was completed successfully.",
          "format": "google-datetime",
          "type": "string"
        },
        "instance": {
          "$ref": "Instance",
          "description": "The desired end state of the update."
        },
        "startTime": {
          "description": "The time at which UpdateInstance\nrequest was received.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "UpdateInstanceRequest": {
      "description": "The request for UpdateInstance.",
      "id": "UpdateInstanceRequest",
      "properties": {
        "fieldMask": {
          "description": "Required. A mask specifying which fields in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be updated.\nThe field mask must always be specified; this prevents any future fields in\n[][google.spanner.admin.instance.v1.Instance] from being erased accidentally by clients that do not know\nabout them.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "instance": {
          "$ref": "Instance",
          "description": "Required. The instance to update, which must always include the instance\nname.  Otherwise, only fields mentioned in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included."
        }
      },
      "type": "object"
    },
    "Write": {
      "description": "Arguments to insert, update, insert_or_update, and\nreplace operations.",
      "id": "Write",
      "properties": {
        "columns": {
          "description": "The names of the columns in table to be written.\n\nThe list of columns must contain enough columns to allow\nCloud Spanner to derive values for all primary key columns in the\nrow(s) to be modified.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "table": {
          "description": "Required. The table whose rows will be written.",
          "type": "string"
        },
        "values": {
          "description": "The values to be written. `values` can contain more than one\nlist of values. If it does, then multiple rows are written, one\nfor each entry in `values`. Each list in `values` must have\nexactly as many entries as there are entries in columns\nabove. Sending multiple lists is equivalent to sending multiple\n`Mutation`s, each containing one `values` entry and repeating\ntable and columns. Individual values in each list are\nencoded as described here.",
          "items": {
            "items": {
              "type": "any"
            },
            "type": "array"
          },
          "type": "array"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Cloud Spanner API",
  "version": "v1",
  "version_module": true
}